• Aucun résultat trouvé

L’établissement de connexion

2.4 Problématique

3.1.1 L’établissement de connexion

Contrairement à la fin de connexion qui se trouve sollicitée lorsque l’émetteur n’a plus de données à émettre et n’influe donc pas sur le temps d’émission des données utiles, l’ouverture de connexion n’est qu’une étape préalable mais toutefois indispensable à la transmission des données parTCP. De nombreux chercheurs s’interrogent sur la possibilité d’utiliser cet échange de poignée de main pour émettre les premières données, et ainsi économiser unRTT.

TCP Fast open

Depuis la RFC 793 [37], il est possible d’ajouter des données au segment SYN. Ces données arrivent au récepteur qui doit toutefois attendre l’accusé de réception du segment SYN, qu’il a émis en retour, avant de transmettre les données aux applications. Cette attente est justifiée par la nécessité de parer à une potentielle réception dupliquée du segment SYN mais également

par la nécessité d’empêcher les éventuelles attaques dites de Spoofing durant lesquelles un pirate tente d’usurper l’adresse IPd’un autre utilisateur afin de pouvoir faire passer des paquets sur un réseau sans que ceux-ci ne soient interceptés par le système de filtrage (pare-feu). Ainsi, bien que le récepteur soit déjà en possession de l’information, celui-ci doit attendre 1RTT avant de pouvoir l’exploiter et l’acquitter, et donc valider le passage à l’état de début de connexion.

TCP Fast Open [38, 39] est une solution proposée pour économiser ce RTT dans le cas où deux utilisateurs, ayant déjà préalablement établi et fermé des connexions entre eux, ouvrent une nouvelle connexion. D’après des analyses à grande échelle de données réelles entreprises par Google, ce cas de figure se retrouve dans 35 % des nouvelles connexions.

TCP Fast Open agit en 2 temps :

– lors du premier établissement de connexion, l’émetteur sollicite l’émission d’un jeton unique via l’utilisation d’une option TCP ;

– lors des établissements des connexions suivantes, l’émetteur joint à son segment SYN le jeton et les données à transmettre. Le récepteur est alors assuré de la provenance des données et peut les utiliser sans attendre un RTT.

Ce mécanisme controversé permet l’économie d’1 RTTet annihile donc complètement l’im- pact temporel de l’établissement de connexion dans 35% des cas. La validation de l’identité de l’émetteur étant nécessaire afin de se prémunir d’éventuelles attaques, arriver à un gain similaire pour le reste des connexions est un problème autrement plus complexe.

3.1.2

La reprise sur erreur

Améliorer la reprise sur erreur est particulièrement important dans le cas des connexions courtes. En effet, alors que chaque connexion courte a un impact limité voire quasiment nul sur la performance globale du réseau, sa performance individuelle est extrêmement dégradée par les pertes et les mécanismes de prévention de la congestion.

La faible quantité de segments transmis réduit notablement les chances de succès du Fast Retransmit et augmente donc les risques de devoir attendre un RTO de 3 secondes avant de pouvoir récupérer une perte [8].

Réduction duRTO

La première solution envisagée pour réduire cet impact est la diminution du RTO. Le RTO

continue ainsi d’être calculé en fonction duRTT, mais sa valeur minimale et initiale n’est plus considérée égale à 3 secondes mais à 1 seconde. Ce nouvelRTOest suffisant pour que le réseau puisse se remettre d’une congestion et permet une meilleure prise en compte duRTT mesuré.

Les conséquences de cette étude ont été validées de façon empirique et cette optimisation fait maintenant l’objet d’une RFC [40].

Early Retransmit

3.1. DES SOLUTIONS APPORTÉES À CHAQUE ÉTAT DE TCP

non plus à réduire l’impact de la non-détection d’une perte, mais à améliorer sa détection. Early Retransmit [41] cible notamment les CWNDs faibles et est donc parfaitement enclin à améliorer les performances des connexions courtes. Il autorise la réduction, sous certaines conditions, du nombre deDupACKs nécessaires au déclenchement du Fast Retransmit et permet donc de récupérer une perte et de rentrer dans l’état stable dans de nombreux cas qui auraient alors nécessité l’attente d’unRTOet un retour dans l’état initial.

Early Retransmit utilise le nombre de segments préalablement envoyés n’ayant pas été validés (OSEG). Lorsque ce nombre est inférieur à 4 et qu’il n’y a plus de segment en attente d’émission, c’est-à-dire, dès lors que le nombre de DupACKs potentiels n’est pas suffisant pour récupérer une perte éventuelle via les mécanismes classiques, TCP active l’Early Retransmit et réduit le nombre deDupACKs nécessaires à OSEG − 1 segments.

Ainsi la perte de l’avant-dernier segment d’une connexion pourra être récupérée via le Fast Retransmit si l’accusé du dernier segment est correctement reçu. Ce mécanisme permet donc des gains significatifs dans le cas des connexions courtes, limitant considérablement les cas où l’attente duRTOest nécessaire.

Tail Loss Probe

Le mécanisme de Tail loss Probe [42] est complémentaire du mécanisme d’Early Retransmit. En effet, Tail Loss Probe permet de couvrir certains des cas où l’utilisation d’Early Retransmit est inefficace, et notamment le cas de la perte du dernier segment envoyé qui résulte systéma- tiquement en l’attente d’unRTOet au retour à l’état initial.

Tail Loss Probe est un mécanisme implanté au niveau de l’émetteur qui permet à une con- nexion ne recevant pas d’ACK ni deDupACKpendant un certains temps d’émettre à nouveau le dernier segment dont elle a reçu l’ACK. La réception de cet ACKsous forme d’un DupACK

avant l’expiration duRTOpermet le déclenchement des mécanismes de reprise sur erreur et donc la poursuite dans l’état stable.

Ne pas attendre un RTO induit un gain de temps conditionné par la taille du RTT mais l’amélioration des performances associée à la poursuite en CAreste quoi qu’il en soit très signi- ficative.