TD réseau: TCP
Exercice 1
expliquez la différence entre TCP et UDP en matière de numéros de séquence éléments de correction :
• udp est en mode non connecté. Il n'y a pas de numéros de séquence.
• tcp est en mode connecté. il numérote les données transmises. sauf exception (SYN, FIN, paquet sans données), le numéro de séquence d'un paquet identifie le numéro du premier octet du paquet dans le flux total de données. Si vous avez un Go à transmettre, un numéro de séquence de 1234 identifie l'octet à la position 1234 dans le flux de 1Go.
Exercice 2 No de séquences TCP
indiquez comment évoluent les numéros de séquence TCP en fonction du contenu des trames et de leur drapeaux.
éléments de correction :
type de paquet/drapeau TCP évolution du No de séquence entre ce paquet et le suivant
SYN +1
FIN +1
n octets de données dans le paquet +n
Exercice 3 TCP: évolution des No de séquence
On considère l'échange suivant capturé sur l'interface réseau de la machine M1. La colonne "No trame" est une information de l'outil de capture de trame utile pour désigner les trames mais n'a rien à voir avec TCP.
No trame
Source:
hôte/Port
destination No seq No ack flag taille données
1 M1/P1 M2/P2 0 (relatif) sans objet SYN 0
2 M2/P2 M1/P1 0 (relatif) 1 SYN/ACK 0
3 M1/P1 M2/P2 1 1 ACK 0
4 M1/P1 M2/P2 1 1 ack 1000
5 M2/P2 M1/P1 1 1001 ack 300
6 M1/P1 M2/P2 1001 301 ack 1000
7 M1/P1 M2/P2 2001 301 ack 1000
8 M2/P2 M1/P1 301 2001 ack 0
9
● indiquez les valeurs correctes dans les cases vides. On supposera qu'il n'y a pas de pertes de trames.
● le protocole "stop & wait" imposait d'attendre un accusé de réception avant d'envoyer une nouvelle trame. Est-ce le cas de TCP ? Le constate-t-on sur cette capture de trame ? on le voit sur les trames 6 et 7: la trame 7 est envoyée sans attendre d'accusé de réception.
● Les informations de la trame No 8 vous semblent-elles cohérentes avec les précédentes ? expliquez.
la trame 7 a 2001 comme No de séquence et contient 1000 octets de données donc la trame suivante de M1/P1 vers M2/P2 aura comme No de séquence 3001. Si M2/P2 avait reçu cette trame, on devrait avoir 3001 comme No de ACK dans la trame 8.
Ce qui se passe, c'est que la trame 8 a probablement été envoyée par M2/P2 alors qu'il n'avait pas reçu la trame 7 ce qui explique qu'il ne l'ait pas prise en compte.
Exercice 4 TCP: fenêtre et contrôle de flux
Rappelez ce que l'on appelle le contrôle de flux.
Le contrôle de flux se fait en TCP par ce que l'on appelle la taille de fenêtre. Cette information est transmise dans tous les paquets TCP. Elle représente la taille des données que peut ancore recevoir une machine avant de devoir détruire les paquets faute de pouvoir les traiter.
On considère l'échange suivant capturé sur l'interface réseau de la machine M1. La colonne "No trame" est une information de l'outil de capture de trame utile pour désigner les trames mais n'a rien à voir avec TCP.
No trame
Source:
hôte/Po rt
destinati on
No seq No ack flag taille données fenêtre
1 M1/P1 M2/P2 0 (relatif) sans objet SYN 0
2 M2/P2 M1/P1 0 (relatif) 1 SYN/A
CK 0
3 M1/P1 M2/P2 1 1 ACK 0
4 M1/P1 M2/P2 1 1 ack 1000 4096
5 M2/P2 M1/P1 1 1001 ack 300 3096
6 M1/P1 M2/P2 1001 301 ack 1000 3796
7 M1/P1 M2/P2 2001 301 ack 1000 4096
8 M2/P2 M1/P1 301 2001 ack 0 3096
9 M1/P1 M2/P2
● indiquez les valeurs correctes dans les cases vides. On supposera qu'il n'y a pas de pertes de trames ( note: c'est le même tableau qu'à l'exercice précédent: reprenez votre résultat)
● expliquez l'évolution des taille de fenêtre
de M1/P1 vers M2/P2 : la taille de fenêtre indique le nombre d'octet que peut recevoir M1/P1 : 4096 sauf en trame 6 car il vient de recevoir 300 octets de M2/P2. en trame 7, on est revenuà 4096 ce qui prouve que M1/P1 a traité les 300 octets reçus.
de M2/P2 vers M1/P1, le principe est le même
● Combien de données au maximum la M1/P1 peut-il envoyer dans la trame 9
en trame 8, M2/P2 accuse réception de la trame 6 (il dit attendre la trame de No de seq 2001).
La trame 8 ne tient donc pas encore compte de la trame 7.
en trame 8, il dit pouvoir recevoir 3096 auxquels il faut retirer les 1000 octets de la trame 7 qu'il n'a pas encore reçu. M1/P1 peut donc encore envoyer un maximum de 2096 ocotets : 3096 (fenêtre) - 1000 (non encore acquités).