Latence et bande passante

Ce billet date de plusieurs années, ses informations peuvent être devenues obsolètes.

Ce billet fait partie d'une série en 10 volets : #1, #2, #3, #4, #5, #6, #7, #8, #9 et #10.

J'ai mis au propre mes notes sur une sélection de chapitres d'High Performance Browser Networking qui s'étaleront dans une série de dix billets.

Ce bouquin date de 2013 mais reste pour moi une bonne référence en matière de performances Web, même à l'heure des nouveaux protocoles et de la gestation d'HTTP/3.

Le motto de l'ouvrage :

The best and fastest request is a request not made

Cette citation peut sembler évidente mais n'en reste pas moins pleine de bon sens.

Ce premier billet résume mes notes de lecture de Primer on Latency and Bandwidth.

Définitions

Deux facteurs affectent la performance de tout trafic réseau :

  • la latence (latency) : le temps écoulé entre l'envoi d'un paquet par une source et sa réception par un destinataire
  • la bande passante (bandwidth) : le débit maximal d'une voie de transmission

En français, on parle aussi de latence et de capacité.

Et pour certains, chaque milliseconde compte.

Éléments pouvant impacter la latence :

  • le délai de transmission (transmission delay) : temps nécessaire pour mettre tous les bits d'un paquet sur le support de transmission, il dépend de la taille du paquet et de la capacité du support de transmission
  • le délai de propagation (propagation delay) : temps nécessaire pour qu'un paquet se déplace de l'émetteur au récepteur, il dépend de la distance et de la vitesse à laquelle le signal se propage
  • le délai de traitement (processing delay) : temps nécessaire pour traiter l'en-tête du paquet, vérifier les erreurs et déterminer la destination du paquet
  • le délai d'attente (queuing delay) : temps passé par le paquet dans la file d'attente jusqu'à ce qu'il puisse être traité

La latence totale entre le client et le serveur est la somme de tous ces délais.

Vitesse de la lumière et indice de réfraction

La valeur de l'indice de réfraction de la fibre optique peut varier entre 1,4 et 1,6. La méthode empirique est de supposer que la vitesse de la lumière dans la fibre optique est d'environ 200.000.000 mètres par seconde (soit une constante de ~2/3 de la vitesse de la lumière), ce qui correspond à un indice de réfraction de ~1,5.

À cette vitesse, il faut 200 à 300 millisecondes pour faire l'aller-retour (round-trip ou RTT) de New York à Sydney en prenant en compte chaque saut de routeur (hop) sur la route (qui introduira des retards supplémentaires de routage, de traitement, de mise en file d'attente et de transmission).

Ça semble rapide mais des études ont montré qu'un décalage est perceptible à partir d'un délai de plus de 100 à 200 millisecondes. Une fois le seuil de 300 millisecondes dépassé, l'interaction est souvent considérée comme lente.

Pour offrir une expérience idéale, il faudrait tendre vers des applications qui répondent en quelques centaines de millisecondes.

Il est parfois possible d'utiliser traceroute pour mesurer la latence en suivant les chemins qu'un paquet de données va prendre.

Avant Empêcher la soumission multiple de formulaires côté client Après TCP

Tag Kemar Joint