Transmission Tcpip
Transmission Tcpip
Philippe Latu
[Link](at)[Link]
[Link]
Historique des versions $Revision: 1321 $ Anne universitaire 2004-2005 Rsum Lors de la conception de la modlisation OSI, tout a t prvu pour utiliser plusieurs protocoles diffrents aux niveaux rseau et transport. Aujourd'hui, la gnralisation de la technologie Ethernet dans les rseaux locaux et l'utilisation systmatique de l'Internet ont balay cette ouverture aux protocoles multiples. Cet article illustre le fonctionnement de la transmission de l'information sur l'Internet partir de ses protocoles emblmatiques IP, ICMP, TCP et UDP. $Date: 2008-09-24 [Link] +0200 (mer 24 sep 2008) $ PL
1. Copyright et Licence
Copyright (c) 2000,2008 Philippe Latu. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Copyright (c) 2000,2008 Philippe Latu. Permission est accorde de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.2 ou toute version ultrieure publie par la Free Software Foundation ; sans Sections Invariables ; sans Texte de Premire de Couverture, et sans Texte de Quatrime de Couverture. Une copie de la prsente Licence est incluse dans la section intitule Licence de Documentation Libre GNU .
1.1. Mta-information
Cet article est crit avec DocBook1 XML sur un systme Debian GNU/Linux2. Il est disponible en version imprimable aux formats PDF et Postscript : [Link].pdf3|[Link].gz4.
1 2
Encapsulation - image seule5 Ce schma fait apparatre le format de trame Ethernet. Mme si la technologie Ethernet n'est pas directement lie aux protocoles de l'Internet, son format de trame tend devenir universel. On le retrouve avec les technologies Wifi, les connexions ADSL/PPPOE et mme de plus en plus sur les rseaux tendus. Avant 1997, date laquelle l'IEEE a incorpor le vieux format de trame Ethernet dans le standard officiel, on devait systmatiquement distinguer deux formats de trames suivant le champ type/longueur. La dfinition de trame Ethernet II, celle qui utilise le champ type, a t intgre avec les protocoles de l'Internet partir des documents RFC894 : A Standard for the Transmission of IP Datagrams over Ethernet Networks et RFC1042 : A Standard for the Transmission of IP Datagrams over IEEE 802 Networks. Le champ type de la trame indique le type du protocole de couche suprieure ; IP ou ARP dans la plupart des cas. Pour plus d'informations, voir la rfrence sur les Valeurs du champ type de la trame Ethernet II. Aujourd'hui, on devrait parler de trame IEEE 802.3 avec encapsulation type. La dfinition de trame IEEE 802.3 initiale, celle qui utilise le champ longueur, n'est jamais utilise pour le trafic IP ; donc pour le trafic utilisateur. Seules les communications spcifiques entre quipements rseau utilisent ce format de trame associ des protocoles spcifiques. Aujourd'hui, on devrait parler de trame IEEE 802.3 avec encapsulation longueur. Pour plus d'informations, voir les rfrences Technologie Ethernet.
[Link]
En-tte de paquet IP - image seule6 Version : 4 bits Version du protocole IP code sur 4 bits : 0100 pour IPv4 et 0110 pour IPv6. Internet Header Length : 4 bits, IHL Longueur de l'en-tte en mots de 32 bits. Cette valeur est utilise pour distinguer la partie en-tte de la partie donnes du paquet. La reprsentation usuelle de l'en-tte se fait sur 32 bits de largeur. Comme les champs Options et Padding ne sont pas obligatoires, la valeur minimum du champ IHL est 5 (0101). Type Of Service : 8 bits, TOS Champ dcoup en 2 parties. Les 3 premiers bits sont appels precedence et les 5 derniers reprsentent le type de service. La dfinition d'origine prvoyait 3 choix : low-delay, high-reliability et high-throughput. Ce marquage des paquets est utilisable pour dfinir des flux prioritaires sur une interconnexion rseau sous contrle. Sur l'Internet, les oprateurs dfinissent leurs propres priorits ; donc leurs propres valeurs pour ce champ. Voir l'Extrait du Linux Advanced Routing & Traffic control Howto. Total Length : 16 bits Longueur du datagramme : en-tte & donnes. La taille minimum est de 21 octets (en-tte + 1 octet de donne). Comme se champ est reprsent sur 16 bits, la taille maximum est de 2^16 - 1, soit 64 Ko. Identification : 16 bits Chaque paquet IP reoit un numro d'identification sa cration. Il est possible qu'un paquet soit dcoup en fragments avant d'atteindre sa destination finale. Chaque fragment appartient au mme paquet IP. Chaque fragment possde le mme numro d'identification. Flags : 3 bits Ce champ contient 3 indicateurs d'tat : Reserved flag : doit toujours tre 0. Don't Fragment (DF) : 0 si le paquet peut tre fragment ; 1 s'il ne doit pas tre fragment. More Fragments (MF) : 1 si d'autres fragments sont attendus ; 0 s'il n'y a pas/plus de fragments. Fragment Offset : 13 bits Position du fragment dans le datagramme courant. Cette position est compte en octets. Time To Live : 8 bits, TTL Ce compteur est dcrment chaque traverse de routeur. Si la valeur 0 est atteinte, le paquet est jet. Cela signifie qu'il ne peut tre dlivr sa destination finale. La valeur initiale du champ TTL dpend du systme d'exploitation utilis.
6
[Link]
Transmission de l'information & protocoles Internet Protocol : 8 bits Ce champ spcifie le protocole utilis dans les donnes du paquet IP. Par exemple, la valeur 1 indique que le protocole utilis est ICMP. On sait ainsi que ce paquet n'est pas destin une application. Les diffrentes valeurs de ce champs sont listes dans le fichier /etc/protocols sur les systmes GNU/Linux ou *BSD. Header Checksum : 16 bits A chaque cration ou modification d'un paquet, une somme de contrle (cyclic redundancy check) est calcule sur son en-tte. Lorsque le paquet arrive destination, cette somme est recalcule. Si le rsultat diffre, c'est que le paquet a t endommag lors de son trajet. Source Address : 32 bits Adresse IP de l'hte qui a mis le paquet. Voir Adressage IP. Destination Address : 32 bits Adresse IP de l'hte qui doit recevoir le paquet. Voir Adressage IP. Options and Padding Cette partie de l'en-tte est optionnelle. Ce champ est utilis pour fournir des instructions spcifiques de distribution du paquet qui ne sont pas couvertes par les autres champs de l'en-tte. La taille maximum de ces insturctions est limite 40 octets regroups en double-mots de 32 bits. Les bits de padding servent complter le dernier doublemot de 32 bits. Data C'est le dernier champ du paquet IP. Il contient les donnes du paquet. Celles ci peuvent dbuter par un en-tte de couche transport (4) qui donnera d'autres instructions l'application qui recevra les donnes. Le champ Data peut aussi contenir un message ICMP qui ne contient aucune donne utilisateur.
En-tte TCP - image seule7 Source Port : 16 bits Numro du port source. Ce numro correspond au point de communication (socket inet) utilis par le service de la couche application de l'metteur. Destination Port : 16 bits Numro du port destination. Ce numro correspond au point de communication (socket inet) utilis par le service de la couche application du destinataire. Sequence Number : 32 bits Le protocole TCP a besoin de garder une trace de toutes les donnes qu'il reoit de la couche application de faon tre sr qu'elles ont bien t reues par le destinataire. De plus, le protocole doit tre sr que ces donnes ont t reues dans l'ordre dans lequel elles ont t envoyes. Il doit retransmettre toute donne perdue. On affecte un numro de squence chaque octet de donne pour en garder une trace lors du processus de transmission, rception et acquittement. Dans la pratique, ce sont des blocs d'octets qui sont grs en utilisant les numros de squence de dbut et de fin de bloc. Les numros de squence sont ncessaires la mise en oeuvre du systme de fentre glissante du protocole TCP. C'est ce systme qui garantit fiabilit et contrle de flots de donnes. Acknowledgment Number : 32 bits Le rle des numros d'acquittement est le mme que celui des numros de squence. Simplement, chaque extrmit en communication initie son propre jeu de numros. Ainsi chaque extrmit assure la fiabilisation et le contrle de flux de faon autonome. Data Offset : 4 bits Nombre de mots de 32 bits contenus dans l'en-tte TCP. Indication du dbut des donnes. Tout en-tte TCP, avec ou sans options, est un multiple de mots de 32 bits. Reserved : 6 bits Champ rserv pour une utilisation ultrieure. Les 6 bits doivent tre 0. Control bits : 6 bits Ces bits sont les indicateurs d'tat qui servent l'tablissement, au maintien et la libration des connexions TCP. Leur rle est essentiel dans le fonctionnement du protocole. URG : indique que le champ Urgent Pointer est significatif ; ie. une partie des donnes du segment sont urgentes. ACK : indique que le champ Acknowledgment field est significatif ; ie. le segment acquitte la transmission d'un bloc de d'octets. PSH : utilisation de la fonction Push RST : indique un arrt ou un refus de connexion.
7
[Link]
Transmission de l'information & protocoles Internet SYN : indique une demande de synchronisation de numro de squence ; ie. demande d'ouverture de connexion TCP. FIN : indique que l'metteur n'a plus de donnes transmettre ; ie. demande de libration de connexion. Window : 16 bits Nombre d'octets de donnes partir de celui indiqu par le champ Acknowledgment. Checksum : 16 bits Somme de contrle sur 16 bits de l'en-tte et des donnes. Urgent Pointer : 16 bits Ce champ est interprt uniquement si le bit de contrle URG est 1. Le pointeur donne le numro de squence de l'octet qui suit les donnes urgentes. Options : variable entre 0 et 44 octets Il existe 2 formats d'options : un seul octet de catgorie d'option ou un octet de catgorie d'option suivi d'un octet de longueur d'option et de l'octet des donnes de l'option.
4.2.4. fentrage
Un dispositif de fentrage de l'acquittement a t implant pour prserver la bande passante. Si l'metteur devait attendre un acquittement aprs l'mission de chaque segment, la qualit de la transmission serait dgrade.
8 9
5. En guise de conclusion
Cette prsentation est loin d'tre exhaustive. Pour aller plus avant dans la comprhension des mcanismes de fonctionnement des protocoles, voici quelques documents de rfrence : Modlisations rseau Modles OSI & Internet Le document Modlisations rseau13 est une synthse comparative entre les modlisations OSI et Internet. On montre que la modlisation OSI correspond au volet transmission de l'information et que le modle Internet correspond au volet traitement de l'information. Les protocoles TCP et IP constituent la charnire entre les deux modles. Technologie Ethernet Principes & normalisations Le document Technologie Ethernet14 est une prsentation gnrale des caractristiques techniques d'Ethernet et de ses diffrentes normalisations. RFC894 : A Standard for the Transmission of IP Datagrams over Ethernet Networks Le document RFC894 Standard for the transmission of IP datagrams over Ethernet networks15 de 1984 spcifie la mthode standard d'encapsulation des datagrammes IP sur Ethernet. RFC1042 : A Standard for the Transmission of IP Datagrams over IEEE 802 Networks Le document RFC1042 Standard for the transmission of IP datagrams over IEEE 802 networks16 de 1988 spcifie la mthode standard d'encapsulation des datagrammes IP et des requtes ARP sur les rseaux IEEE 802. Valeurs du champ type de la trame Ethernet II Le fichier ETHER TYPES17 contient la liste des diffrentes valeurs du champ type des trames Ethernet II.
11 12
Transmission de l'information & protocoles Internet Protocoles Internet RFC791 : INTERNET PROTOCOL Le document RFC791 Internet Protocol18 de 1981 spcifie le protocole IP. Adressage IP La matrise de l'adressage IP est essentielle toutes les manipulations autour des rseaux. Elle justifie un document part entire ; c'est l'objet de l'article Adressage IP19. Extrait du Linux Advanced Routing & Traffic control Howto La section Gestionnaires de mise en file d'attente simples, sans classes20 dcrit l'utilisation des valeurs du champ Type Of Service (TOS) de l'en-tte IP avec le noyau Linux. RFC793 : Transmission Control Protocol Le document RFC793 Transmission Control Protocol21 de 1981 spcifie le protocole TCP.
18 19