DES SYST
EMES D'EXPLOITATION :
LES CAS LINUX
VOLUME UN
ETHERNET, IP et UDP
Patrik Cegielski
egielskiuniv-paris12.fr
Juin 2005
UniversiteParis12-IUT
RouteforestiereHurtault
F-77300Fontainebleau
egielskiuniv-paris12.fr
Prefae
On peut distinguerquatre niveauxen e qui onernelesrapports entre une personneet le
sous-systemereseaud'un systemed'exploitation:
{ Auniveauutilisateur,onutilisedesappliations(logiiels)faisantinterveniruneonnexion
informatique, tellesqueleourriereletronique,laonsultationdepagesweb,letransfert
dehiers.
{ Le niveau administrateur onsiste a parametrer le sous-systeme reseau du systeme d'ex-
ploitation,aletenirajouretaapporterdesressouresauxutilisateurs(attributiond'une
adresseIP,parexemple).
{ Leniveauprogrammationreseaupermet deonevoirdesappliations,queelles-isoient
utilisees loalement ou onnaissent une grande diusion. Cette programmation se fait
presquetoujoursenlangageCenutilisantdesappelssystemeonstituantuneAPI(Appli-
ationProgrammer Interfae).
{ Le niveau oneption du noyau reseau onsiste a onevoir et a implementer ette API
reseau.
Le but de e livre est de faire omprendre l'implementation du sous-systeme reseau des
systemesd'exploitation,'est-a-diredel'APIreseau.Ilexistedetresnombreuxlivres(ennombre
tropimportantm^eme)pourderireleniveauutilisateur,quifaitdetoutefaonmaintenantpar-
tiedelaulturedebasedetoutunhaun.Ilestm^emepartieintegrantedu\solefondamental"
de l'eole telque deni en Frane en 2004. L'administration reseauaegalement donnee lieu a
unelitteratureabondante,parexemple[K-D{01℄.Lalitteraturesurlaprogrammationreseauest
moinsfournie:larefereneest[STE{90℄dansleasUnix.Lalitteraturesurl'implementationdu
sous-sytemereseauest plus quemaigrihonne ([HER{00℄, [WPRMB{02℄, [C-P{02℄). Il n'existe
auunlivregeneralanotreonnaissane.
Le hoix dusystemed'exploitation permettant d'illustrer notre proposs'est tout naturelle-
mentportesurLinux,puisquenouspouvonsnousenprourerlessourestresfailement.
Notre but n'estpas d'etudierTOUTEl'implementation dusous-systemereseau(Linux), e
quiouperaitplusieursvolumesommeelui-i,dontlenombredepagesestdejasuÆsamment
imposant.Nousvoulonssimplement,sil'onpeutdire,etudierunasreeldepuisledebutjusqu'a
lan.
Dans la premiere partie, nous donnons une vue d'ensemble sur les reseaux et les modeles
d'arhiteture(OSIaseptouhes,TCP/IPatroisouhesetlemodelemixteainqouhes),
nousderivonstresrapidementlaouhephysique(premiereouhe)puisquelaprogrammation
(etdonlesous-systemereseau)n'yaquefaire.Pourillustrerlaouheliaison(deuxiemeouhe),
nousavonshoisiEthernet,quiestlareferenepourLinux.Laouhereseau(troisiemeouhe)
est illustree ave IP, devenu larefereneabsolue quelleque soit lereseau. Bienque le modele
ouhe) ave UDP et non TCP, e qui est plus simple bien que deja suÆsamment omplexe
omme ela. Iln'y apas a s'interroger sur lehoix de l'API reseau puisque l'API des sokets
est,ommeIP,devenulareferenepresqueexlusive.LorsdelapresentationdeetteAPI,nous
donnonsquelques programmestressimples,e qui nousaurapermisde derirelesous-systeme
reseaud'unboutal'autre.
Lapremierepartierestegenerale,l'implementationLinuxn'yjoueauunr^ole.Danslaseonde
partie, nousetudionsl'implementation Linux delareeptiond'un datagrammeUDP, depuisla
trame Ethernet et en passant parle paquet IP ordinaire.Nous ommenons parla reeption,
m^emes'il abienfallul'envoyer,arsonimplementationestplussimplequel'envoi.
Latroisiemepartietraitedel'envoid'undatagrammeUDP.
Lagure0-1montre lahierarhieentre leshapitres.
Reeption General Linux Envoi
Generalites h1 h10
TCP/IP h5 h11
h9 h12
h13
Couhephysique h2
CouheLiaison h3 h14
h4 h15
h8 h16
h17
h19 h34
Couhereseau h18
h20
h21
h22
h23 h33
h36 h36
Couhetransport h24
h25 h32
APIreseau h6 h26
h7 h27
h28
h29
h30 h35 h31
Fig.1{Hierarhieentreleshapitres
Lesous-systemereseauestdevenupartieintegrantedessystemesd'exploitationatuels.Nous
supposonsdonqueleleteuraitquelquesnotionssurl'implementationdessystemesd'exploita-
tionengeneraletdeLinuxenpartiulier.Ilexisteunelitteratureassezonsequentesuresujet,
souventexellente.Nousnouspermettonsdereommandernotrelivre[CEG{03℄,quiillustreles
proposparletoutpremiernoyauLinux,quineonernedonquel'essentiel,equiestsuÆsant
pouraborderevolume.
Celivren'ad'autrebut quedepublierenunseulvolumelesaspetssuivantsdel'implemen-
tationd'unsous-systemereseau:
{ lesoneptsgenerauxsous-jaentsal'implementationd'unsous-systemereseau;
{ lesoneptsfondamentauxd'Ethernetet deTCP/IP;
{ ladoumentationsurunontr^oleurdeperipheriquereseau,asavoirlearte3Com501pour
ompatible PC;
{ unepresentationdeshoixfaitspourl'implementationdeLinux,suivied'extraitsdehiers
soures, reperables failement par l'indiation CodeLinux situee en marge, paraphrases
en franais; es paraphrases ne sont pas theoriquement indispensables mais oh ombien
appreiablesenpratique.
Nousparleronsquelquefoisde\fontiongenerale"enderivantrapidementleomportement
de elle-imais sansnous reporterauxsoures dansleas ou elane onernepaslesreseaux
aproprementparler.CetouvrageestdejasuÆsammentimposantommeelaparsataille pour
quenousn'ayonspasarevoirtoutel'implementationdusystemed'exploitation.
L'indexest une partiefondamentale dulivre, etpasseulementparlevolumeoupe(apeu
pres30pages):
{ Il s'agit tout d'abordd'un index desonepts fondamentaux onernant lesreseaux. On
s'y refererapour herherrapidement un motdont on ne onna^t pasla signiation ou
pourlequelonvoudraitplusd'informations.Ilrenvoiealapageou ilestdeni.
{ Il s'agit egalement d'un ditionnaire franais-anglais et anglais-franais de es m^emes
onepts.Ladenominationanglaisedetoutoneptesttoujoursindiqueeentreparenthese
lorsqueelui-iestintroduit(enfranais).Cetindexserviraertainementegalementaeux
qui, souieuxdelalanguefranaise,veulementeviterlesangliismes.Pourtelmotanglais
renontre,l'indexindiqueaquelpagelemotfranaisorrespondant(etsa tradutionan-
glaiseentreparentheses)estdeni.
{ Il s'agit egalement d'un index des grandsnoms qui ont partiipe aux reseaux, bien que
et aspet n'a pas enore ete assez developpea notre go^ut (peut-^etre pour une edition
ulterieure?).
{ Les soures, de faon generale et de Linux en partiulier, sont souvent d'approhe un
peu repoussante ar il est diÆile de s'y retrouver.On dispose maintenant pour ela de
l'exellentoutillxrquenousderivonsauhapitre10.Celui-ionna^tependantquelques
limites (il n'indexe pas les onstantes denies dans un type enumere par exemple) et,
surtout, il ne renvoie pas aux ommentaires adequats. Notre index referene toutes les
onstantes,maros,variables,fontionsettouslestypesfondamentauxdel'implementation
dusous-systemereseaudeLinux,renvoyantalapageouladenitionestiteeetommentee.
Laversiondunoyauhoisiepouretteeditionest2.6.10,'est-a-direladerniereversionau
momentdelandelaredationdee livre.
{ On n'aertainementpasinter^et aetudierlessoureshierparhierar laphilosophie
de mise en hier n'est pas suÆsamment oherente pour Linux. On peut ependant, a
l'oasiondel'etudedeteloutelpointd'un hier, sedemandersi ettepartie duhier
est ommentee dans e livre. C'est pourquoi les hiers sont indexes, ave leslignes des
hiersommeseond niveaud'indexation.
Notre espoirserait,tell'aigle,de pouvoirsurvoleret immensehampqu'estle reseaupour
avoirune vue d'ensembleet, laou a nousinteresse pluspartiulierement,piquer jusqu'ausol
pourenvoirlemoindredetail.
Cet espoirest-il realise? C'est autre histoire mais 'est en tousas le but verslequel nous
Table des matieres
Prefae v
1 Lesreseauxinformatiques 1
1.1 Introdutionauxreseaux . . . 1
1.1.1 Originedesreseauxinformatique . . . 1
1.1.2 Notiondereseauinformatique . . . 2
1.1.3 Materieletlogiielpourreseau . . . 2
1.1.4 Protooles. . . 2
1.1.5 Systemesproprietairesetsystemesouverts. . . 2
1.2 Reseauetommutation . . . 3
1.2.1 Notiondeommutation . . . 3
1.2.2 Typesdeommutation. . . 4
1.2.3 Reseauxhierarhisesetreseauxmailles. . . 6
1.3 Modelesenouhes. . . 7
1.3.1 Etudegenerale . . . 7
1.3.2 ModeleOSI . . . 9
1.3.3 SuiteTCP/IP . . . 10
1.3.4 Lemodele dessokets . . . 11
1.3.5 Modelehybride . . . 11
1.3.6 CasdeLinux . . . 11
1.3.7 Lesen-t^etesdeprotoole . . . 12
1.4 Historique . . . 12
1.4.1 Naissanedesordinateurs . . . 12
1.4.2 Terminauxdistants. . . 13
1.4.3 Premieremiseenreseau:1965 . . . 13
1.4.4 Reseauxdeommuniation . . . 13
1.4.5 Commutation parpaquets . . . 14
1.4.6 Lepremierreseau:ARPANETen1971 . . . 14
I Couhes physique et de liaison 17 2 Laouhe physique 21 2.1 Lessupportsphysiques. . . 22
2.2 Interfaesupportphysique/ordinateur . . . 22
2.2.1 Rappelssurlesliaisonsserie. . . 22
2.2.2 LasynhronisationetleodageManhester . . . 24
2.3.1 Hierarhiesuivantlataille . . . 25
2.3.2 Reseauadiusionet reseaupoint-a-point . . . 26
2.4 Reseauxloaux . . . 27
2.4.1 Tehnologiedesreseauxloaux . . . 27
2.4.2 Topologiedesreseauxloaux . . . 27
2.5 Historique . . . 30
2.5.1 Emergenedereseauxdereherhe . . . 30
2.5.2 Naissanedesreseauxadiusion:ALOHANET . . . 31
2.5.3 Naissanedesreseauxloaux:Ethernet . . . 32
2.5.4 Interreseaux. . . 33
3 Vue d'ensemblesur laouhe liaison 35 3.1 Determinationdestrames . . . 36
3.1.1 Paquet,trameetsommedeontr^ole . . . 36
3.1.2 Deoupageentrames. . . 37
3.2 Garantiedetransmissionorrete . . . 39
3.2.1 Premiereidee:onrmation ouinrmation . . . 39
3.2.2 Deuxiemeidee:onrmationet delai . . . 40
3.2.3 Troisiemeidee:fen^etreglissante . . . 40
3.3 Contr^oledeux. . . 41
3.4 Gestiondesanaux . . . 42
3.4.1 Alloationstatiquedesanaux . . . 42
3.4.2 Gestiondesanaux aaesmultiples . . . 43
4 Ethernet 45 4.1 VuegeneralesurEthernet . . . 45
4.1.1 Couhephysique:typesde^ablageEthernet . . . 45
4.1.2 Couhedeliaison:detetiondesollisions . . . 46
4.2 LestandardIEEE . . . 47
4.2.1 IEEEetlesreseauxloaux . . . 47
II Vue d'ensemble sur TCP/IP 51 5 L'arhiteture TCP/IP 55 5.1 Vued'ensemble . . . 55
5.1.1 Historique. . . 55
5.1.2 Denitiondesstandards . . . 57
5.1.3 Vued'ensembledel'arhitetureTCP/IP . . . 58
5.2 ProtoolesdelasuiteTCP/IP . . . 59
5.2.1 Protoolesdelaouhed'aes . . . 59
5.2.2 Protoolesdelaouhereseau . . . 59
5.2.3 Protoolesdelaouhedetransport . . . 60
5.2.4 Lesprotoolesd'appliation . . . 60
5.3 LesadressesreseauInternet . . . 61
5.3.1 AdresseIP . . . 61
5.3.2 Multiplexageauniveautransport . . . 62
6 API des sokets: l'interfae BSD 65
6.1.1 Notiondesoket . . . 66
6.1.2 Typesdeommuniation . . . 66
6.2 Pairedesoketsloales . . . 67
6.2.1 Creation. . . 67
6.2.2 Letureeterituresurdessokets . . . 69
6.2.3 Fermeturedessokets . . . 69
6.3 Soketpourommuniationonnetee . . . 70
6.3.1 Cylesdeviedansleasdesommuniationsonnetees. . . 70
6.3.2 Creationd'unesoket . . . 71
6.3.3 Speiationdesadresses . . . 72
6.3.4 L'ordrereseaudesotets . . . 73
6.3.5 Connexionauserveur . . . 74
6.3.6 Initialisationd'unserveur . . . 75
6.3.7 Attente delient . . . 76
6.3.8 Aeptationdelient. . . 76
6.3.9 Ouvertured'unhierdesoket . . . 77
6.3.10 Exempledeserveur. . . 77
6.4 Donneesurgentes . . . 78
6.4.1 Notion . . . 78
6.4.2 Envoietreeptiondesdonneesurgentes . . . 79
6.5 Soketpourommuniationnononnetee. . . 80
6.5.1 Cylesdeviedansleasdesommuniationsnononnetees . . . 80
6.5.2 Lesfontionsd'envoiet dereeptiondemessage . . . 80
6.5.3 Exemple . . . 81
6.6 Semi-arr^etd'unesoket . . . 84
7 APIdes sokets: niveauavane 85 7.1 Donneesdispersees . . . 86
7.1.1 Lesentrees-sortiessursoket . . . 86
7.1.2 Veteurd'entree-sortie . . . 86
7.1.3 Syntaxedesfontions . . . 86
7.1.4 Exemple . . . 87
7.2 Donneesanillaires . . . 87
7.2.1 Notion . . . 87
7.2.2 Lesfontionsdetransmissiondemessages . . . 88
7.2.3 Struturedesdonneesanillaires . . . 89
7.3 Lesoptions . . . 91
8 Unexemplede arte reseau:3Com 501 93 8.1 Desriptiondelaarte . . . 94
8.1.1 Interfaelogiielle . . . 94
8.1.2 Leregistredeommanded'emission: TCR . . . 95
8.1.3 Leregistredestatutd'emission:TSR . . . 95
8.1.4 Leregistredeommandedereeption:RCR . . . 95
8.1.5 Leregistredestatutdereeption:RSR . . . 96
8.1.6 Leregistredeommandeauxiliaire:ACR . . . 96
8.1.7 Leregistredestatutauxiliaire:ASR . . . 97
8.2 Emissionet reeption. . . 97
8.2.1 Choixdel'adressedebaseet del'IRQ . . . 97
8.2.3 Reeptiond'unetrame . . . 98
9 Quelques protoolesreseau 99 9.1 ProtooleEthernet . . . 100
9.1.1 Protooledesous-ouheMACpourEthernet. . . 100
9.1.2 Protoole802.3delasous-ouheLLC . . . 102
9.2 LeprotooledeouhereseauIPv4 . . . 102
9.2.1 Etudegeneraledelaouhereseau . . . 102
9.2.2 Cequenefaitpaslaouhereseau . . . 102
9.2.3 Lestribulationsd'unpaquet IP . . . 103
9.2.4 Fragmentation . . . 104
9.2.5 Leroutage . . . 105
9.2.6 RoutageetadresseIP . . . 106
9.2.7 En-t^eteIPv4 . . . 108
9.3 Leprotooledeouhedetransport UDP . . . 111
9.3.1 L'en-t^eteUDP . . . 111
9.3.2 Seurisationoptionnelleparsommedeontr^ole . . . 112
III Vue generale sur l'implementationLinux 115 10Implementationgenerale de Linux 117 10.1 Organisationduodesoure. . . 118
10.1.1 Premierniveau . . . 118
10.1.2 Repertoireonernantlesreseaux. . . 118
10.1.3 Strutured'unhiersoure. . . 119
10.1.4 Aideauparoursduodesoure . . . 121
10.2 Denitiondetypesportables . . . 121
10.2.1 TypesPosix. . . 121
10.2.2 Typesentiers . . . 123
10.2.3 Tailles . . . 125
10.3 Gestiondelamemoire . . . 125
10.3.1 Reservationetliberationdememoirenoyau . . . 125
10.3.2 Copieentreespaenoyauetespaeutilisateur. . . 126
10.3.3 Cahesmemoire . . . 126
10.4 LagestiondutempsdanslenoyauLinux . . . 127
10.4.1 Duree . . . 127
10.4.2 Filed'attente deminuteurs . . . 128
10.5 SMP . . . 128
10.6 GestiondesativitesdanslenoyauLinux . . . 128
10.6.1 Ativitesdebase . . . 129
10.6.2 Partiesbasseset tasklets. . . 130
10.6.3 Interruptionslogiielles . . . 131
10.7 Operationsatomiques . . . 132
10.7.1 Operationsatomiquessurlesbits . . . 132
10.7.2 Operationsatomiquessurlesentiers . . . 133
10.7.3 Verrousrotatifs . . . 134
10.7.4 Verrousrotatifsdeleture-eriture . . . 136
10.7.5 Semaphore . . . 138
10.9 InitialisationdusystemeLinux . . . 139
10.9.1 Fontionsd'initialisation. . . 139
10.9.2 Coded'initialisation . . . 140
11 Vue d'ensemble 141 11.1 ReeptiondedonneesviaundatagrammeUDP . . . 142
11.1.1 ReeptiondelatrameEthernetparlaartereseau . . . 142
11.1.2 Reuperationdupaquetparl'ordinateur. . . 142
11.1.3 Traitementdupaquet parlaouhereseau . . . 143
11.1.4 Traitementdudatagrammeparlaouhedetransport . . . 143
11.1.5 Reuperationparl'utilisateur . . . 143
11.2 EnvoidedonneesviaundatagrammeUDP . . . 143
11.2.1 Envoiparl'utilisateur . . . 143
11.2.2 Traitementdudatagrammeparlaouhedetransport . . . 144
11.2.3 EnvoidespaquetsordinairessousIPv4 . . . 144
11.2.4 Envoidelatrame . . . 144
11.3 Historique . . . 144
12 Lestamponsde soket 147 12.1 Strutured'untampondesoket . . . 148
12.1.1 Espaedet^eteet espaedequeued'untampondesoket . . . 148
12.1.2 Fragmentationd'untampondesoket . . . 148
12.2 Desripteurdetampon. . . 149
12.2.1 Denitiondutype . . . 149
12.2.2 Champsrelatifsauxlistesdedesripteurs detampon. . . 152
12.2.3 Provenanedutampon . . . 153
12.2.4 En-t^etesdesouhesdeprotoole. . . 153
12.2.5 Attributsdivers. . . 154
12.3 Filesd'attente detamponsdesoket . . . 157
13Gestion des tamponsde soket 159 13.1 Generationet liberationdesdesripteursdetampon . . . 160
13.1.1 Soures . . . 160
13.1.2 Alloationd'untampondesoket . . . 160
13.1.3 Liberationrapided'untampondesoket. . . 162
13.1.4 Liberationpropred'untampondesoket . . . 164
13.2 Manipulationdutampon . . . 166
13.2.1 Espaesdet^eteet dequeue . . . 166
13.2.2 Ajustementdelataille d'untamponvide . . . 167
13.2.3 Manipulationduompteurdereferenes . . . 170
13.2.4 Detetiondelonage . . . 170
13.3 Gestiondeslesd'attentedepaquets. . . 172
13.3.1 Carateresgeneraux . . . 172
13.3.2 Gestiondesstruturesdelesd'attente . . . 172
13.3.3 Gestiondestamponsd'uneled'attente . . . 173
13.4 Initialisationdel'antememoiredestamponsdesoket . . . 181
13.5 Fontionsdeopie . . . 181
13.5.1 Dupliationd'undesripteurdetampon . . . 181
13.5.2 Copied'untamponet desondesripteur . . . 183
13.5.4 Copied'untamponet desondesripteuravemodiation . . . 189
13.6 Ajustementd'unezonedesdonneesoupee . . . 190
13.6.1 Retraitdedonneesaudebut . . . 190
13.6.2 Retraitalan . . . 195
13.6.3 Extensiondel'espaedet^ete . . . 196
13.7 Alloationd'untampondesoketpourl'emission. . . 197
14Strutures de donneespour le pilote 199 14.1 Desripteurd'interfaedeperipheriquereseau . . . 200
14.1.1 PhilosophieLinuxdeshiersdeperipheriquereseau . . . 200
14.1.2 Denitiondutype . . . 201
14.1.3 Partievisible . . . 205
14.1.4 Champsgeneraux . . . 209
14.1.5 Membresonernantlasous-ouheMAC . . . 214
14.1.6 Membresonernantlaouhereseau . . . 219
14.1.7 Methodesdupilotedeartereseau . . . 220
14.1.8 Autreshamps . . . 222
14.2 Entreedeahed'en-t^etemateriel . . . 222
14.3 Implementationdel'ordrereseaudesotets . . . 224
14.3.1 Implementationgenerique . . . 224
14.3.2 CasdesmiroproesseursIntel . . . 227
15Detetiond'une arte reseau (1) Aspet general 229 15.1 Premiereetape . . . 230
15.1.1 Casdesperipheriquesliesstatiquement . . . 230
15.1.2 Casdesperipheriquesmodularises . . . 232
15.2 Deuxiemeetape:alloationd'unnom . . . 233
15.2.1 Alloationdunom etpassagealatroisiemeetape . . . 233
15.2.2 Manipulationd'unperipheriquedesigneparunnom . . . 236
15.3 Attributiond'unindexetinsertiondanslaliste . . . 238
15.3.1 Cha^nesdenotiation. . . 239
15.3.2 Fontionprinipale . . . 241
15.3.3 Alloationd'unetramedederoutement . . . 245
15.3.4 Attributiond'unindex . . . 246
15.3.5 Rattahementaugestionnairedest^ahes. . . 247
15.3.6 Initialisationduminuteur . . . 249
15.4 Miseenfontionnementdesperipheriquesreseau . . . 249
15.4.1 Fontionprinipale . . . 249
15.4.2 Montagedusystemedehiers . . . 251
16Detetiond'une arte reseau (2)Le as d'Ethernet 255 16.1 StruturesdedonneespourEthernet . . . 256
16.1.1 Constantes . . . 256
16.1.2 Lestypesdeprotoole . . . 256
16.1.3 Strutured'en-t^etedetrame . . . 257
16.2 Detetion etinitialisationdesartesEthernet . . . 258
16.2.1 Detetion desperipheriquesEthernet. . . 258
16.2.2 Initialisationd'unearteEthernet . . . 261
16.3 OperationslieesaEthernet . . . 264
17Detetiond'une arte reseau (3)Cas 3Com501 267 17.1 Desriptionduontr^oleurdelaarte . . . 268
17.1.1 Commentairegeneral. . . 268
17.1.2 Lesregistres. . . 269
17.2 Detetion etinitialisationdelaarte3Com . . . 271
17.2.1 Fontionprinipale . . . 271
17.2.2 Etablissementdesparametresaudemarrage . . . 273
17.2.3 Liberationd'undesripteurdeperipheriquereseau . . . 274
17.2.4 Veriationdelapresenephysiquedelaarte . . . 274
18 Attributiond'une adresse a unearte reseau 279 18.1 Laommandeifonfig . . . 280
18.1.1 Fontionnalite . . . 280
18.1.2 Listedesperipheriquesreseauenativite . . . 280
18.1.3 Ativation desperipheriquesdunoyau . . . 281
18.1.4 Ativation etdesativationd'unperipheriquemodularise. . . 281
18.2 Aspet generaldel'ativation . . . 281
18.2.1 Fontiond'ouverture . . . 281
18.2.2 Ativation delaled'attente enemission . . . 283
18.2.3 Demarrageduminuteurdeproblemesd'emission . . . 285
18.3 Casdelaarte3Com501 . . . 286
18.3.1 Installationdugestionnaired'interruption . . . 286
18.3.2 Reinitialisation . . . 287
IV Reeption 289 19 Reeption des trames 291 19.1 Ationdugestionnaired'interruption. . . 292
19.1.1 Demultiplexage:reeptionouemission . . . 292
19.1.2 Traitementenasdereeption . . . 294
19.2 Creationd'unnouveautampondesoket . . . 296
19.3 Determinationduprotooledeouhereseau . . . 298
19.4 Misedunouveautamponenled'attente . . . 300
19.4.1 Filed'attente d'unmiroproesseur. . . 300
19.4.2 Fontiondemiseenled'attente . . . 302
19.5 Passagealaouhesuperieure . . . 304
19.5.1 Typedepaquet . . . 304
19.5.2 Proessusdepassagealaouhesuperieure . . . 309
19.6 Preparationautraitementdans laouhesuperieure . . . 312
19.6.1 Determinationdupaquetatraiter . . . 312
19.6.2 Traitementd'unpaquet . . . 314
19.6.3 Livraisonalaouhesuperieure . . . 317
19.7 Reuperationdesinformationsstatistiques . . . 318
19.7.1 Casgeneral . . . 318
19.7.2 Casdelaarte3Com501 . . . 318
20.1 ImplementationLinuxdel'en-t^eteIP. . . 319
20.2 Caluldelasommedeontr^ole IP . . . 320
21Tables de routage 323 21.1 Remplissagedestablesderoutage . . . 324
21.1.1 Caluldelatablederediretion . . . 324
21.1.2 Laommandeip . . . 324
21.2 Struturedestables deroutage . . . 327
21.2.1 TablesderoutageetsouresLinux . . . 327
21.2.2 Desriptiondelastruturedestablesderoutage . . . 328
21.3 Initialisationdestables deroutagestatiques . . . 332
21.3.1 Delaration . . . 332
21.3.2 Initialisationlorsdudemarragedusysteme . . . 333
21.3.3 Numerosdestables. . . 334
21.3.4 Attributiondesparametrespardefaut . . . 335
21.4 Insertiond'unelementdansunetable . . . 335
21.4.1 Struturesdedonneespourl'insertion . . . 336
21.4.2 Fontioninterne d'insertion . . . 340
21.5 Fontion internederetraitd'uneentree . . . 355
21.6 Consultationd'unetable . . . 357
21.6.1 Struturededonneespourlaonsultation . . . 357
21.6.2 Fontioninterne deonsultation . . . 359
21.6.3 Interfaeavelesfontionsderediretion . . . 362
22Cahe de routage 363 22.1 Strutureduahederoutage. . . 364
22.1.1 Cahededestination . . . 364
22.1.2 Entreedeahederoutage . . . 367
22.1.3 Cahederoutage . . . 368
22.2 InitialisationduahederoutageIP . . . 368
22.3 Interfaeahederoutage/fontionsderediretion . . . 372
22.3.1 Caluldel'indexdanslatable deroutage . . . 372
22.3.2 Insertiondanslatabledehahage . . . 372
23Reeption des paquetsordinairessous IPv4 377 23.1 Triet ontr^oledel'integritedupaquet . . . 378
23.1.1 Triet ontr^ole . . . 378
23.1.2 Etapeoptionnelle: lespointsd'anrage . . . 381
23.2 Deuxiemeetape:routageettraitementdesoptions . . . 382
23.2.1 Vued'ensemble . . . 382
23.2.2 Fontionderediretionenentree . . . 384
23.2.3 Choixdelafontiondetraitementdupaquet . . . 397
23.3 Remiseloaledespaquets . . . 397
23.3.1 Premiereetape:reassemblagedesfragments. . . 397
23.3.2 GestiondesprotoolesdetransportdanslaouheIP . . . 398
23.3.3 Deuxiemeetape:demultiplexagedelaouhedetransport . . . 399
24Les desripteurs de ouhe transport 403 24.1 Struturedesdesripteursdeouhetransport . . . 404
24.1.2 Attributsommuns. . . 406
24.1.3 Attributsdeontr^ole . . . 408
24.1.4 Attributsassoiesauxoptionsdessokets . . . 410
24.1.5 Fontionsmembre . . . 411
24.2 Alloationet liberation. . . 411
24.2.1 Alloation . . . 411
24.2.2 Gestionduompteurdereferene. . . 413
24.2.3 Liberation. . . 414
24.3 Gestiondesdonneesassoiees . . . 416
24.3.1 Initialisationdesdonnees . . . 416
24.3.2 Verrouillage . . . 418
24.3.3 Initialisationdudelai . . . 419
25 Reeption des datagrammesUDP 421 25.1 ImplementationLinuxgeneraled'UDP . . . 421
25.1.1 ImplementationLinuxdel'en-t^eteUDP . . . 421
25.1.2 Caluldelasommedeontr^ole . . . 422
25.2 ReeptiondesdatagrammesUDP. . . 428
25.2.1 Fontiondetraitementprinipale. . . 428
25.2.2 Veriationrapidedelasommedeontr^ole . . . 431
25.2.3 ConsultationdelatabledehahageUDP . . . 433
25.2.4 TraitementdudatagrammeUDP . . . 436
25.2.5 Misedanslaled'attentedereeptionUDP . . . 438
26Installation de la famillede protoolesIPv4 441 26.1 Manipulationdesfamilles deprotooles . . . 442
26.1.1 Famillesdeprotooles . . . 442
26.1.2 Lestypesdeommuniation. . . 444
26.1.3 LesprotoolesdelasuiteTCP/IPv4 . . . 449
26.2 Implementation . . . 449
26.2.1 Tableaudesfamilles deprotooles . . . 449
26.2.2 Enregistrementd'untypedeommuniationIPv4 . . . 452
26.2.3 InstallationdelasuitedeprotoolesTCP/IPv4. . . 453
27Implementationdes hiers de type soket 459 27.1 Implementationgeneraledeshiers . . . 460
27.1.1 Systemedehiersvirtuel . . . 460
27.1.2 Super-blo . . . 461
27.1.3 Nudd'information . . . 463
27.1.4 Desripteurdehier . . . 465
27.1.5 Repertoire. . . 466
27.1.6 Typesdehiers . . . 466
27.1.7 Delarationd'unsystemedehiers . . . 467
27.1.8 Enregistrementd'unsystemedehiers . . . 467
27.2 Desripteurdesoket. . . 468
27.2.1 Denitiondutype . . . 468
27.2.2 Lesetatsd'unesoket . . . 469
27.2.3 Lesdrapeaux . . . 469
27.2.4 Letypeoperationssurune soket. . . 469
27.3.1 Lastruture. . . 470
27.3.2 Enregistrement . . . 470
27.4 Systemedehiersdesokets . . . 471
27.4.1 Obtentiondusuper-blo . . . 471
27.4.2 Liberationd'unsuper-blo. . . 474
27.5 Operationssurlessuper-blos. . . 475
27.5.1 Ensembledesoperations. . . 475
27.5.2 Statutdusystemedehiers . . . 475
27.5.3 Alloationd'undesripteurdenudd'information . . . 476
27.5.4 Liberationd'undesripteurdenudd'information . . . 477
27.6 Operationssurlesrepertoiresdesoket . . . 477
27.7 Operationssurleshiersdetypesoket. . . 477
27.8 Premieresimplementationsdefontions . . . 479
27.8.1 Implementationdupositionnement . . . 479
27.8.2 Implementationdelasrutation . . . 479
27.8.3 Implementationdunonmappageenmemoirevive . . . 480
27.8.4 Implementationdel'ouverturedehier . . . 481
27.8.5 Implementationdesevenementsasynhrones . . . 481
27.8.6 Implementationdelaliberationdehier . . . 482
28Creationet fermeturedes sokets 485 28.1 Creationd'unesoket . . . 486
28.1.1 Traitementgeneral . . . 486
28.1.2 CasdelafamilledeprotoolesIPv4 . . . 495
28.2 Semi-arr^etd'unesoket . . . 500
28.2.1 Traitementgeneral . . . 500
28.2.2 CasdeIPv4. . . 502
28.2.3 FontiondedeonnexionspeiqueaUDP . . . 503
28.3 Fermeture d'unesoket. . . 506
29Initialisation d'un serveur 509 29.1 Partiegenerale . . . 510
29.1.1 Fontiond'appel . . . 510
29.1.2 Passageespaeutilisateur/espaenoyau . . . 510
29.2 CasdeIPv4 . . . 511
29.2.1 Fontionspeiqued'initialisationduserveur . . . 511
29.2.2 Determinationdutyped'adresse . . . 513
29.3 ObtentionetveriationduportdansleasUDP . . . 514
30Reeption d'un datagrammepar unesoket 519 30.1 Typesliesauxfontionsd'entree-sortie . . . 520
30.1.1 Veteursd'entree-sortie . . . 520
30.1.2 En-t^etedemessage. . . 520
30.1.3 En-t^etedeontr^ole . . . 520
30.2 Implementationgeneraledelareeptiondesdatagrammes . . . 521
30.2.1 Fontiond'appel . . . 521
30.2.2 Reeptiondemessagedesoket . . . 522
30.2.3 Passageespaenoyau/espaeutilisateur . . . 523
30.2.4 Fontioninterne dereeptiond'unmessage . . . 524
30.4 CasdeUDP. . . 526
30.5 Lienavelestamponsdesoket . . . 529
30.5.1 Instantiationdedesripteurdetamponenreeption . . . 529
30.5.2 Copied'undatagrammedansl'espaeutilisateur . . . 533
30.5.3 Liberationd'untampondedatagramme . . . 537
V Envoi 539 31Envoid'un datagrammepar unesoket 541 31.1 Niveauimplementationdessokets . . . 542
31.1.1 Fontiond'appel . . . 542
31.1.2 Envoidemessagedesoket . . . 543
31.1.3 Fontioninterne d'envoidemessage . . . 543
31.2 CasdeIPv4 . . . 544
31.2.1 Appelalafontionspeiquealaouhedetransport . . . 544
31.2.2 Attributionautomatiquedenumerodeport . . . 545
32Envoide datagrammesordinairessousUDP 547 32.1 Fontiond'envoispeiqueaUDP . . . 548
32.1.1 Desription . . . 548
32.1.2 Implementation. . . 548
32.2 RegroupementdedonneesUDP. . . 555
32.2.1 Fontionprinipale . . . 555
32.2.2 Instantiationd'un tampondesoket pourl'emission . . . 561
32.2.3 Reuperationdesfragments . . . 564
32.3 Constitutiondudatagramme . . . 566
32.4 Envoidudatagrammealaouhereseau. . . 569
33Envoide paquetsordinairessous IPv4 571 33.1 Premiereetape:routaged'unpaquet ordinaire . . . 572
33.1.1 Reherhedansleahederoutage . . . 572
33.1.2 ReherheetenduealaFIB . . . 573
33.2 Seondeetape:onstitutiondupaquetIP . . . 581
33.2.1 ImplementationdesoptionsIP . . . 581
33.2.2 Reuperationdesfragments . . . 581
33.3 Transfertdelaouhereseaualaouheinferieure . . . 585
33.3.1 Premieresous-etape:determinationdelafontiondetransfert . . . 585
33.3.2 Deuxiemesous-etape:fragmentationeventuelle . . . 586
33.3.3 Troisiemesous-etape:positionnementdutypedupaquet . . . 586
33.3.4 Quatriemesous-etape:passagealaouheinferieure . . . 586
34Envoide trames 589 34.1 Transmissionalaartereseau:partiegenerale . . . 590
34.1.1 Premiereetape:miseenled'attente . . . 590
34.1.2 Deuxiemeetape: reuperationdespaquets. . . 596
34.1.3 Troisiemeetape:envoi . . . 601
34.2 Partiespeiquealaarte. . . 603
34.2.1 Etudegenerale . . . 603
34.3 Reational'envoi. . . 607
34.3.1 Reponsedugestionnaired'interruption. . . 607
34.3.2 Ationlorsqueledelaiesteoule . . . 609
35Desativation etretrait 611 35.1 Desativation . . . 612
35.1.1 Casgeneral . . . 612
35.1.2 Casdelaarte3Com501 . . . 614
35.2 Retraitd'unperipheriquereseau . . . 615
35.2.1 Demontagedusystemedehier . . . 619
35.2.2 Demontagedusystemedehiers . . . 619
35.2.3 Attentedesreferenes . . . 619
VI Complement sur IP: la fragmentation 621 36Fragmentationpourla ouhe reseau:le asde IPv4 623 36.1 Fragmentation . . . 624
36.2 Reassemblage . . . 632
36.2.1 Cahedefragment . . . 632
36.2.2 Traitementdureassemblage . . . 634
36.2.3 Traitementlorsdel'expirationdudelai . . . 643
36.3 Initialisationdelafragmentation . . . 645
VII Appendies 647
Bibliographie 649
Index 654
Table des gures
1 Hierarhieentreleshapitres . . . vi
1.1 Grapheomplet . . . 3
1.2 Reseauave ommutateurentral . . . 4
1.3 Reseaudistribue . . . 6
1.4 Pilereseau. . . 8
2.1 Niveauxlogiques . . . 23
2.2 Synhronisation . . . 23
2.3 CodageManhester. . . 24
2.4 Reseauetendu . . . 26
2.5 Reseaumahineamahine. . . 28
2.6 Reseauenbus. . . 29
2.7 Reseauenanneau. . . 29
2.8 Reseauenetoile. . . 30
2.9 Croissaned'Arpanet:(a)deembre1969(b)juillet1970() mars1971(d)avril 1972(e)septembre1972 . . . 31
2.10 EpinedorsaleNSFNET en1988. . . 32
2.11 ArhiteturedupremierreseauEthernet. . . 33
3.1 Strutured'unetrame . . . 36
3.2 Deomptagedesotets . . . 37
3.3 Faniondesignalisation . . . 38
3.4 Conrmationet inrmation . . . 39
3.5 Fen^etreglissante . . . 41
4.1 Typesde^ablagesEthernet . . . 46
4.2 TypesdeonnexionsEthernet. . . 47
4.3 Sous-ouhesMACet LLC . . . 49
5.1 Numerosdeportbien onnusdesserveurs . . . 63
7.1 Donneesanillaires . . . 89
9.1 Fragmentationd'unpaquetIP . . . 105
9.2 Tabledehahage . . . 106
9.3 Pseudoen-t^eteUDP . . . 112
12.1 Tampondesoket etsondesripteur . . . 150
19.1 Gestiondesprotoolesdereseau . . . 306
21.1 Tablederoutage . . . 328
22.1 Strutureduahederoutage. . . 368
36.1 Cahedefragment . . . 632
Chapitre 1
Les reseaux informatiques
1.1 Introdution aux reseaux
1.1.1 Origine des reseaux informatique
Lanotiondealul estl'unedesgrandesonqu^etesdel'humanite,ertainementapparueau
neolithique pour les besoins de omptabilite des ressoures indispensables pour les premieres
ites,onernantlehepteletlesreservesdenourriture.Lesgrandesquantitesmanipuleespour
etteomptabiliteaonduitareherherrapidementdesoutilsd'aidesaualul(petitsailloux,
puis abaque, puis mahine arithmetique de Pasal...). La notion d'ordinateur, outil universel
d'aide aux aluls dans la mesure ou, par denition, un ordinateur est apable de aluler e
quiest alulableparn'importequeloutil,date de1936aveladenitionparAlanTuringde
sa elebremahine (en fait un modele, ar il s'agit d'une mahine imaginaire). La realisation
eetived'ordinateursattendraenorequelquesannees,puisque lepremierdatede1949 1
.
Quelquesanneesapres,ilfutenvisagedepartagerl'uniteentraled'unordinateurentreplu-
sieurs sites, soit pour des raisons de bonne eonomie, soit pour des raisons intrinsequement
liees a l'appliation envisagee (projet SAGE [pour Semi-Automati Ground Environment, en-
vironnement au sol semi-automatique℄ de surveillane radar des
Etats-Unis). L'alliane des
teleommuniationset del'informatiqueetaitnee.
Au milieudesannees1960vintl'ideederelierlesunitesentraleselles-m^emes.
1.Cequel'onvendsouslenomd'ordinateurn'estpasreellementunemahineuniverselle.Mathematiquement
1.1.2 Notion de reseau informatique
Un reseau informatiques 2
(omputer network en anglais) est un ensemble d'ordinateurs
et deperipheriques(imprimantes,traeurs,sanners,et.) onnetesensembleparlebiaisd'un
support physique (enanglais medium). La onnexion peut ^etre direte (par ^able oaxial,par
exemple) ouindirete(parmodem).
1.1.3 Materiel et logiiel pour reseau
Commepourlessystemesinformatiques 3
,ladistintionentremateriel etlogiiel estimpor-
tante dansleasdesreseaux.
L'objetdee livreonernelelogiielet nonlemateriel.Lematerielreseaunousappara^tra
ommeunebo^tenoirefontionnantparfaitement.Nousnedironsdumaterielqueequi enest
stritementneessairepouromprendrelelogiielassoie.
1.1.4 Protooles
1.1.4.1 Notionde protoole
Dans un reseau informatique, lorsqu'un ordinateur envoie des informations a un autre, les
materiels et les logiiels sont en general dierents. On adon besoin d'un ensemble de regles
pouroordonnerl'ehangedeesinformations.Celles-iformentunprotoole,nomdonnepar
TomMarillen1966([HL{96℄,p.83).
Lemotprovientevidemmentdulangagediplomatique.Lesdiplomatessuiventdesregleslors
desdisussionsentrenations,appeleesunprotoole.Leprotoolediplomatiqueindiquequ'ilne
fautpasinsulter sesh^otes etqu'ilfautt^aherderespeterlesoutumesloales.Laplupartdes
ambassadeset desonsulats abritentdes speialistesduprotoole, dontler^ole est des'assurer
quetout sepasse harmonieusementlorsdesrenontres. Leprotooleest unensemble deregles
quidoivent^etresuiviespour\jouerlejeu",pourreprendreuneexpressiondiplomatique.
1.1.4.2 Suitede protooles
Lesprotoolesontevolue.Deproessustressimples(\je t'envoieunaratere,tu meleren-
voies, et je m'assureque les deux orrespondent")au depart, ils sont devenus des meanismes
omplexes qui prennenten ompte tous les problemeset onditionsde transfert possibles. Un
protooleuniquequiouvriraittouslesaspetsdutransfertseraitdetailletropimportante,diÆ-
iled'emploiettropspeialise.Plusieursprotoolesontdonetedeveloppes,hauns'aquittant
d'unet^ahespeique.
On appellesuite de protoolesunensemble deprotoolesoherentsqui ouvre pratique-
menttouslesbesoinsdeommuniation.
1.1.5 Systemes proprietaires et systemes ouverts
Audebut,iln'yavaitqu'unreseau(ARPANET)avesesprotoolesassoies.Devantlesues
deelui-i,desproduits ommeriauxfurentdeveloppes,pluspartiulierementpourlesreseaux
2.Desormaisnousneparleronsquedereseauaulieudereseau informatique.L'histoiredespremiersreseaux
deteleommuniation(premiersessais,telegrapheoptique,telegrapheeletrique,telegraphied'images,telephone,
transmissionradioetsystemesdeommutation)estonteedans[HUU{03 ℄.
3.Onappellesysteme informatiqueunpostedetravail informatiqueomplet:ordinateur, biens^ur,mais
aussi peripheriques(tels que imprimante ou sanner) et logiiels. De nos jours, les outils reseau font partie
loauxetetendus.Chaqueonstruteuravaitsalignedeproduits,materielsommelogiiels.On
parledesystemeproprietaire.Lessoures,etm^emelesspeiationsompletes,dessystemes
proprietairessontrarementdiusees. Cei presente une diÆultepourla oneptiondes inter-
reseaux.
Paropposition,unsystemeouvertestunsystemedontaumoinslesspeiationsompletes
sontdiusees,eventuellementlessouresdeslogiiels.
Lemouvementdessystemesouvertsn'estpasneaproposdesreseaux,m^emesi'estlaqu'il
a onnu son plus grand sues puisqu'il n'existe plus de systeme proprietaire, mais a propos
des systemes d'exploitation. Jusqu'aux annees 1980, haque onstruteur de materiel avait sa
lignedeproduits,etonetaitdansunetreslargemesuredependantdeeonstruteurpourtout
e qui onernaitlelogiiel et le materiel.Certainsonstruteursprotaient deette situation
pourpratiquer destarifsprohibitifsoupourimposerertainesongurationsaleurslients.Le
ressentimentdeslientspritunetelleampleurqueesderniersnirentparimposerleurssouhaits.
IBMommenapardiuserleodeduBIOSdesesmiro-ordinateurs.DEC(DigitalEquipment
Corporation)passad'unsystemed'exploitationproprietaire,VMS,sursesmini-ordinateursaun
systemed'exploitationouvertdetypeUnix.Seslientsluienfurentgreetl'entreprisevenditplus
de mahines. Mirosoft essaiede faire passer satehnologie .NET ommeun standardECMA
(European ComputerManufaturer Assoiation), sanstotalementyreussirpourl'instant(seule
laspeiationdulangageC#estdenieparunstandardECMApourl'instant,debut2005).
1.2 Reseau et ommutation
Leselementsd'un reseaude teleommuniationdoivent^etrereliesentreeux et eisur une
distanequelquefoistreseloignee.Commentrealiserei?
1.2.1 Notion de ommutation
En1876,peudetempsapresqu'AlexanderGrahamBelleutdeposesonbrevetd'inventiondu
telephone,il yeutunevagueenormededemandes. Audebut,lestelephonesetaientvenduspar
paireetilappartenaitaulientdelesrelieral'aided'unleletrique(lavoieduretoursefaisait
parlaterre).Siunepersonnesouhaitaitonverseravenautresinterlouteurs,illuifallait^etre
raordepar autantde ls aux n domiilesde es derniers. Onaboutita e qu'on appelleun
grapheomplet,representealagure1.1.
Fig.1.1{Grapheomplet
En l'espae d'un an les villes se trouverent prises dans un enhev^etrement sauvage de ls
passantpar-dessuslestoits etlesarbres.Ildevinttresvitelair qu'unmodeled'interonnexion
BellreagitaettesituationenfondantlasoieteBellTelephoneCompany,quirealanotion
de entral telephoniqueet mit le premier entral en plae aNew Heaven (Connetiut) en
1878. La soieteamena un leletriqueahaquedomiile oubureau d'abonne. Poureetuer
unappel,lelientdevaittournerunemanivellequiproduisaitunesonnerieauniveauduentral
telephonique, attirant l'attention d'une operatrie. Celle-i se hargeait ensuite de raorder
manuellement la ligne de l'appelant a elle du orrespondant appele au moyen d'un ^able de
jontionsuruntableaude ommutation.Ce modele entraliseestillustrealagure1.2.
Fig.1.2{Reseauaveommutateurentral
Tres rapidement d'autresentraux furent rees un peu partout. Et omme les lients sou-
haitaient pouvoir appeler des orrespondantsdans d'autresvilles, il a fallu interonneter es
entraux.Ce fut, laenore,d'abordungraphe omplet,puisdesentrauxde seond niveauet
ainsidesuite.Ilyeutjusqu'ainqniveauxdeentraux.
1.2.2 Types de ommutation
Les divers reseaux de teleommuniation ont onduit a plusieurs types de ommutation,
ommenousallonslevoir.
1.2.2.1 Commutationde iruits
Si d'un poste telephonique de New-York vous demandez le22 a Asnieres a une operatrie,
elle-iontateleentralinterurbain,quivaontaterleentralreliantle^abletransatlantique
aunentralenEurope,quiontateunentralenFrane,quiontateunentraldanslaregion
parisienne,quiontatelenumerodemande.Parunjeudehesdanshaundeessixentraux,
unheminphysiqueest etablide l'appelantversl'appele. Un telheminest appeleuniruit
dans le jargon de latelephonie (m^eme s'il ne s'agit pas d'un iruitau sens de la theorie des
graphes).Onparleraplustarddeommutationdeiruits(iruit swithingenanglais)pour
etypedeommutationlorsqued'autrestypesdeommutationappara^tront.Unelignephysique
estdedieeaetteommuniationduranttout letempsdelaommuniation,d'oulepaiementa
ladureedelaommuniation.
Au debutdel'eredelatelephonie,laonnexionphysiqueetaitetabliemanuellementomme
nousvenonsdelerappeler.Onparleraplustarddeommutationmanuelle.Peuapresl'inven-
tion dutelephone, unequipement automatiquede ommutation eletro-meanique fut invente
par AlmonStrowger et fututilisependantpresde ent ans. Au debut des annees 1970, il fut
remplaeparunequipementeletronique,maisleprinipeestlem^eme.
Legrosavantagedelaommuniationdeiruitsestqu'uneligneestentierementdedieeala
ommuniation.Ellepresenteependantegalementtroisgrosinonvenients:
negligeable.Ce qui est aeptable pour une ommuniation telephonique le serait moins
pourunreseauinformatique.
{ Il peut arriverque toutes lesliaisonsd'un entral a l'autre soient oupees. Onvousde-
mande alorsderenouvelervotreappelulterieurement.
{ Le debit n'est pas utilise de faon optimale. Lors des silenes dans la ommuniation
telephonique,quipeuventparfois^etrelongslorsqu'undesorrespondantsreherhequelque
hose,leiruitest toujoursdedieaetteommuniation.
1.2.2.2 Commutationde messages
Uneautretehniquedeommutationestlaommutationdemessages(messageswithing
enanglais).Lorsqu'elleestmiseenuvre,auunheminphysiquen'estetabliauprealableentre
l'emetteuretlereepteur.Lorsquel'emetteurenvoieunblodedonnees,elui-ieststokedans
lepremierentraldeommutation(appelerouteurdanse as),ontr^olepourverierqu'ilne
omporte pasd'erreurs puistransmis au routeur suivant.On parlede transmission dieree
(store-and-forwardenanglais).
Cettetehniquedeommutationfutmiseenuvre danslespremierssystemeseletromea-
niquesdeteleommuniationspourtransmettrelestelegrammes.
L'enormeavantageest quele debit est utilise aumieux et quele temps d'etablissementdu
iruitn'existe plus.Cependantlesstokagessuessifsentra^nentdes delaisqui emp^eheraient
l'utilisationd'unetelleommutationpourlavoix,parexemple.
1.2.2.3 Commutationpar paquets
Danslaommutationdemessages,latailledesblosn'estpaslimitee.Celaapouronsequene
quelesrouteursdoiventdisposerdedisquespourplaerenmemoiretamponleslongsblos.Un
seulblopeutmonopoliserune ligneentredeuxrouteurs pendantdesminutes.Cettetehnique
deommutationestdoninadapteeautrainteratif.Deplus,siungrosmessageaetealtere,
ilesttotalementperduouilfautlerenvoyerintegralement.C'estpourquoilaommutationpar
paquets(paket swithingenanglais)aetedeveloppee.
La ommutation de paquets est analoguea laommutation de messagesmais les messages
sontdeoupesenpaquetsd'unetaillemaximale,equievitelesdisquestamponetlaongestion
durantplusieursminutesdueaungrosmessage.
Les paquets empruntent eventuellement des hemins dierents, e qui peut entra^ner des
arriveesdesordonnees.Onnumerotedonlespaquets.
Lepremierpaquetd'unmessagequienomporteplusieurspeut^etretransmisparunrouteur
avantqueledeuxiemepaquet nesoit ompletementarrive,equi reduit ledelaiet ameliorele
debit.
Laommutationdepaquetsoreunemeilleuretoleraneauxpannesquelaommutationde
iruits.Siunrouteurdevientindisponible,lespaquetspeuventleontourneretpoursuivreleur
hemin.
1.2.2.4 Casdes reseauxinformatiques
Dans leas desreseaux informatique, onutilise leplussouventla ommutation de paquets
('est leaspourInternet) et plusrarementlaommutationde iruits('estle asde ATM),
maisjamaislaommutation demessages.
Onappelleroutagel'algorithmeutiliseparunrouteurpourdeterminerl'ordinateuroulerou-
teurauquelilfautenvoyerlepaquetqu'ilvientdereevoirpourqueelui-iarriveadestination
1.2.3 Reseaux hierarhises et reseaux mailles
Les reseaux informatiques se distinguent des autres reseaux de teleommuniationdans la
mesure ou ils sont mailles et non hierarhises. L'utilisation de reseaux distribues au lieu des
reseauxhierarhisesutilisesentelephoniefutpr^oneeparPaulBaranavantdedevenirrealitelors
delarealisationdesreseauxinformatiques.
Paul Baran s'interessades 1960 ala apaitede survie des systemes de ommuniationen
as d'attaque nuleaire.
A l'epoque, les reseaux de ommuniation a longue distane etaient
extremementvulnerablesethorsd'etatdesupporteruneattaquenuleaire.Pourtantlepouvoir
qu'avait le president des
Etats-Unis de ommander ou d'annuler l'envoi de missiles nuleaires
reposaitsuressystemesdeommuniationsvulnerables.Baranaetel'undespremiersaetablir,
aumoins de faon theorique, que leprobleme pouvait ^etre resolu.Iletait arriveal'idee qu'un
reseaudetransmissiondedonneespouvait^etrerenduplusrobusteetplusableenintroduisant
des niveaux de redondane eleves. Le meanisme de defense qui onsiste a diviser une vaste
struture,uniqueetvulnerable,endenombreusesparties,seretrouvedansmaintesappliations,
ommeleompartimentagedeseuritedesnavires.Theoriquement,iletaitpossibled'installerun
reseauavedenombreusesonnexionsredondantes.Maisilyavaitunerestritiontehnique:tous
lessignauxsurlereseautelephoniqueetaientanalogiques.Lepland'aheminementsurereseau
interdisaitd'utiliserplusdeinqliaisonslesunesalasuitedesautresaausedel'alterationdu
signal.Baranproposa donunagenementenreseau reparti (ditaussi distribue)ommele
montrelagure1.3[BAR{60,BAR{64℄.
Fig.1.3 {Reseaudistribue
Neanmoins une question demeurait, nous faisant passer du qualitatif au quantitatif: quel
degrederedondanefallait-il introduire danslesonnexions entrenuds voisinspourgarantir
lapersistanedureseau?Baraneetuade nombreusessimulations.Ilenonlutqu'ilsuÆrait
d'unfaibleniveauderedondane:quehaquenudsoitonneteatroisouquatreautrespermet
1.3 Modeles en ouhes
Lapartielogiielledesreseauxomprendungrandnombredefontions,haunerelevantd'un
protoole. Un ensemble de protoolesoherentouvrantl'ensembledes besoinspourunreseau
s'appelleune suitedeprotooles. L'ensembled'unetelle suites'appelleunmodele reseauou
arhiteture reseau.
1.3.1
Etude generale
1.3.1.1 Notion
Imaginezquevousdeviezerireunprogrammequifournissedesfontionsdereseauatoutes
lesmahinesdevotrereseauloal.L'eritured'unlogiieluniquesehargeantdetouteslest^ahes
neessaires ala ommuniationentre plusieurs ordinateurs serait unvrai auhemar. De plus,
dansl'hypotheseouvousarriveriezagerertouslesmaterielspresentssurlereseau,leprogramme
resultantseraitbientropgrandpour^etremaintenuoum^emeexeute.
Ilestplusraisonnabledediviserhaquedomained'operationsengroupesdenaturesprohes.
Lesgroupessontassezevidentsadiserner.Ungroupetraitedutransportdesdonnees,unautre
de l'empaquetage des messages, un autre des appliations utilisateur, et. Chaque groupe de
t^ahesprohesest appeleuneouhe.Onobtientainsiunmodeleen ouhes.
Les ouhes d'une arhiteture reseau sont ensees ^etre des entites autonomes et indepen-
dantes.Une ouhene peutevidemmentpaseetuer une t^aheobservablesansinteragirave
d'autresouhesmais,dupointdevuedelaprogrammation,ellessontindependantes. Ellesne
doiventinteragirlesunesavelesautresquegr^aealeurinterfaeproprementdenie.
1.3.1.2 Pile reseau
Dans unmodele enouhes,lesouhes sontnumeroteesde 1aN, allantduniveauleplus
prohe dumateriel(onernantle port serie,puis laartereseau)au niveaule plusprohede
l'appliationdel'utilisateur(ourriereletronique,transfertdehier...). Plusonestprohedu
materiel,pluslenumerodeouheestbas.
Chaqueprotooleenapsulelesdonneesdansunensembleplusgrandomprenantengeneral
un en-t^ete et quelquefois un suÆxe. Supposons qu'il n'y ait pas de suÆxe. Les donnees de
l'utilisateursontenapsuleesavel'en-t^eteduniveauN:
en-t^eteN donnees
Cela devient des donnees de niveauN qui sont enapsulees ave l'en-t^ete de niveau N-1 pour
obtenirdesdonneesdeniveauN-1:
en-t^eteN-1 en-t^eteN donnees
etainsidesuitejusqu'auxdonneesenapsuleesdeniveau1:
en-t^ete1 . .. en-t^eteN-1 en-t^eteN donnees
L'inter^etdesmodelesenouheest,qu'ahaqueniveau,iln'estpasbesoindepasserenrevue
l'ensembledesen-t^etesmaisuniquementeluiduniveauorrespondant.
On parleaussi depile reseau,stak en anglais,ar onpeutonsidererquelesen-t^etesdes
niveaux N a 1sont empilesau-dessus desdonnees de base lorsde l'expedition et qu'elles sont
depileeslorsdelareeption,ommelemontrelagure1.3([K-R{01℄, p.52).
Fig.1.4{Pilereseau
1.3.1.3 Inter^ets et realisations
Les modelesen ouhespresententbeauoup d'inter^et.Lasuite deprotoolesest beauoup
plussimpleaonevoir:leprotooled'unniveaudonnepeut^etreonuparuneequipedierente
du protoole d'un autre niveau.Il enest dem^eme dela suite delogiiels mettant en plae e
modele.De plus, lesmateriels atifsdureseaun'ont aonsidererque lesniveaux les plusbas,
parexemple:
{ unrepeteurneonsidereraquelesdonneesbrutes,sansm^emeentrerdansledetail,autre-
mentditneonerneraquelaouhephysqiue;
{ unrouteurneonsidereraquelesen-t^etesdesouheslesplusbassespourobtenirl'adresse
dedestination.
Deuxmodelesfurentdeveloppespratiquementenparallele:lemodeleOSI(parl'organisme
destandardisationinternationalISO)etlasuiteTCP/IP(d'apreslenomdedeuxdesprotooles
delasuite).Retrospetivementons'aperoitqu'unmodeleestlargementdominant,pournepas
direexlusif:lasuiteTCP/IP.Ilest quandm^emeinteressantdedirequelquesmotsdumodele
OSI,m^emes'il est desormais pratiquement abandonne,ar lesdeux ouheslesplusbasses ne
1.3.2 Modele OSI
L'ISO(International StandardisationOrganisation),l'organisationdestandardisationlaplus
prioritairedans lemondeentier,fondeeen 1947,aproposeunmodeleen septouhesen1984
[ISO7498-1℄,appelemodeleOSI, enfaitOSI{RMpourOpen SystemsInteronnetionRefe-
reneModel (modele dereferened'interonnetiondessystemesouverts):
7 Appliation
6 Signiation Couhessuperieures
5 Session
4 Transport
3 Reseau Couhesinferieures
2 Liaisondesdonnees
1 Physique
Le modele OSI ne derit auune implementation reelle d'un systeme partiulier, mais se
ontente dedenirlest^ahesdesdierentes ouhes.
Lesouhesd'appliation,depresentationetdesessionsonttouteslestroisorienteesapplia-
tion,'est-a-direqu'ellespresententl'interfaede l'appliational'utilisateur.Ces trois ouhes
sonttotalementindependantesdesouhessitueessouselles,ellesneonnaissentriendelafaon
dontlesdonneesparviennental'appliation.Ellessontappeleesouhes superieures.
Lesquatreouhes inferieuressehargentdelatransmissiondesdonnees,engerantl'em-
paquetage,leroutage,laveriationetlatransmissiondehaqueensemblededonnees.Ellesne
fontauunediereneentrelesdiversesappliations.
Detaillonsmaintenantler^oledehaunedesseptouhes:
{ Laouhephysique(physiallayerenanglais)ontr^olelatransmissiondesdierentsbits
via unsupportphysique(mediaenanglais). C'estdans etteouhequ'on s'oupedela
faon dont lessuites de bitssontonverties (sans struturation)en signauxphysiques et
transmisesviaunsupportphysique(^abledeuivre,bredeverre,radio,et.).Laouhe
physiquedenitlesproeduresdeodagephysique(telleoutelledierenedepotentielpar
exemple),lageometriedesonneteursenhablesetlestypesdessupports speiaux.Les
protoolesdeetteouhedependentdusupport physique.
{ La ouhe de liaisondes donnees(data link layerenanglais) esthargeede latrans-
missionorretedesdonneesd'unpointdureseauaunautrereliediretementaluiviaun
supportphysique.Elles'oupede laorretiondeserreurs survenantlorsdeette trans-
mission (dierentes des erreurs dans lesdonnees elles-m^emes, traitees dans laouhe de
transport).Elledoitteniromptedesinterferenesdesignal(frequentes,pouvantprovenir
deplusieurssoures,parmilesquelleslesrayonsosmiquesetlesinterferenesmagnetiques
provenantd'autresequipements).
{ La ouhe reseau(networklayer enanglais)est hargeedelatransmissiondesdonnees
d'un point dureseau aunautre, queelui-i soit reliediretementaluiou non. Ils'agit
d'aborddedeterminerunhemin(ouroute,ommeonpreferel'appelerdanslevoabulaire
des reseaux)del'expediteurversledestinataireenutilisantdes mahinesintermediaires:
on parle du routage physique des donnees. Elle est hargee egalement de l'adaptation
des unites de donnees a la taille admissible de la ouhe liaison existante: on parle de
fragmentation.
{ La ouhe transport (transport layer en anglais) se harge du multiplexage (lors de
l'envoi)etdudemultiplexage(lorsdelareeption),'est-a-dirededistribuerauxdifferen-
Ilyamultiplexagelorsqueplusieursommuniationstransitentparunsupportphy-
sique unique.Le demultiplexage est l'inverse dumultiplexage. Le multiplexage est in-
dispensablepourprendreenhargedenombreusesonnexionssimultanement,tout enne
disposantquederessoureslimitees.Un exemplelassiqueestunbureaudistantompre-
nantvingtterminaux.Chaque terminalpourrait^etreonneteau bureauprinipalparle
biaisd'unelignetelephoniquedediee.Aulieud'utiliservingtlignes,onpeutaussis'arranger
pourmultiplexerlesonnexionsanden'utiliserquetroisouquatrelignestelephoniques.
Elle peut, de plus, assurer d'autres t^ahes. Elle peut etablir, maintenir et termi-
ner les ommuniations entre deux mahines (dans le as des ommuniations dites
onnetees). Elle peut seharged'assurer que les donnees envoyees orrespondentaux
donnees reues, tout aumoins modulo ertainspointsde omparaisonet,si elles neor-
respondentpas,demanderaequelesdonneessoientenvoyeesanouveau.Ellepeutgerer
l'envoidesdonnees,endeterminantl'ordreet laprioritedel'envoi.
{ Laouhe desession(session layerenanglais)ontr^olel'ehangestruturededialogues
vialesliaisonsdeommuniation.Ilest,parexemple,possibledeontr^olerauoursd'une
sessionsiletransfertdesdonneespeutavoirlieusimultanementdanslesdeuxsensousiun
seulpartenairealafoisdisposedudroitd'emission.Dansedernieras,laouhesession
gereledroitd'emission.Elleopereavelaouhed'appliationpourfournirdesensembles
de donnees simples,appelespoints de synhronisation,qui permettent al'appliation
deonna^trel'etatdeprogressiondelatransmissionetdelareeptiondesdonnees.Ils'agit
dond'uneouhedetemporisationet deontr^oledesux.
{ La ouhe de presentation (presentation layeren anglais)ontr^olelapresentationdes
donnees atransmettre sous une forme ne dependant pasdes systemes. Elle onvertit les
donnees de l'appliation en un format ommun, souvent appele la representation a-
nonique, par exemplepoureviter leproblemedu ode (Uniode, ASCII ou EBDIC) de
representationdesarateres,leproblemeduformat(petit-boutienougrand-boutien)des
entiersoulafaond'indiquerlepassagealaligne.
Leseulproblemequirelevedeette ouhequenousaborderonsseraeluionernant
leformat(petit-boutienougrand-boutien).
{ La ouhe d'appliation(appliation layer enanglais) est l'interfaeutilisateur versle
systeme OSI.C'est laque residentles appliations telles quele ourriereletronique.La
t^ahe de la ouhe d'appliation est d'aÆher les informations reues et d'envoyer aux
ouhesinferieureslesdonneesfourniesparl'utilisateur.
1.3.3 Suite TCP/IP
L'arhitetureTCP/IPestsimilaireaumodeleOSImaisnemetenjeuquetroisouhes,ar
elleombinelesouhessuperieuresOSI enune seuleet nes'oupepasdesouhesen-dessous
delaouhereseau,lesprotoolesdesesouhesetantpropresaureseausous-jaent.Elledate
de1974maiselleest denie,apresoupen1989,danslasetion1.1.3de[RFC1122℄:
Appliation
Transport
Internet
{ Laouhe appliation(appliation layerenanglais)regroupetouteslest^ahesorientees
appliation,'est-a-direellesdesouhes5a7dumodele OSI.
{ Laouhe transport(transportlayerenanglais),ommedanslemodeleOSI,permetle
{ LaouheInternet(Internetlayerenanglais)estprinipalementhargeedederouterles
paquets IPdel'expediteuraudestinataireatraverslereseau.Elleorrespondalaouhe
reseaudumodeleOSI.
1.3.4 Le modele des sokets
Les modeles i-dessus datentde 1984 et 1989. Tout seomplique enorepar le fait queles
sokets,mises enplae en1983,ommenous leverronsplusloin,donnent lieuaunmodeledu
sous-systemereseaudessystemesd'exploitation entrois ouhesave unvoabulaire dierent,
maisquel'onpeutrelier auxmodelespreedents:
{ Laouhephysiquen'interferepasdutout avelesous-systemereseaudessystemesd'ex-
ploitation, dononn'enparlepas.
{ Les protoolesde laouheliaison sonttraitesdans lapartieeletronique(leontr^oleur)
desartesreseau.Iln'y adonpasbesoinnonplusd'enparlerauniveaudusous-systeme
reseau.
{ La ouhe reseau s'appelle famille d'adresses, la mise en plae des sokets retenant
essentiellementlastruturedesadresses.
{ Laouhetransports'appelletype de ommuniation.
{ Unetroisiemeouhe,appeleeprotoole,avaiteteprevuesilesdeuxouhespreedentes
n'etaientpassuÆsantes.Onla retrouveommeparametre(presque toujoursegal azero)
maisnesert pasagrandhose.
{ Lesouhessuperieuresonernentlesappliationset nonlesous-systemereseau,donon
nes'enoupepas.
1.3.5 Modele hybride
L'Internet et laplupart des reseaux intranets d'entreprise ont reours aune arhiteture
hybride TCP/IP{OSIqui s'appuie sur les ouhesbasses de l'arhiteture OSI pour speier
lesinfrastruturesdereseaudetypeLANouautres:
Appliation
Transport
Reseau
Liaison
Physique
Nousverronsdeplusque laouhe liaisondedonneesest divisee endeux sous-ouhesdansle
standardIEEE.
1.3.6 Cas de Linux
Linuxserefereaumodelehybridemaislamiseenplaeonduitadeux ommentaires:
{ Linuxnes'oupepasdutoutdelaouhephysiquepuisque auunelementdeprogram-
mationn'intervientae niveau.Lamiseen uvredes protoolesde laouhe liaisonest
presqueentierementtraiteedanslesartesreseaudenosjours;Linuxn'adonpasas'en
preoupersi e n'estsous laforme d'une interfaeave elle-i (il faut bien ommener
{ Linuxnerespetepasentierementlaphilosophiedesouhesaveuneinterfaebiendenie.
Nousverrons,parexemple,quel'onpassediretemntdelaouheappliationalaouhe
reseaudansertainsas(plusexatementlorsdel'envoidedonneesUDP).
1.3.7 Les en-t^etes de protoole
Une unite d'information est omposee de donnees et d'informations de ontr^ole de ette
unite d'information. Ces informations de ontr^ole sont generalement assemblees dans un blo
venantavantlesdonnees, e qui estle aspourtouslesprotooles deTCP/IP.Onappellees
informationsunen-t^ete de protoole.
Lorsque l'unite d'informationest passee ala ouheinferieure, elle-iajouteson en-t^ete a
l'united'informationpassee,onsidereeommelesdonneesde etteouheinferieure.De ette
maniere,lorsqu'une unite d'informationest partie delaouhed'appliation, aumoment ou il
atteintlaouhephysique,elleontientquatreen-t^etesdeprotoole(septavelemodele OSI).
Pourmieuxvisualisereproessus,onpeutserepresenterlesdierentesouhesd'unoignon.
L'interieurestonstitueparlesdonneesaenvoyer.
Ahaquefoisquel'united'informationpasse
a travers une des ouhes, une ouhe d'oignon est ajoutee. Lorsqu'elle aparouru toutes les
ouhes,plusieursen-t^etes deprotooleentourentlesdonnees initiales.Lorsquel'united'infor-
mation est envoyee a traverstoutes les ouhes en partant du bas (sur une autre mahine en
general),haqueouhepelel'en-t^etedeprotooleluiorrespondant.Lorsquelaouhed'appli-
ationdedestinationest atteinte,ilneresteplusquelesdonneesinitiales.
OSI dispose d'une desription formelle pour tout e proessus. La ouhe en ours porte
le numero N. Les donnees N-utilisateur a transferer doivent ^etre preedees d'informations de
ontr^ole de N-protoole (N-PCI pour Protool Control Information) pour former une unite
de donnees de N-protoole (N-PDU pour Protool Data Unit). Les N-PDU sont passesspar
l'intermediaire d'un point d'aes de N-servie (N-SAP pour Servie Aess Point) sous la
forme d'un ensemble de parametres de servie omprenant une unitede donnees de N-servie
(N-SDUpourServieDataUnit).LesparametresdeservieomprenantlesN-SDUsontappeles
lesdonneesd'utilisateurdeN-servie(N-SUDpourServieUserData),misdevantle(N-1)-PCI
pourformerunautre(N-1)-PDU.
1.4 Historique
Une bonne introdution a l'histoiredes reseaux est [HL{96℄. Elle aeteerite pardes jour-
nalistes qui ont pu, d'une part, onsulter les douments de litterature grise tres diÆilement
aessibleset,d'autrepart,interviewerlespremiersateursdeette histoire.Elle ontientune
tresgrandedoumentation dontleseul reprohequel'on puisse faireest lanonvisibilitede la
struturationparlemanquedetitreset sous-titressuÆsammentexpliites.
1.4.1 Naissane des ordinateurs
Il n'existe pas, a ma onnaissane, d'etude abordable sur l'origine de la omptabilite au
Neolithique,nisurl'originedualul.
Lanotiondemahinedealuluniverseletl'apparitiondespremiersordinateurssontontes,
aunniveaudehautevulgarisationavedespointeurssurlalitteratureprimaire,dans[DAV{00℄,
1.4.2 Terminaux distants
Nous avonsvu qu'unepremierealliane entre informatiqueet teleommuniationest l'utili-
sationdeterminauxdistantsdel'uniteentrale,parfoissituesaplusieursmilliersdekilometres.
Le premier problemearesoudrepour ela est elui des utilisateursmultiples (time-sharing
en anglais). Cei est unproblemedu systemed'exploitation. En1961 est developpe le CTSS
(Compatible Time Sharing System) auMIT (Massahussets Institute of Tehnology), premiere
realisationimportante maisenoreexperimentaledansedomaine.
Ceionduira,en1964,ungroupedeherheursduMIT,desBellLaboratoriesetdeGeneral
Eletrias'assoierpourinitierledeveloppementd'unsystemed'exploitationmulti-utilisateur.
IlsbaptiserentleurambitieuxprojetMULTICS(MultiplexedInformationandComputingSys-
tem).Ce projetn'apasvraimentaboutietseraabandonneen1968.Ilest ependantal'origine
deUnix,quidatede1971.
Du point de vue materiel, dans les premiersessais d'utilisation des terminaux distants, on
utilisaitdeslignestelex.
En1974,IBMlaneleSNA(SystemsNetworkArhiteture)quinormaliselaommuniation
entreunordinateuret lesterminauxdistants.VTAM (Virtual Teleommuniation AessMe-
thod) tourne surl'ordinateur(un IBM370) alorsqueNCP(Network Control Program)tourne
surleontr^oleurdeommuniationpouretablir etsurveillerenpermaneneletra.
1.4.3 Premiere mise en reseau: 1965
Lapremieremiseenreseau,entredeuxordinateurs(etnonuneuniteentraleetunterminal),
eutlieuen1965.LepsyhologueTomMarilllanaetteannee-launepetitesoietedesystemes
en tempspartage.Maisson prinipal investisseur ayantfaitdefautaladerniereminute, il dut
herher un ontrat de reherhe et developpement. Il proposa don a l'ARPA de mener une
experiene demise en reseau, en joignant l'ordinateurTX-2 duLinoln Laboratoryet le SDC
Q-32situeaSantaMonia.La soietedeMarilletaitsipetite quel'ARPA luireommandade
proederasonexperiene sousl'egide duLinoln Laboratory. L'idee plut auxresponsablesdu
Linolnet ilshargerentLarryRobertsdesurveillerleprojet.
La liaisonentre les deux ordinateursetaitrealisee gr^ae aun serviespeialde la Western
Union:quatrelsenduplexintegral.Marillbranhaitsurette liaisonuntypedemodemrudi-
mentaire,operanta2000bitsparseonde,qu'ilappelaitunomposeurautomatique(automati
dialer). Marill etablit une proedure pour grouper les arateres en messages, les envoyer et
verierqu'ilsarrivent.Si auunausedereeptionnesuivait,lemessageetaittransmisanou-
veau.Ilappela\protoole"demessagel'ensembledesproedurespourfaireirulerl'information
danslesdeuxsens.Endepitdeleurseorts,lorsqueMarilletRobertsonneterenteetivement
lesdeuxmahines, leresultatfutmitige:letempsdereponseetaitmediore(voir[HL{96℄,pp.
82{83).
M^emesi le resultatn'est pasvraimentelui esompte,il s'agit bien de lapremieremise en
reseau:lesordinateursontdessystemesd'exploitationdierentset onutilisedesprotooles.
1.4.4 Reseaux de ommuniation
Denosjours,\reseau"sansadjetifdesignetoujoursunreseauinformatique.Lereseauestun
oneptgeneraltresutilisedepuislereseaudenosonnaissanespersonnellesjusqu'auxreseaux
deommuniationetdeteleommuniation.
LesreseauxdeommuniationoherentsommenentavelesRomainspourlesroutes,revus
auxdix-neuviemesieleavelereseauderoutesnationales(departementalesetviinales)etelui
Les reseaux de teleommuniation ommenent ave les feux dans l'Antiquite, les signaux
de fumee des indiens d'Amerique, les relais de poste au debut des Temps modernes. Il prit
vraimentsonessoraveletelegrapheoptiquedeChappesousleRevolutionpuisaveletelegraphe
eletrique qui le detronera dans laseonde moitiedu dix-neuviemesiele. C'est aussi le debut
despremiers^ablestransatlantiques.Lereseautelephoniquesuivraavelanaissanedesgrandes
soietestelles que AT&T aux
Etats-Uniset les PTTdependantdiretement dugouvernement
dansdenombreuxpaysdontlaFrane.
1.4.5 Commutation par paquets
L'utilisation de laommutation par paquets fut pronee independanmment par PaulBaran
aux
Etats-Uniset DonaldDaviesaLondes.
Nousavonsvui-dessusommentPaulBaranenestvenueal'ideedel'utilisationdesreseaux
mailles.LaseondeontributiondeBaranauxreseauxaeteplusrevolutionnaireenore:dislo-
queregalementles messagespour obtenirla ommutation par paquets,qu'il appelait \blos-
messages". Dans le modele de Baran, haque nudde ommuniation ontenait une table de
routagequiseomportaitommeunesortedeoordinateurouderegulateur.Ilesperaitpersua-
derAT&T des avantages de sonprojet maise ne futpasleas. En1965 ependant, inqans
apress'^etrelanedansleprojet,Baranobtintl'appuiompletdelaRANDquivoul^utonstruire
un reseaude ommutation distribue.Malheureusement AT&T, qui disposait du monopole des
teleommuniations,s'yopposa.Baransetournaalorsversd'autresprojets(voir[HL{96℄,pp.72{
78).
A Londres, a l'automne 1965, juste apresque Baran eut laissetomber son projet, Donald
Watts Davies, quarante et unans, physiien au British National Physial Laboratory (NPL),
erivait une premierenote exposantsesidees apropos d'un nouveaureseau d'ordinateursfort
prohedeeluideBaran.LeprintempssuivantildonnaitaLondresuneonferenepubliqueou
il derivait l'envoide petits blosde donnees {qu'il appelait \paquets"{ atraversunreseau
numeriquesurleprinipedustokageetretransmission.En1966,apresl'annonedesontravail
preurseursurlaommutationparpaquets,ilfutnommehefdeladivisioninformatiqueduNPL.
LesmotifsquiavaientonduitDaviesal'ideed'unreseaudeommutationparpaquetsn'avaient
rienavoiravelespreoupationsmilitairesquiavaientpousseBaran.Daviesvoulaitsimplement
reerunnouveaureseaupublideommuniation.Ilaprevulaneessitedema^triserladiversite
des materiels et des logiiels, autrement dit les dierenesseparant leslangages informatiques
oulessystemesd'exploitation desmahines.Contrairementalareationtresfra^hed'AT&T a
l'egardde Baran, lesteleommuniationsbritanniques ontepouse lesidees deDavies.Cela l'a
enourageaherherunnanementpourb^atir unreseauexperimental auNPL(voir[HL{96℄,
pp.78{81).
Latheoriedelaommutation parpaquets aeteegalementetudieeparLeonardKleinrok
en1959lorsqu'iletaitetudiantdetroisiemeyleauMIT([KLE{61℄,[KLE{64℄).Ileetuaun
travailtheoriqueimportant qui derivait une serie de modeles analytiques pourles reseauxde
ommuniation.
1.4.6 Le premier reseau: ARPANET en 1971
Le vendredi 4 otobre 1957, l'Union Sovietique lane le premier satellite artiiel, appele
Spoutnik. Les Ameriains onsiderent ela omme une menae. Le president Einsenhowerde-
mandele7janvier1958auCongreslesfondsneessairespourreerl'ARPA(AdvanedResearh
Projets Ageny). Diretement lieau president at au seretaire ala defense, et organisme de