INF3270 : Laboratoire 5 - Analyse TCP
Eric Gingras
Adaptation d'une présentation créé par le laboratoire de téléinformatique de l'Université du Québec à Montréal
(Alain Sarrazin, Elmi Hassan et Guy Francoeur)
Les ports
➲
Les ports permettent d'adresser un service
(les adresses IP identifie une interface physique)
➲
Les messages comportent un port source et un port destinataire.
➲
Les ports permettent à différentes
applications d'une même machine de communiquer simultanément.
➲
Ex : Serveur : Web (80), FTP (21 et 20) et
Telnet (23) sur une même machine.
Assignation des numéros de ports
➲
1 à 255
● réservés aux applications publiques.
➲
255 à 1023
● attribués aux entreprises pour les applications à commercialiser.
➲
supérieurs à 1023 (max = 2
16= 65536)
● non attribués. Ces numéros peuvent être utilisés dynamiquement par les applications.
Les ports standards TCP
No port Mot-clé Description
20 FTP-DATA File Transfer [Default Data]
21 FTP File Transfer [Control]
23 TELNET Telnet
25 SMTP Simple Mail Transfer Protocol
37 TIME Time
42 NAMESERVER Host Name Server
43 NICNAME Who Is
53 DOMAIN Domain Name Server
80 HTTP WWW
110 POP3 Post Office Protocol - Version3
Les ports standards UDP
No port Mot-clé Description
7 ECHO Echo
13 DAYTIME Daytime
37 TIME Time
42 NAMESERVER Host Name Server
53 DOMAIN Domain Name Server
67 BOOTPS Boot protocol server
68 BOOTPC Boot protocol client
69 TFTP Trivial File transfert protocol
123 NTP Network Time Protocol
161 SNMP Simple Network Management prot.
Transmission Control Protocol (TCP)
➲
Transport fiable :
● Découpage/réassemblage d'un flux de données en segments.
● Contrôle d'erreur (checksum et retransmission)
● Assurance contre la perte de messages
● Contrôle de flux (fenêtre coulissante)
● connexions bidirectionnelles et simultanées
➲
Service en mode connecté (bout en bout)
Le segment TCP
Port source Port destination Numéro de séquence
Numéro d’acquittement HLEN réservé codes fenêtre
Checksum pointeur urgence Options (facultatif) padding
Données . . .
0 4 10 16 24 31
Les champs du segment TCP
➲
Port source et port destination :
● Identifient l’application cliente et l’application serveur
➲
Numéro de séquence :
● Le numéro de séquence du premier octet du segment.
● Ce numéro assure le séquencement des données entrantes.
Les champs du segment TCP
➲
Numéro d’acquittement :
● Le prochain numéro de séquence (NS) attendu par l’émetteur de cet acquittement
● Acquitte implicitement les octets NS-1, NS-2, etc.
➲
HLEN :
● Longueur de l’entête en mot de 32 bits
● Aussi Appelé data offset
Les champs du segment TCP
➲
Codes (6 bits) : Indique le type de segment
● URG : données urgentes (pas de contrôle de flux)
● SYN : utilisé à l’initialisation de la connexion pour
indiquer où la numérotation séquentielle commence.
● FIN : utilisé lors de la libération de la connexion.
● PSH : l’information reçu doit être transmis au niveau application sans attendre plus de données de
l’émetteur. Ex : émulation terminal (Telnet).
● ACK : réservé à l’accusé de réception de la connexion et du crédit.
● RST : demande de réinitialisation de la connexion.
Les champs du segment TCP
➲
Fenêtre coulissante (win) :
● Le nombre d’octets (crédit) que l’émetteur est prêt à accepter avant d’envoyer un accusé de réception.
➲
Checksum :
● Contrôle d’erreur de l’entête et des données.
➲
Pointeur d’urgence :
● Indique la fin des données urgentes.
Les champs du segment TCP
➲
Options :
● Permettent de négocier la taille maximale des segments échangés. Cette option n'est
présente que dans les segments d'initialisation de connexion (avec bit SYN).
➲
Padding (Remplissage) :
● Sert à compléter le champ options pour obtenir un multiple de 32 bits.
Le contrôle de flux dans TCP
A envoie 1000 octets, win=1000
A B
Ack=301,win=2500 A envoie 1000 octets, win=1500
Seq=301 A envoie 1000 octets, win=500
A envoie 500 octets, win=0
Seq=1301 Seq=2301
Ack=2801,win=2500
A envoie 500 octets, win=2000 Seq=2801 Seq=3301
B accuse réception de l’octet 2800 et donne un crédit de 2500 octets.
User Datagram Protocol (UDP)
➲
Protocole de transport sans connexion
● Pas de phase d’établissement de connexion au préalable
● L'arrivée des messages ainsi que
l’ordonnancement ne sont pas garantis. Ces services doivent donc être assurés par
l’application.
Le datagramme UDP
➲
Port source et port destination
● Identifie l’application cliente et l’application serveur
➲
La longueur du message
● Taille en octets (entête + données)
➲
Checksum
● facultatif (0 si non utilisé) couvre tout le datagramme
Port source
Longueur message
Port destination 0 16 31
Données ...
Checksum