tcp – transmission control protocol. tcp présentation : les applications qui exigent du...
TRANSCRIPT
![Page 1: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/1.jpg)
TCP – Transmission Control Protocol
![Page 2: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/2.jpg)
TCP
Présentation :
Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable des données utilisent TCP
Ce protocole vérifie que les données sont correctement transmises de bout en bout et dans la séquence appropriée
TCP est un protocole fiable, orienté connexion, à flux d'octets
![Page 3: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/3.jpg)
TCP
La fiabilité de TCP provient d'un mécanisme appelé Positive Acknowledgment with Retransmission (PAR)
Le processus émetteur renvoie les données à moins qu'il n'apprenne du système distant que les données sont bien arrivées
L'unité de données échangées entre des modules TCP coopératifs est appelée un segment
![Page 4: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/4.jpg)
TCP
Chaque segment contient une somme de contrôle qu'utilise le destinataire pour vérifier que les données ne sont pas endommagées
Si c’est le cas, le récepteur renvoie un acquittement positif (positive acknowledgment) à l'émetteur
Si le segment de données est endommagé, le récepteur le détruit
Après un laps de temps approprié, le processus TCP émetteur retransmet tout segment pour lequel l'acquittement n'a pas été reçu
![Page 5: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/5.jpg)
TCP
TCP est orienté connexion
Il établit une connexion logique de bout en bout entre les deux applications hôtes communiquant entre eux
Des informations de contrôle, appelées le handshake, sont échangées entre les deux points pour établir un dialogue avant de transmettre les données
TCP indique la fonction de contrôle d'un segment en modifiant le bit correspondant du champ Flags au mot long n°4 de l'en-tête de segment
![Page 6: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/6.jpg)
TCP
En fonctions des segments échangés, une connexion est soit en cours d’établissement, soit en échange de données, soit en mode de fermeture de connexion
Une connexion virtuelle sera établie entre les applications de l'émetteur et du destinataire
Pour les couches supérieurs, comme la programmation des sockets, TCP représente un service transparent
Les connexions logiques TCP sont Unicast
![Page 7: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/7.jpg)
TCP
Le protocole TCP - en-tête de segment TCP :
Sur les OS Windows, le logiciel de pilotage TCP se trouve dans la bibliothèque Winsock.dll ou wsock32.dll
Ces fichiers contiennent la pile de protocoles TCP/IP sous Windows
![Page 8: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/8.jpg)
TCP
L'en-tête TCP est constitué de 20 octets qui suivent les 20 octets minimum de l'en-tête IP
Cela n'optimise pas la bande passante mais c'est le prix administratif à payer pour obtenir une connexion sécurisée de bout en bout
Cet en-tête est nécessaire même pour ne transporter qu'un segment d'accusé de réception ACK
TCP essaie d'optimiser l'envoi de segments particulièrement en les faisant de la taille la plus importante possible
Toutefois TCP tient compte des limites de la MTU sous-jacente
![Page 9: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/9.jpg)
TCP
![Page 10: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/10.jpg)
TCP
Port Source (16 bits)
numéro de port côté émetteur
Port Destination (16 bits)
numéro de port côté récepteur
Numéro de séquence (32bits)
offset du 1er octet de données emportées
Numéro d'acquittement (32 bits)
indique à l'autre l'offset du prochain octet de donnée attendu. Il valide implicitement les octets précédemment reçus
Offset (4 bits) indique la taille de l'en-tête TCP en mots longs de 32 bits
Réservé (6 bits) réservés pour une utilisation ultérieure
![Page 11: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/11.jpg)
TCP
Flags (6bits) désigne la fonction du segment TCP courant
URG le segment contient des données urgentes (Urgent Data). Le champ Pointeur Urgent sera pris en considération
ACK le segment contient un Acknowledge
PSH des données suivent immédiatement
RST reset de la connexion
SYN établissement de la connexion et synchronisation des Numéros de Séquence
FIN l'expéditeur n'a plus de données à émettre. Demande d'interruption de la connexion
Fenêtre (16 bits)
nombre d'octets que l'expéditeur est prêt à recevoir en tenant compte de l'octet affiché dans le Numéro d'Acquittement
Somme de contrôle (16 bits)
somme de contrôle basée sur le pseudo en-tête et les données
@IP+N°protocole TCP (0x0006)+longueur du segment
Pointeur Urgent (16 bits)
indique l'offset du premier octet de données normales suivant les données urgentes se trouvant après l'en-tête TCP
Options (longueur variable)
options, par exemple la taille maximale des segments
![Page 12: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/12.jpg)
TCP
Le protocole TCP - Le three-way Handshake :
Les communications TCP se déroulent en full-duplex virtuel
Emetteur et destinataire peuvent échanger des données simultanément
Les paquets d'informations échangés vont de l'octet à plusieurs méga-octets, voire sans limite
Le type de handshake employé par TCP est appelé un Three-Way Handshake parce que trois segments sont échangés
![Page 13: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/13.jpg)
TCP
![Page 14: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/14.jpg)
TCP
L'hôte A commence la connexion en envoyant à l'hôte B un segment dont le bit « SYnchronize sequence Number » SYN, est à 1 et le bit ACK à 0
Ce segment signifie à l'hôte quel numéro de séquence emploiera en premier l'hôte A pour ses segments (les numéros de séquence sont employés pour conserver l'ordre des données)
L'hôte B répond à A avec un segment qui a les bits « Acknowledgment » ACK et SYN à 1
![Page 15: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/15.jpg)
TCP
Le segment B acquitte la réception du segment de A et informe ce dernier par quel numéro de séquence, B va commencer
Enfin, l'hôte A envoie un segment qui acquitte la réception de celui de B et transfère les premières vraies données
Le bit ACK n’est à 0 que dans le premier segment et toujours du client vers le serveur
![Page 16: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/16.jpg)
TCP
Après cet échange, l'hôte A a la preuve que le TCP distant est actif et prêt à recevoir des données
Dès que la connexion est établie, les données peuvent être transférées
Quand les modules coopératifs ont terminé les transferts de données, ils échangent un des segments administratifs contenant le bit « plus de données de l'envoyeur » (bit FIN) à 1 pour clore la connexion
Chaque segment contenant le bit FIN à 1 sera validé par un ACK qui sera l'ultime envoi de la connexion
![Page 17: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/17.jpg)
TCP
TCP considère les données qu'il envoie comme un flux continu d'octets et non comme des paquets indépendants
Il prend soin de maintenir la séquence dans laquelle les octets sont envoyés et reçus
Les champs « n° de séquence » et « n° d'acquittement » de l'en-tête du segment TCP sont de pointeurs de flux octets
![Page 18: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/18.jpg)
TCP
Le standard TCP ne demande pas de commencer à numéroter les octets avec un nombre spécifique
Chaque système choisit celui qui servira de point de départ
Afin de garder la trace du flux de données, chaque bout de la connexion synchronise les systèmes de numérotage des octets en échangeant des segments SYN pendant le handshake
Le champ « n° de séquence initial » du segment SYN contient le Numéro Initial de Séquence (ISN) qui est le point de départ du système de numérotage des octets
![Page 19: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/19.jpg)
TCP
Chaque octet de données est numéroté de façon séquentielle depuis l'ISN et le premier octet de données prend donc le numéro ISN+1
Le Numéro de Séquence de l'en-tête d'un segment de données identifie la position séquentielle dans le flux de données du premier octet de données dans le segment
![Page 20: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/20.jpg)
TCP
Le Segment d'Acquittement (ACK) se charge de deux fonctions : l'acquittement positif et le contrôle de flux
L'acquittement dit à l'émetteur combien de données ont été reçues et combien le récepteur peut encore en accepter
Le Numéro d'Acquittement est le numéro de séquence du dernier octet reçu à l'autre bout + 1
Il s’agit en fait, du prochain octet attendu
![Page 21: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/21.jpg)
TCP
Le standard ne demande pas un acquittement individuel pour chaque paquet
Le numéro d'acquittement est un acquittement positif de tous les octets jusqu'à ce numéro
Par exemple, si le premier octet envoyé et numéroté 1 et que 2000 octets ont été correctement reçus, le Numéro d'Acquittement est 2001
![Page 22: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/22.jpg)
TCP
Le champ Fenêtre contient le nombre d'octets que le récepteur peut accepter
S'il peut accepter 6 000 octets, la fenêtre sera de 6 000
La Fenêtre indique à l'émetteur qu'il peut continuer à envoyer des segments tant que le nombre total envoyé est plus petit que la fenêtre d'octets que le récepteur peut accepter
Ce dernier contrôle le flux d'octets en provenance de l'émetteur en changeant la taille de la fenêtre
Une fenêtre à 0 demande à l'émetteur de cesser la transmission jusqu'à ce qu'il reçoive une valeur de fenêtre non nulle
![Page 23: TCP – Transmission Control Protocol. TCP Présentation : Les applications qui exigent du protocole de Transport qu'il fournisse une transmission fiable](https://reader036.vdocument.in/reader036/viewer/2022062622/551d9dcb497959293b8e4a17/html5/thumbnails/23.jpg)
TCP
TCP est également chargé de délivrer les données reçues de IP à l'application correcte
Celle-ci est identifiée par un numéro sur 16 bits appelé Numéro de Port Destination
Le Port Source et le Port Destination sont contenus dans le premier mot long de l'en-tête du segment
Le passage correct des données depuis la Couche Application et vers elle constitue une partie importante du rôle des services de la Couche Transport