Pourquoi la latence réseau conditionne la performance numérique ? Chaque fois qu’un paquet traverse un réseau pour atteindre une destination, cela prend du temps ! La latence du réseau en détermine les performances des services numériques.

Comme l’explique cet article de blog la latence réseau est le délai nécessaire pour qu’un paquet transite sur un réseau d’un point à un autre. Différents facteurs, tels que le traitement (“processing”), la sérialisation et la mise en file d’attente (“queueing”), déterminent cette latence. En utilisant de nouvelles capacités matérielles et logicielles, vous pouvez potentiellement réduire l’impact de ces éléments sur la latence. Mais il y a une chose que vous ne pourrez jamais améliorer : la vitesse de la lumière !

Comme l’a souligné Einstein dans sa théorie de la relativité restreinte, la vitesse de la lumière est la vitesse maximale à laquelle l’énergie, la matière et l’information peuvent se déplacer. Avec les fibres optiques modernes, vous pouvez atteindre environ 200 000 000 mètres par seconde, la vitesse maximale théorique de la lumière (dans le vide) étant de 299 792 458 mètres par seconde. Ce n’est pas si mal !

Si l’on considère une communication entre New York et Sydney, la latence est d’environ 80 ms. Cette valeur suppose une liaison directe entre les deux villes, ce qui n’est bien sûr généralement pas le cas. Les paquets traversent plusieurs noeuds, chacun d’entre eux introduisant des délais supplémentaires de routage, de traitement, de mise en file d’attente et de transmission. Vous obtiendrez probablement une latence comprise entre 100 et 150 ms. C’est quand même assez rapide, non ?

Eh bien, la latence reste le goulot d’étranglement des performances numériques pour la plupart des sites Web ! Voyons pourquoi.

La pile de protocoles TCP/IP

À l’heure actuelle, la pile de protocoles TCP/IP domine l’Internet. Le protocole IP (Internet Protocol) assure le routage et l’adressage de nœud à nœud, tandis que le protocole TCP (Transmission Control Protocol) fournit l’abstraction d’un réseau fiable fonctionnant sur un canal non fiable.

TCP TCP et IP ont été publiés respectivement sous RFC 791 and RFC 793, back in September 1981. Des protocoles assez anciens donc… 

Même si de nouveaux protocoles basés sur UDP apparaissent, comme HTTP/3 dont nous parlerons dans l’un de nos prochains articles, TCP est toujours utilisé aujourd’hui pour les applications les plus courantes : World Wide Web, courrier électronique, transferts de fichiers, et bien d’autres. 

On pourrait dire que TCP ne peut pas répondre aux exigences de performance des systèmes modernes d’aujourd’hui. Expliquons pourquoi.

La poignée de main en trois étapes

Comme indiqué précédemment, TCP fournit une abstraction efficace d’un réseau fiable fonctionnant sur un canal non fiable. L’idée fondamentale est que TCP garantit la livraison des paquets. Il se soucie donc de la retransmission des données perdues, de la livraison dans l’ordre, du contrôle et de l’évitement de la congestion, de l’intégrité des données, etc.

Pour que tout cela fonctionne, TCP attribue à chaque paquet un numéro de séquence Pour des raisons de sécurité, le premier paquet ne correspond pas au numéro de séquence 1. Chaque partie d’une conversation basée sur le protocole TCP (une session TCP) envoie un ISN (Initial Sequence Number) généré de manière aléatoire à l’autre partie, fournissant ainsi le numéro du premier paquet.

Cet échange d’informations a lieu dans le cadre de ce que l’on appelle la « l’établissement en 3 étapes » du TCP

TCP Connection Time
  • Étape 1 (SYN) : Le client veut établir une connexion avec le serveur, il envoie donc un paquet (appelé segment dans la couche TCP) avec le bit de signal SYN (Synchronize Sequence Number) activé, qui informe le serveur de son intention de commencer à communiquer. Ce premier segment comprend l’ISN (Initial Sequence Number).
  • Étape 2 (SYN/ACK): Le serveur répond à la demande du client avec les bits de signal SYN/ACK activés. Il fournit au client son propre ISN et confirme la bonne réception du premier segment du client (ACK).
  • Étape 3 (ACK): Le client accuse finalement réception de la bonne réception du segment SYN/ACK du serveur.

A ce stade, la session TCP est établie.

L’impact du TCP sur la latence totale

L’établissement d’une session TCP coûte le temps d’effectuer 1,5. aller-retour. So, tAinsi, en prenant l’exemple d’une communication entre New York et Sydney, cela introduit un délai d’établissement typiquement compris entre 450 et 600 ms !

Ceci sans prendre en compte les communications sécurisées (HTTPS via TLS), qui introduisent des allers-retours supplémentaires pour négocier les paramètres de sécurité. Cette partie sera traitée dans un prochain article.

Comment réduire l’impact de la latence réseau sur les performances numériques ?

Alors comment réduire l’impact de la latence sur les performances si vous ne pouvez pas améliorer la vitesse de transmission ?

En fait, vous pouvez tirer parti de deux facteurs :

  1. La distance entre le client et le serveur
  2. Le nombre de paquets à transmettre par le réseau

Il existe différentes façons de réduire la distance entre le client et le serveur. Tout d’abord, vous pouvez utiliser les services du réseau de diffusion de contenu (CDN) pour fournir des ressources plus proches des utilisateurs. Deuxièmement la mise en cache des ressources rend les données disponibles directement à partir de l’appareil de l’utilisateur.  Dans ce cas, il n’y a aucune donnée à transférer via le réseau.

En plus de réduire la distance entre le client et le serveur, vous pouvez également réduire le nombre de paquets à transmettre sur un réseau. L’un des meilleurs exemples est l’utilisation de techniques de compression.

Néanmoins, l’optimisation que vous pouvez réaliser a des limites, en raison du fonctionnement des protocoles de transmission… Le processus d’établissement de session TCP nécessite 1,5 aller-retour. La seule solution pour éviter cela serait de remplacer TCP par un autre protocole, ce qui est la tendance que nous verrons certainement à l’avenir.