Académique Documents
Professionnel Documents
Culture Documents
Cette partie prsente le second service important et connu : le service de remise fiable en mode
connect et le protocole de contrle de transmission, TCP (Transmission Control Protocol) qui le
dfinit.
Si TCP est prsent ici dans le cadre de la famille des protocoles TCP/IP, il constitue toutefois un
protocole indpendant, dusage gnral qui peut tre adapt pour communiquer avec dautres systmes de
remise, car TCP ne fait que peu dhypothses sur le rseau sous-jacent.LISO sen est inspir pour dfinir
le protocole de transport TP-4.
Orientation connexion
Lorsque deux programmes dapplication transfrent de gros volumes de donnes, nous imaginons
des flots de bits structurs en caractres ou octets (8 bits). Le service de remise fiable en mode connect
transmet lordinateur destinataire une suite doctets identique celle que lordinateur source a mis.
ii)
Circuits Virtuels
Les ordinateurs doivent tout dabord mettre un appel qui doit tre accept par le correspondant.
Une fois lappel accept, les modules du protocole informent les programmes dapplication quune
connexion est tablie et le transfert dinformations peut commencer. Pendant le transfert, les logiciels des
deux ordinateurs continuent communiquer afin de vrifier si les donnes ont t correctement reues. Si
un incident apparat au cours du traitement, les deux ordinateurs en rendent compte au programme
dapplication concern.
iii)
Transferts tamponns
Lors du transfert de donnes, les applications utilisent toute la taille du bloc. Elle peut aller
jusquau simple octet. A lextrmit rceptrice, le logiciel de communication remet les octets au
programme dapplication dans lordre exact reu sur la connexion.
Le logiciel de communication est libre de dcomposer le flot de donnes en paquets, indpendants
des blocs de donnes transmis par les programmes dapplication.
iv)
Les programmes dapplication utilisant le service de flots doivent connatre la structure des
donnes changes et se mettre daccord sur la structure du flot avant dtablir la connexion. Ce qui
revient dire que le service de TCP/IP ne traite pas des flots structurs.
v)
Les connexions assures par le service TCP/IP permettent les changes simultans dinformations
dans les deux sens, en mode bidirectionnel simultan (full duplex), en opposition une connexion
bidirectionnelle lalternat (half duplex) o la transmission nest mise que dans un sens.
II)
Assurer la fiabilit
Afin dobtenir un service fiable, on a recours l emploi dun accus de bonne rception, ACK,
chaque fois que le rcepteur reoit des donnes. Lmetteur, quant lui, conserve une copie du paquet
mis en attendant cet accus; de plus, il arme une temporisation et retransmet le paquet sil na pas reu
entre temps laccus correspondant.
Un dernier problme na pas t trait, celui de la perte de laccus de rception et donc du rique
que le paquet soit dupliqu. En gnral, les protocoles fiables dtectent les paquets dupliqus en affectant
chaque paquet un numro squenciel et en exigeant du rcepteur quil garde la trace des numros des
paquets reus.
III)
Son but est damliorer lefficacit de la transmission des flots. Un protocole simple utilisant un
accus de rception gaspille une quantit significative de capacit car la transmission dun nouveau
paquet est retarde jusqu' ce que laccus de rception correspondant au paquet prcdent ait t reu par
lmetteur.
Le principe des fentres glissantes est de pouvoir envoyer plusieurs paquets sans devoir attendre
un accus de rception.
1) Principe dutilisation
Le protocole positionne une petite fentre de taille fixe sur la suite des paquets envoyer, puis
transmet tous ces paquets qui se trouvent lintrieur de cette fentre. Le schma suivant montre son
fonctionnement.
On peut constater quun bonne utilisation de ce protocole peut amliorer sensiblement la vitesse
des paquets dans le rseau.
Pour chaque paquet mis un temporisateur spcial est activ. Si le paquet nest pas acquitt, il est
retransmis. Ct rcepteur, le logiciel de communication gre une fentre analogue : il accepte et acquitte
les paquets au fur et mesure de leur arriv.
TCP dans un systme dexploitation et qui doivent utiliser linterface systme mise leur disposition
quelle quelle soit.
Etant donn sa grande souplesse, on peut lutiliser avec un grand nombre de systmes de remise
de paquets tel quIP. Mais aussi TCP peut tre implment sur des lignes tlphonniques, des liaisons
loues, un rseau local, un rseau optique haut dbit ou un rseau grande distance. Cest lune de ses
plus grandes forces.
V)
Comme le rcepteur doit lui aussi grer une fentre analogue, et comme le connexion seffectue
dans les deux sens, nous avons besoin au total de 4 fentres glissantes lors dune connexion TCP.
VIII)
La grande diffrence entre une fentre glissante et la fentre glissante de TCP est que la taille de la
fentre peut varier dans le temps.
Bien adapt, ce mcanisme permet de rsoudre deux problmes importants, celui de lefficacit de
la transmission et du contrle de flux de bout en bout.
Chaque accus de rception contient le nombre doctets correctement reus et contient aussi une
indication de la taille de la fentre (window advertisment) qui donne le nombre doctets supplmentaires
que le rcepteur est prt accepter. Selon la demande, la fentre va saggrandir ou au contraire se rtrcir.
Une taille de fentre nulle signifie un arrt de transmission de donnes. Cependant, deux types
dinformations peuvent tout de mme tre changes sur le rseau :
- Donnes urgentes
- Interrogation priodique du rcepteur, afin dviter une treinte fatale (deadlock : indication de l
a taille de la fentre non nulle perdue).
TCP ne dispose pas de mcanisme de congestion spcifique.
IX)
Lunit de donnes changes entre les logiciels est le segment . Chaque segment est divis en
deux parties, un en-tte et des donnes. Len-tte TCP ( TCP header ) comporte des informations
didentification et de contrle.
Les champs Port source et Port destination contiennent les numros de port TCP qui identifient
les programmes dapplication des extrmits de la connexion.
Le Numro de squence donne la position du segment dans le flux de lmetteur, et le Numro
daccus de rception indique le numro du prochain octet attendu par le rcepteur.
Notons au passage que le numro de squence fait rfrence au flot qui scoule dans le mme
sens que le segment, tandis que le numro daccus de rception fait rfrence au flot de sens contraire.
Le champ Lgr-ent contient un entier qui indique la longueur de len-tte du segment, exprim en
multiple de 32 bits. Ce champ est ncessaire car la longueur du champ Options est variable suivant les
options choisies. La taille de len-tte TCP varie donc en fonction des options. Le champ Rserv de 6
bits est rserv pour un usage ultrieur.
Les logiciels TCP utilisent le champ Bits de code pour dterminer le rle et le contenu du segment,
type accus de rception, donnes, demande dtablissement ou de libration dune connexion
Le champ Fentre indique la taille du tampon de rception chaque mission de segments.
Ci-dessous un tableau reprsentant des bits de champ Bits de code de len-tte TCP :
X)
URG
ACK
PSH
RST
SYN
FIN
Lors dune connexion TCP, lutilisateur peut dcider dmettre une squence de caractres afin de
ou dinterrompre un programme en cours dexcution lautre extrmit. On appelle ces
donnes des donnes hors bande (donnes urgentes). Elles sont prioritaires donc indpendantes de leurs
positions dans le flot, ce qui signifie quau moment de larrive dune de ces donnes, le programme
dapplication doit se mettre en mode urgence et traiter ces donnes, puis revenir la cas chant en mode
normal.
<<tuer>>
Le mcanisme utilis pour marquer les donnes urgentes lors de transmission dans un segment est
constitu du bit URG et du champ Pointeur durgence.
XI)
Tous les segments mis sur la connexion ne sont pas de mme taille. Toutefois les deux extrmits
ont besoin de se mettre daccord sur la taille maximale du segment. On utilise alors le champ Options afin
de ngocier la taille maximale des segments, MSS (Maximum Segment Size).
En pratique, il est trs difficile de calculer cette valeur pour plusieurs raisons :
i)
ii)
iii)
XII
Le champ total de contrle est utilis pour vrifier la validit des donnes et de len-tte. Il est
cod sur 16 bits.
Il ajoute un pseudo en-tte et suffisamment doctets zro pour faire concider la taille du segment
avec un multiple de 16 bits. Ainsi on suppose que le champ total de contrle vaut zro au moment du
calcul du total de contrle. TCP utilise une arithmtique sur 16 bits et prend le complment 1 de la
somme des complments 1. Sur le site de rception, TCP effectue le mme calcul pour vrifier que les
donnes nont pas t altres.
Ci-dessous, la structure du pseudo en-tte utilis pur le calcul du total de contrle TCP.
Les adresses sources et destination sont, contrairement UDP, trs importantes. Le logiciel TCP
metteur dfinit la valeur du champ Protocole que le systme de remise sous-jacent utilisera dans son
champ type de protocole. Dans le cas des datagrammes IP qui transportent des segments TCP, la valeur
est 6.
Le champ Longueur TCP indique la longueur totale du segment TCP, en-tte TCP inclus. Au
niveau du destinataire, les informations du pseuso en-tte sont extraites et prises en compte dans le calcul
du total de contrle afin de vrifier la non-altration du segment.
Les accuss de rception indiquent toujours le numro du prochain octet attendu par le rcepteur.
Le mcanisme daccus de rception de TCP est dit cumulatif car il indique combien doctets du flots ont
t accumuls.
Avantages de ce mcanisme :
-
Inconvnients de ce mcanisme :
- lmetteur ne reoit pas daccus de rception relatif la bonne transmission dun segment
mais une indication demplacement dans un flot.
XV)
En thorie la mesure du temps de boucle est simple Il suffit de calculer la diffrence entre la date
dmission du segment et celle de la rception de laccus de rception. Cependant TCP utilise une
technique dacquittement cumulatif dans laquelle laccus de rception concerne les donnes reues
plutt que le segment qui a servi les acheminer.
Dans le cas dune retransmission dun segment, lmetteur reoit un accus de rception, mais il
ne sait pas si cest laccus du premier segment envoy ou bien si cest celui du segment rmis. On
appelle cela lambigut des accuss de rception.
Consquence : le temps de boucle peut augmenter de faon arbitraire si chaque segment est perdu
au moins une fois.
XVII)
Cependant des tudes de boucles ont montr que lalgorithme de KARN ne sadaptait pas aux
grandes variations de dlais.
La thorie des files dattente indique que la variation de temps de boucle, , varie
proportionnellement 1 / (1 L) ou L est la charge courante du rseau (0 L 1).
Ex : si le rseau est occup 50 %, la variation sera de 1 / (1 0.5) = 2, cest dire 2, donc une
variation de 4. Si le rseau est occup 80 % la variation sera de 16.
En utilisant la technique du calcul du temps de boucle TCP et en prenant une valeur = 2, on
sadapte des charges maximales de 30 %.
Les spcifications de TCP de 1989 exigent des implmentations. Ces dernires calculent les
estimations du temps de boucle et de la variance, la place de la variable . Ceci permet de sadapter
des plages sensiblement plus grandes de dlai ainsi qu un dbit plus important.
Lapproximation se calcule de la manire suivante :
Diff = Echantillon Anc_RTT
RTT_Estim = Anc_RTT - * Diff
Dev = Anc_Dev + ( |Diff| - Anc_Dev)
Temporisation = RTT_Estim + *Dev
XVIII)
Grer la congestion
La congestion est un phnomne caus par la saturation dun ou plusieurs nuds de commutations
de paquets. Ceci entrane une augmentation des dlais et une possibilit de pertes de paquets. Les
techniques de temporisation puis de retransmission aggravent le phnomne de congestion, jusqu ce que
le rseau devienne inutilisable (collapsus congestif).
Les routeurs utilisent des techniques comme ICMP afin de prvenir les risques de congestion. Il
faut savoir que dans un rseau en congestion, la longueur des files dattente crot de faon exponentielle
pendant un temps significatif.
Pour viter cela, la norme TCP recommande maintenant lutilisation de deux techniques :
i)
la diminution dichotomique (multiplicative decrease)
ii)
le dmarrage lent
i)
la diminution dichotomique
Comme nous lavons dit, TCP doit mmoriser la taille de la fentre du rcepteur (grce aux
accuss de rception). Pour contrler la congestion, TCP utilise un second seuil appel fentre de
congestion ou limite de la fentre de congestion. A tout moment TCP se comporte comme si la taille de la
fentre tait :
Fentre_autorise = min (indication_rception, fentre_congestion).
A ltat stationnaire sur une connexion sans congestion, la taille de la fentre de congestion est
identique la fentre du rcepteur.
TCP utilise la stratgie suivante : on vite la congestion par diminution dichotomique.
ii)
Principe : en cas de perte dun segment, il faut rduire la fentre de congestion de moiti
(jusqu un minimum dau moins un segment). Pour les segments qui restent dans la fentre
dmission, il faut augmenter la temporisation de retransmission exponentiellement (en
gnral, la valeur de la taille de la fentre est double).
le dmarrage lent
Lorsque la congestion est passe, TCP utilise une technique dite de dmarage lent, pour graduer
les transmissions.
Principe : quand lmission de trafic commence sur une nouvelle connexion ou reprend aprs
une priode de congestion, il faut commencer par une fentre de congestion limite un seul
segment et incrmenter la fentre de congestion dun segment la fois, chaque fois quun
accus de rception est reu.
Le premier segment est identifiable car le bit SYN est positionn dans le champ Bits de code.
Dans le second segment, les bits de code SYN et ACK sont positionns. Le dernier segment correspond
laccord dune connextion des deux parties.
La demande dtablissement dune connexion est conue pour que la communication stablisse
mme si les deux parties initialisent la connexion au mme moment. Il ny a pas de matre ni desclave
dans la communication.
Un problme peut se poser si une demande initiale est retransmise et quelle arrive alors que la
connexion est en cours dtablissement. Le processus dtablissement en trois temps, complt par la
rgle qui veut que TCP ignore les demandes de connexions supplmentaires reues aprs ltablissement
de la connexion, rsout ce problme.
La diffrence par rapport lautre schma se situe aprs lmission du premier segment FIN. Au
lieu de gnrer immdiatement un second segment FIN, TCP envoie un accus de rception puis avertit
les applications de la fermeture de connexion. Cela peut prendre un certain temps. Laccus de rception a
pour but dempcher la rmission du premier segment FIN. Enfin le schma se termine comme
prcdemment avec mission du second segment FIN et de laccus de rception ACK.
XXIII)
Cest le programme dapplication qui invoque la primitive close pour librer une connexion. Si
pour une raison quelconque le rseau rompt la connexion, TCP fournit une procdure de rinitialisation.
Principe : Une des extrmits rinitialise la connexion en mettant un segment dans lequel le
bit RTS est positionn dans le champ Bits de code. Lautre extrmit rpond immdiatement
la demande de rinitialisation et libre la connexion
Remarque : toutes les ressources telles que les tampons mmoires sont libres
XXIV)
Les cercles reprsentent les tats, et les flches les transitions. Les tiquettes ou noms associs
chaque flche indiquent la cause de transition et laction TCP correspondante.
Commandes
ouverture passive : attendre une demande de connexion
ouverture active : initialiser ltablissement dune connexion
TCP gre la notion de dure de vie maximale dun segment au sein dun internet. Au moment o il
entre dans ltat temporisation expire ou Dernier ACK, il attend 2 fois la dure de vie dun segment
avant de dtruire lenregistrement correspondant la connexion.
Il peut ainsi faire la distinction entre les anciennes connexions et la connexion en cours, ce qui lui
permet dviter de rpondre par une rinitialisation si lautre extrmit transmet une demande de
terminaison fin.
XXV)
TCP est libre de dcomposer le flot de donnes en segments de transmission, sans considration de
taille de lunit de transfert utilise par les programmes dapplication. Ceci engendre une plus grande
efficacit, surtout dans les frais de gestion (overhead) : on accumulle suffisament doctets pour constituer
des segments raisonnablement longs.
Lopration push permet de forcer la remise des octets prsents dans le flot sans devoir attendre
quun tampon se remplisse. Elle demande de positionner de bits PSH dans le chanp de Code du segment.
XXVI)
TCP, comme UDP combine lassociation statique et dynamique des ports. Il utilise un ensemble de
ports rservs pour des programmes dutilisation courante (ex : la messagerie lectronique). A lorigine
les numros de ports rservs devaient avoir un numro infrieur 256. Il est noter que les numros de
port TCP et UDP sont indpendants, cependant les concepteurs ont choisi dutiliser les mmes numros
de ports pour tout service accessible la fois depuis TCP ou UDP.
XXVII)
Performance de TCP
Des expriences effectues Berkeley ont montr que le logiciel TCP qui fonctionne sur internet
peut assurer un dbit soutenu de 8 Mbit/s (1 Mo/s) entre deux stations relies par un rseau Ethernet 10
Mbits/s.
XXVIII)
Principe : si on a envoy une indication de fentre nulle, il faut attendre que lespace
disponible soit au moins gal 50 % de la taille du tampon ou de la taille maximum de
segment pour envoyer une nouvelle indication de fentre.