Université de Perpignan Année 2013 TD 2 - Reseaux Couche transport Exercice 1 (Questions de cours). 1. Vrai ou faux? (a) Soit un serveur A envoyant un fichier volumineux à un serveur B sur une connexion TCP. Supposons que B n aie aucune donnée à envoyer à A. B n emettra pas d accusé de réception parce qu il n a pas de données sur lesquelles le greffer. (b) Un segment TCP comporte un champ RcvWindow dans son en-tête. (c) La taille de la fenêtre RcvWindow reste la même durant toute la durée de la connexion. (d) Supposons que le dernier SampleRTT d une connexion TCP soit égal à 1 seconde. Dans ce cas la valeur de TimeoutInterval correspondant pour la connexion est obligatoirement supérieur ou égale à 1. 2. Une application peut-elle bénéficier d un service de transfert de données fiable si elle repose sur UDP? Si oui, comment? 3. Supposons que le serveur A envoie deux segments TCP directement l un après l autre au serveur B sur une connexion TCP. Le premier segment porte le numéro de séquence 90, le second le numéro 110. (a) Combien d octets contient le premier segment. (b) Supposons que seul le second segment arrive à bon port. Quel est le numéro de l accusé de réception émis par B en réponse à ce segment? Exercice 2. Supposons que le client A ouvre une session Telnet avec le serveur S. Au même moment, le client B en ouvre également une autre avec le serveur S. Citez quelques numéros d accès d origine (source port number) et de destination (destination port number) possibles pour : 1. les segments envoyés de A à S. 2. les segments envoyées de B à S. 3. les segments envoyés de S à A. 4. les segments envoyés de S à B. 5. Si A et B sont deux machines différentes, est-il possible que les segments transmis de A à S aient le même numéro d accès d origine que les segments transmis de B à S? 6. Qu en est-il si A et B sont une seule et même machine? Exercice 3. UDP et TCP ont recours à des compléments à 1 pour le calcul de leurs sommes de contrôle. Soit les trois octets suivants 01010101, 01110000, 01001100. 1. Quel est le complément à 1 de la somme de ces trois octets? Détaillez les différents étapes de votre raisonnement. 2. Pourquoi UDP se sert-il du complément à 1 de la somme et pas de la somme elle-même? 3. Avec ce système, comment le destinataire fait-il pour détecter les erreurs: est-il possible qu une erreur d un bit passe inaperçue? Qu en est-il d une erreur de deux bits? (Dans chacun des cas donner des exemples pour illustrer votre affirmation). 1
Figure 1: rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && && has_seq0(rcvpkt) (corrupt(rcvpkt) extract(rcvpkt,data) has_seq0(rcvpkt)) ) deliver_data(data) sndpkt=make_pkt(nak,checksum) sndpkt=make_pkt(ack,checksum) Attendre l envoie de 0 inférieure Attendre l envoie de 1 inférieure rdt_rcv(rcvpkt) && (corrupt(rcvpkt) has_seq1(rcvpkt)) ) sndpkt=make_pkt(nak,checksum) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt=make_pkt(ack,checksum) Exercice 4. Amélioration du protocole rtd2.1. Montrez qu en présence de l expéditeur de la Figure 2 le destinataire évoqué ici (Figure 1) est susceptible d entraîner un blocage au cours duquel tous deux se retrouveront à attendre un évènement n ayant absolument aucune chance de seproduire. Exercice 5 (rtd3.0). 1. Dessinez le FSM du pôle destinataire du protocole rdt3.0. 2. Avec le protocole rdt3.0, les ACK circulant du destinataire à l expéditeur ne comportent pas de numéro de séquence (bien qu ils soient dotés d un champ d acquittement contenant le numéro de séquence du paquet dont ils accusent réception). Expliquez pourquoi ces paquets ne comprennent pas de numéro de séquence. 3. Le diagramme schématise ce qui se passe lors d un envoie avec perte d un paquet de données. Faire des diagrammes similaires pour un ACK perdu et une expiration prématurée du temps imparti. Expediteur send pkt0 rcv pkg0 send ACK0 rcv ACK0 send pkt1 timeout resend pkt1 Perte rcv pkt1 send ACK1 rcv ACK1 send pkt0 Exercice 6. Considérerons une communication longue distance entre la côte Ouest et la côte Est des Etats Unis. Le temps de propagation aller retour (RTT) à la vitesse de la lumière entre ces deux serveurs est approximativement de 30ms. Supposez qu ils soient reliés par un canal d un débit (R) de 1Gbit/s. La taille (L) des paquets est fixé à 1000 octets ( en-tête incluse). 2
Figure 2: Expéditeur rdt_send(rcvpkt) sndpkt=make_pkt(0,data,checksum) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) isnak(sndpkt) rdt_rcv(rcvpkt) && notcorrupf(rcvpkt) && isack(rcvpkt) // rienfaire Attendre l appel 0 supérieure Attendre ACK ou NAK 0 Attendre ACK ou NAK 1 Attendre l appel 0 supérieure rdt_rcv(rcvpkt) && notcorrupf(rcvpkt) && isack(rcvpkt) // rienfaire rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) isnak(sndpkt) rdt_send(rcvpkt) sndpkt=make_pkt(0,data,checksum) 1. Quel est le delai de transmission? 2. Quel est le taux d utilisation pour un protocole stop and wait (RDT3)? 3. Quelle taille de fenêtre N du protocole Go-Back-N faut-il paramétrer pour que l utilisateur atteigne un taux d usage supérieur à 90 %. Exercice 7. Considérerez le protocole Go-Back-N en présence d une ouverture de fenêtre de 3 et d une gamme de numéros de séquence de 1024. Soit k le numéro de séquence du prochain paquet dans l ordre attendu par le destinataire à l instant t. Supposez que le support physique utilisé pour ce transfert ne provoque jamais d interversion de paquet. Répondez aux questions suivantes : 1. Quelles sont les combinaisons de numéros de séquence possibles dans la fenêtre de l expéditeur à l instant t. Justifiez votre réponse. 2. Recensez toutes les valeurs pouvant être contenue dans le champ d acquitement des différents messages circulant en direction de l expéditeur à l instant t. Justifiez votre réponse. Exercice 8. Soit une gamme de numéros de séquence de taille en bit l. Pour le protocole Go-Back-N quelle est la plus grande taille de fenêtre possible avant que ne se produisent les problèmes illustreés dans le diagramme ci-dessous. 3
Expediteur pkt0 ACK0 Expediteur pkt0 ACK0 pkt1 ACK1 pkt1 ACK1 pkt2 ACK2 pkt2 ACK2 pkt3 pkt0 recoit un paquet de numseq 0 recoit un paquet de numseq 0 Exercice 9. Imaginez que vous ayez à transférer un fichier très volumineux (d une taille de L octets) de A vers B, avec un MSS de 1460 octets. 1. Quelle est la valeur maximale de L compatible avec les numéros de séquence de TCP? Souvenez vous que le champ de numéros de séquence TCP dispose de 4 octets. 2. Partant de la valeur L obtenue ci-dessus, calculez le temps nécessaire à la transmission intégrale du fichier. Nous admettrons qu une longueur d en-ête totale (en tetes de transport, réseau et liaison de données confondus) de 66 octets est ajoutéee aux différents segments avant que le paquet final ne soit de constitué et envoyé sur une liaison à 10Mbit/s. Ignorez les contrôles de flux et de congestion; A est ici capable d envoyer ses segments les uns apreès les autres en continus. Exercice 10 (TCP). L échagne TCP de la Figure 3 correspond à un transfert FTP. La nature de chaque segment (SYN, ACK, FIN, DATA) est donnée, le chiffre entre paranthèeses correspond au nombre d octets transmis dans le segment. Les n uméros de séquence et d acquittement sont donnés ci-après. Compléter la Figure 3. Exercice 11. Considérez la procédure TCP utilisée pour l estimation de la durée du trajet aller-retour (RTT) avec α = 0.1. Soit SampleRTT1 l échantillon RTT le plus récent et SampleRTT2 le 2eme échantillon RTT le plus récent, etc. 1. Pour une connection TCP donnée supposez que quatre accusés de réception aient été émis avec les échantillons RTT respectifs SampleRTT4,SampleRTT3,SampleRTT2 et SamleRTT1. Exprimez le EstimateRTT à l aide de ces quatre valeurs. 2. Généralisez votre formule à n temps de trajet aller retour. 3. Reprenez cette même formule en faisant tendre n vers l infini. Expliquez pourquoi ce processus de calcul de la moyenne (averaging procedure) est appelé moyenne exponentielle glissante. Exercice 12. Considérez le graphe ci-après présentant la courbe de variation de la taille d une fenêtre de congestion de TCP au cours du temps. En admettant que la fenêtre de congestion de TCP Réno connaisse ce genre de fluctuation, répondez aux question suivantes : 1. Identifiez les intervalles de temps associés à la mise en route progressive de TCP. 2. Identifiez les intervalles de temps associés à la procédure qui tend à éviter la congestion du TCP. 3. Après le 16e pas de transmissio, la perte de segments se détecte-t-elle au moyen d un trible ACK ou du fait de l expiration de la temporisation? 4. Après le 22e pas de transmission, la perte de segments se détecte-t-elle au moyen d un triple ACK ou du fait de l expiration de la temporisation? 4
Figure 3: Session/Numéro de sequence TCP Expediteur SYN(0) seq=188 SYN(0) seq=381, ACK=? ACK(0) DATA(53) seq=382, ACK=? DATA(16) FIN ACK(0) seq=653, ACK=255 ACK(0) seq=?, ACK=654 FIN ACK(0) ACK(0) (a) enoncé 5
5. Quelle est la valeur du Threshold au premier pas de transmission? 6. Quelle est la valeur du Threshold au 18e pas de transmission? 7. Quelle est la valeur du Threshold au 24e pas de transmission? 8. A quel pas de transmission le 70e segment est il envoyé? 9. En admettant que la perte d un paquet soit détecté après le 26e pas de transmission par la réception d un ACK triple, quelles seront alors la taille de la fenêtre de congestion et la valeur de Threshold? Exercice 13 (Controle de congestion TCP). 1. Rappeler le fonctionne du controle de congestion TCP, et expliquer la difference fait par TCP lors d un evenement time out et d un evenement trois ACK dupliqué. 2. Lors de la reception de trois ACK dupliqué, ces ACKs peuvent-ils etre suivis de trois autres ACK provenant du même problème de congestion? 3. TCP gère cette problématique comme suit: Lors de la reception du troisieme ACK dupliqué: Réduction du seul threshold = congwnd/2. Retransmission du segment manquant. congwnd = threshold + 3MSS A chaque réception d un ACK dupliqué congwnd = congwnd + 1MSS. Lors de la reception d un aquitement concernant de nouvelles données on réduit légèrement la fenêtre congwnd = threshold Le diagramme de la Figure 4 illustre le fonctionnement de l algorithme TCP en cas de perte de segment. Seuls sont représentés les segments transmis et les acquittements reçus par l émetteur. L évolution de la fenêtre d émission est également représentée avec les numéros des segments transmis et non-acquités et les numéros des segments pouvant être transmis suivant la valeur de la fenêtre de congestion congwnd. Répondre aux questions suivantes (a) A quelle phase correspond le début de la transmission. Quel est le numéro du segment perdu et sur quel évènement se termine cette première phase? (b) Quel est l algorithme utilisé lors de la deuxième phase? Sur quel événement se termine-t-elle? (c) Justifiez l évolution de congwnd 6
Figure 4: Gestion de congestion TCP ACK=0 Seq=0 Seq=1 Seq=7 ACK=2 Seq=8 Seq=9 Seq=10 Seq=14 Seq=7 Seq=15 Seq=16 Seq=17 ACK=15 Seq=18 temps 7