Vous êtes sur la page 1sur 57

LES COUCHES HAUTES DU

MODELE OSI

Dr Lambert KADJO
lamberttanon_k@yahoo.fr
http://www.kadjo-lambert.c4.fr

1
CFTIC-INPHB 2010-2011
LES COUCHES HAUTES DU
MODELE OSI

I. LA COUCHE TRANSITOIRE: COUCHE TRANSPORT


III. LA COUCHE SESSION
IV. LA COUCHE PRESENTATION
V. LA COUCHE APPLICATIONS
Organisation
CM: 14 H
TD: 4 H
TP: 2 H

2
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Identification des services
I.2 Le protocole UDP

I.3 Le protocole TCP Au niveau de la couche Internet les datagrammes sont routés d'une machine
à une autre en fonction des bits de l'adresse IP qui identifient le numéro de
réseau. Lors de cette opération aucune distinction n'est faite entre les
II. LA COUCHE SESSION services ou les utilisateurs qui émettent ou reçoivent des datagrammes, ie
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
tous les datagrammes sont mélangés.

La couche UDP ajoute un mécanisme qui permet l'identification du service


(niveau Application). En effet, il est indispensable de faire un tri entre les
divers applications (services) : plusieurs programmes de plusieurs
utilisateurs peuvent utiliser simultanément la même couche de transport et il
ne doit pas y avoir de confusion entre eux.

Pour le système Unix, les programmes sont identifiés de manière unique par
un numéro de processus, mais ce numéro est éphémère, non prévisible à
distance, il ne peut servir à cette fonction car les processus sont créés et
détruits dynamiquement sur les machines.
ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 3
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Identification des services
I.2 Le protocole UDP

I.3 Le protocole TCP L'idée est d'associer la destination à la fonction qu'elle remplie. Cette
identification se fait à l'aide d'un entier positif que l'on baptise port.
Le système d'exploitation local a à sa charge de définir le mécanisme qui
II. LA COUCHE SESSION permet à un processus d'accéder à un port.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
La plupart des systèmes d'exploitation fournissent le moyen d'un accès
synchrone à un port. Ce logiciel doit alors assurer la possibilité de gérer la
file d'attente des paquets qui arrivent, jusqu'à ce qu'un processus
(Application) les lise. A l'inverse, le système d’exploitation bloque un
processus qui tente de lire une donnée non encore disponible.

Pour communiquer avec un service distant il faut donc avoir connaissance


de son numéro de port, en plus de l'adresse IP de la machine elle-même.

Une application qui souhaite communiquer sur le réseau avec une autre
application doit se raccorder à un port, comme le montre le schéma ci-
ESI-INPHB dessous.
GENIE ELECTRIQUE ET
ELECTRONIQUE 4
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Identification des services
I.2 Le protocole UDP

I.3 Le protocole TCP

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

Une application est donc identifiée dans un réseau par :

- l'adresse IP de la machine sur laquelle elle se trouve


ESI-INPHB - le protocol port number auquel elle s'est raccordée
GENIE ELECTRIQUE ET
ELECTRONIQUE 5
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Gestion des numéros de port
I.2 Le protocole UDP

I.3 Le protocole TCP - Tous les échanges entre UDP et les processus d'applications ont lieu via les
ports. Avant de pouvoir transmettre un message sur le réseau, chaque
processus d'application doit négocier avec le système d'exploitation pour
II. LA COUCHE SESSION obtenir un port (un numéro de port associé).
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
- Un port UDP peut être considéré comme une file d'attente. Dans la plupart
des implémentations, quand un port est affecté à un programme d'application
par le système d'exploitation, une file d'attente est créée sur ce port. Cette
file d'attente recevra les messages venant du réseau et à destination de ce
port.

- TCP/IP fixe certains numéros de ports UDP pour les types d'applications
les plus courants. Les autres numéros sont disponibles. Si une application ne
connaît pas le numéro de port d'une application distance à laquelle elle veut
s'adresser, elle peut obtenir ce numéro par un mécanisme de requête /
réponse.
ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 6
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Gestion des numéros de port
I.2 Le protocole UDP

I.3 Le protocole TCP


 Attribution des ports « ancienne méthode »

- Historiquement les ports de 1 à 255 sont réservés aux services bien connus,
II. LA COUCHE SESSION plus récemment, ce segment a été élargi à [1,1023].
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
-Aucune application ne peut s'attribuer durablement et au niveau de
l'Internet un numéro de port dans ce segment, sans en référer à l'IANA, qui
en contrôle l'usage.

- À partir de 1024 et jusqu'à 65535, l'IANA se contente d'enregistrer les


demandes d'usage et signale les éventuels conflits.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 7
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Gestion des numéros de port
I.2 Le protocole UDP

I.3 Le protocole TCP


Attribution des ports « nouvelle méthode »

Devant l'explosion du nombre des services enregistrés, l'IANA a modifié la


II. LA COUCHE SESSION segmentation qui précède. Désormais les numéros de ports sont classés selon
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
les trois catégories suivantes :
- Le segment [1,1023] est toujours réservé aux services bien connus.
Les services bien connus sont désignés par l'IANA et sont mis en
œuvre par des applications qui s'exécutent avec des droits privilégiés
(root sur une machine Unix)

- Le segment [1024,49151] est celui des services enregistrés.


Ils sont énumérés par l'IANA et peuvent être employés par des
processus ayant des droits ordinaires.

- Le segment [49152, 65535] est celui des attributions dynamiques et


des services privés
ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 8
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.1 La notion de port
I. PROTOCOLES DE TRANSPORT
I.1 La notion de port  Visualiser les ports « bien connus »
I.2 Le protocole UDP

I.3 Le protocole TCP -sur linux : /etc/services


cat /etc/service

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
- sur windows : %SystemRoot%\system32\drivers\etc\services

C:\Windows\system32\drivers\etc\services

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 9
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT  User Datagram Protocol
I.1 La notion de port
I.2 Le protocole UDP - est défini dans la RFC 768.
I.3 Le protocole TCP
-C’est un protocole de transport sans connexion de service applicatif,
émission de messages applicatifs, sans établissement de connexion au
II. LA COUCHE SESSION préalable, l'arrivée des messages ainsi que l’ordonnancement ne sont pas
III . LA COUCHE PRESENTATION garantis.
IV. LA COUCHE APPLICATIONS

-Un paquet UDP est conçu pour être encapsulé dans un datagramme IP et
permettre un échange de données entre deux applications, sans échange
préliminaire.
Ainsi, si les données à transmettre n'obligent pas IP à fragmenter,
un paquet UDP génère un datagramme IP !

- En conséquence des messages UDP peuvent :


 UDP est simplement une interface au dessus d'IP, ainsi l'émission
des messages se fait-elle sans garantie de bon acheminement. Plus
généralement, tous les défauts d'IP recensés au chapitre précédent
ESI-INPHB sont applicables à UDP.
GENIE ELECTRIQUE ET
ELECTRONIQUE 10
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port Plus particulièrement, les paquets à destination d'une application
I.2 Le protocole UDP UDP sont conservés dans une pile de type FIFO. Si l'application
destinatrice ne les « consomme » pas assez rapidement, les plus
I.3 Le protocole TCP
anciens paquets risquent d'être écrasés par les plus récents. Un
risque supplémentaire (par rapport aux propriétés d'IP déjà connues)
II. LA COUCHE SESSION de perte de données.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS Il n'y a aucun retour d'information au niveau du protocole pour
apporter un quelconque moyen de contrôle sur le bon acheminement
des données. C'est au niveau applicatif qu'il convient de prendre en
compte cette lacune.

- UDP est aussi désigné comme un mode de transport « non connecté »,


ou encore mode datagramme, par opposition à TCP que nous examinerons
dans la partie suivante. Ainsi, les paquets peuvent:
être dupliqués
ne pas arriver dans l'ordre
arriver trop vite pour être traités par le destinataire
ESI-INPHB - Un programme d'application qui utilise UDP doit tenir compte de tous
GENIE ELECTRIQUE ET ces problèmes.
ELECTRONIQUE 11
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port  Format d’un datagramme UDP


I.2 Le protocole UDP
Chaque message UDP est appelé un datagramme utilisateur (user datagram).
I.3 Le protocole TCP
Il contient un en-tête (header) et une zone de données (Data area).

II. LA COUCHE SESSION - Les ports source et destination contiennent les numéros de port utilisés par
III . LA COUCHE PRESENTATION UDP pour démultiplexer les datagrammes destinés aux processus en attente
IV. LA COUCHE APPLICATIONS
de les recevoir. Le port source est facultatif (égal à zéro si non utilisé).

-La longueur du message est exprimée en octets (8 au minimum) (en-tête +


données), le champ de contrôle est optionnel (0 si non utilisé).
-

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 12
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port  Format d’un datagramme UDP


I.2 Le protocole UDP
-Les messages UDP venant de la couche IP sont distribués aux différentes
I.3 Le protocole TCP
applications en fonction des numéros de port inclus dans les en-têtes UDP.
- Les messages en provenance des différentes applications de la machine
II. LA COUCHE SESSION sont transmis à la couche IP.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
- Lorsqu'il est utilisé, le champ de contrôle couvre plus d'informations que
celles contenue dans le datagramme UDP; En effet, le checksum est calculé
avec un pseudo- en-tête non transmis dans le datagramme:

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 13
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port  Format d’un datagramme UDP


I.2 Le protocole UDP

I.3 Le protocole TCP

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
- Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP)
- Le champ LONGUEUR UDP spécifie la longueur du datagramme UDP
sans le pseudo-en-tête.

- UDP multiplexe et démultiplexe les datagrammes en sélectionnant les


numéros de ports :
 une application obtient un numéro de port de la machine locale; dès
lors que l'application émet un message via ce port, le champ PORT
SOURCE du datagramme UDP contient ce numéro de port,

une application connaît (ou obtient) un numéro de port distant afin


ESI-INPHB de communiquer avec le service désiré.
GENIE ELECTRIQUE ET
ELECTRONIQUE 14
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port  Format d’un datagramme UDP


I.2 Le protocole UDP

I.3 Le protocole TCP


-Lorsque UDP reçoit un datagramme,

II. LA COUCHE SESSION il vérifie que celui-ci est un des ports actuellement actifs (associé à
III . LA COUCHE PRESENTATION une application) et le délivre à l'application responsable (mise en
IV. LA COUCHE APPLICATIONS
queue) ;

si ce n'est pas le cas, il émet un message ICMP port unreachable, et


détruit le datagramme.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 15
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.2 Le protocole UDP
I. PROTOCOLES DE TRANSPORT

I.1 La notion de port  Encapsulation successives


I.2 Le protocole UDP
UDP s'appuyant sur les couches inférieures pour acheminer les messages
I.3 Le protocole TCP
UDP, des encapsulations successives ont lieu :

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 16
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT
I.1 La notion de port  Transmission Control Protocol
I.2 Le protocole UDP
- est défini dans la RFC 793.
I.3 Le protocole TCP
-Utiliser un service de transport non fiable et sans connexion comme UDP
ne peut convenir pour des programmes d'application transférant de grands
II. LA COUCHE SESSION volumes de données.
III . LA COUCHE PRESENTATION Il faudrait implanter dans les applications des mécanismes de
IV. LA COUCHE APPLICATIONS
contrôle du bon acheminement des messages, de remise dans l'ordre
des messages.
- est un protocole du niveau transport qui permet à une application d'une
machine d'envoyer un flux de données vers une application d'une autre
machine.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 17
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT
I.1 La notion de port  Caractéristiques
I.2 Le protocole UDP
- TCP contient un mécanisme pour assurer le bon acheminement des
I.3 Le protocole TCP
données. Cette possibilité est absolument indispensable dès lors que les
applications doivent transmettre de gros volumes de données et de façon
II. LA COUCHE SESSION fiable.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS -Il faut préciser que les paquets de données sont acquittés de bout en bout et
non de point en point. D'une manière générale le réseau assure
l'acheminement et les extrémités le contrôle.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 18
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT
I.1 La notion de port  Caractéristiques
I.2 Le protocole UDP
- Le protocole TCP permet l'établissement d'un circuit virtuel entre les deux
I.3 Le protocole TCP points qui échangent de l'information. On dit aussi que TCP fonctionne en
mode connecté (par opposition à UDP qui est en mode non connecté ou
encore mode datagramme).
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
 Avant le transfert les 2 applications se mettent en relation avec leurs
IV. LA COUCHE APPLICATIONS OS respectifs, les informent de leurs désirs d'établir ou de recevoir une
communication.
 Pratiquement, l'une des deux applications doit effectuer un appel
que l'autre doit accepter.
Les protocoles des 2 OS communiquent alors en s'envoyant des
messages au travers du réseau pour vérifier que le transfert est possible
(autorisé) et que les deux applications sont prêtes pour leurs rôles.
 Une fois ces préliminaires établis, les modules de protocole
informent les applications respectives que la connexion est établie et
que le transfert peut débuter.
Durant le transfert, le dialogue entre les protocoles continue, pour
ESI-INPHB vérifier le bon acheminement des données.
GENIE ELECTRIQUE ET
ELECTRONIQUE 19
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT
I.1 La notion de port  Caractéristiques
I.2 Le protocole UDP
- Conceptuellement, pour établir une connexion -- un circuit virtuel -- il faut
I.3 Le protocole TCP avoir réunis les éléments du quintuplet :
Le protocole : C'est TCP mais il y pourrait y avoir d'autres
transports qui assurent le même service...
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
IP locale : Adresse de la machine qui émet.
IV. LA COUCHE APPLICATIONS Port local : Le numéro de port associé au processus. Il est imposé ou
est déterminé automatiquement.
IP distante : Adresse de la machine distante.
Port distant : Le numéro de port associé au service à atteindre. Il est
obligatoire de le connaître précisement.

-L'ensemble de ces cinq éléments définit un circuit virtuel unique.


 Que l'un d'eux change et il s'agit d'une autre connexion !

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 20
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Caractéristiques
I.1 La notion de port - TCP a la capacité de mémoriser des données :
I.2 Le protocole UDP  Aux deux extrémités du circuit virtuel, les applications s'envoient
I.3 Le protocole TCP des volumes de données absolument quelconques, allant de 0 octet à
des centaines (ou plus) de Mo.
 À la réception, le protocole délivre les octets exactement comme ils
II. LA COUCHE SESSION ont été envoyés.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS  Le protocole est libre de fragmenter le flux de données en paquets
de tailles adaptées aux réseaux traversés. Il lui incombe cependant
d'effectuer le réassemblage et donc de stocker temporairement les
fragments avant de les présenter dans le bon ordre à l'application.

- TCP est indépendant vis à vis des données transportées, c'est un flux
d'octets non structuré sur lequel il n'agit pas.
TCP simule une connexion en « full duplex ». Pour chacune des deux
applications en connexion par un circuit virtuel, l'opération qui consiste à
lire des données peut s'effectuer indépendamment de celle qui consiste à en
écrire.
Le protocole autorise la clôture du flot dans une direction tandis que l'autre
ESI-INPHB
GENIE ELECTRIQUE ET continue à être active. Le circuit virtuel est rompu quand les deux parties ont
21
ELECTRONIQUE clos le flux.
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port
I.2 Le protocole UDP
- La figure suivante montre la structure d'un en-tête TCP. Sa taille normale
I.3 Le protocole TCP est de 20 octets, à moins que des options soient présentes.

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 22
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port - TCP SOURCE PORT : Le numéro de port de l'application locale.
I.2 Le protocole UDP -TCP DESTINATION PORT : Le numéro de port de l'application distante.
I.3 Le protocole TCP - SEQUENCE NUMBER : C'est un nombre qui identifie la position des
données à transmettre par rapport au segment original. Au démarrage de
chaque connexion, ce champ contient une valeur non nulle et non facilement
II. LA COUCHE SESSION prévisible, c'est la séquence initiale ou ISN.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS  TCP numérote chaque octet transmis en incrémentant ce nombre de
32 bits non signé. Il repasse à 0 après avoir atteint 232 - 1
(4 294 967 295).
Pour le premier octet des données transmis, ce nombre est incrémenté
de un, et ainsi de suite.
-ACKNOWLEDGEMENT NUMBER : C'est un numéro qui identifie la
position du dernier octet reçu dans le flux entrant. Il doit s'accompagner du
drapeau ACK (voir plus loin).
- OFF : pour OFFSET, il s'agit d'un déplacement qui permet d'atteindre les
données quand il y a des options. Codé sur 4 bits, il s'agit du nombre de
mots de 4 octets qui composent l'en-tête. Le déplacement maximum est donc
de 60 octets (24-1 x 4 octets). Dans le cas d'un en-tête sans option, ce champ
ESI-INPHB
GENIE ELECTRIQUE ET porte la valeur 5. (10 mots de 4 octets sont donc possibles pour les options).
ELECTRONIQUE 23
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port
- RESERVED : Six bits réservés pour un usage futur (trois bits de poids
I.2 Le protocole UDP
faibles utilisés actuellement (Nonce, cwd, ECN)).
I.3 Le protocole TCP -CODE : Six bits pour influer sur le comportement de TCP en caractérisant
l'usage du segment :
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
URG Le champ « URGENT POINTER » doit être exploité.
IV. LA COUCHE APPLICATIONS

ACK Le champ « ACNOWLEDGMENT NUMBER » doit être exploité.

C'est une notification de l'émetteur au récepteur, pour lui indiquer que


PSH toutes les données collectées doivent être transmises à l'application
sans attendre les éventuelles données qui suivent
RST Re-initialisation de la connexion
Le champ « SEQUENCE NUMBER » contient la valeur de début de
SYN
connexion.
FIN L'émetteur du segment a fini d'émettre.
ESI-INPHB
GENIE ELECTRIQUE ET En fonctionnement normal un seul bit est activé à la fois mais ce n'est pas une
ELECTRONIQUE 24
obligation. La RFC 1024 décrit l'existence de paquets tcp dénommés « Christmas
2011 - 2012
tree » ou « paquet kamikaze » comprenant les bits SYN+URG+PSH+FIN
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port
I.2 Le protocole UDP WINDOW
Le flux TCP est controlé de part et d'autre pour les octets compris dans
I.3 Le protocole TCP
une zone bien délimitée et nommée « fenêtre ». La taille de celle-ci est
définie par un entier non signé de 16 bits, qui en limite donc
II. LA COUCHE SESSION
théoriquement la taille à 65 535 octets (ce n'est pas complètement
III . LA COUCHE PRESENTATION exact, voir plus loin l'option Wscale).
IV. LA COUCHE APPLICATIONS
Chaque partie annonce ainsi la taille de son buffer de réception. Par
construction, l'émetteur n'envoie pas plus de données que le récepteur
ne peut en accepter.
Cette valeur varie en fonction de la nature du réseau et surtout de la
bande passante devinée à l'aide de statistiques sur la valeur du RTT.
CHECKSUM : Un calcul qui porte sur la totalité du segment, en-tête et
données.
URGENT POINTER Ce champ n'est valide que si le drapeau URG est
armé. Ce pointeur contient alors un offset à ajouter à la valeur de SEQUENCE
NUMBER du segment en cours pour délimiter la zone des données urgentes à
ESI-INPHB transmettre à l'application. Le mécanisme de transmission à l'application
GENIE ELECTRIQUE ET dépend du système d'exploitation.
ELECTRONIQUE 25
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port
I.2 Le protocole UDP OPTIONS : C'est un paramétrage de TCP. Sa présence est détectée dès lors
que l'OFFSET est supérieur à 5.
I.3 Le protocole TCP
Les options utilisées :
MSS: La taille maximale du segment des données applicatives que
II. LA COUCHE SESSION
l'émetteur accepte de recevoir. Au moment de l'établissement d'une
III . LA COUCHE PRESENTATION connexion (paquet comportant le flag SYN), chaque partie annonce sa
IV. LA COUCHE APPLICATIONS
taille de MSS. Ce n'est pas une négociation. Pour de l'Ethernet la
valeur est 1460 ( = MTU - 2 x 20).
 TIMESTAMP : pour calculer la durée d'un aller et retour (RTT ou
Round Trip Time).
 WSCALE : Facteur d'échelle (`` shift '') pour augmenter la taille de
la fenêtre au delà des 16 bits du champ WINDOW (> 65535).
Quand cette valeur n'est pas nulle, la taille de la fenêtre est de 65535 x
2shift. Par exemple si « shift » vaut 1 la taille de la fenêtre est de
131072 octets soit environ 128 ko.
 NOP : Les options utilisent un nombre quelconque d'octets par
contre les paquets TCP sont toujours alignés sur une taille de mot de
ESI-INPHB quatre octets ; à cet effet une option « No Operation » ou NOP, codée
GENIE ELECTRIQUE ET
ELECTRONIQUE
sur 1 seul octet, est prévue pour compléter les mots. 26
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT Format d’un segment TCP
I.1 La notion de port
I.2 Le protocole UDP
PADDING : Remplissage pour se caler sur un mot de 32 bits.
I.3 Le protocole TCP

DATAS : Les données transportées. Cette partie est de longueur nulle à


II. LA COUCHE SESSION
l'établissement de la connexion, elle peut également être nulle par choix de
III . LA COUCHE PRESENTATION l'application.
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 27
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP
 Établissement d'une connexion
I.3 Le protocole TCP
L'établissement d'une connexion TCP s'effectue en trois temps, comme
le schéma de la figure suivante l'explicite.
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 28
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Établissement d'une connexion
I.3 Le protocole TCP
- On suppose que l'émetteur du premier paquet avec le bit SYN a
connaissance du couple (adresse IP du récepteur, numéro de port du service
II. LA COUCHE SESSION
souhaité).
III . LA COUCHE PRESENTATION -L'émetteur du premier paquet est à l'origine de l'établissement du circuit
IV. LA COUCHE APPLICATIONS
virtuel, c'est une attitude généralement qualifiée de `` cliente ''. On dit aussi
que le client effectue une « ouverture active » (active open).

-Le récepteur du premier paquet accepte l'établissement de la connexion, ce


qui suppose qu'il était prêt à le faire avant que la partie cliente en prenne
l'initiative. C'est une attitude de « serveur ». On dit aussi que le serveur
effectue une « ouverture passive » (passive open).
- Le client envoie un segment comportant le drapeau SYN, avec sa
séquence initiale (ISN = x).
Le serveur répond avec sa propre séquence (ISN = y), mais il doit
également acquitter le paquet précédent, ce qu'il fait avec
ESI-INPHB ACK (seq = x + 1).
GENIE ELECTRIQUE ET
ELECTRONIQUE
Le client doit acquitter le deuxième segment avec 29
2011 - 2012 ACK (seq = y + 1).
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Clôture d'une connexion
 Clôture canonique : Un échange de trois segments est nécessaire pour
I.3 Le protocole TCP
l'établissement de la connexion ; il en faut quatre pour qu'elle s'achève de
manière canonique (« orderly release »).
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 30
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Clôture d'une connexion
I.3 Le protocole TCP
Clôture canonique :

II. LA COUCHE SESSION


- La raison est qu'une connexion TCP est « full-duplex », ce qui implique
III . LA COUCHE PRESENTATION que les données circulent indépendamment dans un sens et dans l'autre. Les
IV. LA COUCHE APPLICATIONS
deux directions doivent donc pouvoir être interrompues indépendamment
l'une de l'autre.

- L'application qui envoie un paquet avec le drapeau FIN indique à la couche


TCP de la machine distante qu'elle n'enverra plus de donnée. La machine
distante doit acquitter ce segment, comme il est indiqué sur la figure ci-
dessus, en incrémentant d'une unité le « sequence number ».

- La connexion est véritablement terminée quand les deux applications ont


effectué ce travail. Il y a donc échange de 4 paquets pour terminer la
connexion.
ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 31
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Clôture d'une connexion
I.3 Le protocole TCP
Clôture canonique :

II. LA COUCHE SESSION


- Au total, sans compter les échanges propres au transfert des données, les
III . LA COUCHE PRESENTATION deux couches TCP doivent gérer 7 paquets, il faut en tenir compte lors de la
IV. LA COUCHE APPLICATIONS
conception des applications !

- Sur la figure on constate que le serveur continue d'envoyer des données


bien que le client ait terminé ses envois. Le serveur a détecté cette attitude
par la réception d'un caractère de EOF (en C sous Unix).

- Cette possibilité a son utilité, notamment dans le cas des traitements


distants qui doivent s'accomplir une fois toutes les données transmises,
comme par exemple pour un tri.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 32
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Clôture d'une connexion
I.3 Le protocole TCP
Clôture abrupte:

II. LA COUCHE SESSION


- Au lieu d'un échange de quatre paquets comme précédement, un
III . LA COUCHE PRESENTATION mécanisme de reset est prévu pour terminer une connexion au plus vite
IV. LA COUCHE APPLICATIONS
(abortive release).

- Ce type d'arrêt est typiquement géré par la couche TCP elle-même quand
l'application est brutalement interrompue sans avoir effectué un appel à la
primitive close(2), comme par exemple lors d'un appel à la primitive
abort(2), ou après avoir rencontré une exception non prise en compte (
« core dump »...).

- L'extremité qui arrête brutalement la connexion émet un paquet assorti du


bit RST, après avoir (ou non) envoyé les derniers octets en attente. Ce
paquet clôt l'échange. Il ne reçoit aucun acquittement.
ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 33
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Début et clôture de connexion
I.1 La notion de port
I.2 Le protocole UDP  Clôture d'une connexion
I.3 Le protocole TCP
Clôture abrupte:

II. LA COUCHE SESSION


- L'extrémité qui reçoit le paquet de reset (bit RST), transmet les éventuelles
III . LA COUCHE PRESENTATION dernières données à l'application et provoque une sortie d'erreur du type
IV. LA COUCHE APPLICATIONS
« Connection reset par peer » pour la primitive de lecture réseau. Comme
c'est le dernier échange, si des données restaient à transmettre à l'application
qui a envoyé le RST elles peuvent être détruites.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 34
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Mécanisme de l'acquittement
I.3 Le protocole TCP

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 35
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport :
I.1 La notion de port
Quelques termes
I.2 Le protocole UDP

I.3 Le protocole TCP ● Contrôle de flux : par rapport au récepteur


– l'émetteur adapte le nombre de paquets envoyés à la taille du buffer de
réception
II. LA COUCHE SESSION
● Contrôle de congestion : par rapport au réseau
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS – l'émetteur adapte le débit des données envoyées à la bande passante
instantanée du réseau
– NB : ce n'est pas la taille des paquets, mais leur débit d'envoi qui change
● Buffer de réception : espace de stockage des données (reçues ou non)
● Fenêtre de réception
– nombre max de paquets que le récepteur est capable de recevoir à un
certain moment (l'espace libre au récepteur)
● Fenêtre d’émission : les données de l'application
● Fenêtre de congestion (cwnd: Control Window)
– sous-fenêtre mobile de la fenêtre d'émission
– nombre max de paquets que l'émetteur peut envoyer sans recevoir aucun
ESI-INPHB
accusé
GENIE ELECTRIQUE ET ● Seuil de démarrage lent (ssthresh: Slow-Start Threshold)
36
ELECTRONIQUE
2011 - 2012
– estimation de la bande passante disponible
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport :
I.1 La notion de port
Quelques termes
I.2 Le protocole UDP
● Accusé de réception
I.3 Le protocole TCP – récepteur -> émetteur
– numéro du 1er octet attendu par le récepteur
● TCP classique : les accusés sont cumulatifs
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION ● DupACK : un accusé identique au précédent
IV. LA COUCHE APPLICATIONS
– si paquet N arrive au récepteur avant N-1, son accusé est identique à
l'accusé de N-2
● Delayed ACK : retarder les accusés
– après min (le 2ème paquet reçu, un temps fixe, exple: 500 ms)
● RTT (Round Trip Time)
– temps entre l’envoi d’un paquet et la réception de son accusé
● RTO (Retransmission TimeOut)
– à chaque envoi d'un paquet, une horloge propre est lancée
– si l'horloge expire, le paquet est retransmis
ESI-INPHB – le RTO est affecté dynamiquement, en fonction du RTT [RFC 2988]
GENIE ELECTRIQUE ET  exemple : RTO = 2*RTT 37
ELECTRONIQUE
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Mécanisme de l'acquittement
I.3 Le protocole TCP
 Au départ du Paquet i, une horloge se déclenche. Si cette horloge dépasse
une valeur limite avant réception de l'ACK (RTO), le Paquet i est
II. LA COUCHE SESSION
retransmis. Cette valeur limite est basée sur la constante MSL (Maximum
III . LA COUCHE PRESENTATION Segment Lifetime) qui est un choix d'implémentation, généralement de 30
IV. LA COUCHE APPLICATIONS
secondes à 2 minutes. Le temps maximum d'attente est donc de 2 x MSL.

Le RTT doit donc être inférieur à 2 x MSL. Il est courant sur l'Internet
actuel d'avoir un RTT de l'ordre de la seconde. Ce RTT est la somme des
temps de transit entre chaque routeur et du temps passé dans les diverses
files d'attente sur les routeurs.

L'émetteur conserve la trace du Paquet i pour éventuellement le renvoyer.


Il est le responsable du contrôle de la congestion

Si on considère des délais de transmission de l'ordre de 500 ms (voire plus),


ESI-INPHB
GENIE ELECTRIQUE ET un tel mécanisme est totalement inadapté au transfert de flux de données. On
ELECTRONIQUE 38
peut aussi remarquer qu'il sous-emploie la bande passante du réseau.
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Fenêtres glissantes
I.3 Le protocole TCP
 Attente de l'acquittement est pénalisante,
 Utilisation d’un mécanisme de « fenêtres glissantes » ou Sliding windows,
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 39
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Fenêtres glissantes
I.3 Le protocole TCP  la bande passante du réseau est beaucoup mieux employée.
- Si l'un des paquets doit être réémis, la couche TCP du destinataire aura toute
l'information pour le replacer dans le bon ordre.
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
- À chaque paquet est associée une horloge
IV. LA COUCHE APPLICATIONS - Le nombre de paquets à envoyer avant d'attendre le premier acquittement est
fonction de deux paramètres :
 La largeur de la fenêtre précisée dans le champ WINDOW de l'en-tête.
- Des valeurs courantes sont de l'ordre de 4096, 8192 ou 16384.
Elle change dynamiquement pour deux raisons :
 L'application change la taille du « buffer de la socket » qui
correspond à la taille de cette fenêtre.
 Chaque acquittement ACK envoyé est assorti d'une nouvelle valeur
de taille de la fenêtre, permettant ainsi à l'émetteur d'ajuster à tout
instant le nombre de segment qu'il peut envoyer simultanément.
Cette valeur peut être nulle, comme par exemple lorsque
ESI-INPHB l'application cesse de lire les données reçues.
GENIE ELECTRIQUE ET C'est ce mécanisme qui assure le contrôle de flux de TCP. 40
ELECTRONIQUE
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Fenêtres glissantes
I.3 Le protocole TCP
 La taille maximale des données, ou MSS (Maximum Segment Size) vaut
512 octets par défaut. C'est la plus grande taille du segment de données que
II. LA COUCHE SESSION
TCP enverra au cours de la session.
III . LA COUCHE PRESENTATION -Le datagramme IP a donc une taille égale au MSS augmentée de 40 octets
IV. LA COUCHE APPLICATIONS
(20 + 20), en l'absence d'option de TCP.
- Chaque couche TCP envoie sa valeur de MSS en même temps que le
paquet de synchronisation, comme une option de l'en-tête. Cette valeur est
calculée pour éviter absolument la fragmentation de IP au départ des
datagrammes.
- Cette option apparaît uniquement dans un paquet assorti du drapeau SYN,
donc à l'établissement de la connexion.
- Comme de bien entendu cette valeur est fortement dépendante du support
physique et plus particulièrement du MTU.
Sur de l'Ethernet II, la valeur maximale est 1500 - 2 x 20 = 1460, avec des
trames l'encapsulation 802.3 de l'IEEE nous avons une longueur de 1452
ESI-INPHB octets.
GENIE ELECTRIQUE ET
ELECTRONIQUE 41
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Fenêtres glissantes
I.3 Le protocole TCP

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 42
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle du transport
I.1 La notion de port
I.2 Le protocole UDP  Fenêtres glissantes
I.3 Le protocole TCP Le débit obtenu dépend de la taille de la fenêtre et bien sûr de la bande
passante disponible. On conçoit aisément qu'entre la situation de la Fenêtre
glissante et celle de la gestion basique, l'usage de la bande passante
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION s'améliore. Par contre l'agrandissement de la taille de la fenêtre ne se conçoit
IV. LA COUCHE APPLICATIONS que jusqu'à une limite optimale au delà de laquelle des paquets sont perdus
parce qu'envoyés trop rapidement pour être reçus par le destinataire. Or, pour
fonctionner de manière optimale, TCP se doit de limiter au maximum la
perte de paquets et donc leur rémission.

 Cette taille limite optimale de la largeur de la fenêtre est, comme on peut


le deviner, fonction de la bande passante théorique du réseau et surtout de
son taux d'occupation instantané. Cette dernière donnée est fluctuante, aussi
TCP doit-il asservir continûment les tailles de fenêtre pour en tenir compte.

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 43
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP

I.3 Le protocole TCP

● Le CC est géré exclusivement par l'émetteur


II. LA COUCHE SESSION – le récepteur ne fait que renvoyer des accusés de réception
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
● Les algorithmes basiques de CC supportés par TCP sont [RFC 2581] :
– slow start
– congestion avoidance
– fast retransmission
– fast recovery

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 44
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP  Slow Start
I.3 Le protocole TCP
● But : retrouver rapidement la bande passante disponible
● cwnd = 1
II. LA COUCHE SESSION ● cwnd++ à chaque accusé reçu (cwnd *= 2 à chaque RTT)
III . LA COUCHE PRESENTATION  croissance exponentielle de la fenêtre
IV. LA COUCHE APPLICATIONS
● ssthresh = valeur arbitraire
● Si atteinte ssthresh :
– on entre en congestion avoidance
● Si perte :
– ssthresh = cwnd / 2
– cwnd = 1
– on relance le slow start

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 45
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP  Congestion Avoidance
I.3 Le protocole TCP
● But : augmenter le débit en testant gentillement la bande passante
disponible
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION ● Utilisé quand cwnd >= ssthresh
IV. LA COUCHE APPLICATIONS
– quand cwnd < ssthresh, c'est le slow start qui est utilisé

● cwnd++ à chaque RTT


– croissance linéaire de cwnd
● Si perte :
– ssthresh = cwnd / 2
– cwnd = 1
– retour au mode slow start

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 46
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP  Fast retransmission
I.3 Le protocole TCP
● But : détecter plus rapidement la perte d'un paquet (et le retransmettre)
● Un paquet est considéré par l'émetteur comme perdu si :
II. LA COUCHE SESSION – pas d'accusé au timeout (=> pertes successives), déjà traité
III . LA COUCHE PRESENTATION – ou bien récéption de N dupacks, N = 3 en gén. (=> perte isolée)
IV. LA COUCHE APPLICATIONS

● Fast retransmission : si N dupacks, on n'attend plus le timeout, mais :


– on retransmet le paquet
– on entre en slow start (Tahoe) ou fast recovery (les autres)

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 47
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP  Fast recovery
I.3 Le protocole TCP
● ssthresh = cwnd / 2
● cwnd = ssthresh + 3 (“gonflement” de cwnd)
II. LA COUCHE SESSION – envoi éventuel de nouveaux paquets
III . LA COUCHE PRESENTATION – la valeur 3, car 3 paquets accusés
IV. LA COUCHE APPLICATIONS

● Pour chaque dupack, cwnd++


=> envoi éventuel d'un nouveau paquet

● Réception d'un non dupack (“dégonflement” de cwnd) :


– cwnd = ssthresh
– retour au congestion avoidance

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 48
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Quelques algorithmes de contrôle de congestion
I.1 La notion de port
I.2 Le protocole UDP  Algorithmes plus récents
I.3 Le protocole TCP
● Tahoe : slow start + congestion avoidance + fast retrans

II. LA COUCHE SESSION ● Reno : Tahoe + fast recovery


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
● Newreno : Reno + adaptation aux pertes successives

● Vegas : basé sur l'historique du RTT (état des routeurs)

● SACK, DSACK : spécifie exactement les paquets reçus

● Westwood+ : basé sur l'historique du RTT, meilleure utilisation si pertes


aléatoires

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 49
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Contrôle de la congestion
I.1 La notion de port
I.2 Le protocole UDP  Différents mécanismes
I.3 Le protocole TCP ● Contrôle de flux : par rapport au récepteur
– l'émetteur adapte le nombre de paquets envoyés à la
taille du buffer de réception
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION ● Contrôle de congestion : par rapport au réseau
IV. LA COUCHE APPLICATIONS – l'émetteur adapte le débit des données envoyées à la
bande passante instantanée du réseau
– NB : ce n'est pas la taille des paquets, mais leur débit
d'envoi qui change

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 50
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Complément sur le fonctionnement de TCP
I.1 La notion de port
I.2 Le protocole UDP  L'usage du protocole TCP diffère considérablement en fonction des
I.3 Le protocole TCP applications mises en œuvre et des réseaux à parcourir.

 10% des données échangées sur le réseau concernent des applications


II. LA COUCHE SESSION interactives et 90% des applications échangent des flux de données.
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS
 Si le protocole TCP reste le même pour tous, les algorithmes qui le pilotent
s'ajustent en fonction de l'usage.

Pour le trafic en volume (bulk data), TCP tente d'utiliser des paquets les plus
larges possibles pour maximiser le débit, alors que le trafic interactif utilise
des paquets quasiment vides émis le plus souvent à la fréquence de frappe des
utilisateurs ou au rythme des mouvements d'une souris.

Un exemple typique est celui de l'application TELNET pour laquelle les
caractères sont envoyés un à un dans un paquet différent, chaque caractère
étant à l'origine de quatre paquets : émission d'un caractère, acquittement,
ESI-INPHB
GENIE ELECTRIQUE ET retour de l'écho du caractère, acquittement.
ELECTRONIQUE 51
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Encapsulations successives
I.1 La notion de port
I.2 Le protocole UDP  TCP s'appuyant sur les couches inférieures pour acheminer les datagrammes
I.3 Le protocole TCP utilisateurs, les encapsulations successives ont lieu :

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 52
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Exemples d’applications utilisant TCP
I.1 La notion de port
I.2 Le protocole UDP  FTP ( File Transfert Protocol )
I.3 Le protocole TCP  SMTP (Simple Mail Transport Protocol)
 Telnet ( TELetype NETwork )
 Les applications X400 (messagerie électronique)
II. LA COUCHE SESSION
III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 53
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.3 Le protocole TCP
 Descriptif des états TCP

• LISTEN (Ecoute) : la connexion reste en attente d'une requête de connexion externe par un TCP
distant. Cet état est atteint après une demande de connexion passive.
• SYN-SENT (SYN émis) : la connexion se met en attente d'une requête de connexion, après avoir
envoyé elle-même une requête à un destinataire.
• SYN-RECEIVED (SYN reçu): les deux requêtes de connexion se sont croisées. La connexion
attend confirmation de son établissement.
• ESTABLISHED (Etablie): la connexion a été confirmée de part et d'autre et les données peuvent
transiter sur la voie de communication. C'est l'état stable actif de la connexion.
• FIN-WAIT-1 (FIN –Attente -1): sur requête de déconnexion émise par l'application, la connexion
demande la confirmation d'une requête de déconnexion qu'elle a elle-même émise vers le distant.
• FIN-WAIT-2 (FIN –Attente -2): la connexion se met en attente d'une requête de déconnexion par le
distant, une fois reçue la confirmation de sa propre requête.
• CLOSE-WAIT (Attente de fermeture): la connexion se met en attente d'une requête de déconnexion
émise par l'application.
• CLOSING (Fermeture en cours) : la connexion attend la confirmation de sa requête de déconnexion
par le TCP distant, lequel avait auparavant émis sa propre requête de déconnexion.
• LAST-ACK (Dernier ACK): la connexion attend la confirmation de sa requête de déconnexion,
émise suite à une requête similaire à l'initiative du distant.
• TIME-WAIT (Temporisation expirée): un temps de latence avant fermeture complète
54
du canal, pour s'assurer que toutes les confirmations ont bien été reçues.
• CLOSED (Fermé): la connexion n'existe plus. C'est un pseudo état.
 Machine d'états d'une connexion TCP
CLOSE Passive OPEN
CLOSED Active
Delete TCB : OPEN :
Create TCB Create TCB
Send SYN CLOSE
SEND Delete TCB

LISTEN send SYN

receive SYN
send SYN, ACK

receive SYN
SYN RCV send ACK SYN SENT

CLOSE receive ACK of SYN receive SYN, ACK


send FIN ESTABLISHED send ACK

CLOSE receive FIN


send FIN send ACK CLOSE
FIN WAIT 1
WAIT
receive FIN
send ACK CLOSE
receive ACK of FIN
send FIN

CLOSING
FIN WAIT 2 LAST ACK
receive ACK of FIN
receive ACK of FIN

receive FIN TIMEOUT = 2MSL


send ACK TIME WAIT Delete TCB CLOSED 55
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE TRANSITOIRE : COUCHE
TRANSPORT
I.4 Autres protocoles de transport
I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT  Stream Control Transmission Protocol (SCTP)
I.1 La notion de port
I.2 Le protocole UDP  RFC 4960
 ne gère pas un flot d’octets continu mais une série de messages, bien
I.3 Le protocole TCP
séparés,
 gère plusieurs flux de données séparés, qui partagent le même contrôle
II. LA COUCHE SESSION de congestion mais gèrent à part les pertes et retransmissions,
III . LA COUCHE PRESENTATION  gère le cas où la machine a plusieurs adresses IP, ce qui lui fournit
IV. LA COUCHE APPLICATIONS
normalement plus de redondance, si on est connecté à plusieurs réseaux
(Multi-homing).
 Datagram Congestion Control Protocol (DCCP)

 RFC 4340
 fournit un service d'accusé de réception (donc l'application peut savoir
quels messages sont arrivés) et nécessite une connexion, ce qui permet
de choisir des options. Mais il ne retransmet pas les données perdues,
l'application est juste tenue au courant.
 fournit à l'Internet un service de contrôle de la congestion. Il y en a
même plusieurs, choisis lors de la négociation initiale.
ESI-INPHB  fournit un service de messages non fiable.
GENIE ELECTRIQUE ET
ELECTRONIQUE 56
2011 - 2012
LES COUCHES
HAUTES DU
MODELE OSI
LA COUCHE SESSION

I. LA COUCHE TRANSITOIRE: LA
COUCHE TRANSPORT
I.1 La notion de port
I.2 Le protocole UDP

I.3 Le protocole TCP

II. LA COUCHE SESSION


III . LA COUCHE PRESENTATION
IV. LA COUCHE APPLICATIONS

ESI-INPHB
GENIE ELECTRIQUE ET
ELECTRONIQUE 57
2011 - 2012

Vous aimerez peut-être aussi