Etude d'un protocole fiable : TCP

Patrice Laurençot

1 - La connexion-TCP


Connexion-TCP et identification de connexion-TCP

Une connexion-TCP est un canal bi-directionnel (2 tuyaux) construit entre 2 entités d'application (c'est à dire processus).

les tuyaux

Chaque connexion-TCP est entièrement identifiée par les adresses des TCP-SAP (Service Access Point) de ses deux extrémités.
L'adresse d'un TCP-SAP est composée de :

Exercice 1
Afficher la liste des connexions-TCP actuellement établies (ESTABLISHED dans colonne "state") sur le système, par la commande :
    netstat -an | grep ^tcp |grep ESTABLISHED | more
ou
    netstat -a | grep ^tcp |grep ESTABLISHED | more

Combien y en a-t-il ?

Sous windows :    netstat -an | findstr "ESTABLISHED"


Exercice 2
Recherchez maintenant les connections en attente "LISTEN":
  • Pour quelle application est construite chaque connexion ? (chercher numéro port dans la liste)

Etablissement de connexion-TCP


L'établissement de connexion est réalisé par l'échange de 3 PDU-TCP entre les entités-TCP :

chronogramme connexion TCP

La 1ère est caractérisée par le flag SYN, la 2ème par les flags SYN et ACK, et la 3ème par le seul flag ACK.

La 1ère PDU-TCP envoyée par chaque entité-TCP (flag SYN) contient dans son champ seq le numéro après duquel elle numérotera les PDU-TCP-données qu'elle émettra.
La 2ème PDU-TCP envoyée par chaque entité-TCP (flag ACK) contient dans son champ ack le numéro que devra contenir la prochaine PDU-TCP-données qu'elle recevra.

Exercice 3
Rechercher dans le fichier tcp-trace.html un début de connexion.

Terminaison de connexion-TCP

La terminaison normale de connexion se fait par l'échange de 2 PDU-TCP dans chaque sens; la 1ère PDU de chacune de ces 2 paires est caractérisée par le flag FIN.
Une terminaison brutale est possible, en envoyant une seule PDU avec le flag RST.


Exercice 4
Rechercher dans tcp-trace.html une terminaison normale de la connexion-TCP

2 - Numérotation et acquittement des PDU transmises


Observation
Après avoir eu l'explication au tableau du fonctionnement des variables seq et ack, examiner l'évolution de ces champs dans le début (11 à 16) des échanges de données pour la connexion entre les TSAP 193.54.51.67:1058 et 193.54.51.1:21 dans le fichier tcp-trace.html


La trame 11 correspond à l'émission d'une trame du 193.54.51.1 vers le 193.54.51.67.
Résumé de ces échanges
 193.54.51.67:1058193.54.51.1:21
seqacklgseqacklg
11   21280022741133900577
1211339005212800235110   
13   21280023511133901532
14113390152128002383  0   
1511339015212800238313   
16   21280023831133902825


Exercice 5
Faire un tableau similaire pour les échanges de données de la connexion entre les TSAP 193.54.51.67:1061 et 193.54.51.1:20 dans le fichier tcp-trace.html

Exercice 6
Dans le fichier telnet.html, recherchez quelles sont les trames utilisant ce protocole. Faire un schéma de celles-ci et expliquez la logique de leurs présences.

Sommaire