You are on page 1of 68

Cours de rseaux Master 1 dinformatique Universit dAngers

Pascal Nicolas U.F.R. Sciences de lUniversit dAngers E-Mail : pascal.nicolas@univ-angers.fr Web : http://www.info.univ-angers.fr/pub/pn

(Dernire mise jour : dcembre 2005)

Table des matires


1 Historique et organisation dInternet 2 Architecture des protocoles TCP/IP. 1 4

3 Adressage. 7 3.1 Organisations de ladressage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Attribution dune adresse IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4 Nommage. 5 La couche de liens dinternet. 5.1 La liaison SLIP. . . . . . . . . 5.2 La liaison PPP. . . . . . . . . 5.3 Le rseau Ethernet. . . . . . . 5.4 Le rseau WIFI. . . . . . . . . 5.5 Les protocoles ARP et RARP. 11 15 15 16 18 22 23 25 25 27 29 29 31 34

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

6 Le protocole IP. 6.1 Le datagramme IP. . . . . . . . . . . . 6.2 La fragmentation des datagrammes IP. 6.3 Le routage IP. . . . . . . . . . . . . . . 6.3.1 Utiliser les tables de routage. . 6.3.2 tablir les tables de routage . . 6.4 La gestion des erreurs. . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

7 Les protocoles TCP et UDP. 36 7.1 Le protocole UDP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.2 Le protocole TCP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8 Les 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 applications. Protocole de dmarrage : BOOTP. . . . Systme de chiers en rseau : NFS. . . . Transfert de chier : TFTP et FTP. . . . Connexion distance : Telnet et Rlogin. Courrier lectronique . . . . . . . . . . . News : nntp . . . . . . . . . . . . . . . . World Wide Web : http.. . . . . . . . . . Le peer to peer . . . . . . . . . . . . . . 43 44 46 46 48 49 52 56 58 59 64

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

9 Rseau priv et accs linternet 10 Programmation dapplications rseaux

Historique et organisation dInternet

Depuis les annes 70 direntes techniques rendant possible linterconnexion de rseaux dirents (internetworking), en les faisant apparatre comme un unique environnement de communication homogne sont apparues. On dsigne ce systme dinterconnexion sous le nom dinternet, sachant que rseau Internet et Internet dsignent lensemble de ces internets dont le point commun est de fonctionner en suivant les protocoles TCP/IP (Transmission Control Protocol/Internet Protocol ). Les travaux de lARPA (Advanced Research Project Agency) dbutrent au milieu des annes 70 et avaient pour but de dvelopper un rseau commutation de paquets pour relier ses centres de recherches dans le but de partager des quipements informatiques et changer des donnes et du courrier. Le but tait de concevoir un rseau rsistant des attaques militaires. Il ne fallait donc pas quil comporte de points nvralgiques dont la destruction aurait entran larrt complet du rseau. Cest ainsi, que ds le dpart le rseau ARPANET fut conu sans nud particulier le dirigeant, et de telle sorte que si une voie de communication venait tre dtruite, alors le rseau soit capable dacheminer les informations par un autre chemin. Cest vers 1980 quest apparu le rseau Internet, tel quon le connat maintenant, lorsque lARPA commena faire voluer les ordinateurs de ses rseaux de recherche vers les nouveaux protocoles TCP/IP et quelle se mit subventionner luniversit de Berkeley pour quelle intgre TCP/IP son systme dexploitation Unix (BSD). Ainsi la quasi totalit des dpartements dinformatique des universits amricaines commencrent se doter de rseaux locaux qui en quelques annes seront interconnects entre eux sous limpulsion de la NSF (National Science Foundation). Mme si ds son origine Internet comprenait des socits prives, celles-ci taient plus ou moins lies la recherche et au dveloppement, alors qu lheure actuelle les activits commerciales sy sont considrablement multiplies, et ceci surtout depuis larrive du web en 1993.

Fig. 1 Les grandes dates dInternet.

La gure 1 (source http://www.zakon.org/robert/internet/timeline) donne un rsum 1

des grandes tapes de lvolution dInternet au niveau mondial et les gures 2 et 3 donnent une ide de lvolution de la taille de linternet.

Fig. 2 volution du nombre de machines connectes linternet. Pour ce qui est de la France, aprs des tentatives avortes de constitution dun rseau de la recherche, puis lapparition du rseau EARN (European Academic and Research Network ) bas sur des protocoles et des ordinateurs IBM, un dbut de rseau bti sur des ordinateurs Unix et TCP/IP apparu sous le nom de FNET. Cest la n des annes 80 que les campus universitaires squiprent massivement de rseaux Ethernet et crrent des rseaux rgionaux bass sur TCP/IP. Louverture lInternet mondial ( lpoque presque exclusivement nord-amricain) eut lieu en 1988 et ensuite la cration de Renater (Rseau National de Tlcommunications pour lEnseignement et la Recherche http://www.renater.fr) en 1994 sont les grandes dates de lvolution dInternet en France. Comme lensemble des protocoles TCP/IP nest pas issu dun constructeur unique, mais mane de la collaboration de milliers de personnes travers le monde, une structure de fonctionnement originale a t imagine ds le dbut. Les grandes structures de linternet sont aujourdhui les suivantes. LInternet Society (ISOC http://www.isoc.org) est une association de droit amricain vocation internationale cre en 1991. Cest un espace de dcision pour choisir les volutions techniques, conomiques et politiques qui regroupe 150 chapitres (chapters) dans 180 pays et 20 000 membres (personnes physiques). Le chapitre franais : ISOC France (http://www.isoc.fr) est une association loi 1901 cre en mars 1996. LISOC est structur en 4 parties : lIAB, lIESG, lIETF et lIRTF auxquelles viennent sajouter lICANN et le W3C. Les missions de lISOC telles que dnies sur son site web sont dassurer lessor, lvolution et lutilisation de linternet pour le bienfait de toutes et tous travers le monde. LISOC . . . 1. Facilite le dveloppement accessible (ouvert) de normes et de protocoles, ladministration et les structures techniques de linternet. 2. Soutient la formation dans les pays en dveloppement et o le besoin existe. 2

Fig. 3 volution du nombre de sites web.

3. Soutient le dveloppement professionnel et encourage les occasions de contacts avec les chefs de le de linternet. 4. Fournit des informations ables sur linternet. 5. Organise des forum de discussions sur des questions touchant lvolution, au dveloppement et lutilisation de linternet (aux plans technique, commercial , social etc. . .). 6. Dveloppe un environnement favorable la coopration internationale, la communaut et une culture qui rend possible lautogestion. 7. Sert de point focal pour les eorts communs de promotion de linternet en tant quoutil able pour tous les peuples du monde. 8. Donne la direction et permet la coordination des eorts sur les plans humanitaire et de lducation ainsi quau niveau social etc. . . LInternet Architecture Board (IAB http://www.iab.org) est un conseil de lISOC supervisant les travaux de lIETF et de lIRTF. Il contrle et ventuellement commente les protocoles et procdures utiliss pour linternet. Il veille au processus de cration des standards de linternet. Il dsigne le prsident de lIRTF et conrme celui de lIETF. Il est galement charg de ldition et de la gestion des RFC. Les Request For Comments (RFC http://www.ietf.org/rfc.html) sont des documents techniques dnissant les standards de lInternet. Ils sont tablis partir dInternet Drafts, comments et amends au sein dun groupe de travail de lIETF. Lapproche est pragmatique, loppos des organismes de standardisations internationaux du type ANSI ou ISO. Le site http://abcdrfc.free.fr propose des traductions en franais de certains RFC. LInternet Engineering Task Force (IETF http://www.ietf.org) est un groupe ouvert de concepteurs de rseaux, doprateurs de tlcommunication, de vendeurs, de chercheurs, . . .Il est charg de dnir les solutions techniques (protocoles, organisation, documentation,. . .) pour le fonctionnement de linternet. Ses objectifs sont dnis dans la RFC 3935 (http://www.ietf.org/rfc/rfc3935.txt) : The goal of the IETF is to make the Internet work better. Il est organis en groupes de travail constitus pour traiter un sujet et dissouts lorsque le travail est ni. Les groupes de travail sont regroups en domaines (areas). 3

LInternet Engineering Steering Group (IESG http://www.ietf.org/iesg.html) est compos du prsident de lIETF et des dirigeants des dirents domaines de lIETF et il dirige lIETF. LInternet Research Task Force (IRTF http://www.irtf.org) est compos de groupes de recherche et assure des recherches plus long terme sur le futur de linternet. LInternet Corporation for Assigned Names and Numbers gre ladressage et le nommage au sein de linternet (ICANN http://www.icann.org). Elle est charge dallouer lespace des adresses de protocole Internet (IP), dattribuer les identicateurs de protocoles, de grer le systme des noms de domaines de premier niveau pour les codes gnriques (tels que .com, .info, . . ..) et les codes nationaux (.fr, .uk, . . .), et dassurer les fonctions de gestion du systme de serveurs racines. Ces services taient initialement assurs dans le cadre dun contrat avec le gouvernement fdral amricain par lInternet Assigned Numbers Authority (IANA) et dautres organismes. LICANN assume prsent les fonctions de lIANA. Le World Wide Web Consortium (W3C http://www.w3.org) dirig par Tim BernersLee linventeur du web est un organisme international charg de la standardisation du web. Sa mission est de mener le web sa pleine capacit en dveloppant les protocoles et les recommandations qui assurent sa croissance long terme .

Architecture des protocoles TCP/IP.


7 6 5

applications

processus utilisateur ex : ping

processus utilisateur ex : FTP

processus utilisateur

processus utilisateur ex : DHCP

logiciels hors du SE

transport

TCP

UDP

logiciels dans le SE

rseau

ICMP

IP

IGMP

adressage IP uniquement

2 1

liens

ARP

interface matrielle

RARP

adressage physique

couches OSI correspondantes support matriel

Fig. 4 Architecture dune pile TCP/IP Les logiciels TCP/IP sont structurs en quatre couches de protocoles qui sappuient sur une 4

couche matrielle comme illustr dans la gure 4. La couche de liens est linterface avec le rseau et est constitue dun driver du systme dexploitation et dune carte dinterface de lordinateur avec le rseau. La couche rseau ou couche IP (Internet Protocol ) gre la circulation des paquets travers le rseau en assurant leur routage. Elle comprend aussi les protocoles ICMP (Internet Control Message Protocol ) et IGMP (Internet Group Management Protocol ) La couche transport assure tout dabord une communication de bout en bout en faisant abstraction des machines intermdiaires entre lmetteur et le destinataire. Elle soccupe de rguler le ux de donnes et assure un transport able (donnes transmises sans erreur et reues dans lordre de leur mission) dans le cas de TCP (Transmission Control Protocol ) ou non able dans le cas de UDP (User Datagram Protocol ). Pour UDP, il nest pas garanti quun paquet (appel dans ce cas datagramme) arrive bon port, cest la couche application de sen assurer. La couche application est celle des programmes utilisateurs comme telnet (connexion un ordinateur distant), FTP (File Transfert Protocol ), SMTP (Simple Mail Transfert Protocol ), etc . . .

ordinateur A client FTP protocole FTP

ordinateur B serveur FTP

TCP protocole TCP

TCP

IP protocole IP

IP

driver Ethernet

protocole Ethernet

driver Ethernet

bus Ethernet
Fig. 5 Communication entre deux machines du mme rseau local Cette architecture et ces dirents protocoles permettent de faire fonctionner un rseau local, par exemple sur un bus Ethernet reliant un ordinateur client A qui interroge un serveur FTP B, comme illustr dans la gure 5 Mais, ceci permet surtout de constituer un internet, cest--dire une interconnexion de rseaux ventuellement htrognes comme illustr dans la gure 6. Ici les ordinateurs A et B sont des systmes terminaux et le routeur est un systme 5

ordinateur A

ordinateur B

client FTP message identique

serveur FTP

TCP

paquet identique routeur

TCP

IP

datagramme identique

IP

datagramme identique

IP

driver Ethernet

trame identique

driver Ethernet

driver Token Ring

trame identique

driver Token Ring

Token Ring bus Ethernet

Fig. 6 Interconnexion de deux rseaux

donnes utilisateur application entte applicatif donnes utilisateur TCP donnes applicatives segment TCP IP

entte TCP

entte IP

entte TCP

donnes applicatives datagramme IP driver Ethernet remorque Ethernet

entte Ethernet 14 octets

entte IP 20 octets

entte TCP 20 octets

donnes applicatives trame Ethernet

Ethernet

46 1500 octets

Fig. 7 Encapsulation des donnes par la pile des protocoles TCP/IP.

intermdiaire. Comme on peut le voir, la remise du datagramme ncessite lutilisation de deux trames direntes, lune du rseau Ethernet entre la machine A et le routeur, lautre du rseau Token-Ring entre le routeur et la machine B. Par opposition, le principe de structuration en couches indique que le paquet reu par la couche transport de la machine B est identique celui mis par la couche transport de la machine A. Lorsquune application envoie des donnes laide de TCP/IP les donnes traversent donc de haut en bas chaque couche jusqu aboutir au support physique o elles sont alors mises sous forme dune suite de bits. Lencapsulation illustre dans la gure 7 consiste pour chaque couche ajouter de linformation aux donnes en les faisant prcder den-ttes, voire en ajoutant des informations de remorque. Dans le cas du protocole UDP la place de TCP, les seuls changements sont que lunit dinformation passe IP sappelle un datagramme UDP dont len-tte a une taille de 8 octets.

Adressage.
Nous nous intressons ici uniquement au protocole IPV4.

3.1

Organisations de ladressage.

Chaque ordinateur du rseau Internet dispose dune adresse IP code sur 4 octets (32 bits) qui doit tre unique au sein de linternet. Plus prcisment, chaque interface dun matriel dispose dune adresse IP particulire. En eet, un mme routeur interconnectant plusieurs rseaux dirents possde une adresse IP pour chaque interface de rseau. Une adresse IP est toujours reprsente dans une notation dcimale pointe constitue de 4 nombres (1 par octet) compris chacun entre 0 et 255 et spars par un point. Ainsi 193.49.144.1 est ladresse IP dune des principales machines du rseau de luniversit dAngers.
7 bits classe A 0 id. de rseau 14 bits classe B 1 0 id. de rseau 21 bits classe C 1 1 0 id. de rseau 28 bits classe D 1 1 1 0 adresse multidestinataire (muticast) 27 bits classe E 1 1 1 1 0 rserv pour usage ultrieur 24 bits id. de machine 16 bits id. de machine 8 bits id. de machine

Fig. 8 Les cinq classes dadresses IP Plus prcisment, une adresse IP est constitue dune paire (identiant de rseau, identiant de machine) (on utilise aussi identiant dinterface au lieu didentiant de machine). Larchitecture dadressage dorigine de linternet dnit cinq classes dadresse (A, B, C, D et E) selon la valeur du premier octet de ladresse comme dtaill dans la gure 8. Le tableau ci-aprs donne lespace dadresses possibles pour chaque classe. 7

classe A B C D E

0.0.0.0 128.0.0.0 192.0.0.0 224.0.0.0 240.0.0.0

adresses 127.255.255.255 191.255.255.255 223.255.255.255 239.255.255.255 247.255.255.255

Ainsi, les adresses de classe A sont utilises pour les trs grands rseaux qui comportent plus de 216 = 65536 ordinateurs. Au niveau mondial, il ne peut exister plus de 127 tels rseaux, mais la politique actuelle est de ne plus dnir de tels rseaux. Les adresses de classe B sont utilises pour les rseaux ayant entre 28 = 256 et 216 = 65536 ordinateurs, 14 bits dnissent ladresse du rseau et 16 bits celle dune machine sur le rseau. Seules 256 machines sont possibles sur un rseau de classe C dont le nombre possible dpasse les 2 millions (= 221 ). Au lieu dutiliser un adressage plat 1, 2, 3, ... la mthode retenue est plus ecace car elle permet une extraction rapide du numro de rseau lintrieur dune adresse IP ce qui facilitera le routage. Toutes les combinaisons mathmatiquement possibles pour identier un rseau ou une machine ne sont pas permises car certaines adresses ont des signications particulires. 0.0.0.0 est utilise par une machine pour connatre sa propre adresse IP lors dune processus damorage par exemple <id. de rseau nul>.<id. de machine> est galement utilise pour dsigner une machine sur son rseau lors dun boot galement <id. de rseau>.<id. de machine nul> nest jamais aecte une machine car elle permet de dsigner le rseau lui-mme <id. de rseau>.<id. de machine avec tous ses bits 1> est une adresse de diusion ou de broadcasting, cest--dire quelle dsigne toutes les machines du rseau concern. Un datagramme adress cette adresse sera ainsi envoy toutes les machines du rseau. 255.255.255.255 est une adresse de diusion locale car elle dsigne toutes les machines du rseau auquel appartient lordinateur qui utilise cette adresse. Lavantage par rapport ladresse prcdente est que lmetteur nest pas oblig de connatre ladresse du rseau auquel il appartient. 127.X.Y.Z est une adresse de rebouclage qui est utilise pour permettre les communications inter-processus sur un mme ordinateur ou raliser des tests de logiciels car tout logiciel de communication recevant des donnes pour cette adresse les retourne simplement lmetteur. Les adresses de classe A de 10.0.0.0 10.255.255.255, de classe B de 172.16.0.0 172.31.255.255 et de classe C de 192.168.0.0 192.168.255.255 sont rserves la constitution de rseaux privs autrement appels intranet. Cependant, ce systme dadressage par classe sest rvl inecace devant la demande croissante dadresses IP. En eet, une entreprise voulant numroter 2000 machines ne peut se contenter dun rseau de classe C. Par contre si on lui attribue un rseau de classe B, on perd plus de 60 000 adresses qui resteront inutilises. On voit quaucune des classes nest satisfaisante. Devant la pnurie dadresses de classes B le systme CIDR (Classless Inter Domain Routing RFC 1518, 1519) est apparu en 1993. Une telle adresse CIDR est de la forme A.B.C.D/M o M est un entier appel masque et compris entre 13 et 27. Ce masque dsigne le nombre de bits constituant lidentiant de rseaux dans ladresse A.B.C.D. Par exemple, dans 172.20.41.7/16, les 16 premiers bits de ladresse dsigne le rseau qui est donc 172.20.0.0 et lidentiant de machine est 0.0.41.7. Le masque, ici gal 16, peut galement tre donn sous la forme 8

dcimale 255.255.0.0 correspondant une adresse IP ayant ses 16 premiers bits 1. Lutilisation de tous les masques possibles de 13 27 bits permet de dimensionner des rseaux de manire plus prcise et selon les possibilits suivantes. masque quivalent en classe C nombre dadresses /27 1/8 32 /26 1/4 64 ... ... ... /14 1 024 262 144 /13 2 048 524 288 tant donn une adresse IP donne sous la forme CIDR comme 150.50.215.200/21 on retrouve les identiants de rseau et de machines en eectuant un et logique entre ladresse complte et le masque tous les deux mis sous forme binaire comme dcrit ci-dessous. adresse IP 150.50.215.200 masque (21) 255.255.248.0 adresse rseau 150.50.208.0 adresse machine 0.0.0.7.200 10010110.00110010.11010111.11001000 11111111.11111111.11111000.00000000 10010110.00110010.11010 000.00000000 00000000.00000000.00000 111.11001000

De cette manire si une socit a besoin de 100 000 adresses on lui fournira une part de rseau de classe A en lassociant un masque de 15 bits. Ainsi, elle disposera de 2(3215) = 131072 (la plus petite puissance de 2 suprieure 100 000) adresses. Dans lancien systme, un rseau de classe B naurait pas t susant et un rseau de classe A, avec ses 16 millions dadresses, aurait t largement surdimensionn. Cette technique a permis dagrger des rseaux par rgion gographique et fournisseurs daccs. Ce systme de sur-rseau permet ainsi de faire apparatre dans les tables de routage plusieurs rseaux sous le mme identiant. videmment, les rseaux agrgs doivent avoir des adresses contiges de manire avoir des prxes identiques. Par exemple, 193.127.32.0 et 193.127.33.0 peuvent tre agrgs sous la notation 193.127.32.0 / 23. On peut donc voir le rseau 193.127.32.0 / 23 comme un rseau de 512 machines, ou comme 2 rseaux de 256 machines chacun, car le 24e bit permet de coder lun ou lautre des 2 rseaux. Et ainsi, 1 seule ligne dans la table de routage est susante pour traiter 2 rseaux simultanment.
X.Y.Z.1/25 X.Y.Z.2/25 X.Y.Z.3/25

rseau X.Y.Z.0/25 Internet routeur R rseau X.Y.Z.128/25

trafic vers X.Y.Z.0/24 X.Y.Z.129/25

X.Y.Z.130/25

Fig. 9 Adressage de sous-rseau

De manire locale un rseau dentreprise par exemple, la systme CIDR peut permettre de (re)dcouper un rseau en sous-rseaux grce un masque de sous-rseau ou subnet netmask. La gure 9 illustre le cas dun rseau X.Y.Z.0/24 dcoup en deux sous-rseaux X.Y.Z.0/25 et X.Y.Z.128/25. Pour tout le reste de linternet, il nexiste quun seul rseau X.Y.Z.0/24 et tous les routeurs traitent les datagrammes destination de ce rseau de la mme faon. Par contre, le routeur R se sert du 25e bit (gal 0 ou 1) de ladresse contenue dans les datagrammes qui lui proviennent pour les diriger vers le sous-rseau auquel ils sont destins assurant ainsi un routage hirarchique.

3.2

Attribution dune adresse IP.

De manire administrative, lobtention dune plage dadresses IP pour crer un nouveau rseau est gre par lICANN de manire dcentralise et hirarchique. Par exemple, pour lEurope, cest le RIPE Network Coordination Centre (http://www.ripe.net) qui assure cette gestion. Dune manire gnrale, les FAI (Fournisseurs dAccs Internet) disposent ainsi de plages dadresses qui leurs sont attribues par lun de ces organismes (le document ftp://ftp.ripe.net/pub/stats/ripencc/membership/alloclist.txt donne la liste des plages dadresses IP attribues par le RIPE). De manire technique, une machine peut avoir une adresse IP statique, quelle conserve de manire permanente, ou dynamique, qui change (ou peut changer) chaque redmarrage ou quand cette adresse nest plus valide. Par ailleurs, lattribution de cette adresse IP peut tre ralise via une conguration manuelle, ou via le protocole DHCP (Dynamic Host Conguration Protocol). DHCP est un protocole client-serveur o le client est une machine qui demande sintgrer au rseau IP gr par le serveur DHCP. La principale phase du protocole se dcoupe en 4 tapes illustres dans la gure10.

Fig. 10 DHCP Tous les messages DHCP dun client vers un serveur sont envoys dans des datagrammes 10

UDP adresss au port 67 et les messages dun serveur vers un client sont envoys dans des datagrammes UDP adresss au port 68. 1. DHCPDISCOVER : le client envoie en diusion ( ladresse IP 255.255.255.255) une requte en spciant 0.0.0.0 comme adresse IP dorigine puisquil ne possde pas dadresse IP pour linstant. Il indique aussi son adresse matrielle et un numro de transaction. Ce message est reu par toutes les machines du rseau, et notamment par les serveurs DHCP qui vont y rpondre. 2. DHCPOFFER : les serveurs DHCP rpondent par un message contenant lidentiant de transaction, ladresse IP propose, le masque de sous-rseau et la dure du bail (dure de vie de cette adresse avant expiration). 3. DHCPREQUEST : le client accepte lune des propositions (a priori la premire) et rpond en envoyant en diusion un message contenant les divers paramtres. 4. DHCPACK : le serveur concern conrme le bail et mmorise de son ct que cette adresse IP est dsormais inutilisable jusqu sa libration. Les autres points du protocole sont grs par les messages suivants. DHCPNACK : le serveur informe le client que le bail est termin DHCPDECLINE : le client refuse ladresse IP car elle est dj utilise DHCPRELEASE : le client libre ladresse IP et annule le bail DHCPINFORM : le client possde une IP et il demande des paramtres de conguration locaux

Nommage.

Bien que la numrotation IP laide dadresses numriques soit susante techniquement, il est prfrable pour un humain de dsigner une machine par un nom explicite. Mais se pose alors le problme de la dnition des noms et de leur mise en correspondance avec les numros IP. Au dbut des annes 80, le rseau ARPANET comportait un peu plus de 200 ordinateurs et chacun possdait un chier /etc/hosts identiant les noms de ces ordinateurs suivis de leur numro IP. Lorsquune modication intervenait, il susait de mettre jour ce chier. Pour faire face lexplosion du nombre dordinateurs relis Internet, il a t mis en place un systme de base de donnes distribues : le systme de noms de domaines DNS (Domain Name System) qui fournit la correspondance entre un nom de machine et son numro IP. En fait, le DNS est un espace de noms hirarchis comme illustr dans la gure 11. Chaque nud a un nom dau plus 63 caractres et la racine de larbre a un nom nul (les minuscules et majuscules sont indirencies). Une zone est un sous-arbre de cette hirarchie. Le nom de domaine dun nud est la concatnation de son nom avec celui de ses anctres dans larbre. La responsabilit du nommage est subdivise par niveau, les niveaux suprieurs dlgant leur autorit aux sous-domaines quils crent eux-mmes. Le systme est gr au niveau mondial par lICANN. Des organismes ou socits assurent ce service par dlgation pour les sous-domaines. En France, lAFNIC (Association Franaise pour le Nommage Internet en Coopration http://www.afnic.fr assure ce service pour le domaine .fr. Il faut bien avoir lesprit que le dcoupage na dans certains cas aucune base gographique ; on trouve des domaines .com partout dans le monde. Le mcanisme qui permet la rsolution dun nom en une adresse IP est gre par des serveurs de noms qui reprsentent une base de donnes distribue des noms de domaine. Quand une entit a reu lautorit de grer une zone elle doit maintenir au moins deux serveurs de noms : 11

gov

com

edu

org

fr

de

univ angers

elysee

info

istia

sirius

Fig. 11 Systme de noms de domaines.

un primaire et un ou plusieurs secondaires. Les secondaires sont des serveurs redondants par rapport au primaire de manire faire face une dfaillance dun systme. Lorsquune machine est ajoute une zone, ladministrateur de la zone doit ajouter son nom et son numro IP sur le serveur primaire qui se recongure alors en fonction de ces nouvelles donnes. Quant eux, les serveurs secondaires interrogent rgulirement (toutes les 3 h) le primaire et font les mises jour ncessaires en cas dvolution de la base de donnes. Les serveurs de noms peuvent fonctionner en mode rcursif ou non, mais ils doivent toujours implanter le mode non rcursif. Dans tous les cas, lorsquun serveur de noms reoit une demande, il vrie si le nom appartient lun des sous-domaines quil gre. Si cest le cas il traduit le nom en une adresse IP en fonction de sa base de donnes et renvoie la rponse au demandeur Sinon, en mode non-rcursif, le serveur indique au client un autre serveur de noms qui saura lui rpondre ou son tour transmettre la requte un autre serveur. en mode rcursif, cest le serveur qui se charge de linterrogation successive des serveurs de noms et qui retourne nalement la rponse au client. Dans tous les cas, lorsquun serveur ne sait pas rpondre il utilise ladresse dun serveur de nom hirarchiquement suprieur qui connat le nom et ladresse IP de chaque serveur de noms pour les domaines de ses sous-niveaux. Ce serveur de nom suprieur renvoie alors ladresse dun serveur de noms contacter. Et ainsi de suite, par interrogations successives de serveurs de noms (soit par le client en mode non-rcursif soit par le serveur lui-mme en mode rcursif) le client initial obtiendra ladresse demande. Pour viter de faire trop souvent de telles requtes, tout serveur de noms stocke dans une mmoire cache les correspondances (numro IP, nom de machine) de manire pouvoir fournir la rponse immdiatement si une mme demande lui parvient ultrieurement. La gure 12 dcrit la rsolution (en mode non rcursif) du nom du serveur web www.a.a lorsque le navigateur sur la machine nav.b.a cherche joindre ce site. 12

domaine a dns.a

4
dns.a.a www.a.a

3
dns.b.a

5 7

nav.b.a

sous-domaine a.a

sous-domaine b.a

Fig. 12 Rsolution de noms.

1. Le navigateur envoie son DNS dns.b.a une requte de rsolution pour le nom www.a.a 2. dns.b.a ne connaissant pas cette adresse, car elle ne dpend pas de sa zone et quil ne la pas dans son cache, transmet cette adresse dns.a puisque cest le DNS dautorit de niveau suprieur quil connat. 3. dns.a ne connaissant pas non plus ladresse demande, renvoie au demandeur ladresse dun ou plusieurs DNS pour le sous-domaine recherch a.a et auquel il a lui-mme dlgu son autorit. 4. Le serveur dns.b.a rmet sa requte vers ce nouveau DNS dns.a.a. 5. Le serveur dns.a.a connat ladresse demande car la machine www.a.a appartient sa zone et peut donc renvoyer ladresse IP demande dns.b.a. 6. Le DNS mmorise dans son cache la rponse et la retourne au demandeur initial : le navigateur. 7. Le navigateur peut se connecter au serveur web dsir. La page http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/dns/dns.html propose une illustration de ce mcanisme. Sous linux, les commandes host, nslookup, dig sont divers outils pour interroger les DNS. Par exemple : [deneb.info-ua]:~ > dig univ-angers.fr any ; <<>> DiG 9.3.0 <<>> univ-angers.fr any ;; global options: printcmd 13

;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5795 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 4, ADDITIONAL: 7 ;; QUESTION SECTION: ;univ-angers.fr. ;; ANSWER SECTION: univ-angers.fr. univ-angers.fr. univ-angers.fr. univ-angers.fr. univ-angers.fr. univ-angers.fr. ;; AUTHORITY SECTION: univ-angers.fr. univ-angers.fr. univ-angers.fr. univ-angers.fr. ;; ADDITIONAL SECTION: dns1.univ-nantes.fr. dns2.univ-nantes.fr. resone.univ-rennes1.fr. ns.univ-angers.fr. ns.univ-angers.fr. smtp.univ-angers.fr. smtp.univ-angers.fr. ;; ;; ;; ;;

IN

ANY

67286 IN 67286 IN 67286 IN 67286 IN 88196 IN 170560 IN

NS NS NS NS MX SOA

dns1.univ-nantes.fr. dns2.univ-nantes.fr. resone.univ-rennes1.fr. ns.univ-angers.fr. 50 smtp.univ-angers.fr. ns.univ-angers.fr. hostmaster.univ-angers.fr.

67286 67286 67286 67286

IN IN IN IN

NS NS NS NS

dns1.univ-nantes.fr. dns2.univ-nantes.fr. resone.univ-rennes1.fr. ns.univ-angers.fr.

337601 113119 38817 67286 100025 67952 86169

IN IN IN IN IN IN IN

A A A AAAA A A AAAA

193.52.108.41 193.52.101.20 129.20.254.1 2001:660:7201:709::10 193.49.144.1 193.49.144.2 2001:660:7201:709::20

Query time: 2 msec SERVER: 172.20.41.2#53(172.20.41.2) WHEN: Mon Sep 26 16:29:52 2005 MSG SIZE rcvd: 393

montre les informations relatives au domaine univ-angers.fr (en 2005). On y voit notamment quun serveur DNS fournit galement, par son champ MX, ladresse des serveurs de courrier grant le domaine concern. [deneb.info-ua]:~ > host www.univ-angers.fr www.univ-angers.fr is an alias for web-serv.univ-angers.fr. web-serv.univ-angers.fr has address 193.49.144.131 www.univ-angers.fr is an alias for web-serv.univ-angers.fr. www.univ-angers.fr is an alias for web-serv.univ-angers.fr. web-serv.univ-angers.fr mail is handled by 0 lagaffe.univ-angers.fr. montre la rsolution de nom du serveur web de luniversit dAngers (en 2005). [deneb.info-ua]:~ > host 193.49.144.1 1.144.49.193.in-addr.arpa domain name pointer ns.univ-angers.fr. 14

montre le rsultat de la rsolution inverse qui permet partir dune adresse IP de trouver le ou les noms de domaines auxquels elle correspond. Il faut noter aussi que plusieurs adresses IP peuvent tre associes un nom unique, comme lexemple suivant lillustre. [deneb.info-ua]:~ > host www.yahoo.com www.yahoo.com is an alias for www.yahoo.akadns.net. www.yahoo.akadns.net has address 216.109.118.68 www.yahoo.akadns.net has address 216.109.117.110 www.yahoo.akadns.net has address 216.109.118.64 www.yahoo.akadns.net has address 216.109.117.106 www.yahoo.akadns.net has address 216.109.118.75 www.yahoo.akadns.net has address 216.109.118.66 www.yahoo.akadns.net has address 216.109.117.206 www.yahoo.akadns.net has address 216.109.118.77 www.yahoo.com is an alias for www.yahoo.akadns.net. www.yahoo.com is an alias for www.yahoo.akadns.net. En fait, chaque rsolution du nom www.yahoo.com retourne la liste des adresses IP dans un ordre particulier (round robin). Ainsi, les trs nombreuses requtes interrogeant un mme service peuvent tre rparties entre direntes machines assurant le mme service.

La couche de liens dinternet.

Le but de la couche de liens de la pile TCP/IP est denvoyer et recevoir des datagrammes IP pour la couche IP, denvoyer des requtes ARP (respt. RARP) et de recevoir des rponses pour le module ARP (respt. RARP). Elle concentre donc les caractristiques des deux premires couches du modle OSI : couche physique et couche de liaison.

5.1

La liaison SLIP.

SLIP (Serial Line Internet Protocol, RFC 1055) est un protocole permettant denvoyer des paquets IP entre deux ordinateurs relis par une liaison srie (par exemple, grce deux modems branchs sur les ports RS-232 et une ligne tlphonique). Dans ce cas il ny a pas besoin de prvoir un adressage de niveau 2, puisque la liaison est point point (une seule machine chaque extrmit du lien). Par contre, il sagit de dlimiter le dbut et la n des paquets IP. Le protocole SLIP dnit 2 caractres spciaux : END (192 en dcimal,c0 en hexadcimal) et ESC (219 en dcimal, db en hexadcimal). Dans sa version la plus simple, lencapsulation dun paquet IP consiste envoyer tous les octets du paquet IP et de terminer par lenvoi du caractre END. Si le caractre END se trouve parmi les donnes expdier, alors la suite de 2 octets ESC et dc (220 en dcimal) est mise la place. Sil sagit dexpdier le caractre ESC, alors la suite de 2 octets ESC et dd (221 en dcimal) est mise la place. Pour viter des problmes de bruit, certaines implantations de SLIP font galement dbuter lenvoi du paquet IP par un caractre END. Au nal, lencapsulation SLIP se rsume lillustration de la gure 13. Un des dfauts de ce protocole est quil faut que les deux extrmits aient x pralablement leurs adresses IP, car la liaison SLIP ne leur permet pas de se les changer. Si un site ore via un seul modem laccs Internet plusieurs personnes, cela ne posera pas de problme. En eet, chaque personne aura congur son ordinateur avec le numro IP fournit par ladministrateur 15

datagramme IP c0 db

c0

db dc

db dd

c0

paquet SLIP

Fig. 13 Encapsulation SLIP.

du rseau et comme une seule connexion est possible la fois la duplication du mme numro IP nest pas gnante. Seulement, si le site ore un deuxime modem sur le mme numro tlphonique, les utilisateurs ignoreront quel modem ils sont connects. ce moment l, il faudra que le systme indique chaque utilisateur comment congurer son ordinateur en fonction de lutilisation ou non de lautre modem de telle manire que la mme adresse IP ne soit pas donne deux machines direntes simultanment. Dans ce genre dutilisation SLIP a le dfaut de ne pas orir daccs contrl par mot de passe. De plus, il ny a pas de champ type donc la ligne ne peut pas tre utilise en mme temps pour un autre protocole. Et enn, il ny a pas de contrle de la transmission. Si une trame subit des perturbations, cest aux couches suprieures de de le dtecter. Enn, il existe une version amliore CSLIP (Compressed SLIP RFC 1144) qui assure la (d)compression des donnes transmettre.

5.2

La liaison PPP.

PPP (Point to Point Protocol ) (RFC 1661) est un protocole qui corrige les dciences de SLIP en orant les fonctionnalits suivantes : utilisation sur des liaisons point point autres que srie, comme X25 ou RNIS transport de dirents protocoles de niveau 3 (IP, Decnet, Appletalk, ...) compression des en-ttes IP et TCP pour augmenter le dbit de la liaison gestion dun contrle daccs au rseau par authentication selon le protocole PAP qui ncessite la donne dun mot de passe au dbut de la communication ou le protocole CHAP qui permet lchange de sceaux crypts tout au long de la communication dtection et correction derreurs de transmission ne pas utiliser des codes qui risquent dtre interprts par les modems conguration automatique de la station client selon ses protocoles de couche rseau (IP, IPX, Appletalk). Le protocole PPP est celui classiquement utilis par les fournisseurs daccs Internet pour connecter leurs abonns via le rseau RTC (tlphone) selon le schma de la gure 14. Dans ce cas, le processus de connexion dun client est le suivant. Le modem du client appelle le numro de tlphone du fournisseur et la connexion tlphonique stablit si lun au moins de ses modems est libre. Lidentication du client se fait par envoi dun nom dutilisateur et dun mot de passe 16

ordinateur client modem rseau tlphonique modem

serveur de communications rseau du FAI

Internet

Fig. 14 Connexion Internet par modem et PPP.

soit directement par lutilisateur, soit selon lun des protocoles PAP ou CHAP. Pour PAP (Protocol Authentication Protocol ) le serveur de communication envoie lordinateur un paquet pour demander le nom dutilisateur et le mot de passe et lordinateur renvoie ces informations directement. CHAP (Challenge Handshake Authentication Protocol ) fonctionne de la mme manire sauf que le serveur de communication envoie dabord une clef qui va permettre de crypter lenvoi du nom dutilisateur et du mot de passe. Une fois lidentication du client controle, le serveur de communication envoie une adresse IP, dite dynamique car elle varie selon les connexions, lordinateur du client qui partir de l se retrouve intgr au rseau Internet avec une adresse IP pour tout le temps que durera sa connexion.
fanion 7e 1 addr ff 1 ctrl 03 1 2 pas plus de 1500 octets 2 protocole informations CRC fanion 7e 1

0021

datagramme IP

c021

donnes de controle de liens

8021

donnes de controle de rseau

Fig. 15 Encapsulation PPP.

De manire plus technique lencapsulation PPP illustre dans la gure 15 est proche du standard HDLC de lISO et est telle que chaque trame commence et nit par un fanion de valeur 7e soit en binaire 01111110. La valeur du champ adresse est toujours xe ff puisquelle est inutile ici dans le cas dune liaison point point. Le champ contrle est x 03. Le champ protocole prcise la nature des donnes transportes : IP, appletalk . . .Le CRC assure 17

la dtection des erreurs de transmission. Il est calcul laide du polynome gnrateur P (x) = x16 + x12 + x5 + 1 sur lensemble des champs adresse, contrle, protocole et informations. Le problme de lapparition du fanion 01111110 au milieu des donnes transmettre est rgl des deux manires suivantes. Dans le cas dune liaison synchrone, lmission un bit 0 est systmatiquement ajout aprs 5 1 et il est retir la rception. Dans le cas dune liaison asynchrone, le fanion 7e est remplac par la suite 7d 5e, et le code 7d est lui-mme remplac par la suite 7d 5d. De plus tout octet O de valeur infrieure 20 (32 en dcimal), correspondant donc un code de contrle ASCII, sera remplac par la squence 7d O o O=O20. Ainsi, on est sr que ces caractres ne seront pas interprts par les modems comme des caractres de commandes. Par dfaut, les 32 valeurs sont traites ainsi mais il est possible dutiliser le protocole de contrle de liens pour spcier pour quels caractres uniquement on fait cette transformation.

5.3

Le rseau Ethernet.

Ethernet est le nom donn une des technologies les plus utilises pour les rseaux locaux en bus. Elle a t invente par Xerox au dbut des annes 70 et normalise par lIEEE (Institute for Electrical and Electronics Engineers) vers 1980 sous la norme IEEE 802 et la dclinaison la plus usite est la 802.3. Tout dabord, il existe plusieurs technologies physiques pour tablir un rseau local de type Ethernet comme illustr dans la gure16.

Fig. 16 Topologie de rseaux locaux Ethernet.

10 base 5 ou thick Ethernet est un rseau base de cble coaxial de 1,27 cm de diamtre, dune longueur de 500 m maximum et termin chaque extrmit par une rsistance. Chaque ordinateur est reli, par un cordon AUI Attachment Unit Interface), un botier appel transceiver lui-mme connect au cble par lintermdiaire dune prise vampire . Le transceiver est capable de dtecter si des signaux numriques transitent sur le cble et de les traduire en signaux numriques destination de lordinateur, et inversement. 10 base 2 ou thin Ethernet est un rseau base dun cble coaxial plus n et plus souple, moins rsistant aux perturbations lectromagntiques que le 10 base 5, mais dun cot infrieur. Le transceiver et le cble AUI ne sont plus utiles car lordinateur est reli directement au cble par lintermdiaire dune prise BNC en T intgre la carte Ethernet de lordinateur. 18

10 base T ou twisted pair Ethernet est un rseau dans lequel chaque ordinateur est reli, par un cble de type paire torsade, un point central appel hub qui simule leet dun transceiver et de son cble AUI. La connexion des cbles se fait par lintermdiaire dune prise RJ45 et les hubs doivent tre aliments lectriquement. Ils simulent ainsi le fonctionnement dun bus alors que la topologie physique du rseau est une toile. Le dbit dun tel rseau est de 10 Mbit/sec maximal et lon trouve aussi les technologies 100 baseT (Fast Ethernet) et 1000 baseT (ou Gigabit Ethernet sur l de cuivre ou bre optique)) portant les dbits 100Mbit/sec et 1Gbit/sec. Dans tous les cas les informations sont transmises sur le bus sans garantie de remise. Chaque transceiver capte toutes les trames qui sont mises sur le cble et les redirige vers le contrleur de lordinateur qui rejettera les trames qui ne lui sont pas destines et enverra au processeur celles qui le concernent, cest--dire celles dont ladresse de destination est gale celle de la carte rseau. Comme il ny a pas dautorit centrale qui gre laccs au cble, il est possible que plusieurs stations veuillent mettre simultanment sur le cble. Cest pourquoi chaque transceiver coute le cble pendant quil met des donnes an de dtecter des ventuelles perturbations. Si une collision est dtecte par le transceiver, celui-ci prvient le coupleur qui arrte dmettre et attend un laps de temps alatoire compris entre 0 et une certaine dure avant de rmettre ses donnes. Sil y a encore un problme de collision, alors un nouveau temps dattente est tir au sort entre 0 et 2 , puis entre 0 et 4 , etc... jusqu ce que la trame soit mise. Ce principe est justi par le fait que si une premire collision se produit, il y a de fortes chances que les dlais dattente tirs au sort par chacune des 2 stations soient trs proches, donc il ne sera pas surprenant davoir une nouvelle collision. En doublant chaque fois lintervalle des dlais dattente possibles on augmente les chances de voir les retransmissions staler sur des dures relativement longues et donc de diminuer les risques de collision. Cette technologie sappelle CSMA/CD (Carrier Sense Multiple Access with Collision Detect). Elle est ecace en gnral mais a le dfaut de ne pas garantir un dlai de transmission maximal aprs lequel on est sr que la trame a t mise, donc cela ne permet pas de lenvisager pour des applications temps rel. Les adresses physiques Ethernet ou MAC adresses (Medium Access control) sont codes sur 6 octets et donnes sous la forme de 6 nombres hexadcimaux. Ils sont censes tre uniques car les constructeurs et lIEEE grent cet adressage de manire ce que deux coupleurs ne portent pas la mme adresse1 . Elles sont de trois types unicast dans le cas dune adresse monodestinataire dsignant un seul coupleur broadcast dans le cas dune adresse de diusion gnrale (tous les bits 1 donc gale FF :FF :FF :FF :FF :FF) qui permet denvoyer une trame toutes les stations du rseau multicast dans le cas dune adresse multidestinataire qui permet dadresser une mme trame un ensemble de stations qui ont convenu de faire partie du groupe que reprsente cette adresse multipoint. On voit donc quun coupleur doit tre capable de reconnaitre sa propre adresse physique, ladresse de multicast, et toute adresse de groupe dont il fait partie. Au niveau des trames, plusieurs formats ont t dnis, mais le plus courant aujourdhui est celui dit de type II illustr dans la gure 17. Les adresses matrielles source et destination sont codes sur 6 octets (adresse Ethernet), le troisime champ contient le type de donnes transmises selon que cest un datagramme IP, une
En pratique, certains constructeurs ne respectent pas cette rgle et plusieurs cartes peuvent avoir la mme adresse, voire une adresse nulle. On peut aussi programmer ladresse matrielle.
1

19

adresse de destination 6

adresse source 6

type 2

donnes 461500

CRC 4

Fig. 17 Trame Ethernet.

requte ou rponse ARP ou RARP. Puis, viennent les donnes transmises qui peuvent avoir une taille allant de 46 1500 octets. Dans le cas de donnes trop petites, comme pour les requtes et rponse ARP et RARP (voir la sous-section 5.5) on complte avec des bits de bourrage ou padding. Enn, un CRC de 4 octets termine la trame, ce CRC est calcul partir du polynome gnrateur : P (x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1. De nombreux quipements matriels interviennent dans la constitution physique dun rseau Ethernet, ce paragraphe dcrit quelques uns de ceux qui interviennent aux niveaux 1 et 2 du modle OSI. Les quipements matriels suivants peuvent intervenir dans la constitution physique dun rseau Ethernet. Un rpteur opre de manire physique uniquement, donc au niveau de la couche 1 du modle OSI. Il se contente de retransmettre et damplier tous les signaux quil reoit, sans aucun autre traitement. Un hub est un rpteur 10 base T multiport qui renvoie donc le signal quil reoit par lun de ses ports vers tous ses autres ports. Un pont est un quipement qui intervient dans larchitecture dun rseau en reliant deux segments disjoints de ce rseau. Le pont appartient la couche 2 du modle OSI car il va ltrer les trames du rseau en fonction de leur origine et destination, mais il ne se proccuppe pas du logiciel rseau de niveau suprieur (TCP/IP, DECNet, IPX, ...).

B pont

Fig. 18 Fonctionnement dun pont.. Dans la conguration de la gure 18 le pont sera capable de dterminer que les ordinateurs A et B sont sur le segment 1 et les ordinateurs C et D sur le segment 2. Il peut obtenir ces informations car il voit passer toutes les trames provenant des ordinateurs appartenant aux deux segments quil relie et grce aux adresses dorigine contenues dans les trames, il peut se construire une table dadresses mmorisant la cartographie du rseau. Ainsi, si une trame est envoye de A vers B, ou de C vers D, elle ne franchira pas le pont car celui-ci aura dtect que cest inutile. Mais si la trame provenant de A est destine C ou D, elle le traversera sans aucun autre traitement. Lutilisation dun pont peut ainsi amliorer le dbit dun rseau car toutes les trames ne sont pas transmises sur tout le rseau. Dautre part, cela peut permettre daugmenter la condentialit du rseau en isolant certains ordinateurs des autres de manire ce que certaines trames soient impossibles capturer par des ordinateurs espions collectionnant toutes les trames qui circulent sur le rseau, mme celles qui ne lui sont pas destines. 20

Un commutateur ou switch est en fait un pont multiport qui va aiguiller chacune des trames quil reoit vers le segment sur lequel se trouve lordinateur de destination de la trame. Cependant, chacun de ses ports est habituellement reli un segment contenant un nombre restreint dordinateurs, voire un seul sil sagit par exemple dun serveur trs sollicit. Les performances gloables du rseau seront donc bien meilleures que lorsque les postes sont relis via un hub puisque les changes entre 2 machines du rseau ninondent pas inutilement les autres machines du rseau. Les meilleures dbits et la meilleure condentialit possibles sur un rseau local Ethernet sont atteints si lon peut mettre en place un rseau tout commut . Ce terme signie que chaque poste du rseau est reli par un lien direct un port du commutateur et ne reoit ainsi que son trac personnel. La page http://www.info.univ-angers.fr/pub/pn/CommutEthernet prsente une applet illustrant les principes de diusion et de commutation au sein dun rseau Ethernet La technologie du CPL (Courant Porteur en ligne http://www.cpl-france.org) permet dtendre un rseau local Ethernet au moyen du rseau lectrique interne dun batiment (accs indoor ). Cette technique peut aussi sutiliser pour relier internet une habitation (accs outdoor ). Dans les deux cas, Chaque quipement informatique est connect, via une prise RFJ45, un adaptateur lui-meme branch sur une prise de courant lectrique. Ladaptateur multiplexe le signal informatique dune frquence comprise entre 2 et 30 Mhz en technique OFDM (Orthogonal Frequency Division Multiplexing) avec le signal lectrique de 50Hz du rseau lectrique. Le rseau lectrique se comporte alors comme un bus Ethernet au dbit de 14Mbit/s. Comme illustr dans la gure 19, cela permet la constitution dun rseau local domicile pour partager un accs internet.

Fig. 19 Rseau local CPL.

21

5.4

Le rseau WIFI.

La norme IEEE 802.11 dnit les caractristiques dun rseau local sans l (WLAN) plus connu sous le nom WIFI (WIreless FIdelity). Au niveau physique on distingue 3 modes de communication : IR (infrarouge), DSSS (Direct Sequence Spread Spectrum) FHSS (Frequency Hopping Spread Spectrum). Les deux derniers utilisent des ondes radio dans la bande de frquence de 2.4 Ghz 2.4835 Ghz et dcoupent de manire particulire la bande de frquence en dirents canaux. La dclinaison 802.11b (celle du dpartement dinformatique de lUniversit dAngers en 2005) autorise un dbit maximal de 11Mbit/s, la 802.11g permet un dbit maximal de 54 Mbit/s. La constitution dun rseau local sans l se fait selon le schma de la gure20 en un mode dit dinfrastructure. Le point daccs est un quipement (antenne mettrice/rceptrice) connect au rseau laire Ethernet. Chaque ordinateur, quip lui-mme dune carte WIFI, communique avec ce point daccs pour pouvoir dialoguer avec les autres machines du rseau.

Fig. 20 Rseau local sans l. Pour sa part, le mode ad-hoc consiste crer un rseau dordinateurs quips de carte WIFI, sinterconnectant entre eux, sans point daccs particulier ni rseau laire auquel se raccorder. Cela permet de constituer un rseaux de machines sans aucune structure matrielle prexistante. Les missions de donnes sont rgies par la technique CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) qui suit le protocole suivant. Lorsquune station veut mettre, elle explore le spectre de frquences. Si une activit est dtecte, elle attend pendant quelques instants avant de ressayer. Si aucune activit nest dtecte, et si cette inactivit dure un temps donn DIFS (Distributed Inter Frame Space), alors la station expdie ses donnes et attend un message daquittement (ACK). Si celui-ci narrive pas, soit parce que le rcepteur a dtect des incohrences, soit parce quil a t lui-meme perturb, alors la station mettrice remet les donnes. Sinon, lorsque le ACK est reu, lmission est termine. Cependant, la phase dcoute pralable peut tre inecace car labsence dactivit ne signie pas forcment aucune activit, notamment proximit du point daccs. En eet, deux stations peuvent ne pas sentendre si elles sont trop loignes lune de lautre, tout en tant chacune porte du point daccs (voir la gure 20). Pour pallier cette dicult, la station mettrice, 22

aprs avoir constat une priode de silence, va envoyer un message RTS (Ready To Send). Ce message contient des informations sur le volume des donnes mettre et la vitesse de transmission. Le rcepteur rpond alors par un message CTS (Clear To Send), puis la station expdie les donnes. Lorsque toutes les donnes sont reues, le rcepteur envoie un accus de rception (ACK). Ainsi, grce au message CTS qui peut tre reu par toutes les stations (car elles sont toutes porte du point daccs), ces dernires vont rester silencieuses pendant le temps ncessaire la transmission des donnes la vitesse annonce. Ce mcanisme RTS/CTS, qui vite de crer des collisions, nest utilis que pour les gros paquets de donnes. Pour les changes de petite taille, les donnes sont expdies immdiatement (sans message RTS/CTS) et lmetteur attend simplement le ACK. Les protocoles 802.11 assurent aussi la fragmentation des paquets de manire expdier peu de donnes la fois ce qui amliore les taux de tranfert et chaque paquet est protg par un CRC de 32 bits.

5.5

Les protocoles ARP et RARP.

tant donn que le protocole IP, et ses adresses, peuvent tre utiliss sur des architectures matrielles direntes (rseau Ethernet, Token-Ring, ...) possdant leur propres adresses physiques, il y a ncessit dtablir les correspondances biunivoques entre adresses IP et adresses matrielles des ordinateurs dun rseau. Ceci est lobjet des protocoles ARP (Address Resolution Protocol ) et RARP (reverse Address Resolution Protocol ). ARP fournit une correspondance dynamique entre une adresse IP et ladresse matrielle lui correspondant et RARP fait linverse. Nous nous plaons dans le cas dune correspondance tablir entre IP et Ethernet. La ncessit de la rsolution dadresse fournie par ARP apparat dans lexemple ci-dessous dcrivant le dbut dune connexion FTP entre un PC et le serveur sirius tous deux lintrieur du mme rseau Ethernet. 1. Le client FTP convertit ladresse du serveur FTP (ex : sirius.info-ua) en une adresse IP (172.20.41.7) laide du chiers /etc/hosts ou dun serveur de noms (DNS). 2. Le client FTP demande la couche TCP dtablir une connexion avec cette adresse. 3. TCP envoie une requte de connexion ce serveur en mettant un datagramme IP contenant ladresse IP 4. En supposant que les machines client et serveur sont sur le mme rseau local Ethernet, la machine mettrice doit convertir ladresse IP sur 4 octets en une adresse Ethernet sur 6 octets avant dmettre la trame Ethernet contenant le paquet IP. Cest ce que va faire ARP. 5. Le module ARP envoie une requte ARP dans une trame Ethernet (donne dans la gure 21) avec une adresse de destination multicast. Ainsi, toutes les machines du rseau local reoivent cette requte contenant ladresse IP rsoudre.

6. La couche ARP de la machine vise (ici sirius.info-ua) reconnat que cette requte lui est destine et rpond par une rponse ARP contenant son adresse matrielle 00 :20 :AF :AB :42 :43 Les autres machines du rseau ignorent la requte. 7. La rponse ARP est reue par lmetteur de la requte. Pour ce retour, il ny a pas de problme de rsolution puisque ladresse physique de lmetteur tant envoye dans la requte elle est connue de la machine qui rpond. 8. La rponse ARP est reue par la couche ARP du client FTP, et le driver Ethernet peut alors mettre le paquet IP avec la bonne adresse Ethernet de destination. 23

adresse Ethernet de destination

adresse Ethernet source

type type de de trame mat.

type de prot.

taille mat. taille prot.

op

adresse Ethernet de lmetteur

adresse IP de lmetteur

adresse Ethernet cible

adresse IP cible

entete Ethernet

28 octets requete/rponse ARP/RARP

Fig. 21 Requte ou rponse ARP sur un rseau Ethernet.

Les deux premiers champs dune trame Ethernet (voir gure 21) mise par ARP sont conformes len-tte dune trame Ethernet habituelle et ladresse de destination sera ladresse multicast FF :FF :FF :FF :FF :FF dsignant toutes les machines du rseau la fois. La valeur du champ type de trame est 0806 indiquant le protocole ARP. Le champ type de matriel est gal 1 pour un rseau Ethernet et celui type de protocole est gal est 0800 pour IP. Les tailles en octets spcies ensuite sont 6 (6 octets pour une adresse Ethernet) et 4 (4 octets pour une adresse IP). Le champ op vaut 1 pour une requte ARP et 2 pour une rponse ARP. Les quatre champs suivants contiennent des adresses et sont redondants dans le cas de ladresse Ethernet metteur dune requte ARP, et non renseigns dans le cas de ladresse Ethernet cible dune requte ARP. La machine qui reconnat son numro IP lintrieur dune requte ARP quelle reoit la renvoie en y intervertissant les adresses IP cible et metteur, ainsi que les adresses Ethernet cible (aprs lavoir substitue ladresse de diusion dans len-tte et renseigne dans le corps de la trame) et Ethernet metteur. Pour viter la multiplication des requtes ARP, chaque machine gre un cache dans lequel elle mmorise les correspondances adresses IP/adresses Ethernet dj rsolues pralablement. Ainsi, le module ARP ne lancera une requte que lorsquil ne trouvera pas cette correspondance dans le cache, sinon il se contentera dmettre les donnes quil reoit dIP en ayant x correctement ladresse physique de destination. Cependant, les correspondances ne sont pas conserves indniment car cela pourrait provoquer des erreurs lorsque lon change un ordinateur (ou une carte rseau) du rseau en conservant un mme numro IP pour cet ordinateur mais videmment pas la mme adresse physique. Comme illsutr ci-dessous, la commande arp -a (sous Linux et Windows) ache le contenu du cache mmoire ARP courant. $ arp -a sirius.info-ua (172.20.41.7) at 00:00:1A:18:FF:4C [ether] on eth0 helios.info-ua (172.20.41.5) at 00:03:BA:08:DB:22 [ether] on eth0 nes.info-ua (172.20.41.2) at 00:90:27:61:B7:5B [ether] on eth0 deneb.info-ua (172.20.41.8) at 00:05:5D:82:CE:56 [ether] on eth0 Quant lui, le protocole RARP joue le rle inverse de ARP en permettant de dterminer ladresse IP dun quipement dont on connat ladresse physique. Ceci est notamment utile pour amorcer une station sans disques, ou un TX, qui na pas en mmoire son adresse IP mais seulement son adresse matrielle. Le format dune trame RARP est celui de la gure 21) o le champ type de trame vaut 0835 et le champ op vaut 3 pour une requte RARP et 4 pour une rponse. Une requte RARP est diuse sous forme de broadcast, donc toutes les machines du rseau la reoivent et la traitent. Mais la plupart des machines ignorent simplement cette demande, seuls, le ou les serveurs RARP du rseau vont traiter la requte grce un ou plusieurs chiers et vont retourner une rponse contenant ladresse IP demande. 24

Le protocole IP.

Comme on a pu le voir dans la gure 4 le protocole IP (Internet Protocol, RFC 791) est au cur du fonctionnement dinternet. Il assure sans connexion un service non able de dlivrance de datagrammes IP. Le service est non able car il nexiste aucune garantie pour que les datagrammes IP arrivent destination. Certains peuvent tre perdus, dupliqus, retards, altrs ou remis dans le dsordre. On parle de remise au mieux (best eort delivery) et ni lmetteur ni le rcepteur ne sont informs directement par IP des problmes rencontrs. Le mode de transmission est non connect car IP traite chaque datagramme indpendamment de ceux qui le prcdent et le suivent. Ainsi en thorie, au moins, deux datagrammes IP issus de la mme machine et ayant la mme destination peuvent ne pas suivre obligatoirement le mme chemin. Le rle du protocole IP est centr autour des trois fonctionnalits suivantes chacune tant dcrite dans une des sous-sections venir. dnir le format du datagramme IP qui est lunit de base des donnes circulant sur Internet dnir le routage dans internet dnir la gestion de la remise non able des datagrammes

6.1

Le datagramme IP.

Comme cela a dj t illustr dans la gure 7 on rappelle quun datagramme IP est constitu dune en-tte suivie dun champ de donnes. Sa structure prcise est dtaille dans la gure 22
version longueur dentete identification dure de vie (TTL) protocole adresse IP source adresse IP destination options IP ventuelles bourrage type de services (TOS) drapeaux longueur totale dplacement de fragment (offset) total de controle dentte entte de 20 octets minimum

donnes

Fig. 22 Structure dun datagramme IP.

et comporte les champs suivants. La version code sur 4 bits le numro de version du protocole IP utilis (la version courante est la 4, do son nom dIPv4). Tout logiciel IP doit dabord vrier que le numro de version du datagramme quil reoit est en accord avec lui-mme. si ce nest pas le cas le datagramme est tout simplement rejet. Ceci permet de tester des nouveaux protocoles sans interfrer avec la bonne marche du rseau. La longueur den-tte reprsente sur 4 bits la longueur, en nombre de mots de 32 bits, de len-tte du datagramme. Ce champ est ncessaire car une en-tte peut avoir une taille 25

suprieure 20 octets (taille de len-tte classique) cause des options que lon peut y ajouter. Le type de services (TOS) est cod sur 8 bits, indique la manire dont doit tre gr le datagramme et se dcompose en six sous-champs comme suit. 0 1 2 3 4 5 6 7 priorit D T R C inutilis Le champ priorit varie de 0 (priorit normale, valeur par dfaut) 7 (priorit maximale pour la supervision du rseau) et permet dindiquer limportance de chaque datagramme. Mme si ce champ nest pas pris en compte par tous les routeurs, il permettrait denvisager des mthodes de contrle de congestion du rseau qui ne soient pas aectes par le problme quelles cherchent rsoudre. Les 4 bits D, T, R et C permettent de spcier ce que lon veut privilgier pour la transmission de ce datagramme (nouvel RFC 1455). D est mis 1 pour essayer de minimiser le dlai dacheminement (par exemple choisir un cble sous-marin plutt quune liaison satellite), T est mis 1 pour maximiser le dbit de transmission, R est mis 1 pour assurer une plus grande abilit et C est mis 1 pour minimiser les cots de transmission. Si les quatre bits sont 1, alors cest la scurit de la transmission qui doit tre maximise. Les valeurs recommandes pour ces 4 bits sont donnes dans la table 1. Ces 4 bits servent amliorer la qualit du routage et ne sont pas
application telnet/rlogin FTP contrle transfert SMTP commandes donnes NNTP SNMP minimise le dlai 1 1 0 1 0 0 0 maximise le dbit 0 0 1 0 1 0 0 maximise la abilit 0 0 0 0 0 0 1 minimise le cot 0 0 0 0 0 1 0

Tab. 1 Type de service pour les applications standard. des exigences incontournables. Simplement, si un routeur connat plusieurs voies de sortie pour une mme destination il pourra choisir celle qui correspond le mieux la demande. La longueur totale contient la taille totale en octets du datagramme, et comme ce champ est de 2 octets on en dduit que la taille complte dun datagramme ne peut dpasser 65535 octets. Utilise avec la longueur de len-tte elle permet de dterminer o commencent exactement les donnes transportes. Les champs identication, drapeaux et dplacement de fragment interviennent dans le processus de fragmentation des datagrammes IP et sont dcrits dans la sous-section 6.2. La dure de vie (TTL) indique le nombre maximal de routeurs que peut traverser le datagramme. Elle est initialise N (souvent 32 ou 64) par la station mettrice et dcrment de 1 par chaque routeur qui le reoit et le rexpdie. Lorsquun routeur reoit un datagramme dont la dure de vie est nulle, il le dtruit et envoie lexpditeur un message ICMP. Ainsi, il est impossible quun datagramme tourne indniment dans un internet. Ce champ sert galement dans la ralisation du programme traceroute (sous Linux) ou tracert (sous windows). qui sert dterminer quel est litinraire (lensemble des routeurs traverss) entre deux machines, comme dans lexemple ci-dessous.
[deneb.info-ua]:~ > /usr/sbin/traceroute www.google.fr traceroute: Warning: www.google.fr has multiple addresses; using 216.239.59.104 traceroute to www.l.google.com (216.239.59.104), 30 hops max, 38 byte packets

26

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

titan (172.20.41.1) 0.223 ms 0.187 ms 0.180 ms 193.49.146.254 (193.49.146.254) 0.746 ms 0.685 ms 0.677 ms 194.57.169.5 (194.57.169.5) 0.619 ms 0.537 ms 0.567 ms nantes-g3-3.cssi.renater.fr (193.51.182.150) 2.179 ms 2.024 ms 2.066 ms poitiers-pos3-0.cssi.renater.fr (193.51.180.5) 9.888 ms 9.930 ms 9.819 ms orleans-pos1-0.cssi.renater.fr (193.51.180.30) 10.146 ms 10.418 ms 9.971 ms nri-b-pos4-0.cssi.renater.fr (193.51.179.65) 9.758 ms 9.882 ms 9.789 ms abovenet.sfinx.tm.fr (194.68.129.201) 10.436 ms 10.350 ms 10.354 ms pos3-0.cr1.cdg2.fr.above.net (64.125.31.125) 38.483 ms 137.457 ms 147.844 ms so-5-1-0.cr1.lhr3.uk.above.net (64.125.31.129) 17.541 ms 17.580 ms 17.659 ms pos2-0.mpr1.lhr1.uk.above.net (208.184.231.177) 17.385 ms 17.313 ms 17.258 ms 213-152-230-99.google.net (213.152.230.99) 18.653 ms 18.671 ms 18.635 ms 72.14.238.242 (72.14.238.242) 30.789 ms 18.779 ms 18.744 ms 216.239.49.254 (216.239.49.254) 38.100 ms 37.795 ms 37.847 ms 216.239.48.158 (216.239.48.158) 28.736 ms 28.665 ms 216.239.49.121 (216.239.49.121) 3 216.239.49.117 (216.239.49.117) 40.553 ms 39.889 ms 39.769 ms 216.239.59.104 (216.239.59.104) 44.500 ms 37.922 ms 38.019 ms

Le protocole permet de coder quel protocole de plus haut niveau a servi a cr ce datagramme. Les valeurs codes sur 8 bits sont 1 pour ICMP, 2 pour IGMP, 6 pour TCP et 17 pour UDP. Ainsi, la station destinataire qui reoit un datagramme IP pourra diriger les donnes quil contient vers le protocole adquat. Le total de contrle den-tte (header checksum) est calcul partir de len-tte du datagramme pour en assurer lintgrit. Lintgrit des donnes transportes est elle assure directement par les protocoles ICMP, IGMP, TCP et UDP qui les mettent. Pour calculer cette somme de contrle, on commence par la mettre zro. Puis, en considrant la totalit de len-tte comme une suite dentiers de 16 bits, on fait la somme de ces entiers en complment 1. On complmente 1 cette somme et cela donne le total de contrle que lon insre dans le champ prvu. A la rception du datagramme, il sut dadditionner tous les nombres de len-tte et si lon obtient un nombre avec tous ses bits 1, cest que la transmission sest passe sans problme. Les adresses IP source et destination contiennent sur 32 bits les adresses de la machine mettrice et destinataire nale du datagramme. Le champ options est une liste de longueur variable, mais toujours complte par des bits de bourrage pour atteindre une taille multiple de 32 bits pour tre en conformit avec la convention qui dnit le champ longueur de len-tte. Ces options sont trs peu utilises car peu de machines sont aptes les grer. Parmi elles, on trouve des options de scurit et de gestion (domaine militaire), denregistrement de la route, destampille horaire, routage strict, etc... Les champs non encore prciss le sont dans la section suivante car ils concernent la fragmentation des datagrammes.

6.2

La fragmentation des datagrammes IP.

En fait, il existe dautres limites la taille dun datagramme que celle xe par la valeur maximale de 65535 octets. Notamment, pour optimiser le dbit il est prfrable quun datagramme IP soit encapsul dans une seule trame de niveau 2 (Ethernet par exemple). Mais, comme un datagramme IP peut transiter travers Internet sur un ensemble de rseaux aux technologies direntes il est impossible de dnir, a priori (lors de la dnition du RFC), une taille maximale (1500 octets pour Ethernet et 4470 pour FDDI par exemple) des datagrammes 27

IP qui permette de les encapsuler dans une seule trame quel que soit le rseau travers. On appelle la taille maximale dune trame dun rseau le MTU (Maximum Transfert Unit) et elle va servir fragmenter les datagrammes trop grands pour le rseau quils traversent. Mais, si le MTU dun rseau travers est susamment grand pour accepter un datagramme, videmment il sera encapsul tel quel dans la trame du rseau concern. Comme on peut le voir dans la

rseau1 MTU=1500

rseau3 MTU=1500 rseau2 MTU=620

R1

R2

Fig. 23 Fragmentation dun datagramme IP. gure 23 la fragmentation se situe au niveau dun routeur qui reoit des datagrammes issus dun rseau grand MTU et qui doit les rexpdier vers un rseau plus petit MTU. Dans cet exemple, si la station A, relie un rseau Ethernet, envoie un datagramme de 1300 octets destination de la station B, relie galement un rseau Ethernet, le routeur R1 va devoir fragmenter ce datagramme de la manire dcrite ci-dessous. La taille dun fragment est choisie la plus grande possible tout en tant un multiple de 8 octets. Un datagramme fragment nest rassembl que lorsquil arrive destination nale. Mme sils arrivent sur des rseaux avec un plus grand MTU les routeurs ne rassemblent pas les petits fragments. De plus chaque fragment est rout de manire totalement indpendante des autres fragments du datagramme do il provient. Le destinataire nal qui reoit un premier fragment dun datagramme arme un temporisateur de rassemblage, cest--dire un dlai maximal dattente de tous les fragments. Si, pass ce dlai, tous les fragments ne sont pas arrivs il dtruit les fragments reus et ne traite pas le datagramme. Plus prcisment, lordinateur destinataire dcrmente, intervalles rguliers, de une unit le champ TTL de chaque fragment en attente de rassemblage. Cette technique permet galement de ne pas faire coexister au mme instant deux datagrammes avec le mme identiant. Le processus de fragmentation-rassemblage illustr dans la table 2 est rendu possible grce aux dirents champs suivants. Le champ dplacement de fragment (ou oset) prcise la localisation du dbut du fragment dans le datagramme initial. Cet oset est gal au dcalage rel divis par 8 (voir lexemple de la table2). part cela, les fragments sont des datagrammes dont len-tte est quasiment identique celle du datagramme original. Le champ identication est un entier qui identie de manire unique chaque datagramme mis et qui est recopi dans le champ identication de chacun des fragments si ce datagramme est fragment. Par contre, le champ longueur total est recalcul pour chaque fragment. Le champ drapeaux comprend trois bits dont deux qui contrlent la fragmentation. Sil est positionn 1 le premier bit indique que lon ne doit pas fragmenter le datagramme et si un routeur doit fragmenter un tel datagramme alors il le rejette et envoie un message derreur lexpditeur. Un autre bit appel fragments suivre est mis systmatiquement 1 pour tous les fragments qui composent un datagramme 28

datagramme initial en-tte du datagramme : num=N

donnes1 600 octets

donnes2 600 octets

donnes3 100 octets

fragment1 en-tte du fragment1 : num=N, donnes1 dplacement=0, suivre=1 600 octets fragment2 en-tte du fragment2 : num=N, donnes2 dplacement=75, suivre = 1 600 octets fragment3 en-tte du fragment3 : num=N, donnes3 dplacement=150, suivre=0 100 octets Tab. 2 Exemple de fragmentation IP. sauf le dernier. Ainsi, quand le destinataire reoit le fragment dont le bit fragment suivre est 0 il est apte dterminer sil a reu tous les fragments du datagramme initial grce notamment aux champs oset et longueur totale de ce dernier fragment. Si un fragment doit tre nouveau fragment lorsquil arrive sur un rseau avec un encore plus petit MTU, ceci est fait comme dcrit prcdemment sauf que le calcul du champ dplacement de fragment est fait en tenant compte du dplacement inscrit dans le fragment traiter.

6.3
6.3.1

Le routage IP.
Utiliser les tables de routage.

Le routage est lune des fonctionnalits principales de la couche IP et consiste choisir la manire de transmettre un datagramme IP travers les divers rseaux dun internet. On appellera ordinateur un quipement reli un seul rseau et routeur un quipement reli au moins deux rseaux (cet quipement pouvant tre un ordinateur, au sens classique du terme, qui assure les fonctionnalits de routage). Ainsi un routeur rmettra des datagrammes venus dune de ses interfaces vers une autre, alors quun ordinateur sera soit lexpditeur initial, soit le destinataire nal dun datagramme. Dune manire gnrale on distingue la remise directe, qui correspond au transfert dun datagramme entre deux ordinateurs du mme rseau, et la remise indirecte qui est mise en uvre dans tous les autres cas, cest--dire quand au moins un routeur spare lexpditeur initial et le destinataire nal. Par exemple, dans le cas dun rseau Ethernet, la remise directe consiste encapsuler le datagramme dans une trame Ethernet aprs avoir utilis le protocole ARP pour faire la correspondance adresse IP adresse physique (voir les sections 5.3 et 5.5) et mettre cette trame sur le rseau. Lexpditeur peut savoir que le destinataire nal partage le mme rseau que lui-mme en utilisant simplement ladresse IP de destination du datagramme. Il en extrait lidenticateur de rseau et si cest le mme que celui de sa propre adresse IP2 alors la remise directe est susante. En fait, ce mcanisme de remise directe se retrouve toujours lors de la remise dun datagramme entre le dernier routeur et le destinataire nal. Pour sa part, la remise indirecte ncessite de dterminer vers quel routeur envoyer un datagramme IP en fonction de sa destination nale. Ceci est rendu possible par lutilisation dune table de routage spcique chaque routeur qui permet de dterminer vers quelle voie de sortie
Dans le cas dun routeur, reli k rseaux dirents par k interfaces, donc possdant k adresses IP distinctes, la comparaison sera faite pour chacun de ses rseaux.
2

29

envoyer un datagramme destin un rseau quelconque. cause de la structure localement arborescente dinternet la plupart des tables de routage ne sont pas trs grandes. Par contre, les tables des routeurs interconnectant les grands rseaux peuvent atteindre des tailles trs grandes ralentissant dautant le trac sur ces rseaux. Lessentiel du contenu dune table de routage est constitu de quadruplets (destination, passerelle, masque, interface) o : destination est ladresse IP dune machine ou dun rseau de destination passerelle (gateway) est ladresse IP du prochain routeur vers lequel envoyer le datagramme pour atteindre cette destination masque est le masque associ au rseau de destination interface dsigne linterface physique par laquelle le datagramme doit rellement tre expdi. Une table de routage contient notamment une route par dfaut qui spcie un routeur vers lequel sont envoys tous les datagrammes pour lesquels il nexiste pas de route spcique dans la table. Tous les routeurs mentionns dans une table de routage doivent bien sr tre directement accessibles partir du routeur considr. Cette technique, dans laquelle un routeur ne connat pas le chemin complet menant une destination, mais simplement la premire tape de ce chemin, est appele routage par sauts successifs (next-hop routing).
INTERNET

sousrseau SLIP 140.252.13.64 / 27 O1 O2 .65 .66 140.252.13.35

140.252.104.1 gateway 140.252.1.4 sousrseau Ethernet 140.252.1.0 / 24 140.252.1.29 R1 140.252.13.33

sousrseau Ethernet 140.252.13.32 / 27 140.252.13.34 R3

Fig. 24 Exemple dinterconnexion de rseau. La gure 24 donne un exemple dinterconnexion dun rseau de classe B 140.252.0.0 subdivis en 3 sous-rseaux dadresses respectives 140.252.1.0 / 24 pour lEthernet du haut, 14.252.13.32 / 27 pour lEthernet du bas et 140.252.13.64 / 27 pour le sous-rseau SLIP. Les masques de sous-rseau sont associs par dfaut chaque interface dune machine ou sont ventuellement spcis sur chaque ligne des tables de routage. Dans lexemple donn ici, la table de routage simple de lordinateur R3 (sous systme unix Sun) est la suivante3 . destination 140.252.13.65 127.0.0.1 140.252.13.32 default
3

gateway genmask ags refcnt 140.252.13.35 255.255.255.255 UGH 0 127.0.0.1 255.255.255.255 UH 1 140.252.13.34 255.255.255.224 U 4 140.252.13.33 0.0.0.0 UG 0

use interface 0 emd0 0 lo0 25043 emdO 0 emd0

La commande netstat -rn ache la table de routage sous Linux ou Windows.

30

Les ags ont la signication suivante. U La route est en service. G La route est un routeur (gateway). Si ce ag nest pas positionn la destination est directement connecte au routeur, cest donc un cas de remise directe vers ladresse IP de destination. H La route est un ordinateur (host), la destination est une adresse dordinateur. Dans ce cas, la correspondance entre ladresse de destination du paquet router et lentre destination de la table de routage doit tre totale. Si ce ag nest pas positionn, la route dsigne un autre rseau et la destination est une adresse de rseau ou de sous-rseau. Ici, la correspondance des identicateurs de rseaux est susante. D La route a t cre par une redirection. M La route a t modie par une redirection. La colonne compteur de rfrence (refcnt indique le nombre de fois o la route est utilise linstant de la consultation. Par exemple, TCP conserve la mme route tant quil lutilise pour la connexion sous-jacente une application(telnet, ftp, ...). La colonne use ache le nombre de paquets envoys travers linterface de cette route qui est spcie dans la dernire colonne de la mme ligne. Ladresse 127.0.0.1 est celle de lo0, linterface de loopback, qui sert pouvoir faire communiquer une machine avec elle-mme. La destination default sert indiquer la destination de tous les datagrammes qui ne peuvent tre routs par lune des autres routes. Elle est place en dernire position, puisque la dcision de routage se fait selon lordre des lignes de la table. La premire entre (ligne) dont ladresse de destination est gale ladresse de destination du paquet router modulo le masque indique linterface de sortie par laquelle expdier ce paquet. 6.3.2 tablir les tables de routage

Ltablissement dune table de routage est statique lorsquelle rsulte de la conguration par dfaut dune interface, ou de la commande route partir dun chier de dmarrage, ou grce une redirection ICMP (voir la section 6.4). Mais ds que le rseau devient non trivial, on utilise le routage dynamique qui consiste en un protocole de communication entre routeurs qui informent chacun de leurs voisins des rseaux auxquels ils sont connects. Grce ce protocole, les tables de routage voluent dans le temps en fonction de lvolution des routes. Lun des protocoles de routage qui fut parmi les plus utiliss est RIP (Routing Information Protocol ) qui est un protocole de type vecteur de distance. Cest--dire que les messages changs par des routeurs voisins contiennent un ensemble de distances entre routeur et destinations qui permet de ractualiser les tables de routage. Ce protocole utilise une mtrique simple : la distance entre une source et une destination est gale au nombre de sauts qui les sparent. Elle est comprise entre 1 et 15, la valeur 16 reprsentant linni. Ceci implique que RIP ne peut tre utilis qu lintrieur de rseaux qui ne sont pas trop tendus. Un message RIP est encapsul dans un datagramme UDP de la manire dcrite dans la gure 25. Le champ commande x 1 indique une requte pour demander tout ou partie dune table de routage et x 2 pour transmettre une rponse (dautres valeurs hors normes actuellement existent galement). Le champ version est positionn 1 et 2 dans la version de RIP2. Pour des adresses IP, le champ identicateur de famille dadresses est toujours x 2. linitialisation, le dmon de routage envoie une requte RIP chaque interface pour demander les tables de routage compltes de chacun de ses voisins. Sur une liaison point point la requte est envoye lautre extrmit, sinon elle est envoye sous forme de broadcast 31

20 octets 8 octets

entete IP entete UDP commande version id. de famille dadresse adresse IP doit tre 0 doit tre 0 mtrique

doit tre 0 doit tre 0

20 octets rpts pour chaque couple (adresse, mtrique)

au maximum 24 autres routes

Fig. 25 Encapsulation dun message RIP.

sur un rseau. Le fonctionnement normal de RIP consiste diuser des annonces soit toutes les 30 secondes, soit pour une mise jour dclenche par la modication de la mtrique dune route. Ces annonces sont diuses par les routeurs chacun de leurs voisins. Une annonce contient une adresse de destination, accompagne de sa mtrique, de ladresse du prochain routeur,dun indicateur de mise jour rcente et de temporisations. Le processus RIP met jour sa table de routage locale en examinant les entres retournes dont il vrie dabord la validit puis il eectue ensuite les mises jour propres lalgorithme vecteur de distance suivant. Si lentre nexistait pas dans la table et si la mtrique reue nest pas innie, alors on ajoute cette nouvelle entre compose de la destination, de ladresse du prochain routeur (cest celui qui envoie la rponse), de la mtrique reue. On initialise la temporisation correspondante. Si lentre tait prsente avec une mtrique suprieure celle reue, on met jour la mtrique et le prochain routeur et on rinitialise la temporisation. Si lentre tait prsente et que le routeur suivant correspond lmetteur de la rponse, on rinitialise la temporisation et on met jour la mtrique avec celle reue si elles dirent. Dans les autres cas on ignore lentre. Cette mthode correspond lalgorithme de Bellman-Ford de recherche de plus courts chemins dans un graphe. Considrons le rseau de la gure 26 et la table de routage de R1 donne ci-dessous. destination passerelle mtrique B direct 1 C R2 2 D R2 3 E R2 4 32

Fig. 26 Algorithme RIP Si R1 reoit de R4 les annonces suivantes destination passerelle mtrique C R3 2 D direct 1 E direct 1 F R5 2 alors R1 va mettre jour sa table de routage de la manire suivante. destination passerelle mtrique A direct 1 B direct 1 C R2 2 D R4 2 E R4 2 F R4 3 OSPF (Open Shortest Path First) est un autre protocole de routage dynamique qui limine certaines limitations de RIP et est aujourdhui lun des plus usits comme protocole de routage interne (voir ci-dessous). Cest un protocole dtat de liens, cest--dire quici un routeur nenvoie pas des distances ses voisins, mais il teste ltat de la connectivit qui le relie chacun de ses voisins. Il envoie cette information tous ses voisins, qui ensuite le propagent dans le rseau. Ainsi, chaque routeur peut possder une carte de la topologie du rseau qui se met jour trs rapidement. Cette carte est un graphe orient o les arcs sont aects dun cot (distance, dlai de transmission, . . .), qui permet de calculer des routes aussi prcises quavec un algorithme centralis. En fait, RIP et OSPF, sont des protocoles de type IGP (Interior Gateway Protocol ) permettant dtablir les tables des routeurs internes des systmes autonomes. Un systme autonome peut tre dni par un ensemble de routeurs et de rseaux sous une administration unique. Cela peut donc aller dun seul routeur connectant un rseau local linternet, jusqu lensemble des rseaux dune multinationale. La rgle de base tant quun systme autonome assure la connexit totale de tous les points qui le composent en utilisant notamment un protocole de routage interne unique (a priori OSPF). un niveau plus global, linternet apparat donc comme une interconnexion de systmes autonomes (environ 20000 dans le monde) comme illustr dans la gure 27. Dans chaque systme autonome les tables de routage sont maintenues par 33

Fig. 27 Interconnexion de systmes autonomes.

un IGP et sont changes uniquement entre routeurs du mme sous-systme. Pour obtenir des informations sur les rseaux externes, ceux dun autre systme autonome, ils doivent dialoguer avec les routeurs externes de frontire. Ceux-ci sont des points dentre de chaque systme et, via la liaison qui les relie, ils changent des informations sur la connectivit grce au protocole BGP (Border Gateway Protocol ). La particularit de BGP est dtablir des tables de routage en fonction daccords commerciaux, de considration politiques ou de scurit, . . .et non en fonction dun plus court chemin.

6.4

La gestion des erreurs.

Le protocole ICMP (Internet Control Message Protocol ) organise un change dinformation permettant aux routeurs denvoyer des messages derreurs dautres ordinateurs ou routeurs. Bien quICMP tourne au-dessus de IP il est requis dans tous les routeurs cest pourquoi on le place dans la couche IP. Le but dICMP nest pas de abiliser le protocole IP, mais de fournir une autre couche IP, ou une couche suprieure de protocole (TCP ou UDP), le compterendu dune erreur dtecte dans un routeur. Un message ICMP tant achemin lintrieur dun datagramme IP4 illustr dans la gure 28, il est susceptible, lui aussi, de sourir derreurs de transmission. Mais la rgle est quaucun message ICMP ne doit tre dlivr pour signaler une erreur relative un message ICMP. On vite ainsi une avalanche de messages derreurs quand le fonctionnement dun rseau se dtriore. Le champ type peut prendre 15 valeurs direntes spciant de quelle nature est le message envoy. Pour certains types, le champ code sert prciser encore plus le contexte dmission
4

Len-tte de ce datagramme contient un champ protocole gal 1.

34

datagramme IP entte IP entte IP 20 octets type code checksum 1 octet 1 octet 2 octets message ICMP contenu variable suivant le type de message

Fig. 28 Encapsulation dun message ICMP.

du message. Le checksum est une somme de contrle de tout le message ICMP calcule comme dans le cas de len-tte dun datagramme IP (voir la section 6.1). Le dtail des direntes catgories de messages est donn dans la liste ci-dessous o chaque alina commence par le couple (type, code) de la catgorie dcrite. (0,0) ou (8,0) Demande (type 8) ou rponse (type 0) dcho dans le cadre de la commande ping. (3,0-13) Compte-rendu de destination inaccessible dlivr quand un routeur ne peut dlivrer un datagramme. Le routeur gnre et envoie ce message ICMP lexpditeur de ce datagramme. Il obtient ladresse de cet expditeur en lextrayant de len-tte du datagramme, il insre dans les donnes du message ICMP toute len-tte ainsi que les 8 premiers octets du datagramme en cause. Une liste non exhaustive des dirents codes derreurs possibles est : 0 Le rseau est inaccessible. 1 La machine est inaccessible. 2 Le protocole est inaccessible. 3 Le port est inaccessible. 4 Fragmentation ncessaire mais bit de non fragmentation positionn 1. 5 chec de routage de source. 6 Rseau de destination inconnu. 7 Machine destinataire inconnue. 8 Machine source isole (obsolte) 9 Communication avec le rseau de destination administrativement interdite. 10 Communication avec la machine de destination administrativement interdite. 11 Rseau inaccessible pour ce type de service. 12 Machine inaccessible pour ce type de service. 13 Communication administrativement interdite par ltrage. (4,0) Demande de limitation de production pour viter la congestion du routeur qui envoie ce message. (5,0-3) Demande de modication de route expdie lorsquun routeur dtecte quun ordinateur utilise une route non optimale, ce qui peut arriver lorsquun ordinateur est ajout au rseau avec une table de routage minimale. Le message ICMP gnr contient ladresse IP du routeur rajouter dans la table de routage de lordinateur. Les dirents codes possibles ci-aprs expliquent le type de redirection oprer par lordinateur. 0 Redirection pour un rseau. 1 Redirection pour une machine. 2 Redirection pour un type de service et rseau. 3 Redirection pour un type de service et machine. (9,0) Avertissement de routeur expdi par un routeur. (10,0) Sollicitation de routeur dius par une machine pour initialiser sa table de routage. 35

(11,0) TTL dtect 0 pendant le transit du datagramme IP, lorsquil y a une route circulaire ou lors de lutilisation de la commande traceroute. (11,1) TTL dtect 0 pendant le rassemblage dun datagramme. (12,0) Mauvaise en-tte IP. (12,1) Option requise manquante. (13-14,0) Requte (13) ou rponse (14) timestamp, destampillage horaire. (15,0) et (16,0) devenues obsoltes. (17-18,0) Requte (17) ou rponse (18) de masque de sous-rseau.

Les protocoles TCP et UDP.

On prsente ici les deux principaux protocoles de la couche transport dinternet que sont les protocoles TCP (Transmission Control Protocol ) et UDP (User Datagram Protocol ). Tous les deux utilisent IP comme couche rseau, mais TCP procure une couche de transport able (alors mme que IP ne lest pas), tandis que UDP ne fait que transporter de manire non able des datagrammes.

7.1

Le protocole UDP.

Le protocole UDP (rfc 768) utilise IP pour acheminer, dun ordinateur un autre, en mode non able des datagrammes qui lui sont transmis par une application (voir la gure 4). UDP nutilise pas daccus de rception et ne peut donc pas garantir que les donnes ont bien t reues. Il ne rordonne pas les messages si ceux-ci narrivent pas dans lordre dans lequel ils ont t mis et il nassure pas non plus de contrle de ux. Il se peut donc que le rcepteur ne soit pas apte faire face au ux de datagrammes qui lui arrivent. Cest donc lapplication qui utilise UDP de grer les problmes de perte de messages, duplications, retards, dsquencement, ... Cependant, UDP fournit un service supplmentaire par rapport IP, il permet de distinguer plusieurs applications destinataires sur la mme machine par lintermdiaire des ports. Un port est une destination abstraite sur une machine identi par un numro qui sert dinterface lapplication pour recevoir et mettre des donnes. Par exemple, ... discard systat daytime ...

9/udp 11/udp 13/udp

sink null users

est un court extrait du chier /etc/services de la machine deneb.info-ua dans lequel sont enregistrs les numros de port utiliss par chaque application. On y voit que lapplication daytime utilise le port 135 . Chaque datagramme mis par UDP est encapsul dans un datagramme IP en y xant 17 la valeur du protocole (voir la section 6.1). Le format dtaill dun datagramme UDP est donn dans la gure 29. Les numros de port (chacun sur 16 bits) identient les processus metteur et rcepteur. Le champ longueur contient sur 2 octets la taille de len-tte
Certains numros de port (comme 13) sont statiques cest--dire que tous les systmes les associent de la mme manire aux applications et tous les logiciels applicatifs se conforment cette rgle. Dautres sont dynamiques et un numro de port est attribu par les logiciels de communication lapplication au moment o celle-ci le demande.
5

36

port UDP source longueur

port UDP destination checksum

donnes

Fig. 29 Structure dun datagramme UDP.

et des donnes transmises. Puisquun datagramme UDP peut ne transmettre aucune donne la valeur minimale de la longueur est 8. Le checksum est un total de contrle qui est optionnel car il nest pas indispensable lorsque UDP est utilis sur un rseau trs able. Sil est x 0 cest quen fait il na pas t calcul. De manire prcise, UDP utilise len-tte et les donnes mais galement une pseudo-entte pour aboutir lensemble dcrit gure 30. Cette pseudo en-tte
adresse IP source adresseIP destination port UDP source port UDP destination longueur checksum

donnes octet de bourrage

Fig. 30 Champs utiliss pour le calcul du checksum UDP.

comprend les adresses IP source6 et destination du datagramme ainsi quun ventuel octet de bourrage pour aboutir un nombre doctets total pair. partir de cet ensemble, le total de contrle est calcul de la mme manire que dans le cas du datagramme IP (voir section 6.1). Si le rsultat donne un checksum nul, son complment 1, cest--dire 65535 (16 bits 1), est en fait plac dans la zone de contrle. Ce dtail permet dviter la confusion avec le checksum nul qui indique quil na pas t calcul. Prcisons enn que la pseudo en-tte et loctet de bourrage ne sont pas transmis et quils ninterviennent pas dans le calcul du champ longueur. la rception UDP utilise ladresse IP de destination et ladresse IP mettrice inscrite dans len-tte du datagramme IP pour calculer, de la mme manire qu lmission, une somme de contrle qui permettra dassurer que le datagramme est dlivr sans erreur et la bonne machine. Si une erreur de transmission est dtecte, le datagramme UDP est dtruit en silence . Sinon, UDP
Lobtention de cette adresse IP source oblige UDP entrer en contact avec sa couche IP. En eet, sur un ordinateur reli plusieurs rseaux ladresse IP source est celle de linterface de sortie et celle-ci est fonction de la destination nale et de la table de routage gre par IP. Ce dialogue UDP/IP prliminaire lencapsulation du datagramme UDP est une lgre entorse la notion de sparation en couches. Elle est rendue ncessaire, voire indispensable, pour pouvoir sassurer pleinement de la remise bonne destination des datagrammes UDP.
6

37

oriente les donnes du datagramme vers la le dattente associe au numro de port destination pour que lapplication associe celui-ci puisse les y lire.

7.2

Le protocole TCP.

Contrairement UDP, TCP est un protocole qui procure un service de ux doctets orient connexion et able. Les donnes transmises par TCP sont encapsules dans des datagrammes IP en y xant la valeur du protocole 6. Le terme orient connexion signie que les applications dialoguant travers TCP sont considres lune comme un serveur, lautre comme un client, et quelles doivent tablir une connexion avant de pouvoir dialoguer (comme dans le cas de lutilisation du tlphone). Les ordinateurs vrient donc pralablement que le transfert est autoris, que les deux machines sont prtes en schangeant des messages spciques. Une fois que tous les dtails ont t prciss, les applications sont informes quune connexion a t tablie et quelles peuvent commencer leurs changes dinformations. Il y a donc exactement deux extrmits communiquant lune avec lautre sur une connexion TCP7 . Cette connexion est bidirectionnelle simultane (full duplex ) et compose de deux ots de donnes indpendants et de sens contraire. Il est cependant possible dinclure dans len-tte de segments TCP dune communication de A vers B des informations relatives la communication de B vers A. Cette technique de superposition (piggybacking) permet de rduire le trac sur le rseau. Tout au long de la connexion, TCP change un ux doctets sans quil soit possible de sparer par une marque quelconque certaines donnes. Le contenu des octets nest pas du tout interprt par TCP, cest donc aux applications dextrmit de savoir grer la structure du ot de donnes. Si elles sont trop volumineuses, les donnes transmettre pour une application sont fractionnes en fragments dont la taille est juge optimale par TCP. A linverse, TCP peut regrouper des donnes dune application pour ne former quun seul datagramme de taille convenable de manire ne pas charger inutilement le rseau. Cette unit dinformation mise est appele segment comme dj prsent dans la gure 7. Certaines applications demandent que les donnes soient mises immdiatement, mme si le tampon nest pas plein. Pour cela, elles utilisent le principe du push pour forcer le transfert. Les donnes sont alors mises avec un bit marquant cela pour que la couche TCP rceptrice du segment remette immdiatement les donnes lapplication concerne. La abilit fournie par TCP consiste remettre des datagrammes, sans perte, ni duplication, alors mme quil utilise IP qui lui est un protocole de remise non able. Ceci est ralis laide de la technique gnrale de laccus de rception (ACK ) prsente de manire simplie dans la gure 31 Chaque segment est mis avec un numro qui va servir au rcepteur pour envoyer un accus de rception. Ainsi lmetteur sait si linformation quil voulait transmettre est bien parvenue destination. De plus, chaque envoi de segment, lmetteur arme une temporisation qui lui sert de dlai dattente de laccus de rception correspondant ce segment. Lorsque la temporisation expire sans quil nait reu de ACK, lmetteur considre que le segment sest perdu8 et il le rexpdie. Mais il se peut que la temporisation expire alors que le segment a t transmis sans problme, par exemple suite un engorgement de rseau ou une perte de laccus de rception correspondant. Dans ce cas, lmetteur rmet un segment alors que cest
UDP permet lui de mettre en place du broadcasting et du multicasting (via le protocole IGMP) lorsquune application veut envoyer un unique message simultanment vers plusieurs destinataires. 8 Cela peut arriver puisque la couche IP sous-jacente nest pas able.
7

38

metteur segment 1 ACK 1 segment 2 segment 3

rcepteur

metteur segment 1

rcepteur

metteur

rcepteur

segment 1

ACK1 devrait tre reu

segment 1 ACK 1

ACK1 devrait tre reu

ACK 1 segment 1

ACK2+3 transmissions sans problme

cas dun paquet perdu

cas dun paquet dupliqu

Fig. 31 changes de segments TCP.

inutile. Mais le rcepteur garde trace des numros de segments reus, donc il est apte faire la distinction et peut liminer les doublons. La gure 32 donne le format dun segment TCP qui sert aux trois fonctionnalits de TCP : tablir une connexion, transfrer des donnes et librer une connexion. Len-tte, sans option,
port source port destination

numro de squence numro daccus de rception URG ACK PSH RST SYN FIN
longueur dentte rserv

taille de fentre pointeur durgence bourrage

checksum options (sil y en a) donnes

Fig. 32 Format du segment TCP. dun segment TCP a une taille totale de 20 octets et se compose des champs suivants. Le port source et le port destination identient les applications mettrice et rceptrice. En les associant avec les numros IP source et destination du datagramme IP qui transporte un segment TCP on identie de manire unique chaque connexion9 . Le numro de squence 10 donne la position du segment dans le ux de donnes envoyes par lmetteur ; cest--dire la place dans ce ux du premier octet de donnes transmis dans ce segment.
9 10

Cette association (numro IP, port) est appele socket. Cest un entier non sign cod sur 32 bits qui retourne 0 aprs avoir atteint la valeur 231 1.

39

Le numro daccus de rception contient en fait le numro de squence suivant que le rcepteur sattend recevoir ; cest--dire le numro de squence du dernier octet reu avec succs plus 1. De manire prcise, TCP nacquitte pas un un chaque segment quil reoit, mais acquitte lensemble du ot de donnes jusqu loctet k 1 en envoyant un acquittement de valeur k. Par exemple, dans une transmission de 3 segments de A vers B, si les octets de 1 1024 sont reus correctement, alors B envoie un ACK avec la valeur 1025. Puis, si le segment suivant contenant les octets de 1025 2048 se perd et que B reoit dabord correctement le segment des octets de 2049 3072, B nenverra pas daccus de rception positif pour ce troisime segment. Ce nest que lorsque B recevra le deuxime segment, quil pourra envoyer un ACK avec la valeur 3073, que A interprtera comme lacquittement des deux derniers segments quil a envoys. On appelle cela un acquittement cumulatif. La longueur den-tte contient sur 4 bits la taille de len-tte, y compris les options prsentes, code en multiple de 4 octets. Ainsi une en-tte peut avoir une taille variant de 20 octets (aucune option) 60 octets (maximum doptions). Le champ rserv comporte 6 bits rservs un usage ultrieur. Les 6 champs bits de code qui suivent permettent de spcier le rle et le contenu du segment TCP pour pouvoir interprter correctement certains champs de len-tte. La signication de chaque bit, quand il est x 1 est la suivante. URG, le pointeur de donnes urgentes est valide. ACK, le champ daccus de rception est valide. PSH, ce segment requiert un push. RST, rinitialiser la connexion. SYN, synchroniser les numros de squence pour initialiser une connexion. FIN, lmetteur a atteint la n de son ot de donnes. La taille de fentre est un champ de 16 bits qui sert au contrle de ux selon la mthode de la fentre glissante. Il indique le nombre doctets (moins de 65535) que le rcepteur est prt accepter. Ainsi lmetteur augmente ou diminue son ux de donnes en fonction de la valeur de cette fentre quil reoit. Le checksum est un total de contrle sur 16 bits utilis pour vrier la validit de len-tte et des donnes transmises. Il est obligatoirement calcul par lmetteur et vri par le rcepteur. Le calcul utilise une pseudo-entte analogue celle dUDP (voir la section 7.1). Le pointeur durgence est un oset positif qui, ajout au numro de squence du segment, indique le numro du dernier octet de donne urgente. Il faut galement que le bit URG soit positionn 1 pour indiquer des donnes urgentes que le rcepteur TCP doit passer le plus rapidement possible lapplication associe la connexion. Loption la plus couramment utilise est celle de la taille maximale du segment TCP quune extrmit de la connexion souhaite recevoir. Ainsi, lors de ltablissement de la connexion il est possible doptimiser le transfert de deux manires. Sur un rseau haut dbit, il sagit de remplir au mieux les paquets, par exemple en xant une taille qui soit telle que le datagramme IP ait la taille du MTU du rseau. Sinon, sur un rseau petit MTU, il faut viter denvoyer des grands datagrammes IP qui seront fragments, car la fragmentation augmente la probabilit de pertes de messages. Ltablissement et la terminaison dune connexion suit le diagramme dchanges de la gure 33. Lextrmit demandant louverture de la connexion, est le client. Il met un segment SYN (o le bit SYN est x 1) spciant le numro de port du serveur avec lequel il veut se connecter. Il expdie galement un numro de squence initial N . Cette phase est appele ouverture active et consomme un numro de squence. Le serveur rpond en envoyant un 40

client ouverture active SYN sq=N ACK=N+1 SYN sq=P ACK=P+1

serveur

ouverture passive

changes de donnes demande de fin de 1/2 connexion FIN sq=N ACK sq=N+1

connexion tablie

information de lapplication

FIN sq=P ACK sq=P+1

demande de fin de 1/2 connexion terminaison de connexion

Fig. 33 tablissement et terminaison dune connexion TCP.

segment dont les bits ACK et SYN sont xs 1. Ainsi, dans un mme segment il acquitte le premier segment reu avec une valeur de ACK=N + 1 et il indique un numro de squence initial. Cette phase est appele ouverture passive. Le client TCP doit videmment acquitter ce deuxime segment en renvoyant un segment avec ACK=P + 111 . La terminaison dune connexion peut tre demande par nimporte quelle extrmit et se compose de deux demi-fermetures puisque des ots de donnes peuvent scouler simultanment dans les deux sens. Lextrmit qui demande la fermeture (le client dans lexemple de la gure 33 met un segment o le bit FIN est x 1 et o le numro de squence vaut N . Le rcepteur du segment lacquitte en retournant un ACK=N + 1 et informe lapplication de la demi-fermeture de la connexion. partir de l, les donnes ne peuvent plus transiter que dans un sens (de lextrmit ayant accept la fermeture vers lextrmit layant demande), et dans lautre seuls des accuss de rception sont transmis. Quand lautre extrmit veut fermer sa demi-connexion, elle agit de mme que prcdemment ce qui entrane la terminaison complte de la connexion. Le transfert de donnes de TCP est de deux types : le transfert interactif dans lequel chaque segment transporte trs peu doctets, voire un seul, et le transfert en masse o chaque segment transporte un maximum doctets. Un exemple de transfert interactif est celui gnr par la commande rlogin lance depuis un client vers un serveur. Dans ce cas de gure, tous les caractres taps par lutilisateur sur le client sont envoys vers le serveur en utilisant un caractre par segment, et ils sont ensuite renvoys en sens inverse par le serveur pour un cho sur lcran du client. Tous les segments changs dans ce cas l ont leur bit PSH x 1. Or, tout segment doit tre acquitt dans un sens comme dans lautre ; ce qui devrait amener au diagramme dchanges illustr dans le a) de la gure 34. En fait, TCP gre ce type dchange
11

Un mcanisme comportant 2 couples de segments (SYN, ACK SYN) gre le cas o deux demandes de

41

client client frappe de c c acquittement de c cho de c affichage de c acquittement de lcho serveur frappe de c client c acquittement de c cho de c serveur frappe de d frappe de ate newline affichage de d d acquittement de d cho de d

serveur

affichage de c dlai dattente

acquittement de lcho ate newline acquittement et cho jusqu newline acquittement des chos

acquittement de lcho

a)

b)

c)

Fig. 34 change de donnes interactif.

avec la procdure dacquittement retard qui consiste envoyer lacquittement en lincluant dans un segment qui transporte galement des donnes comme illustr dans le b) de la gure 34. Pour cela lacquittement est gnralement retard de 200ms dans le but dattendre dventuelles donnes transmettre. Cependant, dans ce contexte la frappe de la commande date sur le client provoquerait quand mme lchange de 15 datagrammes IP de 41 octets12 , pour transporter chaque fois seulement 1 octet utile. Ce type de situation est peu gnant sur un LAN mais devient trs vite prjudiciable au bon fonctionnement dun WAN. Une solution ce problme est lalgorithme de Nagle (RFC 896) qui spcie quune connexion TCP ne peut avoir seulement un petit segment non encore acquitt. Ainsi, si un rseau a un fort dbit et nest pas du tout charg la procdure sera celle du b) de la gure 34. Par contre, ds que le temps de transfert est non ngligeable, les acquittements vont arriver plus lentement que la frappe des caractres par lutilisateur du poste client. Dans ce cas, la couche TCP du client va accumuler de petits volumes de donnes (quelques caractres) et les envoyer dans le mme segment TCP diminuant ainsi considrablement le nombre dchanges comme illustr dans le c) de la gure 34. Dans les cas o de petits messages doivent tre remis sans dlai (mouvement de souris dans le cas dun serveur X) lalgorithme de Nagle doit tre invalid pour donner une impression de temps rel. Dans le cas dun transfert de donnes en masse, TCP utilise la technique de la fentre glissante pour contrler le ux des changes. Ceci est primordial quand un micro ordinateur communique avec un gros ordinateur, sinon le tampon dentre du micro sera trs vite satur. Ceci consiste en un contrle de ux de bout en bout. Mais il sagit aussi de rguler le trac en fonction de la charge des routeurs et du dbit des rseaux traverss. On rappelle que lensemble dun ux de donnes unidirectionnel dune machine A vers une machine B est constitu dune squence doctets tous numrots individuellement. La fentre glissante va consister xer quels sont les octets appartenant ce ux que A peut mettre comme cest illustr dans la gure 35. Dans cet exemple la fentre couvre les octets de 4 9, car la taille de la fentre courante est 6 et que tous les octets jusquau troisime inclus ont t mis et acquitts. A tout instant TCP calcule sa fentre utilisable qui est constitue des octets prsents dans la fentre et non encore envoys. Ces octets sont gnralement immdiatement transmis. Pour le ot de A vers B, la taille de la fentre est contrle par B qui envoie dans chacun de ses accuss de rception la taille de la fentre quil dsire voir utiliser. Si la demande exprime une augmentation, A dplace le bord droit de sa fentre courante et met immdiatement les octets qui viennent dy entrer.
connexion ont lieu en mme temps chacune dans un sens. 12 Pour chacun des 5 caractres d a t e newline, il faut 1 octet pour le caractre+20 octets den-tte TCP+ 20 octets den-tte IP.

42

fentre courante fentre utilisable

8
octets prets

10

11

12

.......

octets mis et acquitts

octets mis et non acquitts

octets bloqus

Fig. 35 Fentre glissante de TCP.


ouverture de la connexion 1

SYN sq=1000 MSS=1024 ACK=1001 WIN=4096 ACK PSH 10012025 PSH 20253049 PSH 30494073 ACK=3049 WIN=4096 ACK=4073 WIN=3072

1001 2

2024 2025

3048 3049 4072 4073

5096 5097 6120 6121

7144 7145

8168

3 dbut 4 des transferts 5 6

fenetre annonce par segment 2 mis par 4 mis par 5 mis par 6 7 8

acquitts par 7

fenetre annonce par 7 acquitt par 8 fenetre annonce par 8

PSH 40735097 ACK=5097 WIN=4096 10

mis par 9 acquitt par 10 mis par 11 mis par 12 mis par 13 14 acquitts par 14 annonce par 14 fenetre annonce par 10

11 12 13

PSH 50976121 PSH 61217145 PSH 71458169 ACK=8169 WIN=4096

fermeture de la connexion

Fig. 36 Exemple dvolution de fentre glissante.

Si la demande exprime une diminution, il est dconseill de dplacer rellement le bord droit de la fentre vers la gauche. Ce rtrcissement est opr lors des glissements de la fentre vers la droite avec larrive des accuss de rception. La gure 36 illustre13 les changes de segments entre un metteur A et un rcepteur B et lvolution de la fentre glissante de A suivant les indications de B.

Les applications.

On dcrit ici de manire succincte quelques applications majeures que lon trouve sur Internet. Toutes ces applications sont bties sur le modle client-serveur savoir quune des deux entits du dialogue rend des services lautre entit.
Seules les informations ncessaires la comprhension du processus de fentre glissante sont prsents, dautres dtails sont omis.
13

43

8.1

Protocole de dmarrage : BOOTP.

BOOTP (Bootsrap Protocol ) est un protocole de dmarrage de terminaux X ou stations sans disque qui utilise UDP comme couche de transport et est gnralement associ TFTP (voir 8.3) ou NFS (voir 8.2). Comme RARP (voir section 5.5), il sert principalement fournir son adresse IP une machine que lon dmarre sur un rseau. Cependant il est plus intressant que RARP, car il se situe un niveau suprieur, il est donc moins li au type de matriel du rseau. De plus, il transmet plus dinformation que RARP qui, lui, ne renvoie quune adresse IP. Lautre protocole, DHCP (Dynamic Host Conguration Protocol, voir 3.2) permet, lui, dattribuer cette adresse IP dynamiquement, cest--dire que ladresse IP aecte la machine qui dmarre peut changer dun dmarrage lautre. BOOTP fait cela de manire statique en utilisant un serveur (ou plusieurs) qui contient dans un chier ladresse IP distribuer chaque machine. Le chier est maintenu jour par ladministrateur du rseau et contient pour chaque machine plusieurs informations comme illustr ci-aprs14 .
# ......... # # ba -- broadcast bootp reply for testing with bootpquery # bf -- bootfile (for tftp download) # ds -- domain name server IP address # gw -- gateway IP address # ha -- hardware address (link level address) (hex) # hd -- home directory for bootfile (chrooted to tftp home directory) # hn -- send nodename (boolean flag, no "=value" needed) # ht -- hardware type (ether) (must precede the ha tag) # ip -- X terminal IP address # sm -- network subnet mask # tc -- template for common defaults (should be the first option listed) # vm -- vendor magic cookie selector (should be rfc1048) # T144 remote config file name (file name must be enclosed in "") # # H104 (Pascal Nicolas) prise I141 : tx-pn:\ ht=Ethernet:\ ha=0x08001103ec2c:\ bf=/usr/tekxp/boot/os.350:\ ip=193.49.162.63:\ sm=255.255.255.0:\ gw=193.49.162.220:\ vm=rfc1048:\ ds=193.49.162.9:

Le format du message BOOTP est donn dans la gure 37. Le code vaut 1 pour une requte et 2 pour une rponse, le type de matriel vaut par exemple 1 pour un rseau Ethernet et dans ce cas le champ longueur de ladresse physique vaut 6 (octets). Le champ compteur de saut vaut 0 en standard, mais si la demande transite par un routeur celui-ci lincrmente de 1. Lidenticateur de transaction est un entier de 32 bits x alatoirement et qui sert faire correspondre les rponses avec les requtes. Le nombre de secondes est x par le client et sert un serveur secondaire de dlai dattente avant quil ne rponde au cas o le serveur primaire serait en panne. Parmi les 4 adresses IP dune requte, le client remplit celles quil connat et
14

Ces informations ne sont plus jour en 2005 et sont donnes titre dillustration uniquement.

44

code

longueur adresse compteur matriel de saut id. de transaction nombre de secondes non utilis type de matriel adresse IP du client votre adresse IP adresse IP du serveur adresse IP du routeur adresse matrielle du client nom de machine du serveur nom du fichier de boot information spcifique du vendeur

Fig. 37 Format de requte ou rponse BOOTP.

met les autres 0 (gnralement il nen connat aucune). Dans sa rponse, le serveur indique ladresse IP de la machine client dans le champ votre adresse IP et sa propre adresse dans le champ adresse IP du serveur. Il peut aussi donner son nom termin par le caractre nul. Si un proxy est utilis, celui-ci indique son adresse dans le champ prvu. Le champ adresse matrielle du client sert celui-ci pour y indiquer son adresse physique. Ainsi cette adresse sera plus facilement disponible pour le processus BOOTP serveur que celle place dans la trame Ethernet. Le nom du chier de boot est le nom du chier transmis par le serveur au client pour que celui-ci puisse ensuite continuer son dmarrage. La dernire partie du message est rserve des caractristiques particulires donnes par chaque constructeur de matriel et permet dajouter des fonctionnalits supplmentaires. Quand il met une requte BOOTP, le client lencapsule dans un datagramme UDP en xant le port source 68 et le port destination (celui du serveur) 67. Dans la majorit des cas, il ne sait pas prciser la valeur de ladresse IP de destination et la xe donc gale 255.255.255.255 ladresse de diusion. Ainsi, la trame Ethernet correspondante sera diuse toutes les machines du rseau et grce au numro de port seuls le(s) serveur(s) BOOTP reoit le message et le traite. Pour cela, il consulte la table de correspondance et retourne sa rponse en y xant ladresse IP du client, le nom du chier tlcharger et ladresse IP du serveur. Il reste un problme rgler. Lors de lmission du datagramme IP contenant la rponse, la couche de liens doit tablir la correspondance adresse IP/adresse physique du client pour construire la trame physique mettre. Or, cette correspondance ne peut tre connue dans la table ARP cet instant puisque la machine client dmarre. Et si le logiciel de liens met une requte ARP (voir section 5.5) la machine client ne sait pas rpondre puisquelle ne peut pas reconnatre son adresse IP quelle ne connat pas encore. Il existe deux solutions ce problme. Soit, le module BOOTP, qui dispose de cette correspondance, enrichit la table ARP avant dmettre. Soit, il nen a pas les droits et alors il diuse la rponse toutes les machines du rseau, mais cette solution est viter. 45

8.2

Systme de chiers en rseau : NFS.

NFS (Network File System) est un systme qui permet de rendre transparente lutilisation de chiers rpartis sur direntes machines. Son architecture gnrale est donne dans la gure 38. NFS utilise principalement UDP, mais ses nouvelles implantations utilisent galement
processus utilisateur

accs local au fichier

client NFS

serveur NFS

accs local au fichier

TCP/UDP IP noyau client disque local

TCP/UDP IP noyau serveur disque local

Fig. 38 Conguration client serveur de NFS. TCP. Lorsquun processus utilisateur a besoin de lire, crire ou accder un chier le systme dexploitation transmet la demande soit au systme de chier local, soit au client NFS. Dans ce dernier cas, le client NFS envoie des requtes au serveur NFS de la machine distante. Ce serveur sadresse la routine locale daccs au chiers qui lui retourne le rsultat retransmis vers le client par la connexion UDP (ou TCP) IP. Il ne sagit pas ici de transfrer un chier dune machine lautre mais simplement de le rendre disponible de manire totalement transparente.

8.3

Transfert de chier : TFTP et FTP.

TFTP (Trivial File Transfert Protocol ) et FTP (File Transfert Protocol ) permettent tous les deux de transfrer des chiers dune machine une autre. Cependant TFTP, bti sur UDP, est beaucoup plus sommaire que FTP qui utilise TCP. Lutilisation de FTP depuis un poste client pour aller chercher ou dposer un chier sur un serveur ncessite de la part de lutilisateur de se connecter avec un nom et un mot de passe. Donc, si lutilisateur nest pas reconnu la connexion FTP ne sera pas tablie. Dans le cas particulier dun serveur ftp public, la connexion se fait avec le nom anonymous et il est conseill de donner son adresse lectronique comme mot de passe. Dans le cas de TFTP, aucune authentication pralable nest ncessaire. Cest pourquoi, lorsquun serveur TFTP est install sur une machine il nore des possibilits daccs qu un nombre restreint de chiers bien spciques. Ces chiers sont gnralement des chiers de dmarrage de terminaux X ou stations sans disque qui les rcuprent aprs en avoir t informs par le protocole BOOTP (voir section 8.1). Les dirents messages TFTP sont donns dans la gure 39 et se distingeunt selon leur code dopration. 46

RRQ / WRQ nom de fichier

mode

DATA

numro de bloc numro de bloc numro derreru

donnes (0512 octets)

ACK

ERROR

message derreur

Fig. 39 Format des messages TFTP.

RRQ indique une requte de lecture de chier (transmis au client) et WRQ une requte dcriture de chier (transmis au serveur). Ensuite, vient le nom du chier termin par un caractre nul. Le champ mode, termin par un caractre nul galement, est gal netascii pour indiquer que le chier est un chier texte o chaque ligne est termine par CR LF. Ces deux caractres doivent peut-tre tre convertis dans la syntaxe utilise par la machine locale pour marquer les ns de ligne des chiers textes. Il est gal octet dans le cas dun chier binaire transfrer tel quel. DATA dbute les paquets de donnes transmettre. Un chier de N octets sera dcoup en N div 512 tels paquets contenant chacun 512 octets de donnes et un paquet contenant N mod 512 octets qui sera reconnu comme le paquet nal puisquil contient moins de 512 octets. Le champ numro de bloc sert numroter chaque paquet de donnes et est utilis pour laccus de rception. ACK indique que le message acquitte le bloc de numro spci dans le message. TFTP est oblig de sassurer lui mme de la bonne transmission des donnes puisquil utilise UDP qui est un protocole non able. Le protocole dacquittement est de type stop-and-wait car aprs avoir envoy un paquet lmetteur attend laccus de rception du rcepteur avant denvoyer le paquet suivant. Si lmetteur ne reoit pas dacquittement avant lexpiration de son dlai dattente il rexpdie le paquet perdu. De mme, le rcepteur qui ne reoit plus de paquets aprs son dlai dattente renvoie nouveau son acquittement. Seulement, si le ACK k est retard mais non perdu, lmetteur va retransmettre le paquet k que le rcepteur va nouveau acquitter. Donc, deux ACK k vont nalement parvenir lmetteur ce qui va dclencher de sa part lenvoi de deux paquets k + 1, qui provoqueront deux ACK k + 1 et donc lenvoi de deux paquest k+2, etc... Les messages dbutant par ERROR indiquent une erreur de transmission et transportent un code et un message derreur. Lorsque cela arrive, le transfert est immdiatement interrompu. Lorsquil demande une connexion le client sattribue un port phmre UDP et envoie sa requte au serveur sur le port 69 prvu pour FTP. ce moment-l, le serveur va sattribuer un nouveau port phmre qui devra tre dtect par le client et qui servira tout le temps de la connexion. Il ne conserve pas le port 69 tout au long de lchange car cela lobligerait soit refuser dautres connexions pendant ce temps, soit les multiplexer ensemble ce qui alourdirait le protocole. Quant lui, FTP est dni au-dessus de TCP et utilisent deux connexions TCP IP pour 47

fonctionner comme illustr dans la gure 40. Tout dabord on y voit que le client utilise FTP
client

utilisation sur un terminal

interface utilisateur serveur interprteur de protocole utilisateur interface de protocole du serveur

connexion de controle

systme de fichiers

fonctions de transfert de donnes

connexion de donnes

fonctions de transfert de donnes

systme de fichiers

Fig. 40 Tansfert de chier par FTP. travers une interface qui peut tre graphique (logiciels Filezilla, XFTP, WS-FTP, Fetch, ...) ou texte (mode commandes dunix ou windows par exemple). La connexion de contrle est tablie de faon normale en mode client serveur sur le port 21 du serveur et sur un port alatoire du client pour tout ce qui est de type transfert interactif. Elle sert donc tout le temps de la session transfrer les commandes du client et presque toutes les rponses du serveur. La connexion de donnes sert transfrer les chiers et les contenus de rpertoires du serveur, cest--dire tous les transferts de masse. En eet, lorsque le client demande le contenu dun rpertoire la rponse peut tre trs longue et il est prfrable de lenvoyer sur cette connexion plutt que sur celle du transfert interactif. chaque fois quun transfert de masse doit tre eectu, dans un sens ou dans lautre, le client initie une connexion de donnes en sattribuant un port (il dmarre un serveur) et envoie au serveur ftp, via la connexion de contrle, une demande de connexion grce la commande PORT. Le serveur se sert alors du numro de port reu pour tablir la connexion de donnes entre son port 20 et ce port indiqu par le client. Dans le cas du mode passif (indiqu par une commande PASV), le serveur initie sa connexion de donnes sur un port non privilgi et informe le client, grce la commande PORT, du numro de port sur lequel le serveur temporaire est dmarr. Le client peut alors se connecter sur ce port et le transfert peut commencer.

8.4

Connexion distance : Telnet et Rlogin.

Telnet et Rlogin sont deux applications qui permettent un utilisateur de se connecter distance sur un ordinateur, pourvu que cet utilisateur y dispose dun accs autoris. Ces deux applications permettent toutes les deux de prendre le contrle (du moins partiellement) dun ordinateur distant, mais Rlogin ne permet de le faire quentre deux machines Unix, tandis quil existe des clients Telnet pour de nombreuses plateformes (Unix, Windows, MacOs, ...). Telnet et Rlogin sont tous les deux btis sur TCP. Le schma de fonctionnement de Telnet est donn dans la gure 41. Telnet dnit une 48

client Telnet

serveur Telnet

login shell

driver de terminal noyau du SE

TCP/IP

TCP/IP

driver de pseudo terminal noyau du SE

utilisateur sur un terminal

Fig. 41 Schma de fonctionnement de lapplication Telnet.

interface de communication, le terminal virtuel de rseau, pour que clients et serveurs naient pas connatre les dtails dimplantation de chaque systme dexploitation. De cette faon, les changes se font dans un langage commun compris la fois par le client et le serveur qui nont qu assurer une traduction de (ou vers) leur propre langage vers (depuis) ce langage cible.

8.5

Courrier lectronique

Lchange de courrier lectronique au sein dinternet est gr par dirents protocoles selon la tche laquelle on sintresse. SMTP (Simple Mail Transfert Protocol ) achemine le courrier jusqu la boite aux lettres, il gre aussi les messages derreurs. Les logiciels qui implmentent ce protocole sont des MTA (Mail Transfert Agent), ex : les logiciels libres :sendmail, postx,. . ., et propritaires Microsoft Exchange POP (Post Oce Protocol) ou POP3, dlivre le courrier lutilisateur nal (ouvre la bote aux lettres). IMAP (Internet Message Access Protocol est identique POP mais en plus volu. Dans le cas dune utilisation via un logiciel de courrier lectronique (Thunderbird, Eudora, Outlook, . . .) aussi bien en expdition quen rception, lensemble des changes peut se synthtiser comme dans la gure 42. Dans ce cas le logiciel de courrier lectronique de lutilisateur est un client (SMTP, POP, IMAP) dun serveur (SMTP, POP, IMAP). SMTP (Simple Mail Transfer Protocol ) est bti sur TCP (port 25) et il permet dchanger des messages entre un expditeur et un (ou plusieurs) destinataire pourvu que leurs adresses soient connues. Une adresse de courrier lectronique se prsente sous la forme nom@domaine est doit tre compose de lettres (minuscules ou majuscules sont indirencies), de chires, de _ (soulign) et de . (point). Il est noter quun mcanisme dalias permet de dnir des quivalences entre adresses, notamment de prciser quelle machine parmi toutes celles dun mme domaine gre rellement le courrier de chaque utilisateur (ceci relve du DNS). Une des caractristiques principales du protocole SMTP est deectuer une remise dire du courrier qui assure que le service sera correctement rendu mme si le rseau, ou lordinateur destinataire, est momentanment en panne ou surchargs. Dans un premier temps, lutilisateur rdige un message laide de son logiciel de courrier lectronique et lenvoi au serveur SMTP spci dans la conguration du logiciel (a priori celui de son fournisseur daccs internet). A partir de l, le logiciel de courrier et lordinateur 49

message de toto@machin.fr titi@truc.fr domaine machin.fr domaine truc.fr

serveur SMTP

serveur SMTP logiciel de courrier lectroniquede titi@truc.fr

logiciel de courrier lectroniquede toto@machin.fr

serveur POP (ou IMAP)

SMTP

POP ou IMAP

Fig. 42 Expdition et rception dun courrier lectronique.

de lutilisateur ninterviennent plus. Ce courrier dabord copi dans une mmoire de spool accompagn des noms de lexpditeur, du rcepteur, de lordinateur destinataire et de lheure de dpt. Puis le systme de messagerie active en tche de fond le processus de transfert de courrier qui devient alors un client. Il associe le nom de lordinateur destinataire une adresse IP et tente dtablir une connexion TCP avec le serveur SMTP de celui-ci. Si cela russit, le processus de transfert envoie une copie du message au destinataire qui lenregistre dans une zone de spool spcique. Lorsque le client et le serveur se sont conrms lenvoi et lenregistrement complet du message le client supprime sa copie locale. Si le client narrive pas tablir une connexion TCP, ou si elle est rompue lors du transfert dun message, il enregistre lheure de cette tentative et ressaye quelque temps plus tard dexpdier le message. Dune manire gnrale un systme de messagerie examine rgulirement sa zone de spool en envoi et tente dexpdier les messages (nouveau ou en attente cause dchec) qui sy trouvent. Il nira par retourner son expditeur un message impossible expdier aprs un dlai important. Ce mode de fonctionnement (tablir une connexion de bout en bout) assure quaucun message ne peut se perdre, soit il est dlivr, soit son expditeur est prvenu de lchec. Le tableau ci-dessous donne le dtail dune connexion SMTP russie qui envoie un message de lutilisateur toto@expediteur.fr dont le courrier est gr par le serveur exp.expediteur.fr vers lutilisateur titi@destinataire.fr dont le courrier est gr par dest.destinataire.fr. La premire colonne dcrit les tapes, la deuxime (respectivement troisime) colonne indique les commandes envoyes par lexpditeur (respectivement destinataire) du courrier. 50

client SMTP expditeur exp.expediteur.fr exp.expediteur.fr demande une connexion TCP sur le port 25 exp.destinataire.fr dest accepte la demande de connexion exp sidentie HELO exp.expediteur.fr dest accepte lidentication exp indique lexpditeur dest accepte lexpditeur exp donne le destinataire dest a vri et accept le destinataire exp va envoyer les donnes dest est prt accepter le message exp envoie le message termin par une ligne ne contenant quun point. dest accepte le message exp demande terminer la connexion dest accepte de terminer la connexion

sur

serveur SMTP destinataire exp.destinataire.fr

sur

220 dest.destinataire.fr ...

250 dest.destinataire.fr Hello exp.expediteur.fr pleased to meet you

MAIL From :<toto@expediteur.fr> 250 <toto@expediteur.fr> Sender Ok RCPT To :<titi@destinataire.fr 250 <titi@destinataire.fr> Recipient Ok DATA 354 Enter mail, end with ... bla, blabla

. 250 OK QUIT 221 dest.destinataire.fr closing connection

Lorsquun utilisateur relve une boite aux lettres laide dun logiciel de courrier lectronique celui-ci se connecte au serveur POP grant la boite que lon veut relever en envoyant lidentiant de la boite et un mot de passe ncessaire pour lauthentication. Puis, le serveur POP envoie tous les messages au logiciel de courrier et les supprime de lendroit o ils avaient t dposs par le serveur SMTP. Dans le cas dun serveur IMAP, la phase de connexion et didentication est identique celle de POP. Par contre IMAP ore plus de fonctionnalits : par exemple, on peut laisser les messages dans la boite aux lettres tout en en rcuprant une copie dans le logiciel de courrier lectronique, on peut crer des dossiers pour classer les messages directement sur le serveur IMAP et non pas sur le poste de lutilisateur, etc. . .Ceci est particulirement utile si lon consulte son courrier depuis plusieurs endroits. Depuis quelques annes, le web est devenu une interface daccs trs utilise pour le web et connu sous le nom de webmail . Dans ce cas, lutilisateur emploie un navigateur web pour 51

message de toto@machin.fr titi@truc.fr

serveur web

domaine machin.fr

domaine truc.fr

serveur SMTP

serveur SMTP

<html> POST Blabla Blabla <HTML>

serveur POP (ou IMAP) HTTP SMTP POP ou IMAP

serveur web

Fig. 43 Webmail.

consulter des pages web spciales qui jouent le rle de client SMTP, POP ou IMAP selon la fonctionnalit demande comme illustr dans la gure 43.

8.6

News : nntp

NNTP (Network News Transfert Protocol ) est le protocole dchange des news ou forums de discussions travers Usenet (nom donn au rseau logique constitu des serveurs de news dissmins sur la pante). Les noms des forums sont organiss en hirarchie fr.* groupes francophones fr.lettres.* fr.comp.* ... comp.* groupes relatifs linformatique rec.* groupes relatifs des loisirs Certains forums sont modrs, ie : le dpt dun message doit tre valid par une personne autorise (dnie lors de la cration du forum). Comme illustr dans la gure 44, le protocole NNTP assure lchange des news entre les serveurs et galement la communication entre serveur et postes clients aussi bien pour la lecture que pour lcriture de messages. Ainsi, lorquun utilisateur poste un article dans un groupe de news, il est dans un premier temps dpos sur le serveur de news auquel le poste client est reli. Puis, ce serveur va rexpdier cet article aux dirents serveurs auxquels il est reli, qui eux-mmes procderont de la sorte. 52

serveur de news

poste client

serveur de news

poste client

poste client

serveur de news

Fig. 44 Communication au sein de Usenet.

Ainsi, en quelques heures un message post Angers peut se retrouver sur un serveur de news en Australie. Mais, ce processus de diusion systmatique, nest pas assur pour tous les groupes de news existant au niveau mondial, car chaque serveur de news nassure le relai que de certains groupes. En eet, il nest peut-tre pas trs utile de diuser sur les serveurs de news japonais le groupe fr.petites-annonces.automobiles :-). De plus, tout serveur de news xe pour chaque groupe la dure de conservation des messages sur ses disques durs. De manire plus technique, NNTP utilise TCP via le port 119, le client envoyant une commande laquelle le serveur rpond par un code numrique ventuellement suivi par des donnes. Ces donnes sont disposes sur plusieurs lignes termines chacune par CR/LF et termines par une ligne rduite un point. Un serveur de news ne rpond pas systmatiquement toutes les requtes des postes clients, mais uniquement celles provenant de machines quil autorise, par exemple celles de son domaine. Ceci est illustr ci-aprs o lon voit que le serveur de news news.univ-angers.fr accepte la connexion depuis une machine situe en Allemagne uniquement pour la lecture des news et accepte la lecture et lcriture de messages depuis une machine situe sur son rseau. [brehat.haiti.cs.uni-potsdam.de]telnet news.univ-angers.fr 119 Trying 193.49.144.4... Connected to news.univ-angers.fr. Escape character is ^]. 201 univ-angers.fr InterNetNews NNRP server INN 1.7.2 08-Dec-1997 ready (no posting). [helios]telnet news.univ-angers.fr 119 Trying 193.49.144.4... Connected to news.univ-angers.fr. 53

Escape character is ^]. 200 univ-angers.fr InterNetNews NNRP server INN 1.7.2 08-Dec-1997 ready (posting ok). La liste des commandes connues dun serveur de news peut-tre obtenue en linterrogeant au moyen de la commande help, comme dcrit ci aprs.

help 100 Legal commands authinfo user Name|pass Password|generic <prog> <args> article [MessageID|Number] body [MessageID|Number] date group newsgroup head [MessageID|Number] help ihave last list [active|active.times|newsgroups|distributions|distrib.pats|overview.fmt|subscripti listgroup newsgroup mode reader newgroups yymmdd hhmmss ["GMT"] [<distributions>] newnews newsgroups yymmdd hhmmss ["GMT"] [<distributions>] next post slave stat [MessageID|Number] xgtitle [group_pattern] xhdr header [range|MessageID] xover [range] xpat header range|MessageID pat [morepat...] xpath MessageID Report problems to <newsmaster@univ-angers.fr@news.univ-angers.fr> . Quant aux codes de rponses du serveur de news, ils sont dcrits dans la table 3. Le rle de quelques commandes de NNT est illustr ci-aprs en interrogeant le serveur news.univ-angers.fr. list retourne la liste des groupes de news, en indiquant leur nom, le numro de larticle le plus rcent, le numro de larticle le plus ancien encore conserv, et la lettre y si le postage est libre ou m sil est control par un modrateur. list 215 Newsgroups in form "group high low flags". control 0001251116 0001053999 y junk 0000000486 0000000480 y bionet.agroforestry 0000002281 0000002229 y bionet.announce 0000000165 0000000116 m .... group xe un groupe courant et renvoie une estimation du nombre darticles dans le forum, le numro de larticle le plus ancien, celui de larticle le plus rcent et le nom du groupe. 54

code 1yz 2yz 3yz 4yz 5yz x0z x1z x2z x3z x4z x8z x9z

description information requte accepte dbut de requte correcte, la suite eut tre envoye requte correcte, mais non traite requte incorrecte, non implante ou erreur fatale connexion, mise en place et divers choix des groupes de news choix des articles fonctions de distributions postage extension non standard sortie de debug

Tab. 3 Signication des 2 premiers chifres des codes de rponses de NNTP

group fr.comp.os.linux 211 6543 27618 34211 fr.comp.os.linux La dirence 34211-27618=6593 est plus grande que 6543 car tous les messages ne sont pas forcment conservs aussi longtemps les uns que les autres. Si le nom du groupe est erron on obtient ceci : group fr.comp.linux 411 No such group fr.comp.linux head envoie les en-ttes dun article dont le numro est spci. head 34205 221 34205 <3634E2EC.9B76A7E8@cern.ch> head Path: univ-angers.fr!enst!isdnet!newsgate.cistron.nl!het.net!news.belnet.be! news-zh.switch.ch!news-ge.switch.ch!cern.ch!news From: Nuno DOS SANTOS <Nuno.Dos.Santos@ces20s15ss15s12s9s3s4s5s Newsgroups: fr.comp.os.linux Subject: Instal carte de son Date: Mon, 26 Oct 1998 22:00:28 +0100 Organization: CERN Lines: 10 Message-ID: <3634E2EC.9B76A7E8@cern.ch> NNTP-Posting-Host: pcst101.cern.ch Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: sunnews.cern.ch 909435628 12357 (None) 128.141.182.63 X-Complaints-To: news@sunnews.cern.ch X-Mailer: Mozilla 4.05 [en] (Win95; I) Xref: univ-angers.fr fr.comp.os.linux:34205 . body retourne le coprs de larticle dont le numro est spci. 222 34205 <3634E2EC.9B76A7E8@cern.ch> body Salut, 55

Jarrive pas a instaler ma carte de son SB PCI awe64. Dans le HOW-TO ils parlent toujours de make config, xconfig, etc., mais la commande make ne passe pas. Il me donne lerreur "make:*** No rule to make target xconfig. Stop.". Le fichier sndstat est vide. Vous pouvez maider? Une sugestion? Merci . Le point nal ne fait pas partie du message mais est envoy par NNTP pour terminer sa rponse Enn, comme pour le courrier lectronique, il existe des interfaces web pour accder aux forums de discussions comme http://groups.google.fr.

8.7

World Wide Web : http..

HTTP (HyperText Transfer Protocol ) est le protocole de communication du web permettant dchanger des documents hypertextes contenant des donnes sous la forme de texte, dimages xes ou animes et de sons. Tout client web communique avec le port 80 dun serveur HTTP par lintermdiaire dune, ou plusieurs, connexions TCP simultanes, chacune des connexions TCP ouvertes servant rcuprer un ou plusieurs composants de la page web selon que lon utilise HTTP1.0 ou HTTP1.1. Trois principale requtes sont disponibles GET url renvoie linformation spcie par lurl. HEAD url renvoie len-tte de linformation demande et non pas le contenu du document. POST data pour envoyer des donnes lURL vise La requte du client se compose de lignes de texte ASCII termines par les caractres CR/LF et organises comme ci-aprs : requte url-demand HTTP-version en-ttes (0 ou plus) <ligne blanche> corps de la requte (seulement pour une requte POST) Une rponse du serveur web se prsente comme suit : HTTP-version code-rponse phrase-rponse en-ttes (0 ou plus) <ligne blanche> corps de la rponse Les en-ttes de requtes ou de rponses ont la forme : nom-de-champ: valeur et se classent ainsi : en-ttes de requte : authorization, date, from, if-modified-since, location, mime-version, pragma, referer,user-agent en-ttes de rponse : date, location, mime-version, pragma, server, www.authenticate 56

code 1yz 200 201 202 204 301 302 304 400 401 403 404 500 501 502 503

description non utilis succs OK, requte russie OK, nouvelle ressource cre (commande POST) requte accepte mais traitement incomplet OK, mais pas de contenu envoyer redirection ( grer par le client) le document demand a t dnitivement dplac vers une autre url le document demand a t temporairement dplac vers une autre url le document na pas chang (dans le cas dun GET conditionnel) erreur du client requte mal formule interdit, la requte ncessite une certication interdit sasn raison spcique document non trouv erreur du serveur erreur interne du serveur non implant mauvaise passerelle, rponse invalide dune passerelle service temorairement indisponible Tab. 4 Codes de rponses de HTTP

en-ttes de corps dans les rponses HTTP ou les requts POST : allow, content-encoding, content-length, content-type, expires, last-modified Les codes de rponses sont des nombres de 3 chires rangs en 5 catgories comme dcrits dans la table 4. Ci -dessous est dcrit un exemple de requte et rponse HTTP, aprs stre connect un serveur web, par exemple avec un client telnet. helios|~>telnet www.yahoo.fr 80 Trying 195.67.49.47... Connected to www.yahoo.fr. Escape character is ^]. get / http/1.0 HTTP/1.0 200 OK Last-Modified: Mon, 26 Oct 1998 19:13:02 GMT Content-Type: text/html Content-Length: 13163 <head> <title>Yahoo! France</title> <base href="http://www.yahoo.fr/"> </head> <body> .... 57

</body> </html>

8.8

Le peer to peer

Le peer to peer (p2p) est un systme de partage de chiers pair pair , poste poste , gal gal , . . .. Cela constitue un rseau o chaque nud est la fois client et serveur. Chaque individu met disposition sur son ordinateur tout ou partie de chiers informatiques15 Le premier systme de ce type est Napster (1999-2002) et lessor actuel du P2P est d la convergence de divers lments Convergences de conditions conditions conomiques et techniques favorables : abonnement forfaitaire pour laccs internet = on peut laisser sa connexion branche tout le temps sans cot supplmentaire, internet haut dbit (ADSL, cble) = le tlchargement dun chier volumineux est rapide , nouveaux formats de chiers (MP3, DIVX, . . .) = compression sans perte de qualit trop importante = rduction de la taille des chiers, appareils de gravure (CD et DVD) et de lecture (MP3 DIVX) bons marchs = lutilisation du produit nest plus limite lordinateur. Dans le cas de systmes P2P architecture centralise comme Napster, eDonkey2000 (ed2k)(logiciels eDonkey2000, eMule, . . .) des serveurs particuliers (ex Razorback2) servent dannuaires pour pouvoir localiser les chiers recherchs. Le fonctionnement est alors le suivant. 1. Le client se connecte un serveur central pour y obtenir la localisation des direntes parties du chier recherch (ie : sur quels ordinateurs personnels se trouvent ces parties). 2. Le client se connecte ces direntes machines pour y tlcharger chaque partie. 3. Chaque demandeur est mis en le dattente par le fournisseur. 4. Ds quune partie est tlcharge par le client, le serveur central en est inform, pour que le client puisse devenir le fournisseur de cette partie dautres clients. Le tlchargement peut-tre interrompu et repris nimporte quand. Dans le cas de systmes P2P architecture dcentralise comme le rseau Gnutella (logiciels Gnucleus, Morpheus, . . .) il ny a pas de nud particulier et le fonctionnement est le suivant. 1. Chaque client dmarre et se connecte au moins un autre client dont ladresse est dans un chier de conguration ou obtenu de manire externe pour se faire connatre. 2. Chaque nud change avec les autres les adresses des nuds quil connat. 3. Quand un client cherche un chier il interroge les quelques nuds auxquels il est connect et chacun va rpercuter cette demande aux nuds auxquels il est connect. 4. Quand le chier est localis (en 1 ou plusieurs nuds) le tlchargement peut commencer. Dans ce mode de fonctionnement, il est impossible davoir une vue densemble du rseau tout instant, mais le rseau est particulirement rsistant aux attaques car non centralis. Lun de ces rseaux architecture dcentralise est BitTorrent (logiciels BitTorrent, Azureus, navigateur Opera, . . .). Il dispose de beaucoup moins de chiers que e2k et ils sont disponibles un laps de temps assez court mais les tlchargements sont beaucoup plus rapides. Lecacit est plus grande que celle dun serveur FTP pour mettre disposition des gros chiers, par ex :
15

Le problme du droit de copie nest pas abord ici.

58

des distributions Linux http://www.solidz.com/torrents. Il permet plus facilement la mise en place de P2P tout fait lgal : http://www.jamendo.fr. Le fonctionnement de BitTorrent est le suivant. 1. Le logiciel doit possder un torrent : petit chier dextension .torrent qui contient toutes les informations relatives au document recherch et notamment ladresse dun tracker qui est un nud particulier, unique, responsable du chier. Le torrent se rcupre via un site web, par mail, par IRC, . . . 2. Lorsquun client veut tlcharger un chier il en informe le tracker qui lui retourne une liste de postes faisant de mme. 3. Le client peut alors se connecter ces postes pour commencer le tlchargement. 4. Tout au long du tlchargement, les clients dialoguent avec le tracker pour linformer de lavance du tlchargement et recevoir des listes de nouveaux clients disposant de parties encore manquantes 5. Un systme dquilibrage permet de rguler les changes entre les clients : chaque client proposera plus de donnes aux clients qui en fournissent beaucoup.

Rseau priv et accs linternet

Internet

.info.univ-angers.fr
sirius.info.univ-angers.fr imap.info.univ-angers.fr Titan

.121

193.49.146

.122

www.info.univ-angers.fr (squid) imp.info.univ-angers.fr (squid) ftp.info.univ-angers.fr mail.info.univ-angers.fr Nes iproxy.info-ua mail.info-ua cache DNS

(passerelle)

.info-ua

.1

172.20.41

.2

Serveurs postes enseignants

postes tudiants

Pollux
172.20.41.6

.....

Pegase
172.20.41.78

smtp.info-ua imap.info-ua sympa.info-ua www.info-ua doc.info-ua adoc.info-ua bibli.info-ua planning.info-ua

Fig. 45 Schma du rseau du dpartement dinformatique de lUniversit dAngers Le rseau du dpartement dinformatique de luniversit dAngers schmatis de manire simplie dans la gure 45 est un exemple de rseau IP priv. Cest--dire que lensemble des machines qui le composent ont reu une adresse IP dite prive ( non routable ) comme dnit la section 3 et appartenant lun des trois rseaux 172.20.40.0/24, 172.20.41.0/24 59

et 172.20.42.0/24. Seules deux machines titan et nes sont des passerelles dont lune des interfaces est publique et appartient au rseau 193.49.144.0/22. tant donn cet adressage priv, aucune machine du rseau 172.20.0.0/16 nest joignable de lextrieur. Par consquent, elle ne peut non plus en aucun cas tablir une connexion vers lextrieur, car ladresse des paquets IP quelle mettrait vers lextrieur ne pourrait en aucun cas servir dadresse de retour pour lui renvoyer des informations. La suite dcrit les dirents moyens mis en uvre pour quand mme rendre possible certaines communications entre les postes du rseau priv et dautres postes sur linternet, tout en assurant un maximum de scurit (viter les intrusions, contrler les accs en entre et en sortie,...). Et ainsi, avec seulement 2 adresses IP publiques il devient possible de connecter linternet un grand nombre de machines. Le principe du mandataire ou proxy web permet tout navigateur du rseau priv daccder aux sites webs externes en faisant relayer sa requte par le proxy comme illustr dans la gure 46. Ici le relai est dit applicatif ou de niveau 7 (en rfrence au modle OSI) car cest au niveau de lapplication elle-mme (ici HTTP) que seectue le travail. Les mmes principes peuvent sappliquer pour la mise en place dun proxy FTP ou pour toute autre application base sur TCP ou UDP. Cependant, si lon veut grer globalement laccs linternet des postes internes on peut travailler un plus bas niveau en utilisant des techniques de translation dadresses de rseau dite NAT (Network Address Translation). Nous ne dcrirons pas le principe de NAT statique car il ne permet pas de faire dconomies dadresses IP publiques puisquil associe chaque adresse prive une adresse publique(voir http://www.usenet-fr.net/fur/comp/reseaux/nat.html) De son ct la NAT dynamique, dite IP masquerading, permet dassocier plusieurs adresses prives une mme adresse publique en agissant sur les ports TCP ou UDP des connexions quils relaient comme ceci est dcrit dans la gure 47. videmment, pour les protocoles ou applications qui ne sappuient pas sur TCP ou UDP, comme ICMP par exemple, il faut mettre en place un relayage particulier. Mais, la principale limitation de lIP masquerading est quil ne permet la communication entre une machine du rseau priv et une sur linternet que dans le cas o la connexion est initie de lintrieur. Dun ct, cela augmente la scurit du rseau interne. Dun autre, cela empche toute ore de service partir dune machine interne. Cette limitation daccs de puis lextrieur peut tre leve si lon utilise la technique de portforwarding dcrite dans la gure 48. Dans ce cas, la machine passerelle va relayer vers une machine interne assurant le service demand toutes les demandes qui lui parviennent sur le port correspondant lapplication demande.

60

Proxy (mandataire) web / 1


Comment accde-t-on un site ? Exemple de l'accs google depuis un poste tudiant du dpartement d'info de l'Universit d'Angers via le proxy web

routeur Internet iproxy.info-ua 172.20.41.2 www.google.fr 172.20.41.210 p0.info-ua 193.49.146.122 216.239.37.101

Proxy (mandataire) web / 2


p0.info-ua le navigateur est configur pour envoyer toutes ses requtes iproxy.info-ua sur le port 3128
Envoi de la requte http 172.20.41.210 172.20.41.2 5555 3128 Get www.google.fr/index.html Mmorisation de la demande de 172.20.41.210 partir du port 5555 et rexpdition de la requte 193.49.146.122 216.239.37.101 4444 80 Get www.google.fr/index.html Rception, excution de la requte et envoi de la rponse http

iproxy.info-ua iproxy.info.univ-angers.fr

www.google.fr

216.239.37.101 Dlivrance de la demande initiale

193.49.146.122

80

4444

<html>....</html>

172.20.41.2 Rception de la rponse http

172.20.41.210 3128

5555 <html>....</html>

Expditeur Destinataire

Port source

Port dest

Donnes http

Pseudo trame http

Fig. 46 Proxy web

61

NAT dynamique (IP masquerading) / 1


Comment sort-on ? Exemple de l'accs google (sans utilisation de proxy web) depuis l'un des serveurs du dpartement d'info de l'Universit d'Angers

Routeur Internet titan 172.20.41.1 193.49.146.121 216.239.37.101 www.google.fr

172.20.41.8 deneb.info-ua

NAT dynamique (IP masquerading) / 2


deneb.info-ua 172.20.41.8 titan est configur comme passerelle
Envoi de la requte http 172.20.41.8 216.239.37.101 5555 80 Mmorisation de la translation 172.20.41.8 & 5555 <=> 193.49.146.121 & 2222 Rexpdition de la requte http 193.49.146.121 216.239.37.101 2222 80 Rception et excution de la requte http Envoi de la rponse http

titan.info-ua 172.20.41.1 193.49.146.121

www.google.fr 216.239.37.101

216.239.37.101 193.49.146.121 Restauration de l'adressage initial

80 2222

216.239.37.101 172.20.41.8 Rception de la rponse http

80 5555

Paquet IP

...

@IP source

@IP dest

...

Port Port source dest

...

Donnes

Paquet TCP ou UDP

Fig. 47 IP masquerading

62

NAT dynamique (port forwarding) / 1


Comment entre-t-on ? Exemple de l'accs ssh au serveur sirius depuis un poste situ sur internet.

Routeur Internet titan 172.20.41.1 193.49.146.121 Poste quelconque 172.20.41.7 sirius.info-ua

NAT dynamique (port forwarding) / 2


sirius.info-ua 172.20.41.7 Titan.info.univ-angers.fr 172.20.41.1 193.49.146.121 machine A.B.C.D
Demande de connexion telnet sur sirius.info.univ-angers.fr Demande de connexion ssh sur 193.49.146.121 (aprs alias de DNS) A.B.C.D 193.49.146.121 Mmorisation de la translation 193.49.146.21 & 23 <=> 172.20.41.7 & 23 4444 23

Traitement de la demande et rponse 172.20.41.7 A.B.C.D 23 4444

A.B.C.D

172.20.41.7

4444

23

Inversion de la translation

193.49.146.121

A.B.C.D

23

4444

Paquet IP

...

@IP source

@IP dest

...

Port Port source dest

...

Donnes

Paquet TCP

Fig. 48 Port forwarding

63

10

Programmation dapplications rseaux

Ce chapitre est trait dasn un autre support de cours et prsente les grandes lignes de la programmation dapplications distribues (TCP UDP) base de sockets en Java, C et C++.

64

You might also like