Vous êtes sur la page 1sur 6

USTL / IUT-A / dpt Info / Réseaux TCP - UDP

Modèle TCP/IP

RESEAUX Application
Messages Identiques
Application

Transport Transport
Paquets Identiques

Internet Internet Internet


Datagrammes Datagrammes
identiques identiques
TCP-UDP over IP
Réseau Driver Driver Réseau
Trames Ethernet Token ring Trames
identiques identiques
Physique Physique

Passerelle
bus Ethernet Token ring
Routeur (anneau à jeton)
IUT A - Réseaux - 2003/2004 Jean Carle 2

Architecture TCP/IP Architecture TCP/IP

Application Transport Internet Réseau


Message utilisateur
Couche Appli. Démon Démon Démon
Paquet, message OSI
Segment TCP, ou 5,6,7 -User- RIP SMTP Telnet

Adresse IP
5,6,7 Application
Datagramme UDP
Couche
E-appli message OSI UDP TCP
4 Transport
4
Datagramme IP Couche
E-TCP E-appli message
3 Internet OSI ICMP IP IGMP
3

Adresse physique
E-IP E-TCP E-appli message Trame

Drivers
Couche
SLIP

2 Réseau / Driver
Ethernet
OSI PPP-OE
2 802.x
E-Trame E-IP E-TCP E-appli message F-Trame

Physique
1 Physique Couche Port Modem
OSI Carte réseau
E-xxx = Entête xxx
Série ADSL
1
F-Trame = Fin de trame
IUT A - Réseaux - 2003/2004 Jean Carle 3 IUT A - Réseaux - 2003/2004 Jean Carle 4

UDP
 Niveau 4 (couche Transport)
Le protocole UDP  User Datagram Protocol
 Transmission sans connexion (modèle Postal)
 Pas de contrôle de séquencement
 L’ordre d’arrivée des messages peut être différent de l’ordre
d’envoie
 Pas de garantie d’arrivée
 Mais les données reçues sont garanties non corrompues
User Datagram Protocol
 Non fiable mais rapide
 Applications audio/vidéo
 Petits flux de données

IUT A - Réseaux - 2003/2004 Jean Carle 6

1
USTL / IUT-A / dpt Info / Réseaux TCP - UDP

UDP : différents cas Paquet UDP - Datagramme


0 16 32
Port UDP source Port UDP destination
réseau
client serveur Longueur totale Checksum
1
1 A
Données
A
2
3 2  RFC 768
4
5 4  Port UDP source : optionnel (0 si non utilisé)
5
6 3  Longueur totale en nombre d’octets
5
 Entête + données ;
 Taille théorique mini = 8 octets, maxi : 65536 octets (216)
 Checksum : code de détection d’erreurs, 0 si non utilisé
 Données (mini : 0 octets, maxi : ~64ko (216-8 o.))

IUT A - Réseaux - 2003/2004 Jean Carle 7 IUT A - Réseaux - 2003/2004 Jean Carle 8

Paquet UDP – pseudo entête Paquet UDP – pseudo entête


Utilisé pour calculer le checksum à la source et à la destination.
 Transgression de la pile IP ;

 Assure une plus grande fiabilité du contrôle.  Protocole


 Bourrage pour alignement sur 16 bits (obtenir un nombre pair d’octets)
 Checksum positionné à 0 avant calcul
numéro (8 bits) identifiant le protocol utilisé dans le paquet IP
exemples :
0 8 16 32  ICMP : 1 ;
@IP source
 IGMP : 2 ;
@IP destination Pseudo Entête  IP : 4 (encapsulation) ;
00000000 Protocole Longueur UDP
 UDP : 17 ;
Port UDP source Port UDP destination  TCP : 6 ;
Longueur UDP Checksum  IPv6 : 41;
Données …
Bourrage

IUT A - Réseaux - 2003/2004 Jean Carle 9 IUT A - Réseaux - 2003/2004 Jean Carle 10

Paquet TCP
0 4 10 16 32

Port source Port destination


Le protocole TCP Séquence

Accusé de réception (Acquittement) Entête mini


20 octets
Réservé
URG
ACK

SYN
PSH
RST

Longueur
FIN

d’en-tête
Taille fenêtre
000000
Checksum Pointeur données urgentes

Transmission Control Protocol Options (facultatives) Bourrage

Données

IUT A - Réseaux - 2003/2004 Jean Carle 12

2
USTL / IUT-A / dpt Info / Réseaux TCP - UDP

Paquet TCP Paquet TCP


 Ports source / destination : émetteur / récepteur  Drapeaux
 Séquence  URG : pointeur de données urgentes valide
 SYN=1 : contient une valeur non nulle et non facilement  =1 : Pointeur Urgent = 1er octet non urgent
prévisible, c’est le numéro de séquence initial (ISN1);  ACK : numéro d’accusé de réception valide
 SYN=0 : contient la position des données à transmettre  =1 : Acquittement = indice 1er octet attendu
relativement à ISN (1er octet de données = ISN+1)
 PSH : données à transmettre le plus vite possible à
 Accusé de réception : l’application (ex : telnet, rlogin) – pas de tampon
 ACK = 0 : contient 0 inutilisé (début de connexion)  RST : Réinitialisation de la connexion
 ACK = 1 : contient le numéro de séquence du prochain octet
à recevoir (= acquittement du dernier octet reçu) Fermeture brutale
 SYN : Etablissement de connexion;
 Longueur entête : indique où commence les données en
nombre de mot de 32 bits  =1 : Séquence = numéro de séquence initial (ISN)
mini : 5 (sans option) / maxi 15 (60 octets)  FIN : Fin de transmission
1 ISN = Initial Sequence number
IUT A - Réseaux - 2003/2004 Jean Carle 13 IUT A - Réseaux - 2003/2004 Jean Carle 14

0 8 16 32
Paquet TCP @IP source
@IP destination
Paquet TCP
0000000 Protocole Longueur UDP
0  Options (champ facultatif)
 Taille fenêtre : nombre d’octets que le récepteur
 Octet nul : termine le champ des options ;
est capable de recevoir
 Nop : No Operation ;
 Checksum (contrôle / détection d’erreurs)
 Taille de segment maximum (MSS);
 Entête +
 pseudo entête (c.f. UDP, protocole = 6) +  NAK (RFC 1106) : re-émission sélective
 Garantir la réception correcte et au bon destinataire  évite la retransmission globale après un segment erroné
 données + bourrage avec 1 octet nul si le nombre de  Facteur d’échelle sur la taille de fenêtre utilisée
mots 16 bits est impair (= alignement sur 16 bits).  Décalage à gauche sur la taille de fenêtre
 Pointeur urgent (de 16 bits maxi)
 URG = 0 : inutilisé  Bourrage pour aligner sur 32 bits.
 URG = 1 : position du premier octet non urgent
IUT A - Réseaux - 2003/2004 Jean Carle 15 IUT A - Réseaux - 2003/2004 Jean Carle 16

TCP - Segmentation TCP - Acquittement


 Garantie de réception
 Contrairement à UDP, TCP assure qu’un message envoyé arrive à
 Gestion du flot de données destination
 En cas de perte, les deux extrémités sont prévenus grâce à un
mécanisme d’acquittement
 TCP reçoit un flots d’octets
 utilisant le champ "accusé de réception"
 Ce flot est divisé en segments à l’aide d’un  L’émetteur d’un segment de données attend un accusé de réception
mécanisme de fenêtrage positif (ACK).
 Champ "Fenêtre" du paquet TCP  Si au bout d’un temps définie à l’avance, en général deux fois le temps
de vie d’un segment, l’ACK n’arrive pas jusqu’à l’émetteur, ce dernier
 Chaque segment est encapsulé dans un retransmet le message.
datagramme IP  TCP utilise un algorithme de retransmission adaptatif qui gère des
temporisations variables pour chaque connexion (moyenne sur le
temps écoulé entre l’émission et réception de l’ACK d’un segment non
retransmis).

IUT A - Réseaux - 2003/2004 Jean Carle 18 IUT A - Réseaux - 2003/2004 Jean Carle 19

3
USTL / IUT-A / dpt Info / Réseaux TCP - UDP

Acquittement « envoyer et attendre » Efficacité « send & wait »


Transmission et attente acquittement avant nouvelle transmission

total ≈ =
A B Temps util te 1
τutilisation : Temps te + 2 tp tp
 msg 1 1+ 2
Activation tempo Emiss te
io n msg
1 reçu et acquitté
Plus le temps de propagation augmente, plus l’efficacité du réseau diminue.
ACK

 msg 2 Station A Station B

 Non reçu (perdu) ou


Activation tempo Emis Te
sion  Non acquitté dans
ms g2 Msg Te / Tp < 1
les temps ou Temps
Tp
K  acquittement perdu
Fin tempo AC Tt
Re-ém Te
ission m
sg 2 Te / Tp > 1
Ancien ACK rejeté
 alors retransmission Ack Tp
ACK

IUT A - Réseaux - 2003/2004 Jean Carle 20 IUT A - Réseaux - 2003/2004 Jean Carle 21

Amélioration : Acquittement cumulatif Acquittement cumulatif


A B
Tempo 1 1
 Utilisation d’un acquittement pour un groupe de message plutôt Tempo 2 2
Tempo 3 3 Ack 1
que pour chaque message. Tempo 4 4
Msg 1 ok
 On acquitte tous les messages (ou octets) reçus avant un numéro donné Ack 4
 Nécessité de conserver les messages envoyés et non encore acquittés Msg 2, 3 et 4 ok

Tempo 5 5
6
7
8

Fin tempo 5
5 non acquitté 5
6
7
8

IUT A - Réseaux - 2003/2004 Jean Carle 22 IUT A - Réseaux - 2003/2004 Jean Carle 23

TCP – Fenêtre glissante TCP – Congestion & régulation des flots


 Réseau ou machine distante engorgée
 Fenêtre glissante
 Initialement
 Optimiser la bande passante ;  fenêtre congestion = fenêtre récepteur ;
 Contrôle de flux par le récepteur ;  fenêtre émission autorisée = min(fenêtre récepteur, fenêtre congestion)
 Trois pointeurs par fenêtre ;  A chaque perte
 Numérotation séquentielle : un bloc = un octet.  Division par 2 de la taille de la fenêtre de congestion ;
 Double la valeur de la temporisation : c’est le repli exponentiel.
 Sur envoie de fenêtre de réception nulle : émission d’un
Fenêtre destinataire
Fenêtre utilisable
segment de sonde de fenêtre à intervalle régulier.
1 2 3 4 5 6 7 8 9 10 11 12  Redémarrage (fin de congestion)
 Augmentation de 1 segment à chaque ACK reçu
émis et émis mais octets non émissible
acquittés non acquittés émissible en attente  Lorsque le fenêtre d’émission atteint une fois et demi sa taille initiale,
alors augmentation de un segment par fenêtre acquitté entièrement.
IUT A - Réseaux - 2003/2004 Jean Carle 24 IUT A - Réseaux - 2003/2004 Jean Carle 25

4
USTL / IUT-A / dpt Info / Réseaux TCP - UDP

TCP - Congestion TCP – Diagramme d’état simplifé

IUT A - Réseaux - 2003/2004 Jean Carle 26 IUT A - Réseaux - 2003/2004 Jean Carle 27

TCP - Connexion TCP - Déconnexion


A B Remarque : Une fermeture
1
Demande peut être initié par n’importe
déconnexion quelle extrémité.
Client Serveur FIN x
Demande connexion
(ouverture active) Attente connexion
SYN Indication de
Création Nom/port local x
(ouverture passive) ACK x+1 déconnexion 2
Création Nom/port local
Récupére Nom/port
client et accepte la
+1 B termine l’envoie
ACK x connexion
Ouverture OK SYN y de ses données

ACK Réponse 3
seq y+1 FIN y
= x+
1 4 Confirmation
Ouverture OK ACK y
+1

Fin de connexion

IUT A - Réseaux - 2003/2004 Jean Carle 28 IUT A - Réseaux - 2003/2004 Jean Carle 29

TCP - Transmission Chronogramme TCP - Résumé


Vide (4Ko)
client serveur
SYN
A B Établissement
Appli écrit 2Ko
2K / se connexion client ACK/S YN Établissement
qx
1 ACK connexion serveur
2048
48 / fen 2Ko 2
ack x+20 1 2 3 4
3
Appli écrit 3Ko 2
2K / se 4 3
q x+204 1
8 Temporisation 4
3 1 2 3
Plein ACK 4
0
96 / fen
ack x+40 5 6 7 4 5 5 6 7 4
L’application lit 2 Ko
4 5
2048
96 / fen
ack x+40 2Ko 6 4
Appli peut 7 6
envoyer 2Ko FIN 7
1K / se Terminaison
q x+409 connexion client ACK/F IN
6 Terminaison
1Ko 2Ko ACK
connexion serveur

IUT A - Réseaux - 2003/2004 Jean Carle 31 IUT A - Réseaux - 2003/2004 Jean Carle 32

5
USTL / IUT-A / dpt Info / Réseaux TCP - UDP

TCP / IP : Exemple d‘encapsulation Ports de services prédéfinis


 Datagramme IP vu par la machine :
0x00 45 00 00 40 10 60 40 00 40 06 e9 12 86 ce 28 98 E..J.`@.@.....(.
0x10 86 ce 0b 07 aa aa cf 85 b1 00 9b 2c 97 de 36 ab ...........,..6.
0x20 80 18 3e bc 52 c6 00 00 01 01 08 0a 02 87 7f e4 ..>.R...........
0x30 0d 93 c8 f5 42 6f 6e 6a 6f 75 72 20 3a 2d 29 13 ....Bonjour :-).
 Traduction  http://www.iana.org/assignments/port-numbers
 Entête IP : de l’octet d’indice 0x00 à 0x13 inclus
Version 4 Entête 20 o. Services normal Longueur totale : 64 o. (0x40)
Identification : 0x1060 Drapeaux : DF Fragment offset: 0
 RFC 1700 (RFC 1060)
TTL : 64 (0x40) Protocole contenu : TCP (0x06) Checksum: 0xe912
Source : 134.206.40.152 (0x86ce2898) Destination: 134.206.11.7 (0x86ce0b07)  Unix : /etc/services
 Entête TCP encapsulé dans IP : de l’octet 0x14 à 0x33 inclus
Source port: 43690 (0xaaaa) Destination port: 53125 (0xcf85)
Sequence number : 2969606956 (0xb1009b2c)
 Windows : %Windir%\System32\Drivers\etc\services
Acquittement : 2547922603 (0x97de36ab)
Entête 32 o. Flags : PSH, ACK Fenêtre: 16060 (0x3ebc)
Checksum: 0x52c6 Pointeur urgent 0 Options (12 octets)
IUT A - Réseaux - 2003/2004 Jean Carle 33 IUT A - Réseaux - 2003/2004 Jean Carle 34

Visualisation ports « ouverts »

 Connexions utilisées
netstat –p TCP
netstat –p UDP

 Ports de service « ouverts »


netstat –a

 Format numérique : -n

IUT A - Réseaux - 2003/2004 Jean Carle 35

Vous aimerez peut-être aussi