Je peux envoyer un paquet IP en Europe plus vite que je ne peux envoyer un pixel à l'écran. C'est dingue, non ?
Et si ce n'était pas John Carmack, je classerais ça dans la catégorie "les internautes qui font les idiots".
Mais c'est John Carmack.
Comment cela peut-il être vrai ?
Pour éviter les discussions sur le sens exact du tweet, voici la réponse que j'aimerais obtenir :
Combien de temps faut-il, dans le meilleur des cas, pour qu'un seul paquet IP soit envoyé d'un serveur aux États-Unis vers un endroit en Europe, en mesurant le temps écoulé entre le moment où un logiciel déclenche le paquet et celui où il est reçu par un logiciel situé au-dessus du niveau du pilote ?
Combien de temps faut-il, dans le meilleur des cas, pour qu'un pixel soit affiché à l'écran, mesuré à partir du moment où un logiciel au-dessus du niveau du pilote modifie la valeur de ce pixel ?
Même en supposant que la connexion transatlantique est le meilleur câble à fibres optiques que l'on puisse acheter, et que John est assis juste à côté de son fournisseur d'accès, les données doivent encore être codées dans un paquet IP, passer de la mémoire principale à sa carte réseau, de là passer par un câble dans le mur jusqu'à un autre bâtiment, y sauter sur quelques serveurs (mais supposons qu'elles n'aient besoin que d'un seul relais), être photonisées à travers l'océan, reconverties en impulsion électrique par un photocapteur, et enfin interprétées par une autre carte réseau. Arrêtons-nous là.
Quant au pixel, il s'agit d'un simple mot machine qui est envoyé par le connecteur PCI express, écrit dans un tampon, qui est ensuite envoyé à l'écran. Même en tenant compte du fait que les "pixels uniques" entraînent probablement la transmission de la totalité de la mémoire tampon de l'écran, je ne vois pas comment cela peut être plus lent : ce n'est pas comme si les bits étaient transférés "un par un" - il s'agit plutôt d'impulsions électriques consécutives qui sont transférées sans latence entre elles (non ?).
52 votes
Soit il est fou, soit c'est une situation inhabituelle. En raison de la vitesse de la lumière dans la fibre, vous ne pouvez pas obtenir des données des États-Unis vers l'Europe en moins de 60 millisecondes dans un sens. Votre carte vidéo produit un nouvel écran complet de pixels toutes les 17 millisecondes environ. Même avec une double mise en mémoire tampon, vous pouvez encore battre le paquet de beaucoup.
92 votes
DavidSchwartz : Vous pensez au GPU de manière isolée. Oui, le GPU peut faire beaucoup de travail en moins de 60 ms. Mais John se plaint de toute la chaîne, qui implique le moniteur. Savez-vous combien de temps de latence est impliqué, depuis la transmission des données de l'image au moniteur, jusqu'à l'affichage sur l'écran ? Le chiffre de 17 ms n'a aucun sens et n'est pas pertinent. Oui, le GPU prépare une nouvelle image toutes les 17 ms, et oui, l'écran affiche une nouvelle image toutes les 17 ms. Mais cela ne dit rien sur le temps que l'image a passé en route avant d'être affichée.
0 votes
@user1203 : C'est pourquoi j'ai dit, "même avec une double mise en mémoire tampon".
26 votes
C'est un programmeur de jeux, et il a dit plus vite que I peut envoyer un pixel à l'écran ... alors peut-être faut-il tenir compte du délai de rendu des graphiques 3D ? Mais ce délai devrait être assez faible dans la plupart des jeux vidéo ; ils optimisent les performances, pas la qualité. Et bien sûr, il y a le よほど Il y a de fortes chances qu'il exagère (voilà, j'ai énoncé l'évidence, content ?).
25 votes
Allez à Best Buy un jour et regardez tous les téléviseurs, où ils sont tous réglés sur la même chaîne interne. Même des téléviseurs apparemment identiques auront un décalage notable (peut-être d'un quart de seconde) les uns par rapport aux autres. En plus de cela, il faut implémenter tout le cycle de "dessin" dans l'interface utilisateur (ce qui peut impliquer un nouveau rendu de plusieurs "couches" de l'image). Et, bien sûr, si un rendu 3D ou autre est nécessaire, cela ajoute un retard significatif.
5 votes
Il y a beaucoup de place pour la spéculation dans cette question, je ne pense pas qu'il y ait une réponse parfaite à moins de savoir de quoi J.Carmack parlait vraiment. Peut-être que son tweet était juste un commentaire stupide sur une situation qu'il a rencontrée.
2 votes
Walter, c'est vrai. J'ai posé la question parce que beaucoup de gens l'ont retweetée, suggérant une profonde compréhension. Ou pas. Je serais toujours intéressé par un calcul comparant les deux opérations brutes. En tant que tel, je ne pense pas que la question soit "non constructive", comme au moins deux personnes semblent le penser.
0 votes
Je pense que cette question est également très intéressante. Si une réponse additionnant tous les retards possibles dans le matériel moderne est acceptable pour vous, je ne vois pas de problème.
0 votes
@slhck Jusqu'à présent, il y a seulement eine réponse, ce qui n'est pas du tout une spéculation. Mais je vais modifier la question pour la rendre plus claire. エディテージ Mise à jour. Veuillez considérer toutes les autres discussions sur la signification du tweet comme hors-sujet.
0 votes
Cela me rappelle la discussion sur les neutrinos qui vont plus vite que la lumière. news.sciencemag.org/scienceinsider/2012/02/ Pas d'erreur de mesure potentielle nulle part ?
0 votes
Bien sûr. Mais en lisant la réponse de John, la mesure est assez simple. Il y a beaucoup d'occasions de faire des erreurs, mais pas autant dans ses mesures
0 votes
@DavidSchwartz La double mise en mémoire tampon provoque toujours des blocages de la mémoire tampon. Vous ne pouvez éliminer les blocages qu'en utilisant une triple mise en mémoire tampon...
2 votes
@DavidSchwartz - distance Boston-Londres ~5000 km ; ajoutez ~1000 km pour une route non directe vers un serveur situé directement de l'autre côté ; vous obtenez 20 ms de temps de voyage aller par la vitesse de la lumière 20 ms = 6 000 km/(300 000 km/s) = 20 ms comme limite inférieure approximative.
0 votes
Notez qu'un ping, une demande d'écho ICMP, peut être géré par un logiciel au niveau du pilote ou immédiatement au-dessus, au bas de la pile réseau.
3 votes
Le fait est qu'il ne s'agissait pas d'un paquet très rapide, mais d'un pixel très lent.
3 votes
@drjimbob la vitesse de la lumière dans la fibre est un peu plus lente que dans le vide, c'est juste ~ 200 000 km/s. La limite inférieure approximative est donc de 60 ms pour un voyage aller-retour.
2 votes
@Merlin - Tout à fait d'accord ; c'est pourquoi je l'ai présenté comme une limite inférieure (et je parlais d'un aller simple). Notez que si la fibre optique/câble coaxial/câble Ethernet a une vitesse de ~0,7 c (200 000 km/s), il y a plusieurs façons d'envoyer un paquet IP dans un sens beaucoup plus rapide, par exemple par satellite/radio (~0,99 c) ou par une ligne en échelle (~0,95 c).
0 votes
Le ping ne pourrait-il pas être servi par un cache du FAI ? Un traceroute n'est-il pas le seul moyen de savoir s'il traverse réellement l'océan ?
2 votes
@Neutrino slatest.slate.com/posts/2012/02/23/
0 votes
@rickyduck Vous auriez dû lire l'article lié par Neutrino. Il dit la même chose que vous.
3 votes
@drjimbob, la transmission par satellite est encore plus lente puisque le signal a beaucoup plus de distance à parcourir. Les temps typiques de ping par satellite sont plutôt de l'ordre de 200-300 ms.
0 votes
@MichaelFrederick, non, la mise en cache pour les pings n'existe pas. Traceroute utilise le même paquet sous-jacent, il définit simplement un TTL court et l'augmente d'une unité jusqu'à ce qu'il obtienne l'écho de la destination.
0 votes
@psusi - Oui, mais c'est parce que la plupart des satellites que vous utiliseriez en pratique seraient en orbite géosynchrone (période orbitale = période de rotation de la terre), de sorte qu'ils sont toujours visibles pour vous au même endroit dans le ciel (~36 000 km au-dessus de la surface de la terre + plus loin car il n'est pas nécessairement directement au-dessus de vous). Il est vrai que si vous aviez un satellite relais dans une orbite orbite terrestre basse à ~600 km au-dessus de la surface de la Terre, qui effectue une orbite autour de la Terre toutes les 100 minutes, visible par les antennes qui le suivent à Boston/Londres, vous pouvez envoyer un paquet IP unidirectionnel en 20 ms environ.
0 votes
@psusi - D'après mes calculs, tant que le satellite se trouve à mi-chemin entre Boston et Londres, que la Terre est une sphère parfaite et que le satellite se trouve à une hauteur d >= (sec - 1)* R= 521 km (où R est le rayon de la Terre ~6400 km) où ~ 2500km/6400km ~ 0. 4 rads l'angle entre Boston/satellite (idem entre satellite/Londres) alors le satellite peut être vu par les deux avec une limite inférieure de la distance totale de déplacement de 2sqrt( (r+d)^2 - r^2) = 5270 km à une vitesse de déplacement aller de ~18 ms. J'utilise c pour dire la limite inférieure ; car des méthodes plus rapides que 0,7c sont réalisables - mais pas en pratique.
0 votes
Aujourd'hui, les gens apprennent que l'électronique est à la base du fonctionnement de la programmation. La programmation est accessible à tous, mais la conception d'un ordinateur entier n'est pas à la portée de tous et a de grandes répercussions en termes de coût et de faisabilité. Les puces graphiques sont tellement différentes des autres puces, et les données doivent toujours passer par le matériel de l'écran. La technologie et la physique ne sont pas aussi simples que la programmation, et cela coûte de l'argent. Il faut s'y faire. Mais ce serait quand même cool si Carmack pouvait changer les choses comme il l'a fait pour les cartes graphiques !
0 votes
@KonradRudolph Je ne faisais qu'ajouter à la conversation, mon article affirmait qu'il y avait deux erreurs, c'était plus une référence qu'une réponse.
0 votes
Les câbles transatlantiques, voir le câble CANCAT 3 en fr.wikipedia.org/wiki/Transatlantic_communications_cable . Le temps pour la lumière de la Nouvelle-Écosse à l'Islande (partie de l'Europe) en fibre est de 16.7 ms, voir wolframalpha.com/input/?i=distance+halifax%2C+canada+iceland
2 votes
Apparemment, vous pouvez faire un ping transatlantique plus rapidement, mais cela signifie aussi que vous ne le verrez pas sur l'écran ;)
2 votes
Cette plainte est fallacieuse. Ce n'est pas un problème et, de plus, c'est tout à fait logique. Parce que (à moins que la personne qui branche l'écran de bureau sur le port VGA / HDMI / DVI ait des exigences très particulières et soit également un idiot), cet "écran" dont il parle est destiné à être traité par le système visuel humain. Qui traite les images à ~30 fps. Les paquets réseau sont utilisés, entre autres, pour synchroniser les horloges. Les yeux humains ne s'améliorent pas, et notre cortex optique ne s'accélère pas non plus, alors pourquoi nos écrans devraient-ils être mis à jour plus souvent ? Essaie-t-il d'intégrer des messages subliminaux dans ses jeux ?
0 votes
Je suppose donc que ma réponse parenthétique à votre question "Comment cela peut-il être vrai ?" est "Il n'y a aucune raison logique pour que les gens consacrent des ressources à l'un plutôt qu'à l'autre". À l'heure actuelle, les fréquences d'images de sortie sur les dispositifs d'affichage normaux sont bien plus rapides que ce que l'œil humain peut détecter. Ils sont déjà meilleurs qu'ils ne devraient l'être. La mise en réseau, en revanche, permet le traitement distribué ; c'est ce qui fait fonctionner les superordinateurs. Elle doit encore être améliorée.
0 votes
@Parthian Il n'y a rien de "fallacieux" ici, car votre raisonnement contient deux erreurs. La première erreur est que même avec une latence élevée, vous pouvez vraisemblablement développer des protocoles pour mettre à jour les horloges. En fait, lorsque je fais un ping sur un site aux États-Unis, la latence est trois fois trop élevée pour 30 FPS (~100 ms). Deuxièmement, votre raisonnement fantaisiste ignore tout simplement les contraintes dures imposées par la physique : en raison de la vitesse de la lumière, le temps de propagation de l'horloge de l minimum Le temps de réponse le plus rapide que nous pouvons espérer atteindre est de 32 ms, ce qui correspond à la fréquence de rafraîchissement de l'œil humain, sans tenir compte des nombreux traitements de signal sophistiqués.
0 votes
@Parthian Pour rendre la question du traitement du signal plus saillante : lisez la réponse de John sur les latences inhérentes au matériel d'affichage, puis sa déclaration selon laquelle " les mauvaises performances du Sony sont dues à une mauvaise ingénierie logicielle ". Du côté du réseau, le signal doit traverser (au moins) la carte réseau, le routeur, un serveur de ce côté de l'Atlantique, et tout cela deux fois. Et vous dites que tout cela peut être fait trivialement (parce que, hé, ma question est fallacieuse) en <1 ms, alors que le système vidéo a des latences plus élevées que cela pour plusieurs de ses étapes (voir encore la réponse de John).
2 votes
@KonradRudolph "même avec une latence élevée, vous pouvez vraisemblablement développer des protocoles pour mettre à jour les horloges" Je n'ai pas dit "avec une latence élevée", et un tel protocole existe. Il s'appelle NTP, et il est utilisé à peu près partout. "Lorsque j'envoie un ping à un site aux États-Unis, le temps de latence est trois fois trop élevé pour une image de 30 FPS" Vous confirmez ce que je disais, à savoir que la vitesse du réseau doit être améliorée, mais pas la technologie d'affichage. Donc, bien sûr, il faut faire plus de recherche sur les réseaux.
2 votes
@KonradRudolph " votre raisonnement fantaisiste ignore simplement les contraintes dures placées par la physique " Je suis ingénieur en informatique. Donc, oui, j'ai pris des cours de relativité spéciale. C'est un peu orthogonal à mon propos. "Vous dites que tout cela peut être fait trivialement" Je ne le dis pas. Ce que je dis, c'est que les gens ont fait beaucoup plus d'efforts pour rendre la technologie plus rapide parce qu'elle doit l'être, mais personne ne fait d'efforts pour la technologie d'affichage parce qu'elle ne l'est pas. Par conséquent, l'une est beaucoup plus rapide, non pas parce qu'elle est plus facile, mais parce que les gens ont travaillé beaucoup plus dur sur elle.
0 votes
@ParthianShot I connaître qu'il existe un tel protocole. D'après votre commentaire, il semble que ce ne soit pas le cas. - Pour ce qui est de votre remarque générale : vous prétendez que ma question est sans objet pour des raisons, mais j'ai montré que ces raisons ne sont tout simplement pas un argument suffisant et qu'elles sont partiellement fausses. Et quand vous dites "vous confirmez mon point de vue" - non, je l'ai contredit. Pour le rendre aveuglément évident : le meilleur ce que nous pouvons espérer dans des conditions idéales est tout juste à la hauteur d'une vitesse d'affichage adéquate (pas excellente), il n'y a donc aucune raison de penser qu'elle devrait être plus rapide.
2 votes
@KonradRudolph "le meilleur ping que l'on puisse espérer dans des conditions idéales est tout juste à la hauteur d'une vitesse d'affichage adéquate (pas excellente)" ...Ok, je pense que vous ne comprenez pas ce que j'essaie de dire, parce que je suis d'accord avec ça. "donc il n'y a aucune raison de supposer qu'il devrait être plus rapide" Et je suis d'accord avec ça. Ce que je veux dire, c'est que s'il n'y a aucune raison physique pour que les écrans soient lents, il n'y a aucune raison financière pour qu'ils soient rapides. Physiquement, il n'y a aucune raison pour qu'il n'y ait pas un tas de purée de neuf tonnes au milieu de l'Idaho. Et ce serait bien plus facile que d'aller sur la lune.
2 votes
Mais nous sommes allés sur la lune et il n'y a pas un énorme tas de purée de pommes de terre au centre de l'Idaho, parce que personne ne se soucie assez de construire ou de payer pour un tel tas. De la même manière que personne ne se soucie assez de faire une technologie d'affichage abordable et répandue qui se met à jour plus qu'adéquatement. Parce qu'adéquat est... adéquat.
0 votes
Mon temps d'accès à Google est de 10 ms et mon écran est à 60 Hz (temps de pixel de 16 ms).
0 votes
Vous êtes tous en train de vous noyer dans un verre d'eau ! Il existe de nombreux facteurs qui créent constamment une latence aléatoire. Pensez-y.
0 votes
@FrankR. Je pense que nous tous Je le sais très bien. La question est simplement de savoir quelle est la limite supérieure de ces temps de latence ; et ils peuvent être quantifiés et comparés de manière significative, comme le montrent les réponses.