Qu'est-ce que la latence ?

Qu’est-ce que la latence ?

Ou plutôt les latences

Avatar de l'auteur
David Legrand

Publié dans

Hardware

06/09/2021 10 minutes
66

Qu'est-ce que la latence ?

Dans le monde actuel, tout va toujours plus vite. Désormais, il n'est plus question de grappiller des minutes ou des secondes, mais bien des millisecondes. Les besoins et avantages peuvent être divers, mais pour les comprendre il faut éviter de tout mélanger. Partons ensemble à la découverte de la notion de latence.

Il y a une dizaine d'années, lorsque l'on se plaignait de la latence, il y avait de grandes chances pour ce soit celle d'une connexion ADSL et ses dizaines de millisecondes, pouvant rendre fous les joueurs en ligne. Alors que la fibre optique se répand dans les foyers, ce n'est plus forcément le cas et on découvre que les problématiques de latence se trouvent un peu partout, du stockage aux écrans en passant par la souris ou la carte graphique. 

Les réseaux sont en effet devenus tellement rapides et réactifs qu'ils peuvent faire office d'alternative à des connexions internes. C'est ce qui permet d'utiliser le stockage de votre NAS comme s'il s'agissait de HDD présent au sein de votre PC via iSCSI, un ordinateur à distance via un réseau local ou le cloud, parfois pour jouer depuis une machine située à des centaines voire des milliers de kilomètres. On cherche alors les lenteurs ailleurs.

Shadow Double écran
Même en xDSL, un PC dans le cloud peut être à 15,6 ms de votre machine locale

Mais en pratique, qu'est-ce que la latence et comment s'exprime-t-elle au sein des différents composants ? Un sujet complexe, où les idées reçues et les méprises sont nombreuses, ce qui est favorisé par des constructeurs qui grossissent parfois le trait pour vendre leurs produits haut de gamme, pour « Gamers », pas toujours très utiles.

Dans ce dossier en plusieurs parties, nous évoquerons aussi comment mesurer la latence en différents points de votre système, une étape essentielle lorsque l'on cherche à la réduire.

Notre dossier sur la latence :

  • Qu'est-ce que la latence ?
  • Comment mesurer et réduire la latence ? (à venir)
  • Latence, input lag, fréquence de rafraichissement et jeu vidéo : ce qu'il faut savoir (à venir)

La latence, késako ?

Selon Wikipédia, « en informatique, la latence (ou délai de transit, ou retard) est le délai de transmission dans les communications informatiques (on trouve parfois l’anglicisme lag). Il désigne le temps nécessaire à un paquet de données pour passer de la source à la destination à travers un réseau ». 

Ainsi, lorsque vous envoyez une information à un serveur, elle désigne le temps nécessaire pour qu'elle lui parvienne. Elle s'exprime donc via une unité de temps, en général des millisecondes (ms). Elle est le plus souvent imperceptible, mais peut fortement varier. Car même dans les conditions idéales elle est limitée par une contrainte physique, la vitesse de la lumière dans le vide : 299 792 458 m/s. On se réfère alors à la bonne vieille règle :

temps = distance / vitesse

Dans une fibre optique, on est plus souvent dans les 200 000 km/s. Ainsi, il faudra au minimum 2,5 ms à un signal pour parcourir 500 km, 200 ms pour faire le tour de la Terre (40 000 km environ). Il faut aussi compter avec de la latence propre aux différents équipements de chaque côté à la réfraction du signal au sein de la fibre, etc. En pratique, elle est donc toujours supérieure aux calculs théoriques. 

La latence est ainsi plus élevée avec une connexion Internet par satellite. Chaque information est transmise de votre machine au routeur faisant office de « modem », puis à la parabole qui communique avec un satellite géostationnaire à plus de 36 000 km qui va lui-même la transmettre à une station de votre fournisseur d'accès directement reliée à internet. Résultat : plus de 140 000 km à parcourir, 700 ms en théorie.

Un temps réduit par les nouveaux réseaux tels que StarLink, composés d'une galaxie de satellites à basse altitude : 550 km environ, soit 1 ms théoriques et 20 ms visées en pratique. Avec une connexion par satellite classique on mesure en général des valeurs aux alentours de 700/800 ms minimum entre un PC et un serveur proche.

Ne pas confondre latence et débit

On distingue la latence du débit, même si les deux ont des rôles complémentaires. La première désigne la rapidité que mettra une information pour aller d'un point A à un point B du réseau et dépend de la longueur du tuyau. Le second, la quantité d'informations que l'on peut transmettre en un temps donné, selon la grosseur du tuyau.

Ainsi, lorsque vous accédez à un site Internet, de nombreuses requêtes sont effectuées. La latence réseau détermine le temps que le serveur met à vous répondre, le débit correspond au temps que mettra la réponse à s'afficher, ce qui aura son importance s'il s'agit d'un gros fichier, comme une image ou une vidéo par exemple.

CloudFlare Speed Test
Cette ligne VDSL reçoit des données à 72,5 Mb/s depuis les serveurs de CloudFlare mais une requête mettra environ 11 ms à arriver

Latence is everywhere

Comme évoqué plus haut, la latence est partout. Wikipédia ne s'y trompe d'ailleurs pas, ajoutant qu'on « parle aussi de latence pour le temps d'accès à une information sur une mémoire ou un système de stockage ». En réalité, on peut parler de latence dès que l'on parle de transmission ou de traitement d'une information.

Un PC, peut ainsi être vu d'une « chaîne » où chaque élément joue son rôle et peut l'allonger ou la réduire, on parle de latence système. Elle commence avec des périphériques comme une manette, un clavier ou une souris. Chaque action physique est transformée en signal électrique par un capteur puis envoyée à la machine avec ou sans fil. Différentes étapes qui demandent un temps plus ou moins long, pouvant atteindre quelques millisecondes. 

Il faut ensuite traiter ces signaux et modifier l'affichage en fonction du résultat. Cette fois, ce sont d'autres composants qui interviennent. Par exemple, lorsque l'on dit qu'une carte graphique affiche des images à 100 ips, cela signifie qu'elle va mettre 10 millisecondes à calculer chacune d'entre elles avant de les envoyer à l'écran. Celui-ci a ses propres contraintes, selon son électronique, les traitements appliqués, la dalle et ses LED.

Dans le domaine des jeux vidéo, le temps qui sépare une action du joueur de son affichage à l'écran est désigné comme l'input lag. Parfois, ce terme est aussi utilisé pour désigner la latence propre à un appareil en particulier comme une souris ou un écran. Mais quand vous mesurez et communiquez de telles valeurs, il est préférable d'en mentionner le contexte. Précisez donc à quels composants cela correspond exactement et votre méthodologie. 

NVIDIA Latence ReflexAMD Anti-Lag
Pour AMD et NVIDIA, la latence devient un enjeu. De nouvelles fonctionnalités sont ajoutées à leurs produits.

Les performances du processeur central (CPU), de la mémoire ou même du stockage peuvent venir jouer les trouble-fête. Pour le premier, la latence est en général exprimée pour le nombre de cycles nécessaires à traiter une instruction, à accéder à une information depuis l'un de ses caches internes ou depuis la mémoire. Cette dernière dépendra de la CAS Latency (CL), soit le « nombre de cycles d'horloge précédant l'acheminement des données après la réception d'une commande ». Chaque piste du PCB, composant, connexion a sa latence. 

Dans le domaine du stockage, on distingue également latence et débit. Ce dernier correspond à la vitesse à laquelle des données peuvent être transférées et le temps nécessaire à cette opération. Si vous envoyez un bloc de 512 ko à 200 Mo/s, cela signifie qu'il sera transmis et traité en 1,05 milliseconde.

Mais il y a également le temps d'accès, correspondant au délai entre l'envoi d'une commande et le moment où le transfert de données débute. Avec les SSD, elle se compte en microsecondes, contre des dizaines de millisecondes pour les HDD. Avec ces derniers, outre l'impact de l'électronique, on évoque deux autres valeurs :

  • Seek time : le temps nécessaire au bras de la tête de lecture/écriture pour accéder à la bonne piste du disque
  • Rotational latency : le temps nécessaire au disque pour placer le bon secteur sous la tête de lecture/écriture

C'est ce qui fait la grande différence de réactivité d'un système à base de SSD, qui, outre de gros débits et un nombre élevé d'opérations par seconde (IOPS), ne nécessite que peu de temps pour chacune des requêtes effectuées. Ce qui à l'échelle de l'utilisation d'un système d'exploitation procure un confort non négligeable.

Réduire la latence, ce n'est donc pas qu'une question de fournisseur d'accès Internet. Ce n'est pas non plus qu'une question de matériel, puisque le logiciel peut aussi jouer son rôle dans la fluidité de transmission de l'information, qu'il s'agisse des pilotes, de certains réglages ou de l'optimisation des applications et moteurs de jeu.

À partir de quand la latence est perceptible ?

Il est difficile de statuer sur la question de la perceptibilité de la latence, qui dépend principalement des usages et des besoins. Elle a peu d'impact lorsque vous regardez une vidéo sur un service de streaming par exemple, elle est essentielle pour des interactions en temps réel comme le contrôle d'un robot à distance.

De plus, chacun aura une sensibilité différente à ce sujet, réelle ou psychologique. Car certains auront l'impression de pouvoir saisir n'importe quel écart de 10 ns, quand bien même cela est irréaliste. Un phénomène similaire à ce que l'on constate lorsqu'il s'agit d'évoquer la qualité sonore ou d'image, au potentiel d'idiophilie est assez fort. En la matière, les tests en double aveugle doivent ainsi rester la règle pour tester l'efficacité d'un produit/service.

Dans un draft de 2016 de l'IETF nommé « Delay Limits for Real-Time Services » on trouve des indications de latences réseau tolérables pour différents types de services qui permettent de placer des ordres de grandeur :

  • Messagerie instantanée : 5 s
  • Bureau à distance : 200 ms
  • Communication vocale : 150 ms
  • Jeu à vue omniprésente (RTS) : 200 ms
  • Jeu à la troisième personne (MMORPG) : 120 ms
  • Jeu à la 1re personne (FPS) : 80 ms

Pour ce qui est de la latence système, il suffit de passer la fréquence de rafraichissement d'un écran de 30 Hz (33,33 ms) à 60 Hz (16,67 ms) puis 120 Hz (8,33 ms) pour constater automatiquement un gain de fluidité évident dans l'affichage, même sur le bureau du système d'exploitation. Au-delà, c'est plus difficilement perceptible.

Ainsi, réduire au maximum la latence de l'ensemble des composants permet de s'adapter au mieux à de tels débits d'images. Dans les jeux vidéo compétitifs, surtout à haut niveau, les exigences sont élevées en la matière puisque des écarts importants de latence peuvent introduire des différences de plusieurs actions/images.

Certains percevront ainsi la situation avec une légère avance sur leurs concurrents, ce qui constitue un avantage. Bien entendu, ce n'est pas une latence réduite qui vous rendra bon ou mauvais, mais entre joueurs de même niveau, de tels petits détails peuvent parfois faire la différence.

Il y a donc tout intérêt à y prêter attention et savoir mesurer différentes latences, même s'il ne faut pas surestimer l'impact de quelques millisecondes gagnées. Ce sera l'objet de notre prochain article.

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

La latence, késako ?

Ne pas confondre latence et débit

Latence is everywhere

À partir de quand la latence est perceptible ?

Fermer

Commentaires (66)


Oulà, la boîte de Pandore que vous ouvrez!



Au-delà de la latence matérielle, il y a la latence inhérente aux protocoles (IP, bluetooth, USB, Wifi, HDMI)



Par exemple: la latence HDMI sur une TV peut être suffisante pour qu’on voit que le son qui sort par les prises audio d’un appareil externe n’est pas synchro avec l’image affichée par la TV depuis le même appareil…
Grosse galère!


J’adore ces articles qui visent à éclairer le monde ! Merci !


un petit détail, mais je crois que la réfraction s’opère à l’interface. soit la limite entre deux espaces dans lesquels circule une onde électromagnétique. Donc pas dans la fibre sauf si elle ressemble à du pain de mie.



ADSL et ses centaines de millisecondes




Euh… Centaines de millisecondes en ADSL ?? Vous êtes sûr de pas confondre avec le RTC ?


Fixed, mais il y a un bouton pour signaler les erreurs, autant l’utiliser.


Ah !
Mon paragraphe préféré étant:




Un sujet complexe, où les idées reçues et les méprises sont nombreuses, ce qui est favorisé par des constructeurs qui grossissent parfois le trait pour vendre leurs produits haut de gamme, pour « Gamers », pas toujours très utiles.




Sur ce sujet là il y a de quoi dire. Outre le fait d’avoir un article pour démonter la plupart des produits “gamer”, ce serait bien d’avoir aussi un article listant les équivalents plus “casual” des produits “gamers”.
Personnellement je trouve par exemple que les routeurs “gamers” n’apporte pas grand chose, à part une interface clickodrome pour gérer la QoS et potentiellement une configuration plus agressive de la taille des buffers. Mais sinon non, pour bien moins cher on trouve le même hardware avec un soft plus simple.
J’aimerai bien aussi un avis sur les clavier “gamers”, car à part la gestion de N touches appuyé en même temps,et des LEDs qui (avis perso) ne servent à rien, qu’est ce qui change ?


C’est ce que je fais d’habitude, mais là j’étais pas bien sûr.


En cas de doute on tranche lorsque la remontée est faite, mais ça permet d’être plus réactif en moyenne (parce qu’on ne crawle pas tous les commentaires, mais on regarde toutes les remontées)



Un phénomène similaire à ce que l’on constate lorsqu’il s’agit d’évoquer la qualité sonore ou d’image, au potentiel d’idiophilie est assez fort.




Viril mais ça joue…




Dans un draft de 2016 de l’IETF nommé « Delay Limits for Real-Time Services » on trouve des indications de latences réseau tolérables pour différents types de services qui permettent de placer des ordres de grandeur :
[…]



Jeu à vue omniprésente (RTS) : 200 ms
Jeu à la troisième personne (MMORPG) : 120 ms
Jeu à la 1re personne (FPS) : 80 ms



C’est bcp quand même (on sent bien l’importance du mot “tolérable”)




Fuli a dit:


car à part la gestion de N touches appuyé en même temps,et des LEDs qui (avis perso) ne servent à rien, qu’est ce qui change ?




Je crois qu’un certain nombres utilisent des contacteurs mécaniques. Il parait (car j’ai jamais testé) que c’est plus confortable (mouais, c’est affaire de gout) et plus fiable (ça je veux bien le croire)


Pour les chiffres de l’IETF, ce sont des valeurs élevées mais limite. Surtout, ça permet de comprendre que ça dépend de l’usage avant tout et d’avoir un ordre d’idée de ce qui est bon ou pas (pour éviter de voir certains paniquer à l’idée d’avoir une latence passant de 13 à 15 ms.


C’est pour ça que je me suis abonné ! On entend parler de la latence tous les jours, mais qu’est-ce vraiment la latence ? Un article détaillé, maintenant je comprends ! Merci !


Pour la dernière partie de votre dossier (sans voir si il est déjà terminer), cette vidéo pour être intéressante à évoquer pour les différence entre l’influence des fps et hz dans les jeux vidéo: https://www.youtube.com/watch?v=OX31kZbAXsA



Grossomodo ils ont pris des “joueurs” de plusieurs niveau (débutant, pro), et on fait des essais sur CS GO avec différentes limites de FPS pour le jeu, mais aussi différentes fréquence de rafraichissement pour l’écran (par exemple 60 fps a 240hz ou 240fps a 60hz).


Excellent article (en anglais) sur la latence des claviers : https://danluu.com/keyboard-latency/



Il se trouve que l’impression de latence est influencée par notre capacité d’anticipation cérébrale : lorsqu’on appuie sur une touche, le cerveau anticipe l’affichage. Et si le délai est trop long, il y a perturbation. L’exemple assez classique est le dessin au doigt sur une tablette : s’il y a plus de de 10ms de latence, le cerveau va le voir sans problème, car le trait ne sera pas sous le doigt, comme avec un stylo sur une feuille de papier.



C’est un vrai problème à prendre en compte lors de la conception d’interface. Si c’est pour une liseuse, ce n’est pas très grave. Pour faire une interface d’opération chirurgicale à distance, c’est dramatique. Voilà, des bons exemples extrêmes pour cristalliser les discussions ;)



Car même dans les conditions idéales d’une fibre optique elle est limitée par une contrainte physique, la vitesse de la lumière dans le vide : 299 792 458 m/s




-dans le vide +dans la fibre non ? À moins que ce soit du vide dans la fibre, mais j’en doute…



David_L a dit:


Pour les chiffres de l’IETF, ce sont des valeurs élevées mais limite. Surtout, ça permet de comprendre que ça dépend de l’usage avant tout et d’avoir un ordre d’idée de ce qui est bon ou pas (pour éviter de voir certains paniquer à l’idée d’avoir une latence passant de 13 à 15 ms.




Oui je l’ai bien bien compris comme ça



Eldeberen a dit:


-dans le vide +dans la fibre non ? À moins que ce soit du vide dans la fibre, mais j’en doute…




Oui, le signal lumineux ne se déplace pas à la vitesse max dans une fibre en verre (mais pas loin il me semble…)
N’empêche qu’avec toute la bonne volonté du monde, ça restera une barrière infranchissable et les 133ms pour faire le tour la terre sont un seuil indépassable par exemple. Idem pour les ~500ms d’une communication via des satellites géostationnaires.


A priori, 70 à 75% : https://fr.wikipedia.org/wiki/Fibre_optique#Vitesse_de_transmission



Mais sinon, une fibre optique n’est pas vide, non. En tout cas, pas celles qu’on trouve actuellement dans le commerce ;)


Salut,
la “vitesse de la lumière dans le vide” (c’est le terme consacré, on parle aussi de “célérité”) est une constante de la physique assez importante dans cette discipline. Il faut en tout cas en retenir qu’il n’est pas possible de transmettre une information plus vite que ça.
Évidemment, on n’est jamais vraiment dans le vide, donc lavitesse effectiv de la lumière est toujours plus faible.
De mémoire ça dépendait de l’indice de réfraction du milieu.
La vitesse de la lumière dans la fibre serait “selon internet” environ les 34 de la vitesse de la lumière dans le vide.


Merci pour cette article :incline:


————— Complément d’information



La latence dans les jeux vidéos :



La latence affichée n’est pas forcément la latence réelle. Certains jeux n’affichent qu’un allez serveur donc pour avoir la véritable latence il faut la multiplier par deux. Sur d’autre jeux c’est une soustraction, il faut donc addition la latence affichée et un allez retour serveur via un ping sur windows.



La latence dans les protocoles :



D’après ce que j’ai compris la communication entre plusieurs machines / serveurs dans la même pièce n’est pas instantanée et il y à environ 20 ms de latence pour que le signal sois synchronisé. D’ailleurs il y à un prototype d’horloge atomique en PCIe qui tourne actuellement pour descendre la latence a 1 ms.




https://www.youtube.com/watch?v=JK3eTGkX6qY




Le sensibilité d’une souris :



Plus le nombre de DPI est elevé et moins la souris à d’input lag. A 400 dpi c’est environ 26 ms et à 1600 dpi c’est environ 20 ms. Et pour les valeurs plus haute il peut y avoir jusqu’a deux fois moins d’input la. Sur un pollrate à 1000 hz.



video : https://www.youtube.com/watch?v=6AoRfv9W110


Effectivement 80 ms pour un FPS c’est vraiment beaucoup. Je dirais que c’est la limite du jouable et non du tolérable. Le tolérable se situerait pour moi plutôt vers 4050 ms.


Une interview de CCP Games qui sont très douer pour gérer cette “latence” internet + hardware + software peut être très intéressante. Car je trouve que cela est super exemple de ce qu’ils font avec Eve Online.


:dix:
Merci pour cet article. Le sujet me semblait ridicule et pourtant c’est super intéressant.
J’attends la suite ! :smack:



(quote:59835:skankhunt42 )
La latence dans les protocoles :
D’après ce que j’ai compris la communication entre plusieurs machines / serveurs dans la même pièce n’est pas instantanée et il y à environ 20 ms de latence pour que le signal sois synchronisé. D’ailleurs il y à un prototype d’horloge atomique en PCIe qui tourne actuellement pour descendre la latence a 1 ms.




Attention, tu mélanges latence et synchronisation des horloges là. La carte dont tu parles c’est pour que l’horloge des machines soit correctement synchronisé, et éviter qu’un timestamp généré sur une machine ne soit perçu comme dans le futur pour une autre machine.



C’est un peu comme quand quelqu’un te dit “il est 11h47” alors que ta montre elle dit qu’il est 11h45



La latence entre des machines d’une même pièce avec du matériel grand publique tu es très proche de la milliseconde, avec du matériel pro tu dois pouvoir être constamment en dessous. (Quand je ping ma box ou un autre pc de mon réseau local (en mélangeant filaire et wifi) j’ai quasiment toujours 1ms de ping.



Si je dis pas de connerie, les 20ms que tu sors de la vidéo c’est le délai supplémentaire que Facebook ajoute par défaut a ces timestamp pour justement éviter de se retrouver avec des timestamp dans le futur



Quand on parle de latence de protocole, c’est pour parler de ce le traitement requis pour gérer le protocole ajoute. Par exemple le protocole ICMP (ping) il ajoute très peu de latence due au traitement, ton pc recoit un packet icmp, il le renvoie à la source et c’est tout. Le protocole TLS lui par contre ajoute un peu de latence parce qu’il implique de faire des opérations de déchiffrement des informations contenu dans le packet. Ou encore les banques et leur protocole a la c*n pour faire des virements bancaires, ça marche dans plein de domaine la latence de protocole :transpi: .



Pour ce qui est de la latence système, il suffit de passer la fréquence de rafraichissement d’un écran de 30 Hz (33,33 ms) à 60 Hz (16,67 ms) puis 120 Hz (8,33 ms) pour constater automatiquement un gain de fluidité évident dans l’affichage, même sur le bureau du système d’exploitation. Au-delà, c’est plus difficilement perceptible.




N’empeche, ça, j’ai toujours du mal à le piger… il faudrait balancer plus de 60 images par seconde pour que le taux de rafraichissement ait un impact, non ?
Dans les jeux qui peinent à monter a 30img/s, ça change quoi ?



(quote:59835:skankhunt42 )



Plus le nombre de DPI est elevé et moins la souris à d’input lag. A 400 dpi c’est environ 26 ms et à 1600 dpi c’est environ 20 ms. Et pour les valeurs plus haute il peut y avoir jusqu’a deux fois moins d’input la. Sur un pollrate à 1000 hz.




Je ne suis pas convaincu que ce soit vrai ça…
Le dpi, dans ce cas, pourrait être rapproché de la bande passante et la latence, c’est autre chose.
Tu peux avoir une grosse bande passante et une latence très forte aussi (comm satellite justement).
Si le DPI et la latence évolue comme tu le dis, c’est pas parce que c’est lié. C’est peut-être parce que l’électronique embarquée monte en qualité et améliore les 2 critères à la fois…


Je suis pas pro donc je me trompe peut-être, mais j’imagine que ça vient du fait que les latences s’ajoutent : ton jeu met 33ms pour génèrer une image, la transmet à l’écran qui lui met jusqu’à 33ms pour l’afficher, tu as donc 66ms de latence au total.



KP2 a dit:


il faudrait balancer plus de 60 images par seconde pour que le taux de rafraichissement ait un impact, non ? Dans les jeux qui peinent à monter a 30img/s, ça change quoi ?




La synchronisation dans un jeu est effectué par la carte graphique et c’est le nombre de fps qui détermine cette synchronisation. Ensuite en ce qui concerne l’écran tout dépend si il est synchronisé sur la carte graphique ou non via nvida synch machin.



Le taux de rafrahicisssment de l’écran n’est qu’une simple conséquence.




Dans les jeux qui peinent à monter a 30img/s, ça change quoi ?




Sur un jeu à 30 fps que tu possède un écran 30 hz ou 300hz tu ne sentira absolument aucune différence. A la limite la seule différence ce fera si ton écran est compatible nvidia synch machin. La frame qui sort de la cg est synchronisés avec l’écran.



Par contre sur un écran 60hz tu sent une net différence entre 60 fps, 120 fps ou 244 fps.




N’empêche, ça, j’ai toujours du mal à le piger…




C’est parce qu’il y à beaucoup de paramètres à prendre en compte plus la limite de chacun. Sur du online il faut aussi prendre en compte le tickrate qui est le rafraichissement du serveur. Un jeu sur un serveur à 30 ticks ou 128 ticks tu sent vraiment la différence à fps identique.



Et certains jeux effectue des lissage. En fait suivant l’algorithme dans certains jeux celui qui peek aura l’avantage ( cs:go ) alors que dans d’autre jeux ( battlefield ) celui qui campe aura un avantage.


Bonjour, cool une série sur la latence en Français, c’est rare :)
Je recommande souvent la chaine battlenonsense sur youtube qui traite de ces sujets si ca peut étoffer votre dossier :)


“Il y a une dizaine d’années, lorsque l’on se plaignait de la latence, il y avait de grandes chances pour ce soit celle d’une connexion ADSL et ses dizaines de millisecondes, pouvant rendre fous les joueurs en ligne.”



Pas besoin de remonter si loin, car encore à l’heure actuelle, chez mes parents (connexion ADSL SFR), des centaines de millisecondes me rendent fou à lier (ne parlons même pas du débit, en streaming seul youtube échappe au mode diapositives) .



“on trouve parfois l’anglicisme lag”



Je ne suis pas habitué à ce mélange. Pour moi on a simplement 2 possibilités.
délai de transit > latency
retard > lag
Le retard étant un délai de transit jugé trop long par l’utilisateur.



xouboudou a dit:


Euh… Centaines de millisecondes en ADSL ?? Vous êtes sûr de pas confondre avec le RTC ?




Je confirme, il n’y a aucune confusion. :mad:


Oui c’est sponso par NVIDIA vu qu’ils reprennent l’argumentaire NVIDIA là dessus ;)




Eldeberen a dit:


-dans le vide +dans la fibre non ? À moins que ce soit du vide dans la fibre, mais j’en doute…




Oui le passage avait été retouché mais pas entièrement, on précisé cette partie en ajoutant quelques éléments au passage :chinois;




KP2 a dit:


N’empeche, ça, j’ai toujours du mal à le piger… il faudrait balancer plus de 60 images par seconde pour que le taux de rafraichissement ait un impact, non ? Dans les jeux qui peinent à monter a 30img/s, ça change quoi ?




C’est pour ça qu’il faut faire attention à ne pas confondre débit d’image et latence. Ton écran se met à jour x fois par seconde (de manière fixe ou variable selon les cas désormais). tout l’enjeu, surtout quand ce taux est rapide, c’est qu’une nouvelle image doit être disponible à chaque rafraichissement (i lfaut donc un GPU rapide) et si possible avec des données elles aussi “fraiches” (et donc pas avec un input lag de 2s).




KP2 a dit:


Je ne suis pas convaincu que ce soit vrai ça… Le dpi, dans ce cas, pourrait être rapproché de la bande passante et la latence, c’est autre chose. Tu peux avoir une grosse bande passante et une latence très forte aussi (comm satellite justement). Si le DPI et la latence évolue comme tu le dis, c’est pas parce que c’est lié. C’est peut-être parce que l’électronique embarquée monte en qualité et améliore les 2 critères à la fois…




Le dpi c’est la “sensibilité” (la résolution du capteur en gros). Ce qui joue c’st plutôt le poll rate, qui détermine la fréquence à laquelle le signal est envoyé (de 125 à 2000 Hz en gros, soit 8 à 0.5 ms), mais cela a un impact sur le CPU utilisé donc il faut trouver un sweet sport (en général dans les 500 Hz).



Paraplegix a dit:


Pour la dernière partie de votre dossier (sans voir si il est déjà terminer), cette vidéo pour être intéressante à évoquer pour les différence entre l’influence des fps et hz dans les jeux vidéo: https://www.youtube.com/watch?v=OX31kZbAXsA



Grossomodo ils ont pris des “joueurs” de plusieurs niveau (débutant, pro), et on fait des essais sur CS GO avec différentes limites de FPS pour le jeu, mais aussi différentes fréquence de rafraichissement pour l’écran (par exemple 60 fps a 240hz ou 240fps a 60hz).




Merci pour le partage, cette vidéo montre bien que le sujet est tout sauf évident.


Il y a un autre domaine que le jeu vidéo où la latence est critique : la MAO (musique sur ordinateur)
Quand un son d’un clavier est émis 60ms après l’appui sur la touche, ça s’entend, et ça fait très bizarre !
Idéalement il faut passer par un OS avec un noyau temps réel optimisé pour minimiser la latence au strict minimum.
Il y a aussi les usages type pilotage de CNC où on envoie des signaux aux moteurs, et si un signal est décalé de quelques millisecondes, ça peut faire sauter des pas, et c’est le drame…
Et là, parfois c’est intimement lié à la carte mère et son Bios, et si elle a décidé que pour passer une info sur un port série/USB/ou parallèle fallait prendre un ticket et attendre entre 10 et 60ms, on ne peut rien y faire…


Les bords de la fibre sont des interfaces, l’onde “rebondie” sur les bords pour rester au centre, c’est justement cette propriété de réfraction qui fait que ça fonctionne.


Bah pour le coup, je leur fait autant confiance qu’à vous pour ne pas “bêtement reprendre les arguments du sponsor”. Les test effectué ont l’air de bien montrer les inpacts de changement de taux de rafraichissement des écrans et du débit d’images.



Fuli a dit:


Ah ! Mon paragraphe préféré étant:



Sur ce sujet là il y a de quoi dire. Outre le fait d’avoir un article pour démonter la plupart des produits “gamer”, ce serait bien d’avoir aussi un article listant les équivalents plus “casual” des produits “gamers”. Personnellement je trouve par exemple que les routeurs “gamers” n’apporte pas grand chose, à part une interface clickodrome pour gérer la QoS et potentiellement une configuration plus agressive de la taille des buffers. Mais sinon non, pour bien moins cher on trouve le même hardware avec un soft plus simple. J’aimerai bien aussi un avis sur les clavier “gamers”, car à part la gestion de N touches appuyé en même temps,et des LEDs qui (avis perso) ne servent à rien, qu’est ce qui change ?




Si t’as pas de led multicolore, t’es pas un gamer :D. C’est bien connu que les leds diminuent la latence et augmentent le débit. :transpi:


Rajoutons l’importance de la variabilité de la latence, la bien nommé gigue, qui vient complexifier l’affaire. Les besoins en qualité de service, càd d’adaptation du débit utilisé à la capacité réellement disponible, évoluent souvent rapidement sur les liens réseaux chargés ou instables.
Enfin, la qualité de service va jouer un rôle d’amortisseur, permettant de réduire l’impact du problème jusqu’à une certaine limite. Mais même avec la meilleure suspension du monde, si on tape fort dans un nid de poule assez profond, on le sent sévèrement passer … avec crevaison à la clef :D


Oui j’en parle dans la partie dédiée à la mesure de latence réseau ;)


Il y a bien des protocoles qui, prennent en compte les applications temps réel et leurs doubles problèmes de délai de transmission (latence) et de synchronisation des données (retard).
Exemple le protocole RTP (Real Time Protocol) orienté transport des médias.
L’en-tête RTP prévoit le transport du timestamp de chaque paquet ainsi qu’un numéro de séquence incrémenté.
A la réception, il suffit donc de bufferiser pour gérer l’ordonnancement des paquets basé sur leur numéro de séquence et le leur timestamp (principalement car cela dépend aussi du type de media transporté)
Selon moi, le vrai problème de latence est qu’elle est souvent irrégulière et que cette variance impacte grandement les performances applicatives.



(quote:59850:N.Master)
Il y a un autre domaine que le jeu vidéo où la latence est critique : la MAO (musique sur ordinateur)




Tout à fait d’accord sur le problème.
Ca n’existe plus les cartes avec pilote ASIO?



Sinon il me semble qu’un dossier latence a existé sur hardware.fr, tt-hardware ou tomsguide, il y a une dizaine d’années il me semble, où ils estimaient la latence entre le moment où on bouge la souris et le moment où ça bouge à l’écran -> 170ms à l’époque, de mémoire, souvent plus (c’était peut-être il y a 20 ans???)



Et puis cela, plus récemment: https://www.hardware.fr/articles/950-5/mesures-latence.html
Avec un petite découverte sympa concernant l streaming local qui peut réduire la latence dans certaines circonstances.



(reply:59835:skankhunt42 )




Avec deux machines reliées par un câble, la latence sera plutôt de maxi 100 usec., voire même plutôt jusque 20 usec. avec du bon matos. Si ping affiche 1 ms, c’est qu’il a arrondi.


Oui sous Windows il faut utiliser WSL ou des outils comme hrPing pour avoir plus de précision au niveau du ping.


 



En fait, pour les fibres « modernes » c’est pas une interface brutale (deux milieux avec des indices de réfraction différents), mais un gradient d’indice qui courbe le faisceau lumineux pour le ramener vers le centre de la fibre.



Mais c’est pas la réfraction en elle-même qui créé le délai, mais le chemin parcouru (la lumière « zig-zag » dans la fibre) qui est plus important et donc on a une vitesse apparente un peu plus faible.



Edit : par contre la vitesse de 200 000 km/s, c’est la vitesse de la lumière dans le verre qui a un indice de réfraction de 1,5 (donc : c / 1,5 = 200 000), pas du phénomène de réfraction en lui-même.


Une debian -> Cable Gb-> Box -> Cable Gb -> Windows, le ping me retourne .6ms, plus proche de la milliseconde que du .1ms que tu donne.
En général vaut mieux donner 1ms comme latence cible plutôt qu’un théorique 100µs. Et surtout j’ai du mal a imaginer 20µs de ping entre 2 machines quand même sur du ping localhost tu tourne plus autour des 50µs.



(quote:59858:alex.d.)
Avec deux machines reliées par un câble, la latence sera plutôt de maxi 100 usec., voire même plutôt jusque 20 usec. avec du bon matos. Si ping affiche 1 ms, c’est qu’il a arrondi.




20us soit 50000 aller-retour par sec. C’est pas tous les os et plateformes qui peuvent tenir autant de contexte switch en ces temps de mitigation spectre/meltdown



Fuli a dit:


car à part la gestion de N touches appuyé en même temps,et des LEDs qui (avis perso) ne servent à rien, qu’est ce qui change ?




Les leds te permettent d’avoir un rétroéclairage non blanc (qui fatigue les yeux). Ca permet aussi de mettre en valeur certaines touches devant d’autres.
Le “n key roll over”, c’est un véritable avantage quand tu tapes vite ou que tu te sers énormément des touches de raccourcis: J’ai beaucoup moins de ratés avec un clavier mécanique où les touches fantômes n’existent pas, lors de copier coller, alt tab etc…
Ca et les touches programmables qui sont super :D


200ms dans un jeu comme street of rage c’est limite injouable.



Je serai interessé de connaître les input lag des jeux d’antan sur megadrive par exemple. Quand bcp de choses étaient analogiques.


Quel rapport entre un RTS et un jeu de combat ?



(quote:59858:alex.d.)
Avec deux machines reliées par un câble, la latence sera plutôt de maxi 100 usec., voire même plutôt jusque 20 usec. avec du bon matos. Si ping affiche 1 ms, c’est qu’il a arrondi.




Bon, ça va, les derniers bench “ctx_clock” montrent qu’un Ryzen met environ 200cycles pour un context switch( donc sans pénalité indirecte) - loin des 1200 qu’on avait au début des mitigations.
Donc considérant les multicpu et le fait que les interruptions sont extrêmement rapides maintenant, c’est faisable.



Après, il reste à voir avec quel compteur on compte le temps pour atteindre cette précision.


Oh pinaise, Impact Hardware qui ose prononcer l’idiophilie ! Ca, ce n’était pas du tout attendu ^ ^



David_L a dit:


Le dpi c’est la “sensibilité” (la résolution du capteur en gros). Ce qui joue c’st plutôt le poll rate, qui détermine la fréquence à laquelle le signal est envoyé (de 125 à 2000 Hz en gros, soit 8 à 0.5 ms), mais cela a un impact sur le CPU utilisé donc il faut trouver un sweet sport (en général dans les 500 Hz).




Un sweet spot, c’est mieux ;-)


Quand je pense que j’étais content avec mes 140 ms en 56 K sur Counterstrike 1.1…



(quote:59866:brice.wernet)
Après, il reste à voir avec quel compteur on compte le temps pour atteindre cette précision.




avec clock_gettime() et une source d’horloge par défaut sur tsc.



Paraplegix a dit:


Une debian -> Cable Gb-> Box -> Cable Gb -> Windows, le ping me retourne .6ms, plus proche de la milliseconde que du .1ms que tu donne. En général vaut mieux donner 1ms comme latence cible plutôt qu’un théorique 100µs. Et surtout j’ai du mal a imaginer 20µs de ping entre 2 machines quand même sur du ping localhost tu tourne plus autour des 50µs.




50 usec. en localhost, faut pas déconner quand même. À l’instant :
~% ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.014 ms



Entre deux machines séparées par un switch :
~% ping 192.168.20.64
PING 192.168.20.64 (192.168.20.64) 56(84) bytes of data.
64 bytes from 192.168.20.64: icmp_seq=1 ttl=64 time=0.126 ms



Mais sinon, pour mesurer la latence, tu as des outils plus précis que ping, qui n’est qu’un outil de debug mais qui ne donne pas ce que tu obtiendras dans une appli. Pour une mesure de perfs, tu peux commencer par NetPIPE ou Netperf.


L’analogie du zig-zag ne s’applique qu’au fibres multimodes, en monomode la lumière se propage bien en ligne droite
Les fibres monomodes sont souvent à saut d’indice, même s’il en existe en gradient d’indice pour certaines applications bien particulières



La célérité de la lumière est uniquement dépendante de l’indice de réfraction (qui dépend lui de la fréquence) qui influence la vitesse de groupe, et de phase



On ne peut pas vraiment dire le signal met plus de temps à parcourir la fibre parce qu’il est en zig-zag, d’une part car le diamètre du cœur est ridicule comparé à la longueur des fibres, et d’autre part car en pratique la lumière ne se comporte pas du tout comme des rayons du fait du diamètre relativement faible par rapport à la longueur d’onde


J’imagine que c’était à moi que tu voulais répondre :transpi:.



Ah, j’étais persuadé que les fibres étaient principalement à gradient d’indice maintenant…
Mais apparemment, le problème des fibres à saut d’indice est réglé par un cœur très fin (fibres monomodes) : fibres multimodes et monomodes..
Mes informations dates un peu :transpi:.


Dans ce cas ok, je te crois, mais vraiment chez moi c’est pas les mêmes chiffres
J’ai tester sur des VM et des conteneurs GCP, sur un portable debian, sur un portable et une tour windows via wsl et conteneur docker et j’arrive vraiment pas à avoir moins que 30µs et c’est beaucoup plus proche des 50µs.



Donc ok j’avais tord sur les chiffres que je donnais au début, ils sont un trop haut, mais je reste pas convaincu par le 20µs entre 2 machine hors condition “parfaite” ou avec du matériel hyper spécialisé c’est difficilement atteignable, et pareil sur ton 120µs entre 2 machines, je trouve ça “bas” par rapport a ce que j’arrive à observer


La puissance du monomode réside dans l’utilisation d’un laser pour la source.
La lumière est d’autant plus cohérente qu’il n’y a qu’une seule fréquence possible avec un réglage spécifique à chaque couple emetteur/recepteur-fibre.



On ne peut pas faire mieux.


Et encore, les chiffres que je t’ai montrées, c’est sur du matos grand public (le loopback, c’est sur mon laptop, pas une bête de course). Je viens de tester sur des serveurs, avec de vraies cartes réseau, et on atteint bien les 20usec.
Mais je le répète : ping n’est pas le bon outil pour mesurer la latence. Ce qui nous intéresse en général, c’est la latence TCP, pas la latence ICMP qui est un protocole de faible priorité.
Je te recommande chaudement un apt-get install netpipe-tcp si tu veux de vraies mesures de perfs.



(reply:59885:Idiogène)
On peut tout à fait utiliser un laser dans du multimode
En revanche le monomode, du fait d’être monomode permet une meilleure intégrité du signal sur de longues distances (vu qu’on n’a plus les interférences entre tous les modes du multimode)




Et si théoriquement on peut faire encore mieux, avec des fibres à cœur creux



Dans ce cas la lumière se propage essentiellement dans de l’air, ce qui permet des puissances plus élevées, des impulsions plus courtes, une latence et (théoriquement) des pertes plus faibles



Ça permet également plus de flexibilité en terme de longueurs d’ondes utilisées, là où on est un peu bloqué autour de 1,55µm avec la silice pour avoir l’absorption la plus faible



Oui exact me suis trompé :D



Paraplegix a dit:


Donc ok j’avais tord sur les chiffres que je donnais au début, ils sont un trop haut, mais je reste pas convaincu par le 20µs entre 2 machine hors condition “parfaite” ou avec du matériel hyper spécialisé c’est difficilement atteignable, et pareil sur ton 120µs entre 2 machines, je trouve ça “bas” par rapport a ce que j’arrive à observer



(quote:59886:alex.d.)
Et encore, les chiffres que je t’ai montrées, c’est sur du matos grand public (le loopback, c’est sur mon laptop, pas une bête de course). Je viens de tester sur des serveurs, avec de vraies cartes réseau, et on atteint bien les 20usec.




De mémoire, quand on est passé au Gb Ethernet, les latences ont descendu d’un coup, pour atteindre les 20 µs dans de bonnes conditions ; sans doute aussi un progrès des équipements réseau et de leurs circuits qui gèrent les communications.



auberjine a dit:


Et si théoriquement on peut faire encore mieux, avec des fibres à cœur creux



Dans ce cas la lumière se propage essentiellement dans de l’air, ce qui permet des puissances plus élevées, des impulsions plus courtes, une latence et (théoriquement) des pertes plus faibles




Merci pour cette info, je n’en avais pas connaissance. D’après une recherche sommaire, c’est relativement récent concernant le transport d’information il me semble, et plutôt à l’état de prototype :
https://www.sciencesetavenir.fr/high-tech/reseaux-et-telecoms/un-trou-d-air-dans-les-fibres-optiques-pour-faire-tenir-le-signal_146884



et j’ai l’impression que c’est surtout utilisé pour certains applications comme le transport de laser de puissance dans l’industrie (découpage), et le transport est plutôt multimode :
https://www.omnt.fr/fr/thematiques/tic/materiaux-et-composants-pour-loptique/chronique-fibres-optiques-cur-creux-flexibles-et-faibles-pertes-dans-le-proche-et-le-moyen-infrarouge/



auberjine a dit:




Donc tu as plusieurs lasers… c’est pourquoi on utilise plutôt des diodes.




Ça permet également plus de flexibilité en terme de longueurs d’ondes utilisées, là où on est un peu bloqué autour de 1,55µm avec la silice pour avoir l’absorption la plus faible




Cela risque cependant d’aggraver les problèmes de rayon de braquage.



Merci.



(quote:59885:Idiogène)
La puissance du monomode réside dans l’utilisation d’un laser pour la source. La lumière est d’autant plus cohérente qu’il n’y a qu’une seule fréquence possible avec un réglage spécifique à chaque couple emetteur/recepteur-fibre.



auberjine a dit:


On peut tout à fait utiliser un laser dans du multimode
En revanche le monomode, du fait d’être monomode permet une meilleure intégrité du signal sur de longues distances (vu qu’on n’a plus les interférences entre tous les modes du multimode)




Pour ajouter mes 2 centimes, dans tous les cas, l’utilisation d’un laser plutôt qu’une diode permet d’avoir une moindre dispersion de chaque impulsion lumineuse étant donné la pureté (non absolue) en fréquence du laser par rapport à la diode. Quand la lumière émise est moins monochrome, l’impulsion (le paquet de photons) s’étale peu à peu pendant le trajet vu que chaque fréquence est affectée différemment par le milieu traversé.



Et je crois que le multimode (avec les réflexions multiples du signal sur les parois de la fibre et donc une dispersion du signal vu qu’il y a plusieurs longueurs de trajet) ne permet pas d’aller aussi loin que le monomode, qui grâce au gradient d’indice maintient le faisceau au coeur de la fibre et en plus ça cause moins d’atténuation.



OlivierJ a dit:


Pour ajouter mes 2 centimes, dans tous les cas, l’utilisation d’un laser plutôt qu’une diode permet d’avoir une moindre dispersion de chaque impulsion.




On cherche donc des gaines absorbantes afin de nettoyer la largeur de bande refractée près de la source.



Reste le problème de courbure vs épaisseur.
Le multimode serait idéal si on pouvait gérer la pose mais c’est un mathématisme de plus… !