Вы находитесь на странице: 1из 27

Les protocoles TCP et UDP

Deux protocoles de paquets au niveau de la pile TCP/IP sont disponibles: UDP : mode non-connect , sans mcanismes de contrle de flux, ni de reprise sur erreur, Ce qui peut induire des paquets perdus, dupliqus ou d-squencs. cest un protocole lger. TCP : mode connect , contrle de flux, reprise sur erreur, Les paquets arrivent dans lordre. Cest un protocole lourd.

Contexte
Modle TCP/IP
Application Protocoles FTP HTTP SMTP DNS DNS TFTP

Transport Internet TCP UDP

Accs rseau

Rseau

IP

UDP : les ports

Ces destinations abstraites permettant d'adresser un service applicatif s'appellent des ports de protocole. L'mission d'un message se fait sur la base d'un port source et un port destinataire.

Ports
Au niveau applications : transmission des blocs de donnes Au niveau protocole (exemple TCP) : envoie des segments, puis rassemblement des blocs selon lapplication n De port (multiplexage des donnes / dmultiplexage rception)

Les oprations sur les ports sont tamponnes donc ncessit dune file dattente Socket (interface systme de processus de communication) = adresse IP plus protocole (TCP/IP) plus n de port (0 65535)

Ports (suite)
Message : (adresse IP, N de port) source et (adresse IP, N de port) destination 65535 ports TCP idem UDP Il y a des ports prdfinis Exemple pour TCP : 20 et 21 : FTP 23 : Telnet 25 : SMTP 80 : HTTP Pour UDP : 69 : TFTP 161: SNMP

TCP et UDP TCP


- Mode connect
Avant denvoyer des donnes, Sassurer de la prsence du rcepteur Garantie une certaine qualit de Service

UDP
- Mode non connect Envoi sans vrifier la prsence du rcepteur Rduction des fonctions Plus grande simplicit du transport Connexion bi-directionnelle

Connexion bi-directionnelle fiable

Non fiable

UDP (User Datagram Protocol)


Utilise IP pour lacheminement Non fiable (cest lapplication qui doit grer les problmes: messages perdus; duplication, retard, dsquencement) UDP multiplexe et dmultiplexe les datagrammes en slectionnant les numros de ports :

une application obtient un numro de port de la machine locale; ds lors que l'application met un message via ce port, le champ PORT SOURCE du datagramme UDP contient ce numro de port, une application connat (ou obtient) un numro de port distant afin de communiquer avec le service dsir.
Lorsque UDP reoit un datagramme, il vrifie que celui-ci est un des ports actuellement actifs (associ une application) et le dlivre l'application responsable (mise en queue) Si ce n'est pas le cas, il met un message ICMP port unreachable, et dtruit 7 le datagramme.

UDP : format des messages


Les messages UDP sont galement appels des datagrammes UDP.

datagramme UDP : un en-tte UDP + donnes UDP.


0 16 31 Port UDP source Port UDP dest.
Longueur message UDP

Checksum UDP

Format du Datagramme UDP

Donnes
Les ports source et destination (2x2 octets) : numros de port UDP utiliss pour dmultiplexer les datagrammes les acheminer au processus au niveau rception port source facultatif (gal zro si non utilis). La longueur du message est exprime en octets (en-tte + donnes), le champ de contrle est optionnel (0 si non utilis).
8

UDP : format des messages

Pour lenvoi, encapsulation dans un paquet ou datagramme IP avec le champ protocole gal 17
En-tte IP En-tte UDP Donnes

UDP : pseudo en-tte


Lorsqu'il est utilis, le champ de contrle couvre plus d'informations que celles contenue dans le datagramme UDP; En effet, le checksum est calcul avec un pseudo-en-tte non transmis dans le datagramme: 0 8 16 Adresse IP Source Adresse IP Destination zro proto
Longueur UDP

31 Format du pseudo en-tte

Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP) Le champ LONGUEUR UPD spcifie la longueur du datagramme UPD sans le pseudo-en-tte.

10

Rception dun datagramme UDP


Au niveau rception : Transfert jusqu IP puis jusqu UDP (protocole = 17, dans len tte IP)

Si le checksum est non nul alors reconstitution du pseudo en-tte UDP pour vrification en cas de problme le datagramme est dtruit (en silence), sinon, transmission lapplication (selon le numro de port destination)

11

TCP : Transmission Control Protocol


RFC 793 multiplexage / dmultiplexage des donnes des applications

Contrle de flux transport fiable de la technologie TCP/IP. fiabilit transferts tamponns : dcoupage en segments connexions bidirectionnelles et simultanes Protocole en mode connect (metteur et rcepteur) garantie de non perte de messages ainsi que de l'ordonnancement

12

TCP : La connexion
une connexion de type circuit virtuel est tablie avant que les donnes ne soient changes : appel + ngociation + transfert Une connexion = une paire d'extrmits de connexion Une extrmit de connexion = couple (adresse IP, port) Une extrmit de connexion peut tre partage par plusieurs autres extrmits de connexions (multi-instanciation) Ltablissement de la connexion est en trois tapes (processus 3-way handshake : poigne de mains en 3 points )
metteur
Ouverture qctive demande Ouverture passive acceptation

rcepteur

ok

Connexion tablie

13

TCP : Segmentation
Segmentation, contrle de flux Les donnes sont transmises TCP sous forme dun flot d'octets ( longueur variable); Transferts tamponns; Le flux flot de donnes est divis en segments Un segment est transmis dans un datagramme IP. Acquittement de messages Pour garantir l'arrive des messages, c'est dire qu'en cas de perte, les deux extrmits sont prvenues, TCP utilise le mcanisme dacquittement de message : lorsqu'une source S met un message Mi vers une destination D, S attend un acquittement Ack de D avant d'mettre le message suivant Mi+1. Si lacquittement Ack ne parvient pas S, S considre au bout d'un certain temps que le message est perdu et remet Mi (Timeout = temporisation) :
14

TCP : Acquittements
Rseau

Emetteur
Envoi du segment Temporisation arme

Rcepteur
Segment nest pas reu Acquittement non envoy

Acquittement nest pas reu Tempo. choue Remission du segment Rception du segment Emission de Acquittement

Rception de Acquittement Et tempo. relche


15

TCP : le fentrage
La technique acquittement simple pnalise les performances puisqu'il faut attendre un acquittement avant d'mettre un nouveau message. Le fentrage amliore le rendement des rseaux.
La technique du fentrage : une fentre de taille T, permet l'mission d'au plus T messages "non acquitts" avant de ne plus pouvoir mettre :

16

TCP : le Fentrage
Source Emission de Mi Emission de Mi+1 Emission de Mi+2 Rception de Ai Rseau Destination

Rception de Mi Emission de Ai

Fentrage de taille 3
17

TCP : Technique de fentrage


Adapt aux capacits de rception du destinatoire Fentre glissante permettant d'optimiser la bande passante ventuelles baisse de bande passante / pb de congestion Permet galement au destinataire de baisser le dbit de l'metteur donc de grer le contrle de flux. Le mcanisme de fentrage mis en uvre dans TCP opre au niveau de l'octet et non pas au niveau du segment; il repose sur : la numrotation squentielle des octets de donnes, la gestion de trois pointeurs par fentrage :

1 2 3 4 5 6 7 8 9 10 11 . . .
Octets mis et acquitts
Octets mis et non acquitts Octets missibles

Octets non missibles tout de suite.


18

Format du segment TCP


Segment : unit de transfert du protocole TCP. Echangs pour ltablissement des connexions, Le transfert des donnes, Lenvoi des acquittements, La libration ou la fermeture des connexions; 0 4 10 16 24 Port destination 31

Port source

Numro de squence Numro dacquittement N * 32bits HLEN rserv Codes Checksum fentre pointeur urgence padding
19

Options ventuelles Donnes . . .

TCP : format du segment


N de squence : le numro de squence du premier octet (NSP) de ce segment dans le flux global doctets. Gnralement la suite doctets O1, O2, ..., On (donnes du message) est associe la suite de numro de squence NSP, NSP+1, ..., NSP+n-1. A linitiation de la communication, la machine source choisit le seq initial (ISN) NB : Le 1er segment (avec SYN =1(voir CODE BITS) ) consomme un seq (comme si SYN=1 tait le 1er octet) le 1er vrai octet des donnes est alors identifi ISN+1 Mme raisonnement pour bit FIN=1. N dacquittement : Pris en compte lorsque ACK=1 le Ndu prochain octet que le rcepteur sattend recevoir donc 1 de + que le n du dernier octet reu . Acquitte implicitement les octets prcdents. Fentre: la quantit de donnes que lmetteur de ce segment est capable de recevoir (< 65535 octets) ; ceci est mentionn dans chaque segment (donnes ou acquittement). 20

TCP : Format du segment


CODE BITS : indique la nature du segment : URG : le pointeur de donnes prioritaires (exemple : interrupt en remote login), les donnes sont mises sans dlai, les donnes reues sont remises sans dlai. SYN : utilis louverture de la connexion pour indiquer o la numrotation squentielle commence. Ack: pour acquitter un segment / ensemble de segments FIN : utilis lors de la libration de la connexion; PSH : fonction push. Normalement, en mission, TCP reoit les donnes depuis lapplicatif , les transforme en segments puis transfre les segments sur le rseau; un rcepteur TCP dcodant le bit PSH, transmet lapplication rceptrice, les donnes correspondantes sans attendre plus de donnes de lmetteur. RST : utilis par une extrmit pour indiquer lautre extrmit quelle doit rinitialiser la connexion. Utilis pour : Rinitialiser une connexion devenue incohrente Refuser une tentative douverture de connexion
21

TCP format du segment

Adresse IP source Adresse IP destination Zro protocole


(bourrage) (6)

longueur TCP

CHECKSUM : Pour TCP obligatoire Calcul du champ de contrle : utilise un pseudo-en-tte comme UDP et s'applique la totalit du segment obtenu (PROTO =6) Le pseudo en-tte est non transmis
22

TCP : format de lentte


OPTIONS

Permet de ngocier la taille maximale des segments changs. Cette option n'est prsente que dans les segments d'initialisation de connexion ( avec bit SYN). TCP calcule une taille maximale de segment de manire ce que le datagramme IP rsultant corresponde au MTU du rseau. La recommandation est de 536 octets.

23

TCP : acquittements
Acquittements cumulatifs :
acquittement = indique le numro de squence du prochain octet attendu : tous les octets prcdents cumuls sont implicitement acquitts Si un segment a un numro de squence suprieur au numro de squence attendu (bien que dans la fentre), le segment est conserv mais lacquittement rfrence toujours le numro de squence attendu. Pour tout segment mis, TCP sattend recevoir un acquittement Si le segment nest pas acquitt, le segment est considr comme perdu et TCP le retransmet. Or un rseau dinterconnexion offre des temps de transit variables ncessitant le rglage des temporisations; TCP gre des temporisations variables pour chaque connexion en utilisant un algorithme de retransmission adaptative
24

Fentre=900 TCP source

TCP : Acquittements
Seq=5 Envoi de 300 octets Seq=305 Ack=305 Envoi de 300 octets

Segment=300

TCP destination

Attente car f = 900

Seq=605 Envoi de 300 octets Ack=305 Seq=305 Envoi de 300 octets Seq=605

Attente de 305

Peut tre conserv ==> peut ne pas tre rmis Envoi de 300 octets car acquitt Ack=905 entre temps
25

TCP : la congestion
Gestion de la congestion TCP gre le contrle de flux de bout en bout mais galement les problmes de congestion lis linterconnexion. La congestion correspond la saturation de noeud(s) dans le rseau provoquant des dlais dacheminement de datagrammes jusqua leur pertes ventuelles. Les extrmit ignorent tout de la congestion sauf les dlais. Habituellement, les protocoles retransmettent les segments ce qui aggrave encore le phnomne. Dans la technologie TCP/IP, les passerelles (niveau IP) utilisent la rduction du dbit de la source mais TCP participe galement la gestion de la congestion en diminuant le dbit lorsque les dlais sallongent.
26

TCP : dconnexion
Une connexion TCP est libre en un processus dit "trois temps modifi": TCP source Fin seq=x TCP destination

ack=x+1 + fin-> applicatif Applicatif -> close Fin seq=y ack=x+1 Ack y+1
27

Вам также может понравиться