Vous êtes sur la page 1sur 38

Cours de TCP/IP et applicatifs

Chapitre 3

Sonia GAIED
sonia_f_g@yahoo.fr

2ème année STIC 2018/2019


Modèle TCP/IP

Couches applicatives
(Application, Présentation,Session)

Transport

Internet
(Réseau)
Accès réseau
(Liaison de données, Physique)
La couche transport
On trouve typiquement au dessus du protocole IP
(couche réseau - 3), les protocoles de transport
(couche 4) suivants :
UDP (User Datagramme Protocol)
TCP (Transmission Control Protocol)

3
La couche transport
• Les protocoles orientés connexion :
Protocoles opérant un contrôle de transmission des données
pendant une communication établie entre deux
machines.
la machine réceptrice envoie des accusés de réception lors
de la communication, ainsi la machine émettrice est
garante de la validité des données qu'elle envoie.
TCP est un protocole orienté connexion

• Les protocoles non orientés connexion :


la machine émettrice envoie des données sans prévenir la
machine réceptrice, et la machine réceptrice reçoit les
données sans envoyer d'avis de réception à la première.
UDP est un protocole non orienté connexion
4
La couche transport
TCP : Protocole orienté connexion

• Etablissement et maintien d'une connexion entre 2 machines

Hé, tu m'écoutes ?
Oui, je t'écoute
J'ai le cours réseau
OK
TCP
Je vais te l'envoyer
Transport Control ProtocolOK
Tu l'as reçu ?
Oui, c'est bon !
Salut
Salut
5
La couche transport
Protocole non orienté connexion

• Expédition des données

Je t'envoie le cours réseau


UDP
User Datagram Protocol
• Moins fiable que TCP
Contrôles d'erreurs, ordonnancement
• + rapide

6
La couche transport
TCP : Protocole orienté connexion

• Établissement et libération fiables des connexions


(mécanismes en trois étapes)
d

• Service de bout en bout orienté connexion


d
• Service de transport fiable (accusés de réception,
retransmissions)
d

• Contrôle de flux et de congestion par connexion


(mécanisme de fenêtre glissante - sliding window)
• d

• Transport de flux d’octets non structurés (stream


interface) 7
LE MESSAGE TCP
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Port source Port destination


Numéro de séquence
Acquittement

RST
SYN
FIN
URG
ACK
PSH
Déplacement Réservé Fenêtre
CheckSum Pointeur message Urgent

Options
Bourrage

Données

8
LE MESSAGE TCP
 Port Source - Port Destination
L'adresse IP, au niveau 3, permet de situer une
machine.
Une fois la machine trouvée, il faut pouvoir
déterminer l'application qui doit traiter les
données.
L'application est désignée par un NUMERO DE
PORT.

9
LE MESSAGE TCP
 Exemples de numéro de PORT (extrait du RFC 1700)

Services Numéro du Port


TELNET 23
HTTP 80
Port Données FTP 20
Port Contrôle FTP 21
Kerberos 88
10
La couche transport
L’adresse d’une application Internet est le triplet : (adresse IP, protocole
de transport, numéro de port)

11
La couche transport
TCP : Protocole orienté connexion
LE MESSAGE TCP : Numéros de ports
• Socket :combinaison d’une adresse IP et d’un numéro
de port

• L’association de 2 sockets définit totalement une


connexion TCP ou un échange UDP.

Exemple : (130.190.5.1, 23) et (147.171.150.2, 1094)


connexion entre le processus client numéro 1094 sur
l’hôte 147.171.150.2 et le serveur (deamon) telnetd sur
l’hôte 130.190.5.1 (port 23 réservé au serveur Telnet)
12
La couche transport
TCP : Protocole orienté connexion
LE MESSAGE TCP
Transfert fiable:
1. les accusés de (bonne) réception (ACK)
2. la numérotation des paquets (ou données)
3. des temporisateurs : alarmes qui expirent
(timeout)

13
La couche transport
TCP : Protocole orienté connexion
LE MESSAGE TCP
Principe : Pour la fiabilité de la transmission les octets sont
numérotés.
Numéro de séquence (32 bits)
– numéro de séquence du premier octet dans le segment
– valeur initiale fixée à l’établissement de la connexion
Numéro d’acquittement (32 bits)
– numéro de séquence du prochain octet attendu par le
récepteur (N indique la bonne réception des octets jusqu’à
N-1)
– valeur validée par l’indicateur ACK (voir plus loin)
– valeur initiale fixée à l’établissement de la connexion 14
La couche transport
TCP : Protocole orienté connexion
LE MESSAGE TCP : les temporisateurs

15
LE MESSAGE TCP
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Port source Port destination


Numéro de séquence
Acquittement

RST
SYN
FIN
URG
ACK
PSH
Déplacement Réservé Fenêtre
CheckSum Pointeur message Urgent

Options
Bourrage

Données

16
LE MESSAGE TCP
 Champ des bits de contrôle (Flag)
6 Bits pour définir la fonction des message et la
validité de certains champs :
URG : Message urgent - Les données doivent être
traitées sans attendre que le récepteur ait traité les
octets envoyés dans le flux.
ACK : Indique la validité du champ acquittement.
PSH : Les données reçues doivent être immédiatement
remises à la couche supérieure.
RST (Reset) : Réinitialisation de la connexion suite à une
erreur irrécupérable.
SYN : Indique l'ouverture d'une connexion.
FIN : Fermeture normale d'une connexion 17
LE MESSAGE TCP
 Champ réservé Pour un usage futur et
positionné à 0.
 Déplacement
Nombre de mots de 32 bits qui constitue
l'entête TCP car le champ Option est de
longueur variable. Avec aucune option,
déplacement = 5 (20 octets).

18
LE MESSAGE TCP
 Champ fenêtre
Ce champ est une implémentation du contrôle de
flux.
Nombre d'octets qu'il est possible de recevoir par
rapport au numéro d'acquittement.
Il est calculé par le récepteur en fonction de la
taille encore disponible dans son buffer d'entrée.

19
La couche transport
TCP : Protocole orienté connexion
Fenêtrage

• La technique acquittement simple pénalise les


performances puisqu'il faut attendre un acquittement
avant d'émettre un nouveau message.
d

• Le fenêtrage améliore le rendement des réseaux.


d

• La technique du fenêtrage : une fenêtre de taille T, permet


l'émission d'au plus T messages "non acquittés" avant de
ne plus pouvoir émettre

20
La couche transport
TCP : Protocole orienté connexion
Fenêtrage

Source Réseau Destination


Emission de Mi
Emission de Mi+1 Réception de Mi
Emission de Mi+2 Emission de Ai

Reception de Ai

Fenêtrage de taille 3
21
LE MESSAGE TCP
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Port source Port destination


Numéro de séquence
Acquittement

RST
SYN
FIN
URG
ACK
PSH
Déplacement Réservé Fenêtre
CheckSum Pointeur message Urgent

Options
Bourrage

Données

22
LE MESSAGE TCP
 CheckSum : permet de s'assurer de l'intégrité
de l'entête.
 Pointeur message Urgent
Pointe sur les octets qui doivent être traités en
priorité.
 Options
Champ de longueur variable avec un bourrage
pour s'aligner sur un multiple de 32 bits (voir
déplacement)

23
LA CONNEXION TCP
Une application qui appelle le module
TCP utilise les appels systèmes suivants :
– OPEN pour ouvrir la connexion. On
distingue :
• OPEN PASSIF qui est un open type serveur. Il reste
à l'écoute et accepte les requêtes qui lui arrive.
• OPEN ACTIF qui est un open type client qui après
une connexion sur un open passif enverra des
données.

24
LA CONNEXION TCP
– CLOSE pour fermer la connexion
– SEND pour envoyer les données après
un OPEN
– RECEIVE pour recevoir des données
– STATUS pour obtenir des informations
sur la connexion.

25
La couche transport
TCP : Protocole orienté connexion
LA CONNEXION TCP

• L'ouverture d'un connexion TCP se négocie en 3


temps à l'aide des flags SYN et ACK :

SYN = 1 ACK = 0 Demande d'ouverture


SYN = 1 ACK = 1 Acceptation de l'ouverture
SYN = 0 ACK = 1 Données

26
LA CONNEXION TCP
• Le contrôle de flux se fait à l'aide des champs
numéro de séquence (noté #SEQ) et
acquittement (noté #ACK). La valeur initiale de
#SEQ est produite à partir d'une horloge et d'un
compteur incrémenté toutes les 4 ms. Il permet
de numéroter les octets de données.
• Avec ces éléments un schéma d'une connexion
TCP sera le suivant (il existe d'autres séquences de protocole) :

27
Etablissement de la connexion TCP

• Procédure à trois échanges


– Three way handshake
• ISN (Initial Sequence Number)
– Numéro de séquence du premier octet
d’information transporté
– Le premier octet transporté est alors ISN+1
– ISN est généralement dérivé de l’horloge de l’hôte

28
Exemple

Maximum Segment Lifetime)

29
SYN=1 ACK=0
ACTIVE OPEN
#SEQ = 55
Demande d'ouverture de
connexion par le client #ACK = 0

PASSIVE OPEN
Par le serveur

SYN=1 ACK=1
Envoi de 10 octets #SEQ = 202
#ACK = 56
Quand SYN=0 et ACK=1 :

• #SEQ reprend le #ACK SYN=0 ACK=1


reçu #SEQ = 56
Envoi de 20 octets
#ACK = 203
• #ACK = #SEQ reçu +
Nombre d'octets reçu + 1

• #ACK donne le numéro du SYN=0 ACK=1


prochain octet attendu #SEQ = 203
#ACK = 67 (56+10+1)
30
SYN=0 ACK=1
#SEQ = 67
Envoi de 10 octets #ACK = 224 (203+20+1)

Envoi de 30 octets

SYN=0 ACK=1 Copie du message dans


#SEQ = 224 une file d'attente.
Panne de réseau
#ACK = 78 Reprise de l'envoi si
aucun ACK n'est reçu
avant le temps "t".
t =Time Out

SYN=0 ACK=1
#SEQ = 224
#ACK = 78

31
Réexpédition des 30 octets

SYN=0 ACK=1
#SEQ = 224
Envoi de n octets
#ACK = 78

SYN=0 ACK=1
#SEQ = 78 Envoi de n octets
#ACK = 255

Etc.

32
La couche transport
TCP : Protocole orienté connexion
Fenêtrage

Source Réseau Destination


Emission de Mi
Emission de Mi+1 Réception de Mi
Emission de Mi+2 Emission de Ai

Reception de Ai

Fenêtrage de taille 3
33
34
35
36
La couche transport
UDP: Protocole non orienté connexion
RFC 768
• acheminement de datagrammes ou segments au dessus de IP
• pas de fiabilité supplémentaire assurée
• assure la préservation des limites de chaque datagramme

Caractéristiques
• UDP est léger mais n'offre que peu de services
• Échanges simples de messages courts client/serveur
• Simple, donc léger, donc à priori relativement rapide

37
La couche transport
UDP: Protocole non orienté connexion

192.168.1.24 192.168.1.32

IP source : 192.168.1.24 Port source : 4257


IP dest : 192.168.1.32 Port dest : 23 n° 1 Hello

IP source : 62.212.16.32 Port source : 4257


IP dest : 195.221.97.19 Port dest : 23 n° 2 World !

38