Vous êtes sur la page 1sur 19

Protocoles de transport TCP et UDP

Institut Suprieur d'Informatique

Les protocoles de transport dInternet




La couche transport d Internet utilise les services de la couche rseau pour offrir des services la couche application. Elle est forme de 2 protocoles :


Un protocole orient connexion : le protocole TCP (Transmission Control Protocol) Un protocole sans connexion : le protocole UDP (User Data Protocol)




Le protocole TCP est conu pour assurer la communication de bout en bout des donnes de manire fiable sur un ensemble de rseaux non fiables. Le protocole UDP a t conu pour la communication sans connexion et sans contrle de la bonne rception de donnes. Les services de la couche application peuvent utiliser soit TCP soit UDP.
2

Le protocole TCP


TCP prtend fournir un service de communication de processus processus, dans un environnement rseau complexe. TCP est dfini comme un protocole de communication "host to host" TCP s'interface avec un processus utilisateur ou applicatif et un protocole de niveau infrieur du type Internet Protocol (IP).


L'interface avec les applicatifs consiste en un ensemble de commandes comme le ferait une application un systme d'exploitation pour la manipulation de fichiers (ex. des commandes pour tablir et rompre une communication, pour envoyer ou recevoir des donnes sur une connexion ouverte, etc.) L'interface entre TCP et les protocoles de couche basse est dfinie par la couche infrieure (dans le paquet IP, le champ protocole spcifie le numro 6 pour le protocole TCP).
3

Le protocole TCP


Les fonctionnalits du protocole TCP sont :




Transfert de donnes de base : TCP est capable de transfrer un flux continu de donnes entre deux ordinateurs, en dcoupant ce flux en paquets ou datagrammes. Contrle d erreur : TCP doit considrer et traiter les cas de donnes perdues, errones, dupliques, ou arrives dans le dsordre l'autre bout de la liaison Internet. Contrle de flux : TCP fournit un moyen au destinataire pour contrler le dbit de donnes envoy par l'metteur. Ceci est obtenu en retournant une information de "fentre" avec chaque accus de rception indiquant la capacit de rception instantane en termes de numros de squence. Ce paramtre not "window" indique le nombre d'octets que l'metteur peut envoyer avant une autorisation d'mettre ultrieure.
4

Le protocole TCP


Les fonctionnalits du protocole TCP (suite):




Multiplexage: Pour permettre plusieurs tches d'une mme machine de communiquer simultanment via TCP, le protocole dfinit un ensemble d'adresses et de ports pour la machine appele. Cette association d adresses Internet ainsi que les deux adresses de port chaque bout appel "socket". Connexions: Lorsque deux processus dsirent communiquer, leur TCP respectifs doivent tout d'abord ngocier et tablir une connexion. Lorsque la communication s'achve, elle sera ferme, en librant ses ressources d'autres usages. Priorit: Les exploitants de TCP peuvent indiquer le degr de la priorit de la communication tablie.
5

Le protocole TCP


Le format d un segment TCP est le suivant :


32 16 0

Port destination Numro de squence Numro d'accus de rception Long 6 bits UAP R S F en-tte rserv R C S S Y I Taille de fentre TCP GKHT NN Total de contrle d'en-tte Pointeur d'urgence Options (0, 1 ou plusieurs mots de 32 bits) Donnes (optionnelles)

Port source

  

Port source (16 bits) : Le numro de port de la source. Port Destinataire (16 bits ) : Le numro de port du destinataire. Numro de squence (32 bits) : Le numro du premier octet de donnes par rapport au dbut de la transmission (sauf si SYN est marqu). Si SYN est marqu, le numro de squence est le numro de squence initial (ISN) et le premier octet a pour numro ISN+1.
6

Le protocole TCP


Le format d un segment TCP (suite):




Accus de rception (32 bits) : Si ACK est marqu ce champ contient le numro de squence du prochain octet que le rcepteur s'attend recevoir. Data Offset (4 bits) : La taille de l'en-tte TCP en nombre de mots de 32 bits. Il indique l ou commence les donnes. L'en-tte TCP, dans tous les cas a une taille correspondant un nombre entier de mots de 32 bits. Rserv (6 bits) : Rservs pour usage futur et doivent tre 0. Bits de contrle (6 bits):
URG: Pointeur de donnes urgentes significatif ACK: Accus de rception. Si ACK est positionn 1, alors le numro de l accus de rception est pris en compte. PSH: Fonction Push qui signifie que les donnes doivent tre pousses l application concerne ds leur arrive.
7

 

Le protocole TCP


Le format d un segment TCP (suite):


RST: Rinitialisation d une connexion devenue incohrente cause de l arrt brutal d un ordinateur ou de tout autre incident. SYN: Synchronisation des numros de squence pour l tablissement d une connexion. FIN: Fin de transmission


Fentre (16 bits) : Le nombre d'octets partir de la position marque dans l'accus de rception que le rcepteur est capable de recevoir. Total de contrle d en-tte (16 bits) : semblable celui de IP Pointeur de donnes urgentes (16 bits) : Communique la position d'une donne urgente en donnant son dcalage par rapport au numro de squence. Le pointeur doit pointer sur l'octet suivant la donne urgente. Ce champs n'est interprt que lorsque URG est marqu. Options (variable) : semblables celles de IP.
8

 

Le protocole TCP


Protocole d tablissement de connexion




Une connexion est demande par activation de la commande OPEN indiquant le port local et les paramtres du socket distant. En retour, TCP rpond par un nom local (court) symbolique que l'application utilisera dans ses prochains appels. La trace de cette connexion est enregistr dans une structure de donnes appele Transmission Control Block (TCB). Il existe deux modes de connexion avec la commande OPEN : Un mode actif o OPEN ouvre une connexion jusqu son terme : commande CONNECTER (CONNECT). Un mode passif o le processus de connexion se met en attente d une demande de connexion plutt que de l initier lui mme : commande COUTER (LISTEN).
9

Le protocole TCP


Exemple : une connexion entre un client et un serveur.




Une des extrmits est un serveur qui attend d une manire passive l arrive d une communication en excutant la primitive LISTEN. L autre extrmit est un client qui excute la primitive CONNECT indiquant l adresse IP du serveur, le numro de port et la taille maximum de segments TCP. La primitive CONNECT envoie un segment TCP avec le bit SYN 1 et le bit ACK 0. Quand le segment CONNECT arrive au serveur, l entit TCP de destination cherche savoir s il existe un application l coute du port indiqu. Si oui, l application peut soit accepter soit refuser la connexion et s elle l accepte, elle envoie un accus de rception. Si non, elle rejte la connexion et envoie un segment de non acceptation avec le bit RST=1.
10

Le protocole TCP


Le Protocole d tablissement d une connexion TCP est schmatis comme suit :


CLOSED Passive open Active open; SYN SYN_SENT SYN+ACK/ACK ACK Established client serveur

SYN/SYN+ACK SYN_RCVD

LISTEN

_____ client ------- serveur




Si les deux ordinateurs essayent simultanment d tablir une connexion entre les deux mmes sockets, il y aura l tablissement d une seule connexion et non deux.
11

Le protocole TCP


Protocole de fermeture de connexion :




La connexion TCP est bidirectionnelle, donc on peut la reprsenter par deux connexions diffrentes l alternat. Chaque connexion est libre indpendamment de son homologue. La libration d une connexion se fait par envoi d un segment TCP avec le bit FIN positionn 1. Lors de la fermeture d une des deux connexions, le flot de donnes peut continuer circuler dans l autre sens. Lorsque les deux connexions sont fermes, la connexion est libre entre le client et le serveur. Il faut quatre segments TCP pour librer une connexion, mais on peut conomiser un si le premier ACK et le second FIN seront dans le mme segment. Un temporisateur est arm deux fois la dure de vie maximum des paquets pour dcider de la fermeture de la connexion sans retour dun accus de rception.
12

 

Fermeture de connexion TCP


client serveur

13

N seq et ACKs dans TCP


N Seq:  Numro du premier octet dans les donnes du segment. ACKs:  Numro de squence du prochain octet attendu de lautre cot.  ACK cumulatif Question: Comment le rcepteur gre les segements dsordonns.  Rponse: La spcification TCP ne prcise rien. Les implmentations diffrent. Host A
1000 octets de donnes

Host B

La machine Acquitte la rception des donnes

Envoi de 500 autres octets

Temps

14

Contrle de flux TCP




Le rcepteur lautre bout dune connexion TCP possde un buffer de rception.


Fentre de rception

Contrle de flux

Lmetteur ne dsire pas surcharger le rcepteur en envoyant trop de donnes dune faon rapide. Ncessit dadapter le taux denvoi au taux de traitement par les applications du rcepteur.

Donns de la couche IP

Donnes TCP dans le buffer

Donnes TCP dans le buffer

Processus  applicatifs

buffer de rception

Les processus des applications peuvent tre lents dans la lecture partir du buffer.
15

Le protocole TCP


Mcanisme de contrle de flux :




Le protocole TCP se base sur l attribution d un numro de squence chaque octet de donnes. Cette technique de "marquage" permet de confirmer chaque octet individuellement. Le mcanisme d'acquittement est cumulatif et la confirmation de l'octet de numro de squence X indique que tous les octets prcdents ont t bien reus. Ce mcanisme permet l'limination de toute donne reue en double par le principe de retransmission de squences en faute. La technique de numration commence ds le premier octet de donne, qui reoit le numro de squence le plus faible et les autres octets sont numrots en squence par ordre croissant. L espace de numrotation est cod sur 32 bits permettant le comptage de 0 232 - 1 octets modulo 232. 16

Le protocole TCP


Gestion de la fentre de transmission :  La fentre transmise dans chaque segment indique la plage de numros de squence que l'metteur de la fentre (celui qui reoit les donnes) est prt accepter.  La taille de cette fentre est en relation avec la taille disponible des tampons de donnes associs cette connexion.  Si le nombre de donnes reues est suprieur ce que la fentre indique, les donnes hors fentre seront rejetes.  Le TCP metteur doit tre prt accepter de l'application et envoyer.  L'metteur devra retransmettre rgulirement, au moins un octet de nouvelles donnes mme lorsque la fentre de transmission est de largeur nulle.  Cette retransmission est essentielle pour s'assurer que la rouverture de la fentre par le rcepteur sera bien signifie au TCP metteur.  L'intervalle recommand entre deux retransmissions, lorsque la largeur de fentre est nulle est d'environ 2 minutes.
17

Le protocole TCP


Exemple de gestion de fentre sous TCP :


metteur
L application crit 2K

Rcepteur

Tampon Rcepteur

Vide

4Ko

2Ko L application crit 3K Plein L metteur est bloqu L application lit 2K 2Ko L application peut envoyer jusqu 2K 1Ko 2Ko 18

Le protocole UDP
 

Le protocole UDP permet aux applications d encapsuler des paquets IP bruts et les envoyer sans tablir de connexion. Le format du segment UDP est le suivant :
32 16 0

Port source Longueur UDP

Port destination Total de contrle UDP

   

Exemple d applications qui utilise UDP : le protocole d administration rseau SNMP (Simple Network Management Protocol)

Les deux ports ont la mme fonction que dans TCP La longueur UDP est la longueur totale d un segment UDP (en-tte + donnes) Le totale de contrle d en-tte a la mme smantique que celui d un segment TCP ou un datagramme IP. Le total de contrle d en-tte est optionnel, il est gal zro s il n est pas utilis.

19

Vous aimerez peut-être aussi