Dans sa forme de base, TCP peut avoir une taille de fenêtre de
1, ce qui signifie que pour chaque segment transmis
par l'expéditeur, le destinataire envoie un accusé de réception pour ce segment individuel.
Cela ralentit toutefois considérablement le
débit car l'expéditeur ne peut plus transmettre de
données tant qu'il n'a pas reçu d'accusé de réception de ce segment unique transmis.
Le débit serait très faible en fonction
du temporisateur aller-retour
entre l'envoi des données et la réception de l'accusé de réception.
Cependant, TCP permet ainsi de plus grandes tailles de fenêtre pour permettre la transmission de davantage de
segments avant de recevoir un accusé
de réception. 12 La
fenêtre correspond au nombre de
segments de données que l'expéditeur est autorisé à envoyer sans obtenir d'accusé de réception du destinataire.
Dans ce cas, nous
avons défini la valeur 1, ce qui signifie que lorsque l'hôte A
souhaite envoyer du trafic à l'hôte B, il peut envoyer 1 segment car la taille de la
fenêtre est définie sur 1, l'hôte B envoie un accusé de réception dès qu'il reçoit ce segment.
Dans cet exemple, supposons que l'hôte A envoie le segment avec le numéro de séquence 1
que l'hôte B accuserait réception du segment 2.
L’hôte A enverra ensuite le segment
2 et l’hôte B, une fois la réception reçue, le segment accusera réception
ou ACK pour le segment 3.
L'hôte A enverra ensuite le segment 3 à l'hôte B.
Ce processus se poursuivra ensuite pendant toute la durée de la session.
Ceci est évidemment très fiable, mais le débit est très faible.
A aurait besoin de mettre en mémoire tampon les segments sortants jusqu'à
ce qu'il reçoive un accusé de réception pour le segment transmis.
Pour l’argumentation, supposons qu’il faut 1 seconde pour
que le trafic commence au début avec
la petite taille de la fenêtre, puis
augmente de manière exponentielle la taille de la fenêtre pour évaluer
la quantité de données que le récepteur peut recevoir et ce que le réseau peut gérer.
Vous le remarquerez probablement, lors du téléchargement d’un fichier à partir d’Internet, la
vitesse de téléchargement est lente, mais
elle augmente jusqu’à un certain point avec le temps.
Cela est dû au fait que la taille de la fenêtre est
initialement petite, puis augmente de façon exponentielle jusqu’à ce qu’un paquet
soit abandonné ou que l’hôte récepteur ne puisse pas gérer la quantité de données qu’il reçoit.
Ainsi, vous remarquerez tout d’abord que la vitesse de téléchargement
est très lente, qu’elle augmente très rapidement, qu’elle atteint un point puis qu’elle reste
autour de cette vitesse.
Encore une fois, supposons
que les hôtes de cet exemple ont une taille de fenêtre fixe de 3.
Cela signifie que A peut envoyer 3 segments avant de recevoir un accusé de réception.
Donc, dans ce cas, l’hôte A envoie les segments 1,
2 et 3, l’hôte B accuse réception du segment 4, laissant ainsi savoir à
A qu’il a reçu avec succès les segments 1, 2 et 3, l’hôte A
envoie ensuite les segments 4, 5 et 6 car il a une taille de fenêtre fixe sur
3 et l’hôte B reconnaît pour le segment 7
ce qui a permis à A de savoir qu’il avait reçu les segments 4, 5 et 6.
Rappelez-vous, avec les accusés de réception, reconnaissez le segment suivant que vous souhaitez recevoir et non le segment
que vous avez déjà reçu. 80 Ainsi, l’hôte B ne reconnaît pas le segment
6 mais reconnaît le segment 7.
Comme je l'ai mentionné, une fenêtre coulissante permet aux hôtes d'évaluer la quantité de données
que le récepteur peut recevoir et ce que le réseau peut gérer.
Donc, dans cet exemple, supposons que l’hôte utilise une fenêtre glissante
de la manière dont il détermine ce que le réseau
peut gérer, c’est-à-dire que l’hôte va ralentir lorsqu'un paquet est abandonné par le réseau.
Ces informations sont traitées de manière
beaucoup plus détaillée dans les cours contenant une qualité de service.
Avec ce cours, supposons que,
lorsqu'un bref arrive, un paquet
tombe, sa taille de fenêtre est réduite de façon considérable. La taille de la fenêtre est soit la fenêtre accordée à
l'expéditeur par le destinataire, soit une fenêtre calculée appelée fenêtre d'encombrement ou CWND,
la fenêtre d'encombrement ou CWND. initialement défini sur une valeur très faible lors de l’établissement de
la connexion, puis augmente à un taux exponentiel.
Pour chaque segment perdu, la fenêtre d’encombrement
correspond à la moitié du temps écoulé
depuis la retransmission du segment perdu.
La fenêtre d’encombrement repousse jusqu’à atteindre
une valeur égale à la moitié de la fenêtre d’encombrement initiale.
Il croît de manière exponentielle jusqu'à la moitié de la taille de la fenêtre d'encombrement
d'origine, puis augmente lentement à la vitesse linéaire.
En qualité de service, la détection précoce pondérée aléatoire ou WRED peut être utilisée
pour améliorer l'efficacité des transmissions TCP sur la liaison, car les paquets sont lâchés
aléatoirement dans différents flux ou différentes sessions passant par une interface individuelle plutôt que
les paquets
de plusieurs expéditeurs étant abandonnés en même temps.
cela évite un problème appelé synchronisation globale dans lequel les paquets de
plusieurs sessions TCP sont abandonnés en même temps et, par conséquent, plusieurs hôtes réduisent la taille de
leur fenêtre et ralentissent simultanément. 110 puis augmentez
progressivement leur taille de fenêtre et donc leur débit en même temps.
Ainsi, de nombreux hôtes ralentissent et accélèrent en même temps
avec WRED, certains hôtes
ralentissent et d'autres hôtes augmentent leur débit en raison de chutes aléatoires.
Reportez-vous à la documentation sur la qualité de service pour plus de détails sur WRED.
Dans cet exemple, supposons que nous commencions par la taille de fenêtre initiale de 3.
Donc, A transmet 3 segments à B, cependant seuls les segments 1 et 2 arrivent chez l'hôte B, le
segment 3 est manquant.
Dans cet exemple, l'hôte B peut réduire la taille de la fenêtre à 2 et acquitter le segment 3.
N'oubliez pas que l'accusé de réception concerne le prochain paquet que les hôtes s'attendent à recevoir et que l'hôte
B n'ayant pas reçu le
segment 3, il accuse réception des segments 1 et 2.
L'hôte A retransmettra le segment 3 et, dans cet exemple, enverra le segment 4 mais demandera également une taille de fenêtre
de 3.
Les deux segments sont reçus avec succès par l'hôte B et l'hôte B accuse
réception pour le segment 5 mais,
dans cet exemple, souhaite toujours une taille de fenêtre de 2.
L'hôte A n'enverra que 2 segments, car la taille de la fenêtre négociée est 2,
mais A peut toujours demander que la taille de la fenêtre passe à 3.
Avec la fenêtre glissante, il y a négociation dynamique de la taille d'une fenêtre et cette
taille peut changer considérablement au cours d'une session en fonction de ce que
le récepteur peut traiter et de ce que le réseau peut gérer.