You are on page 1of 9
L2 Info&SPI TD —Systémes et Réseaux Institut Galilée AE if Rb { institut Galitée TD : Couche Transport (TCP) Exercice 1: Navigateur Web Serveur Web ‘Segment 1 ‘Segment 2 Segment 4 Segment 6 ‘Segment 7 ‘Segment 8 Léchange TCP de la figure ci-dessus correspond au transfert d'une page WEB entre un navigateur WEB et un serveur WEB. On fait 'hypothése que la requete a la page WEB fait 100 octets et que la page WEB retournée fait 1000 octets. Il n’y a pas d’erreurs de transmission. Pour chaque segment de données, différentes informations apparaissent. D'une part la présence d'un on plusieurs des différents indicateurs comme SYN, FIN, ACK. Par ailleurs sur la premiére ligne deux chiffres sont portés, Le premier chiffre correspond au numéro de séquence du premier octet du segment, le deuxiéme chiffre correspond au numéro du premier octet du prochain segment a envoyer. Le chiffre entre parenthases correspond au nombre total octets transmis dans le segment. Si le segment est porteur d'un acquittement positif, l'ndicateur ACK est mentionné et a coté de lui doit figurer la valeur du champ acquittement du segment TCP. Complétez les numéros de séquence et les numéros dlacquittement qui manquent sur la figure (qui apparaissent sous forme de point d'interrogation). Indiquez a quoi correspondent les différents segments numérotés de 1 a8. Correction : Page 1/4 L2 Info&SPI TD ~Systémes et Réseaux Institut Galilée Navigateur Web Serveur Web Ouverture connexion | _ Connexion acceptée Connexion acceptée Et envoie requéte page WEB Envoi page WEB Demande fermeture connexion Fermeture acceptée Demande fermeture i connexion Fermeture acceptée Exercice 2: Considérons le transfert d'un fichier de taille illimité sur une connexion TCP classique. La taille maximale des données d'un segment (MMS) est 200 octets. La transmission démaure, nous représentons dans la figure 1 le chronogramme obtenu Page 2/4 L2 Info&SPI TD —Systémes et Réseaux Institut Galilée RTO! # | Num | Num | URG] ACK] PSH] RST | SYN] FIN | Taille Seq_| Ack Données T3999 | Xx 0 2 | 12 | 4000 Xx x 0 3__| 4000 [123 X 0 4 | 4000 | 123 200 1. Complétez dans le tableau cidessus les paramétres associés a chaque segment (Numéros de séquence et dacquittement, flags et Taille des données). Réponse: # | Num | Num | URG [ ACK | PSH | RST | SYN | FIN | Taille Seq _| Ack Données ie x 0 2 | 122 | 4000 x x 0 3 | 4000 | 123 Xx 0 4 | 4000 [123 200 3_| 4200 [123 200 6 {123 | 4200 x 0 7 123 4400. x oO 8 | 4400 [123 200 Page 3/4 L2 Info&SPI TD —Systémes et Réseaux Institut Galilée > 4600 123 200 1o_| 123 | 4400 x 0 ii | 4800 | 123 200 12 123 4800 x oO 13__|_123_| 5000 x 0 14 | S000 | 123 200 15_ [5200 |" 123 200 16 123 5000 x oO 17_| 34007123 200 1s | S600 |" 123 200 19 5800 123 200 20 |_ 123 | 5000 ms 0 21__|_123_| 5000 x 0 22 5000 123 200 23 123 5400 x oO 24 | 5200 [123 200 25 123 5400 xX oO 26 5400 123 200 27 123__| 6000 x | 0 2. Quiimplique la premiére perte aut niveau des acquittements suivants ? L’acquittement 7 est perdu, mais le récepteur envoie un autre acquittement (seg 10) suite a la réception du segment de données 9. 3. Le déséquencement observé moditie-til les émissions de segments de données ? Non. 4, Comment est détectée la premiéze perte d'un segment de données et comment est elle réparée ? La détection de la perte du segment 14 est di a la réception de 3 ack identiques (16, 20 et 21) avant expiration du temporisateur RTO. A noter que le segment 13 ne compte pas dans les ACK dupliqués, car le segment 14 nfavait pas encore été généré au moment ott le segment 13 est arrive. La stratégie de retransmission suite a 3 ACK dupliqués est de type retransmission selective : ’émetteur ne retransmet que le segment indiqué par les dupACK (le segment 14). 5. Comment est détectée la seconde perte d'un segment de données et comment est elle réparée ? Le temporisateur RTO pour le segment 15 a expiré avant réception d’un ACK 5400. Ce segment est considéré comme perdu, et TCP considére que cela est di 4 un probleme grave (ie.congestion). La source va considérer que tous les segments envoyés aprés le segment 15 sont « vraisemblablement » perdus aussi. La stratégie de retransmission est alors de type Go-back-n:: I'emetteur retransmet tous les segments data depuis le segment 15. Page 4/4 L2 Info&SPI TD —Systémes et Réseaux Institut Galilée Remarque : le récepteur ne sait jamais si la source exécute un algo de retransmission de type sélectif ou go-back-n. Ses acquittements concernent done toujours le premier octet non recu. Les segments correctement recus sont gardés dans le tampon de réception. Exercice 3 : Mécanismes de contréle de congestion TCP 1 3, Pour TCP, quel phénomene indique une congestion dans le réseau ? Comment précisément peut-on constater cette congestion ? Réponse : La congestion est indiquée par le non retour d’un acquittement avant Yexpiration du temporisateur de retransmission. Ce retard s‘explique soit par la perte du paquet soit par un temps de transport trop long. Que se passe til dans le routeur pour susciter ce phénomene. Réponse : Le retard provient d’une surcharge des files d’attente done de la mémoire d’un routeus). La perte peut provenir d’un débordement des mémoires d'un noeud mais aussi d’ume perte provoquées explicitement par un élément de réseau. On suppose que la mémoire d’un routeur se trouve débordée, et que alors les paquets sont jetés. Pour TCP ce phénoméne donne suite a Vinférence de la congestion. Mais ce phénoméne pent se produire méme quand il n'y a pas de congestion dans le réseau. Dans quels autres cas un tel phénomeéne peutil se produire ? Réponse : Les pertes de paquets peuvent se produire si une liaison n'est pas fiable, Par exemple, si les paquets sont perdus sur une liaison sans-fil. , Dans ce cas, ce nest pas une indication de congestion. Une faille transitoire de routage peut aussi etre a l'origine d’tme perte, sans qu'il existe de congestion dans le réseau. Si ce phénomeéne n'indique pas toujours une congestion, pourquoi est-ce que IETF base la norme TCP 1a-dessus ? Pourquoi est-ce que l'ETF na pas défini une norme dans laquelle un routeur constate lui-méme un état de congestion et envoi un message explicite 4 I’émetteur ? Réponse : La philosophie derriére Internet est une philosophie de repousser Yintelligence aux bords du réseau pour permettre d/avoir du matériel trés simple au coeur du réseau. On préfére alors avoir une signalisation de congestion qui marche de bout en bout, meme si elle n'est pas complétement fiable. Pour le controle de congestion, TCP utilise un seuil qui indique le débit au dessus duquel on risque de rencontrer de la congestion. Ce seuil est exprimé par un paramétre ssthresh, qui indique un nombre d’octets. Pour obtenir le débit seuil on divise ssthresh par la période aller retour entre I'émetteur et le récepteur (un « RIT » ou « Round Trip Time » en anglais). Le débit peut varier en dessous et au dessus du seuil ssthresh /RTT. L’émetteur maintient un parametre cwnd qui indique le nombre d’octets qu'il peut envoyer dans le réseau avant de recevoir un acquittement. (Le nom cwnd est un raccourci pour « congestion window » en anglais, qui veut dire « fenétre de congestion ».) Quand cwnd > ssthresh, I’émetteur fait particuliérement attention a ne pas provoquer de congestion. Page 5/4 L2 Info&SPI TD ~Systémes et Réseaux Institut Galilée Supposons que ssthresh est 4 5000 octets, ewnd est 4 6000 octets, et la taille d’un paquet est de 500 octets. Un émetteur envoi douze paquets de 500 octets dans une période RIT, et recoit douze acquittements (un pour chaque paquet). Que devient les valeurs de ssthresh et cwnd ? Comment s/appellent ces changements de valeurs ? Réponse : La valeur de cwnd augmente avec la taille d’un paquet aprés avoir regu les douze acquittements. La nouvelle valeur de cwnd est donc de 6500 octets. Cela s‘appelle « V'accroissement additif » (« additive increase » en anglais). La valeur de ssthresh ne change pas. A noter que la valeur de cwnd augmente de la taille d’un paquet par RTT, et non par acquittement (qui serait une augmentation beaucoup plus rapide). Dans notre exemple, I’émetteur envoie douze paquets dans le premier RTT. Dans le deuxiéme RIT il va pouvoir envoyer treize paquets. Une précision : les implémentations de TCP ont le droit d’augmenter cwnd d’une maniére approximativement linéaire. Plusieurs implémentations, par exemple, augmente cwnd par MSS*2/ cwnd pour chaque acquittement recu (oi1 MSS est la taille maximale d’un paquet ~ Maximum Segment Size). Ceci peut impliquer une accroissement plus que linéaire ou moins que linéaire dépendant de si on accumule Jes acquittements. 6, Supposons que ssthresh est toujours 4 5000 octets, que cwnd est maintenant a 14.000 actets, que I’émetteur envoi 14,000/500 = 28 paquets, et que l’émetteur recoit une indication de congestion avant de recevoir le premier acquittement. Que devient les valeurs de ssthresh et cwnd ? Comment s‘appel ces changements de valeurs ? Réponse : La valeur de ssthresh va devenir la moitié de la valeur cwnd, clest-a- dire 7000 octets. La valeur de ownd devient la taille d’un paquet, c'est-a-dire 500 octets. Cela s‘appelle la « réduction multiplicative » (« multiplicative decrease » en anglais). Pourquoi dit-on « multiplicative » quand ownd retourne toujours a la taille d’un paquet ? Parce que cwnd va rapidement remonter a la nouvelle valeur de ssthresh, qui est la moitié de l'ancienne valeur de cwnd. Une précision : la valeur de ssthresh ne peut pas descendre plus bas que la taille de deux paquets (c'est-a-dire 1000 octets dans notre exemple). Une autre précision : ici on suppose que cwnd octets ont été « perdus » dans le réseau, Clest-a-dire qu'il y a cwnd octets non acquittés. La formule précise est de fixer ssthresh 4 la moitié du nombre d’octets non acquittés. 7. Nous venons de voir comment on augmente et comment on diminue cund en fonction de Tabsence ou la présence d’indicateurs de congestion. Comment s‘appelle cet algorithme ? Quelle est I'idée derriére cet algorithme ? Réponse : L’algorithme s'appelle « I'évitement de congestion » (« congestion avoidance » en anglais). Il implémente une politique AIMD (« Additive Increase, Multiplicative Decrease »). L'idée est d’angmenter lentement le débit atin de ne pas produire trop de congestion, et de diminuer le débit tras rapidement au cas of on a une indication de congestion. Page 6/4 L2 Info&SPI TD —Systémes et Réseaux Institut Galilée 8. Au démarrage, et aprés avoir recu une indication de congestion, la valeur de cwnd est plus petite que la valeur de ssthresh. Décrivez la maniére permettant d’augmenter cwnd quand cwnd < ssthresh, en fonction de I’exemple suivant. Supposons que ssthresh soit égal A 3000 octets et que cwnd soit égal A 500 octets, la taille d’un paquet, L’émetteur a plusieurs paquets préts a étre envoyer. Combien de paquets envoie !émetteur pendant la premiére période RIT ? S'il recoit des acquittements pour tous ses paquets, que devient la valeur de cwnd ? Combien de paquets envoie lémetteur pendant la deuxiéme période RIT ? Sil recoit des acquittements pour tous ses paquets, que devient la valeur de ewnd ? En générale, comment évolue la taille de cwnd ? Réponse : Dans la premiare période RTT I’émetteur envoie un paquet de 500 octets. Quand il recoit I'acquittement il augmente cwnd a 1000 octets. Dans la deuxiéme période RIT lémetteur envoie deux paquets de 500 octets chacun. Ayant recu les deux acquittements, il augmente cwnd de 1000 octets a 2000 octets. En général, il augmente cwnd par la taille d’un paquet (500 octets) pour chaque acquittement recu. Cela revient a doubler cwnd dans chaque période RIT si émetteur recoit un acquittement pour chaque paquet envoyé. Ce processus continue jusqu’a ce que cwnd atteint ssthresh. A ce moment, I’émetteur bascule vers I’ « évitement de congestion ». Une précision : certaines implémentations de TCP regroupent les acquittements, envoyant un acquittement pour deux paquets recus. Dans ce cas, ‘augmentation de cwnd est moins qu’exponentiel. 9, Comment s’appelle la période pendant laquelle ewnd est plus petit que ssthresh ? Réponse : « le démarrage lent » (« stow start » en anglais). Le slow start n’est pas vraiment « slow » — il Sagit d’une augmentation exponentielle du débit de transmission. Mais, on V'appelle « slow » parce qu’on commence avec un débit faible. 10. Que devient la valeur de ssthyesh si I'émetteur recoit une indication de congestion pendant que cwnd est plus petit que ssthresh ? Réponse : ssthresh devient toujours la moitié du nombre d’octets non acquittés. Cest-a-dire cwnd/2 s'il y a cwnd octets non acquittés. Exercice 4: Illustration du mécanisme de contrdéle de congestion TCP Le controle de flux de TCP repose sur le principe que la perte d’um paquet est due A une congestion dans le réseau. Aussi, lorsqu’ume perte est détectée, la procédure de controle de congestion se met en place. Lors de I'envoi des données, le protocole augmente au fur et A mesure la vilesse d’émission jusqu’A ce qu'une perte apparaisse. Alors le protocole ralentit automatiquement son débit afin de palier d’éventuelles pertes additionnelles. Ce principe permet d’éviter que les retransmissions de données ne viennent s‘ajouter a la congestion déja existante. Rappel des algorithmes slow-start et congestion avoidance + A initialisation d'une connexion : ewnd Mss (1 segment) Page 7/4 L2 Info&SPI TD ~Systémes et Réseau Institut Galilée ss-threshold := 64 Koctets (65535 octets) * AllowedWindow = min (cwnd , AdvertisedWindow) + Lorsqu'une congestion est détectée, a chaque expiration du temporisateur ss-threshold := fligthsize / 2 cwnd Mss (1 segment) + Lorsque des données sont acquittées, ewnd est augmenté : IF cwnd = ss-threshold THEN cwnd ACK regu) (slow-start) Tracer un diagramme illustrant I'évolution de la fenetre de congestion (cwnd) de TCP en ELSE cwnd fonction du temps, sous les hypothéses suivantes : + Ia taille maximum de segment est de 1024 octets, + initialement, la fenétre de congestion est de 64 Koctets, * Tiunité de temps utilisée est le délai aller-retour (RTT), * au temps 0, la connexion démarre et au temps 14, le temporisateur de retransmission vient d’expirer Response: cwnd + MSS (ou ewnd + 1 MSS par cwnd + MSS2/cwnd (ou cwnd + 1 MSS par RIT, si aucune perte) (congestion avoidance). Temps |Réception Mécanisme | cund Emission max. 0 Time Out_|64Ko/2=32Ko | Siow Start _|1 1 segment 1 1ACK __|32Ko Siow Start__|1+1=2 _|2 segments 2 2ACK __|32Ko Slow Start__|2+2=4 _|4 segments 3 4ACK __|32Ko Stow Start_|4+4=8 _|8 segments 4 8ACK __|32Ko Slow Start _|8+8=16 | 16 segments 5 16 ACK _|32Ko Stow Start _|16+16=32_|32 segments 6 32 ACK _|32Ko Cong. Avoid |32+1=33 _ |33 segments 7 33 ACK _|32Ko Cong. Avoid |33+1=34 _ |34 segments 8 34ACK__|32Ko Cong. Avoid |34+1=35 _ |35 segments 9 33 ACK _|32Ko Cong. Avoid |35+1=36 _ |36 segments 10 36 ACK 32Ko Cong, Avoid_| 36+1 = 37 37 segments 1 |37ACK__|32Ko Cong. Avoid |37+1=38 _ |38 segments 12___|38AcK _|32Ke Cong. Avoid |38+1=39 _ |39 segments 13 |39 ACK _|32Ko Cong. Avoid |39+1=40 _ |40 segments 14__| Time Out_|40Ko/2=20Ko _ | Siow Start _|1 1 segment 1s |1ACK _|20Ko Slow Start__|1+1=2 _|2 segments Page 8/4 L2 Info&SPI TD —Systémes et Réseaux Institut Galilée 16 2ACK __|20Ko Slow Start _|2+2=4 4 segments 17 4 ACK __|20Ko Slow Start__|4+4=8 8 segments 18 SACK __|20Ko Stow Start _|8+8=16 | 16 segments 9 16 ACK |20Ko Slow Start | Min(threshol |20 segments d16+16) = 20 20 20 ACK _|20Ko Cong. Avoid |20+1=21 __|21 segments 21 21ACK __|20Ko Cong. Avoid |21+1=22 _|22 segments 22 22 ACK | 20Ko Cong. Avoid 23 segments 23 23 ACK __|20Ko Cong: Avoid segments 2 4 6 & 10 12 14 16 18 20 22 temps Page 9/4

You might also like