Chapitre�4��Les protocoles de l’Internet
4.1��Le protocole IPIP est un protocole permettant d’avoir une adresse logique pour les machines (contrairement aux adresses physiques d’Ethernet). Ces adresses sont fix�es par l’administrateur du r�seau (ce sont donc des adresses qui permettent d’organiser les adresses sur le r�seau ind�pendament des machines). Une autre particularit� des adresses Ethernet est qu’elles sont globales : une adresse IP publique est cens�e �tre unique dans le monde entier. Show
4.1.1��Trame ARPLes r�seaux locaux sont des r�seaux utilisant les adresses physiques des cartes. Par contre, si on ne conna�t que l’adresse IP d’une machine il faut pouvoir retrouver son adresse MAC. Le m�canisme de r�solution d’adresse propos� ici est le protocole ARP (Address Resolution Protocol) qui permet en deux �changes de trames de retrouver l’adresse MAC d’une machine � partir de son adresse IP. Le protocole ARP est bien un protocole de niveau 3 car il permet au niveau r�seau de savoir avec qui il veut communiquer sur le lien Ethernet. ARP est en fait ind�pendant d’Ethernet et fonctionne avec n’importe quel type de r�seau de niveau 2. Apr�s la r�solution ARP, la couche de niveau 3 ne conna�t que la taille des identifiants de niveau 2 et des valeurs num�riques pour joindre les machines distantes. De cette fa�on IP peut fonctionner sur plusieurs types de protocoles de niveau 2 sans changer le principe de base de la r�solution d’adresse ARP. Les requ�tes ARP sont v�hicul�es dans des trames de niveau 2. Une requ�te/r�ponse ARP est v�hicul�e par une trame Ethernet (sur Ethernet donc) de type 0x0806. La machine �mettrice envoie une requ�te en broadcast (FF:FF:FF:FF:FF:FF) afin de contacter toutes les machines du r�seau local au niveau Ethernet. La machine qui reconna�t son adresse IP peut renvoyer une r�ponse ARP en utilisant l’adresse Ethernet inscrite dans la requ�te comme adresse de destination. Voici un
exemple de requ�te/r�ponse entre une machine d’adresse IP 129.104.254.6 cherchant � contacter la machine 129.104.254.5.
Les traductions IP/ARP sont conserv�es dans une machine de fa�on temporaire dans une table ARP. Vous pouvez voir le contenu de la table de la machine sur laquelle vous �tes en tapant la commande (sous Unix) arp -a. 4.1.2��En-t�te du datagramme IP
Une liste des protocoles support�s par IP est
disponible sur les machines Unix dans le fichier 4.1.3��Adressage IPLes adresses IP sont des nombres sur 32 bits dont la repr�sentation usuelle est un groupe de 4 entiers sur 8 bits s�par�s par des points. Ainsi l’adresse 2262191317 (en d�cimal) correspond � l’adresse 134.214.76.213 dans la notation usuelle. Les adresses IP sont des adresses logiques qui sont fix�es par configuration logicielle de la machine. Une machine a au moins autant d’adresses IP que d’interfaces (cartes) r�seaux. Elle peut �ventuellement en avoir plus. Les adresses sur Internet sont g�r�es par l’organisme IANA. C’est l’organisme charg� de r�partir les adresses IP dans le monde. Une premi�re liste pour voir � qui appartiennent les tranches d’adresses est disponibles ici. La gestion est ensuite faite par des organismes r�gionaux (voir Ripe NCC). La configuration d’une machine pour avoir une connexion IP se r�sume donc, pour l’instant aux param�tres suivants:
4.1.4��D�cision de routage dans IPLe r�seau local auquel est reli� la machine est calcul� en effectuant un et logique entre l’adress IP de la machine et son masque de r�seau. Pour
savoir si une machine destination est dans le m�me r�seau il faut faire la m�me op�ration avec l’adresse que l’on souhaite joindre et son propre masque de r�seau. Si le r�sultat est le m�me alors les deux machines sont dans le m�me r�seau local et la communication peut s’effectuer via le r�seau local. Dans le cas contraire la machine source doit envoyer le datagramme au routeur de sortie (dont elle connait l’adresse IP par configuration et qu’elle peut joindre en utilisant le LAN). Le routeur se
chargera de trouver le prochain saut et ainsi d’acheminer le datagramme un peu plus loin dans le r�seau jusqu’� destinaition. Le nombre maximum de sauts autoris�s (passage de routeurs) est fix� au d�part par la valeur du champs TTL. Si le TTL arrive � 0 pendant le transport, alors le paquet est d�truit et on re�oit en retour un message ICMP de type 11 et de code 0. 4.1.5��FragmentationLa fragmentation fait intervenir les champs ID, Flags et Offset de l’ent�te pour remettre dans l’ordre les morceaux d’un paquet IP fragment� au cours du routage dans le r�seau. Les routeurs interm�diaires peuvent fragmenter un paquet mais ne font pas la d�fragmentation. C’est � la machine destinatrice d’attendre et de remettre les fragments dans l’ordre. La machine utilise le champs TTL pour mesurer le temps maximum d’attente une fois qu’elle commence � r�assembler un datagramme. Si ce TTL passe � 0 alors le datagramme est jet� car les morceaux n’ont pas �t� re�us � temps. Le bit DF (don’t fragment) indique que l’on ne souhaite pas qu’un paquet puisse �tre fragment�. Si le cas se pr�sente le datagramme est jet� et un message ICMP est renvoy� � la source (type 3, code 4). Ce bit DF permet de faire de la d�couverte de MTU sur le chemin. Cette "MTU de chemin" est donc le plus gros datagramme que l’on puisse envoyer de bout en bout sans qu’il soit fragment� (on a donc la MTU la plus petite de tous les r�seaux travers�s). 4.1.6��Diagnostic sur IP : ICMPICMP (Internet Control Message Protocol) est utilis� pour avoir des retours d’information sur l’�tat du r�seau et des machines.
Les donn�es, quand il y en a, d�pendent du type de paquet ICMP. Si le paquet ICMP est un signalement d’erreurs alors le contenu des donn�es est pris dans les 8 premiers octets des donn�es du datagramme ayant g�n�r� l’erreur.
4.1.7��ToS : Type of ServiceLe champs ToS permet de donner une information sur la nature des donn�es contenues dans le datagramme IP. Cette information peut �tre utilis�e pour am�liorer et diriger le routage. Il faut que les routeurs soient configur�s pour en tenir compte. En pratique tr�s peu de routeurs acceptent de prendre en compte le champs ce qui le rend inutile en pratique. 4.1.8��Protocoles de transportsIP permet de communiquer avec une machine. Pour atteindre un service (application) il faut donc plus de pr�cision dans l’adresse logique du destinataire du datagramme. Les protocoles de transport UDP et TCP font l’interface entre le r�seau (comment atteindre une machine) et les applications (comment atteindre un programme pr�cis qui tourne dans une machine). De la m�me mani�re que pour les adresses IP (il faut conna�tre une adresse IP � l’avance pour communiquer avec une machine), il faut conna�tre le port (num�ro d’acc�s au service ou programme) pour acc�der � un service particulier sur un serveur. Il existe pour cela une liste de r�f�rence connue sous le nom de "well known ports" qui est la m�me pour toutes les machines. Il s’agit ici d’�tablir une communication de bout en bout. Les deux protocoles utilis�s sur l’Internet sont UDP et TCP. 4.2��UDP: User Datagram ProtocolUDP est un protocole en mode datagramme et propose seulement le service de multiplexage applicatif par rapport � IP. UDP ne propose pas de service suppl�mentaire et on reste donc dans un mode non connect� avec des probl�mes potentiels de perte de paquets dans le r�seau (ce ne sera pas le cas de TCP). UDP reste n�anmoins un protocole rapide qui est tr�s efficace et est utilis� par de nombreuses applications dont le service de nommage DNS (port 53)
4.2.1��Propri�t�s des datagramme UDPUDP utilise IP comme support, il est donc soumis aux m�mes contraintes
Les donn�es sont envoy�es d�s que l’application effectue une �criture. Chaque �criture de l’application g�n�re un datagramme UDP. Les lectures des datagrammes depuis l’application se font sur des datagrammes complets. 4.3��TCP : Transmission Control ProtocolTCP permet d’avoir une connexion entre programmes ayant des propri�t�s bien plus complexes que les datagrammes UDP. TCP propose, par l’interm�diaire d’acquittements, d’avoir un contr�le de perte de paquet avec d�livrement des donn�es � l’application dans l’ordre d’envoi ainsi qu’un contr�le de congestion du r�seau.
Les num�ros de s�quences et d’acquittements identifient le nombre d’octets transmis sur la connexion. Le compteur ne commence pas de z�ro mais du nombre annonc� lors de la synchronisation d’ouverture de connexion (ISN: Initial Sequence Number). Une communication TCP est identifi�e par le quadruplet (adresse IP source, port source, adresse IP destination, port destination ). L’option la plus courante dans TCP est l’annonce de la taille maximum de segment (MSS : Maximum Segment Size). Cette option est pr�sente dans les segments ayant le bit SYN positionn� pour indiqu� quelle est la quantit� maximale de donn�es que veut recevoir l’�metteur. Lorsque la connexion est locale le MSS est fix� � la MTU du protocole de niveau 2 moins la taille des ent�tes IP et TCP : pour un r�seau ethernet le MSS sera fix� � 1460 dans la plupart des cas (cela peut d�pendre des syst�mes d’exploitation) sinon, pour une connexion distante, le MSS est fix� � 536 (la plus petite MTU sur Internet est fix�e � 576 octets). Les acquittements ne sont pas envoy�s d�s que l’on re�oit des donn�es. Une temporisation de 500ms (au maximum) est mise en place pour augmenter la probabilit� d’avoir des donn�es � transmettre en m�me temps que l’acquittement et ainsi augmenter le d�bit utile du r�seau.
Le m�canisme d’ouverture de connexion TCP est pr�vu pour fonctionner dans le cas o� les deux machines font une ouverture simultan�e (cas tr�s rare). Dans ce cas, une seule connexion TCP bidirectionnelle r�sulte de cette double ouverture. 4.3.1���tats d’une connexion TCP
L’�tat TIME_WAIT est appel� �tat d’attente 2MSL. Un MSL est la dur�e de vie maximum d’un segment, cette valeur est comprise entre 30s et 2 min. C’est la dur�e maximale pendant laquelle un segment peut exister sur le r�seau avant d’�tre rejet�. Dans le cas d’une fermeture simltan�e, la partie gauche et la partie droite passent par les �tats FIN_WAIT_1, CLOSING et TIME_WAIT au lieu de passer par les �tats mentionn�s sur la figure pr�c�dente. TCP propose des m�canismes pour d�synchroniser les envois de segment des acquittements. Chaque machine annonce la quantit� de m�moire disponible dans son buffer de r�ception (champs window dans l’ent�te TCP). L’�metteur sait alors quelle quantit� de donn�es il peut esp�rer envoyer sans saturer le destinataire. La taille de cette fen�tre peut varier de 8Ko � 16Ko (ou plus) selon les syst�mes.
Une application qui aurait indiqu� une fen�tre vide dans son dernier acquittement doit r��mettre un segment avec le m�me num�ro d’acquittement que le pr�c�dent pour r�anoncer sa nouvelle taille de fen�tre. L’envoi des segments ainsi que l’envoi des acquittements peut �tre diff�r� par rapport aux donn�es envoy�es et lues de l’application (algorithmes de Clark et Nagle vus en TD) 4.3.2��Contr�le de congestionLe contr�le de congestion sert � adapter le d�bit de TCP par rapport aux pertes de paquets pouvant arriver dans le r�seau. L’adaptation du d�bit dans TCP est appel� slow start. La fen�tre de r�ception permet � l’�metteur d’envoyer rapidement plusieurs segments TCP sans attendre d’acquittement entre l’envoi des segments. Ce m�canisme fonctionne tr�s bien sur un m�me LAN mais peut poser des probl�me en cas de congestion du r�seau. TCP poss�de une fen�tre de gestion de la congestion appel�e congestion window (cwnd). Cette fen�tre est locale � l’�metteur et sa valeur n’est pas inscrite dans l’ent�te de segment. Alors que la fen�tre annonc�e dans les ent�tes TCP conditionne la quantit� de donn�es trait�es c�t� r�cepteur, la fen�tre de congestion conditionne la quantit� de donn�es qui peut �tre envoy�e c�t� �metteur. L’�metteur peut �mettre � hauteur du minimum entre la taille de la fen�tre annonc�e et la taille de la fen�tre de congestion. L’�metteur commence � �mettre un segment et attend l’acquittement. Une fois l’acquittement re�u, l’�metteur peut alors �mettre deux segments et attendre les acquittements. La taille de la fen�tre de congestion est agrandie de fa�on exponentielle jusqu’� trouver la limite de congestion du r�seau. Une fois cette limite atteinte, des segments commencent � se perdre et l’�metteur retombe alors � une fen�tre de congestion � 1. Il recommence le "slow start" exponentiel jusqu’au pr�c�dent point de rupture. Une fois le point de rupture atteint l’augmentation devient lin�aire jusqu’au prochain seuil de rupture (et ainsi de suite).
Quel est le protocole utilisé pour le transport des données ?TCP est un protocole de la couche Transport au sens du modèle OSI. Il s'exécute au dessus du protocole IP qui lui fournit un service de datagrammes sans connexion entre deux machines. TCP est un protocole orienté connexion qui garantit que les données sont remises de façon fiable.
Pourquoi DNS utilise UDP et TCP ?DNS utilise TCP pour le transfert de zone et UDP pour le nom, et interroge normalement (principal) ou inversement. UDP peut être utilisé pour échanger de petites informations, tandis que TCP doit être utilisé pour échanger des informations dont la taille est supérieure à 512 octets.
Qui utilise le protocole TCP ?Les applications les plus courantes qui utilisent TCP sont HTTP/HTTPS (World Wide Web), SMTP/POP3/IMAP (messagerie) et FTP (transfert de fichiers). Youtube et Netflix utilisent également TCP pour leurs fluxs de streaming.
Quand utiliser UDP ou TCP ?TCP (Transport Control Protocol) assure un service de transmission de données fiable avec une détection et une correction d'erreurs de bout en bout. UDP (User Datagram Protocol) offre un service de transmission de datagrammes sans connection.
|