2.1. Introduction
La fonctionnalité principale de la couche transport est
le transfert de l'émetteur vers le récepteur, des données
de bout-en bout de manière fiable et économique. Elle permet
d'isoler les niveaux supérieurs des variations technologiques et des
imperfections des couches inférieures. Pour cela, elle emploie des
protocoles de transport qui utilise les services de la couche réseau
(IP) pour assurer l'acheminement des données. Les protocoles largement
déployés dans les réseaux IP sont : TCP (Transmission
Control Protocol), UDP (User Datagram Protocol), les protocoles DCCP (Datagram
Congestion Control Protocol) et SCTP (Stream Control Transmission Protocol).
Etant donné que notre intérêt porte sur
l'amélioration de TCP dans les réseaux ad hoc, nous nous
focalisons sur sa description en donnant ces caractéristiques dans les
réseaux filaires pour lesquels il a été conçu et
nous étudions son comportement dans les réseaux sans fil.
18
Chapitre I: Concepts de base
2.2. Le protocole TCP
Le protocole de contrôle de transmission TCP a
été défini pour fournir un service de transfert de
données fiable entre deux applications sur des stations distantes
raccordées par un réseau à commutation de paquets
utilisant le protocole IP (Internet Protocol). La fiabilité du transfert
est obtenue par différents mécanismes tels que
l'établissement de connexion, la gestion de timers de retransmissions ou
encore le contrôle de la fenêtre de retransmissions. La
spécification initiale, définie dans le Request For Comments RFC
793 de 1981 [97] a fait l'objet de nombreux travaux qui ont conduit à
des améliorations de la spécification initiale.
Dans la pratique, la plupart des déploiements du
protocole TCPont été soigneusement conçus dans le contexte
des réseaux câblés. Dans un environnement ad hoc
l'implémentation de TCP peut conduire à des performances
médiocres dues aux propriétés intrinsèques des
réseaux sans fil. Des études récentes de métrologie
rapportent que TCP est non seulement utilisé pour le transport de
données, mais est également utilisé pour le transport des
flux «streaming» [98].
2.2.1. Caractéristiques et fonctionnement
général
TCP est un protocole de transport de bout-en-bout,
fonctionnant en mode orienté connexion dont l'objectif est de
transmettre de manière fiable des données applicatives entre deux
utilisateurs. Le terme orienté connexion signifie que deux machines
souhaitant communiquer via TCP doivent commencer par établir une
connexion avant de pouvoir dialoguer. Une fois la connexion établie, les
deux extrémités de la connexion peuvent communiquer de
manière bidirectionnelle (full-duplex).
Outre le mode orienté connexion et la fiabilité,
les principales fonctionnalités de TCP sont :
Ordre : TCP assure, par utilisation des
numéros de séquence de paquets et des tampons de
réception, que les paquets arrivent dans le même ordre que celui
de leur émission.
Contrôle de congestion : des
mécanismes de contrôle de congestion (slow-start, Congestion
Avoidance, Fast Retransmit, Fast Recovery [21]) permettent d'éviter
l'engorgement du réseau lorsque ce dernier est saturé et
d'augmenter le débit de transmission lorsque le réseau est
faiblement chargé. En fait, le contrôle de congestion assure une
corrélation entre le débit d'émission et le débit
disponible sur le réseau tout en garantissant une certaine
équité pour le partage de ce débit entre plusieurs flux
TCP.
Contrôle de flux : TCP utilise un
mécanisme de fenêtre d'émission glissante dynamique pour
contrôler le débit de transmission de l'émetteur. Le
débit d'une connexion est donc directement lié à la taille
de sa fenêtre, cette dernière représentant la
quantité d'information pouvant être émise. Ce
mécanisme est également utilisé pour le
19
Chapitre I: Concepts de base
contrôle de congestion. N'ayant pas ou peu
d'informations sur la teneur du réseau emprunté, notamment en
termes de type de liens, de débit disponible ou de congestion
éventuelle, TCP ne peut compter que sur les événements
qu'il interprète comme des notifications de congestion pour
établir le débit de la connexion et assurer aux utilisateurs le
meilleur débit instantané possible.
Transfert de flux d'octets de données
: TCP découpe les flux d'octets de données de
l'application en segments dont la taille est en fonction de la fenêtre
glissante. Les segments seront ensuite réassemblés par le
récepteur afin de reformer un flux d'octets qu'il fournira à
l'application destinataire.
Contrôle d'erreur sur bit : TCP
intègre un mécanisme de checksum sur 16 bits pour couvrir les
erreurs sur bit de l'entête et des données.
2.2.1.1. Mécanisme de l'acquittement
Les acquittements sont utilisés pour fiabiliser la
communication. En effet, chaque segment émis dans un flux TCP sera
acquitté par le récepteur. Dans certaines conditions, les
acquittements ne parviennent pas à l'émetteur. Dans ces cas et
après un délai d'attente fixé, chaque segment émis
mais non acquittés et donc considérés comme perdu est
alors réémis. Le délai d'attente ou RTO (Retransmit Time
Out) est enclenché à l'établissement de la connexion et
remis à zéro chaque fois que la transmission d'un segment est
correctement validée. Il est calibré en fonction du délai
d'aller-retour entre l'émetteur et le récepteur noté RTT
(Round Trip Time). Le RTT est lui-même mesuré grâce aux
temps de réception des acquittements. La figure 6 représente le
mécanisme d'acquittement.
Sachant que la perte d'un segment est
généralement due à une congestion sur le réseau,
les acquittements servent également à réguler le
débit d'émission des sources TCP.
Figure 6 : Mécanisme de l'acquittement
Le délai d'aller-retour (RTT) est mesuré
grâce aux temps d'émission des segments et de réception de
leur acquittement. Le TCP utilise le RTT pour calculer le RTO en
Chapitre I: Concepts de base
utilisant l'algorithme de V. Jacobson [98]. Cet algorithme
fournit une valeur lissée du RTT en effectuant une moyenne
pondérée de la valeur actuelle du RTT lissé et de la
dernière mesure du RTT instantané. Il permet également de
calculer un indice de variation du RTT (RTTVAR). Chaque évaluation du
RTT et de sa variation donne lieu à la mise à jour du RTO
[99].
2.2.1.2. La connexion
Entre l'établissement et la fermeture de la connexion,
le mode opératoire de TCP est séparé en deux états
principaux permettant d'assurer le contrôle de flux et de congestion :
- Le début de connexion.
- L'état stable (le TCP fonctionne correctement).
L'établissement d'une connexion TCP s'effectue en trois
phases (figure 7) :
- L'établissement de la connexion
- Le transfert de données
- La fin de la connexion
20
Figure 7 : Etablissement d'une connexion
Où :
- SYN est un paquet de demande de
synchronisation ou établissement de
connexion
- ACK (acknowledment) signale que le paquet est
bien reçu
- SYN-ACK (synchronize,
acknowledge) paquet envoyé par le récepteur.
21
Chapitre I: Concepts de base
La Figure 8 est une représentation simplifiée du
diagramme d'états de TCP insistant sur les changements d'états
qui ont lieu entre l'ouverture et la fermeture d'une connexion.
Figure 8 : Diagramme d'états
simplifié de TCP
|