les protocoles de la suite TCP/IP c Sovanna Tan Introduction aux réseaux Mars 2010 1/36 c Sovanna Tan les protocoles de la suite TCP/IP
Plan 1 Le protocole de la couche Réseau : IPV4 IPV4 Le routage IP ARP/RARP 2 Ls protocoles de la couche Le protocole UDP Le protocole TCP /36 c Sovanna Tan les protocoles de la suite TCP/IP
Sources Transmissions et Réseaux, 3ème édition, Stéphane Lohier et Dominique Présent, Dunod, 2003. Analyse structurée des réseaux, 2ème édition, James Kurose et Keith Ross, Pearson Education, 2003. TCP/IP Architecture, protocoles et applications, 5ème édition, Douglas Comer, Pearson Education, 2009. http://www.rfc-editor.org/rfcxx00.html#stdbystd : les Requests For Comments (RFC) standards de L IETF. 3/36 c Sovanna Tan les protocoles de la suite TCP/IP
Les modèles TCP/IP et OSI Les fonctionnalités sont hiérarchisées en plusieurs niveaux d abstraction. 7 Application Application 6 Présentation (HTTP, HTTPS,...) 5 Session 4 Transport TCP, UDP (contrôle de flux, contrôle d erreur) 3 Réseau IP (adressage, routage) 2 Liaison de données Ethernet, ADSL, Wi-Fi 1 Physique fibre optique, câble ethernet, carte wi-fi, câble téléphonique 4/36 c Sovanna Tan les protocoles de la suite TCP/IP
1 Le protocole de la couche Réseau : IPV4 IPV4 Le routage IP ARP/RARP 2 Ls protocoles de la couche Le protocole UDP Le protocole TCP /36 c Sovanna Tan les protocoles de la suite TCP/IP
Le protocole IPV4 : Internet Protocol Version 4 A datagramme : l information à transmettre est découpée en paquets qui sont acheminés indépendamment les uns des autres (commutation de paquets). Sans connexion : il ne s occupe pas de savoir si le destinataire des paquets est en état de les recevoir ou non. Assure des fonctions de : Routage ; Segmentation Réassemblage. 6/36 c Sovanna Tan les protocoles de la suite TCP/IP
Les services du protocole IPV4 Routage : trouver des chemins dans le réseau pour les paquets. Le destinataire est une machine quelconque du réseau qui n est pas forcément directement connectée à l émetteur. Segmentation Réassemblage : découper un message en plusieurs paquets qui pourront transiter sur le réseau physique. La technologie pour chaque liaison entre deux nœuds adjacents impose une limitation de la taille des paquets. Ethernet : 1518 octets X25 : 576 octets Un paquet peut être segmenté en chemin. Seule, la machine destination réassemble les paquets. 7/36 c Sovanna Tan les protocoles de la suite TCP/IP
IP PDU : format d une trame IPV4 (1) 0 4 8 16 31 Version IHLength Type de service Longueur totale n o d identification de paquet Flags Offset TTL Protocole Checksum Adresse IP source Adresse IP destination Options Padding Données 8/36 c Sovanna Tan les protocoles de la suite TCP/IP
IP PDU : format d une trame IPV4 (2) Version indique la version du protocole utilisée, IHLength indique la taille de l en-tête du protocole IP, comptée en nombre de mots de 32 bits, codée sur 4 bits. Type de Service requis est codé sur un octet. Son format est Précédence D T R xxx. Les options de précédence sont : 000 routine 100 flash override 001 priority 101 critical 010 immediate 110 internetwork control 011 flash 111 network control D mis à 0 indique que le paquet peut être retardé et 1 indique que le paquet ne doit pas être retardé. T mis à 0 indique que l on désire un débit d acheminement normal et 1 indique que l on désire un débit rapide. R mis à 1 indique que l on désire emprunter un chemin fiable. xxx sont réservés pour un usage futur. 9/36 c Sovanna Tan les protocoles de la suite TCP/IP
IP PDU : format d une trame IPV4 (3) Longueur totale du paquet spécifie la taille du paquet entier. Sur un réseau ethernet, elle est limitée à 1518 octets. IP effectue de la segmentation et du réassemblage pour contourner cette limitation. Si un fragment se perd, tout le paquet est perdu car IP ne dispose pas de mécanisme d acquittement. n o d identification de paquet contient un numéro déterminé par la station émettrice commun à tous les fragments d un même paquet. Flags a pour format 0 DF MF. DF mis à 0 indique que le paquet peut être segmenté. MF mis à 1 indique que des fragments du même paquet vont suivre et 0 indique que ce n est pas le cas. Offset sert pour le réassemblage du paquet. Il indique le nombre de blocs de 64 bits sans compter les en-têtes contenus dans les fragments précédents. 10/36 c Sovanna Tan les protocoles de la suite TCP/IP
IP PDU : format d une trame IPV4 (4) TTL (Time To Live) est la durée de vie du paquet exprimée en seconde. Chaque nœud du réseau retranche le temps passé au traitement du paquet à cette valeur, il doit retrancher au moins une unité de temps. Quand elle tombe à 0, on suppose que le paquet se trouve dans une boucle et il est détruit. Protocole indique à quel protocole de niveau supérieur le paquet doit être transmis. Par exemple 6 pour TCP, 29 pour ISO TP4. Checksum de deux octets est calculé sur l en-tête IP. Complément à un de la somme des compléments à 1 de tous les blocs de 16 bits de l en-tête. Adresse IP source est l adresse Internet de la source, codée sur 32 bits. Adresse IP destination est l adresse Internet de la destination, codée sur 32 bits. Le champs options contient des informations supplémentaires comme la trace des nœuds du réseau traversés et des informations de routage explicites. 11/36 c Sovanna Tan les protocoles de la suite TCP/IP
Segmentation-réassemblage Un paquet IP qui n est pas fragmenté a le bit MF et l offset qui valent 0. Lorsqu un paquet IP est trop long pour être transmis sur un réseau, il est fragmenté. Un nœud du réseau réassemble les paquets fragmentés qui lui sont destinés. Chaque fragment contient le même champ identification, ce qui permet, avec les adresses source et destination, d identifier les fragments d un même message. Si tous les paquets n arrivent pas, les fragments reçus sont rejetés. 12/36 c Sovanna Tan les protocoles de la suite TCP/IP
Algorithme de segmentation 1 Vérifier si le bit DF vaut 0, ce qui indique que le paquet peut être fragmenté. S il vaut 1, le paquet est rejeté. 2 Le champs de données est découpé en fragments dont la longueur doit être un multiple de 8 octets. On ajoute éventuellement des caractères de remplissage (padding) pour compléter le dernier fragment. 3 Chaque fragment est placé dans un paquet IP. L en-tête des messages est modifiée de la manière suivante : 1 Le bit MF est mis à 1 sauf pour le dernier paquet. 2 La position des données du fragment par rapport au début des données du message est mise dans le champ Offset. 3 Certaines options sont recopiées dans les en-têtes de tous les fragments, d autres sont conservées uniquement dans le premier fragment. 4 Le Checksum est recalculé. 3/36 c Sovanna Tan les protocoles de la suite TCP/IP
L adressage IPV4 (1) Une adresse pour chaque machine. Ne pas avoir à stocker les adresses de toutes les machines Numérotation des réseaux locaux. Taille des adresses IPV4 : 32 bits 0 8 16 32 A 0 n o réseau n o machine B 10 n o réseau n o machine C 110 n o réseau n o machine D 1110 adresse multicast E 11110 Réservé pour usage futur 14/36 c Sovanna Tan les protocoles de la suite TCP/IP
L adressage IPV4 (1) Adresse d un réseau : tous les bits du n o de machine valent 0. Adresse de diffusion (broadcast) : tous les bits du n o de machine valent 1. Classe Plage A 0.0.0.0 à 127.255.255.255 B 128.0.0.0 à 191.255.255.255 C 192.0.0.0 à 223.255.255.255 D 224.0.0.0 à 239.255.255.255 E 240.0.0.0 à 247.255.255.255 Certaines plages d adresses sont réservées : 127.0.0.1 : adresse de loopback, utilisée pour localhost par les applications IP en l absence de configuration réseau. Classes d adresse IPV4 non routables : adresses utilisables sur les réseaux locaux qui ne sont pas des adresses IP publiques. Classe A : plage de 10.0.0.0 à 10.255.255.255 ; Classe B : plage de 172.16.0.0 à 172.31.255.255 ; Classe C : plage de 192.168.0.0 à 192.168.255.255. 15/36 c Sovanna Tan les protocoles de la suite TCP/IP
Masque de réseau ou de sous réseau Masque de réseau (netmask) : masque pour le calcul de l adresse du réseau auquel appartient une machine Machine, indispensable pour le routage. Classe A : 255.0.0.0 Classe B : 255.255.0.0 Classe C : 255.255.255.0 Un réseau avec un n o IP de classe A ou B peut être organisé en plusieurs sous réseaux : Masque de sous réseau (subnetmask) : masque pour l adresse d un sous réseau. Les interfaces réseau des stations doivent être configurées avec le masque du sous réseau à la place du masque du réseau. Il est recommandé d utiliser des masques de sous réseau composés d une suite continue de 1 suivie d une suite continue de 0. Calcul de l adresse d un réseau ou d un sous réseau : n o IP-réseau(Machine)=n o IP(Machine) & masque(machine) 16/36 c Sovanna Tan les protocoles de la suite TCP/IP
Le routage IP 147.250.4.10 147.250.3.5 147.250.3.8 147.250.4.1 Routeur IP interne 147.250.3.1 147.250.1.1 147.250.1.10 Système autonome Réseau A Modem 192.24.2.1 Routeur IP externe 17/36 c Sovanna Tan les protocoles de la suite TCP/IP
Algorithme de routage du protocole IP Extraire l adresse destination I D du datagramme. Calculer l adresse I R du réseau destination. Si l adresse correspond à un réseau directement connecté à la station, l envoyer à travers le réseau. Si une route spécifique est déclarée pour I D, l envoyer par cette route. Si I R apparaît dans les tables de routage de la station, l envoyer comme spécifié dans la table. S il existe une route par défaut, l envoyer par cette route. Renvoyer une erreur. 18/36 c Sovanna Tan les protocoles de la suite TCP/IP
Mise en place du routage sur un réseau local Choisir la topologie du réseau. Numéroter les machines et paramétrer les routeurs. Déterminer les masques de réseau ou de sous réseau des stations et les déclarer avec la commande ifconfig sur chaque station. Déterminer les routes par défaut qui permettent à un datagramme de sortir du (sous) réseau pour chaque station. Les déclarer avec la commande route. Déclarer les routes spécifiques avec route en cas de besoin. Commande pour afficher la table de routage d une station : netstat -rn 19/36 c Sovanna Tan les protocoles de la suite TCP/IP
Le routage dans l Internet L Internet est organisé en systèmes autonomes. Interior Gateway protocol (IGP) : protocole utilisé par un routeur pour déterminer les routes des datagrammes au sein d un système autonome. Exterior Gateway Protocol (EGP) : protocole utilisé par un routeur externe pour annoncer aux autres systèmes autonomes, les réseaux de son propre système accessibles à travers lui. 20/36 c Sovanna Tan les protocoles de la suite TCP/IP
Les protocoles de routage internes (IGP) Routing Information Protocol (RIP) : Etablir un plus court chemin en nombre de nœuds (hops) traversés (maximun 16). Broadcast toutes les 30 s du contenu des tables de routage : (Adresse IP réseau destination, distance en hops). Open Shortest Path First (OSPF) : Les routeurs maintiennent une base de données d état des liens en s envoyant périodiquement des messages Link-State Advertisements (LSA). Chaque routeur calcule les plus courts chemins vers les autres réseaux en utilisant l algorithme de Dijkstra. 21/36 c Sovanna Tan les protocoles de la suite TCP/IP
Correspondance adresse IP/adresse MAC : Address Resolution Protocol (ARP) Le protocole ARP permet d obtenir l adresse physique d une machine située sur le même sous réseau connaissant son adresse IP. Recherche d une adresse physique : consultation du cache ARP. En cas d absence, broadcast du n o de l adresse IP ; stockage dans le cache ARP de la réponse. Reverse ARP (RARP) : permet d obtenir une adresse IP à partir d une adresse physique. Stations sans disque Terminaux X 22/36 c Sovanna Tan les protocoles de la suite TCP/IP
Trame ARP/RARP 0 8 16 24 31 Type de Hardware Type de Protocole Lg. adr. phy Lg. adr. prot. Opération Adresse physique emétteur (octets 0-3) Adr. phy. em. (oct. 4-5) Adr. IP em. (oct. 0-1) Adr. IP em. (oct. 2-3) Adr. phy. cible (oct. 0-1) Adresse physique cible (octets 2-5) Adresse IP cible (octets 0-3) 23/36 c Sovanna Tan les protocoles de la suite TCP/IP
1 Le protocole de la couche Réseau : IPV4 IPV4 Le routage IP ARP/RARP 2 Ls protocoles de la couche Le protocole UDP Le protocole TCP 4/36 c Sovanna Tan les protocoles de la suite TCP/IP
Identification d une connexion au niveau Transport Une station Unix gère simultanément plusieurs connexions IP. N o Port : Entier qui permet à une station Unix d identifier une connexion. Il est codé sur 16 bits. Les ports sont utilisés par les protocoles de la couche Transport. Socket : (n o IP, n o port). Une communication IP entre deux processus met en jeu un socket source et un socket destination. Station A Processus E écrit Station B Processus R lit Port X Port Y 25/36 c Sovanna Tan les protocoles de la suite TCP/IP
User Datagram Protocol Interface minimale pour le protocole IP au niveau transport. Adapté aux applications qui nécessitent des connexions rapides sur des médias sûrs. 0 16 31 Port source Port destination Longueur du message Checksum Données Trame UDP 26/36 c Sovanna Tan les protocoles de la suite TCP/IP
Les limites du protocole UDP Il ne garantit pas l arrivée des messages ; l intégrité des messages arrivés. Il n effectue pas de contrôle de flux ; contrôle de congestion ; reprise sur erreur. Il utilise les mécanismes de la couche liaison de données mis en place entre deux nœuds adjacents du réseau. 27/36 c Sovanna Tan les protocoles de la suite TCP/IP
Transmission Control Protocol Le protocole contrôle la présence des deux interlocuteurs : établissement d un circuit virtuel en duplex. l intégrité des données : numérotation de chaque octet de données ; acquittement positif avec retransmission après time out ; checksum sur chaque paquet. la congestion du réseau : calcul du délai de retransmission en fonction du temps entre l émission d un paquet et la réception son acquittement. la vitesse du récepteur : limite du nombre de paquets que l émetteur peut envoyer sans acquittement. 28/36 c Sovanna Tan les protocoles de la suite TCP/IP
Acquittement positif N o séquence : entier codé sur 32 bits qui numérote chaque octet de données dans un message TCP. A chaque paquet est associé un n o de séquence : Le n o de séquence d un paquet est incrémenté de 1 si le paquet ne contient pas de données ; du nombre d octets de données qu il contient sinon. Le récepteur acquitte un paquet en envoyant le n o de séquence du prochain octet attendu. Le numéro du premier paquet est généré aléatoirement par l émetteur. Un numéro ne peut pas être réutilisé tant qu il peut correspondre à celui d un paquet TCP encore en vie. 29/36 c Sovanna Tan les protocoles de la suite TCP/IP
Acquittement positif avec retransmission Paq 1 Délai de retransmission Paq 2 Paq 3 Paq 4 Paq 5 Paq 6 Paq 7 Paq 4 Paq 5 Paq 6 Paq 8 Ack 1 Ack 2 Ack 3 Ack 4+5+6+7 30/36 c Sovanna Tan les protocoles de la suite TCP/IP
Contrôle de flux Fenêtre glissante : nombre de paquets maximal que l émetteur peur envoyer sans attendre d acquittement. 1 2 3 4 5 6 7 La fenêtre glisse après l aquittement du paquet n o 1. 1 2 3 4 5 6 7 La taille de la fenêtre est fixée par le récepteur pendant l établissement de la connexion. S il est surchargé, il demande une diminution de la fenêtre. 31/36 c Sovanna Tan les protocoles de la suite TCP/IP
Contrôle de congestion Les délais de retransmission peuvent aussi varier pendant une transmission pour décongestionner le réseau. Lorsque l émetteur reçoit un acquittement, TCP calcule la différence entre l instant d émission et l instant d acquittement. En fonction de cette mesure, il utilise un algorithme adaptif pour modifier la valeur de la temporisation : lorsqu il constate un accroissement élevé de cette mesure (indicatrice de la congestion du réseau), TCP réduit automatiquement le débit de la connexion. 32/36 c Sovanna Tan les protocoles de la suite TCP/IP
Segment TCP 0 4 10 11 12 13 14 15 16 31 Port source Port destination Numéro de séquence Numéro de séquence d acquittement Off. Rés. u a p r s f Fenêtre Checksum Pointeur sur données urgentes. Options Padding Données 33/36 c Sovanna Tan les protocoles de la suite TCP/IP
Segment TCP Off(set) donne la taille de l entête TCP sur 4 bits. U(RG) indique lorsqu il vaut 1 qu il faut tenir compte du champ pointeur sur les données urgentes. A(CK) indique lorsqu il vaut 1 qu il faut tenir compte du champ numéro de séquence d acquittement. P(SH) indique lorsqu il vaut 1 qu il faut acheminer les segments TCP sur cette connexion. R(ST) indique lorsqu il vaut 1 la remise à zéro de la connexion. S(YN) indique lorsqu il vaut 1 qu il faut synchroniser les numéros de séquence, utilisés lors de l ouverture d une connexion. F(IN) indique lorsqu il vaut 1 que l émetteur n a plus de données à transmettre. Pointeur sur données urgentes pointe sur le premier octet contenant les données urgentes, il n est significatif que lorsque URG vaut 1. Options sert à spécifier une taille de segment maximale. 34/36 c Sovanna Tan les protocoles de la suite TCP/IP
Ouverture d une connexion TCP Mode passif : le processus attend une demande de connexion. Exemple : httpd, smtpd, sshd. Mode actif : le processus demande une connexion à un autre. Exemple : telnet, firefox, thunderbird, ssh. Validation à trois phases : n o seq. = x synchro n o seq. = x + 1 ACK y + 1 n o seq. = y synchro ACK x + 1 35/36 c Sovanna Tan les protocoles de la suite TCP/IP
Fermeture d une connexion TCP Un circuit TCP est constitué de deux voies indépendantes pour les deux sens de transmission. Les fermetures des voies sont indépendantes l une de l autre. n o seq. = x fin n o seq. = x + 1 ACK y + 1 n o seq. = y ACK x + 1 n o seq. = y + 1 fin 36/36 c Sovanna Tan les protocoles de la suite TCP/IP