Le courrier ne fait pas plus de 500 miles - FAQ

L'histoire du courrier électronique, qui ne s'est pas éloignée de plus de 500 miles de l'expéditeur , est depuis longtemps devenue un classique barbu. Je pensais que la réaction normale était juste de rire, mais il n'y avait pas si peu de gens qui voulaient prouver à l' auteur que cela ne pouvait pas être, parce que ... Au final, l'auteur n'a pas pu le supporter et a publié toute une FAQ. Alors rencontrez:

Courriel qui n'a pas dépassé 500 miles


J'ai reçu de nombreuses réponses à la publication «Le courrier ne dépasse pas 500 miles». Mon histoire a été réimprimée plusieurs fois et vendue beaucoup plus large que je ne l'aurais pu espérer. La plupart des réponses sont des remerciements pour l'histoire amusante et les offres d'emploi (en passant, merci pour eux, et j'aimerais qu'ils continuent à venir!) Cependant, beaucoup ont cherché des inexactitudes et des contradictions dans mon histoire, trouvant des défauts aux bagatelles. Au lieu de répondre à chacune de ces attaques, j'ai simplement rassemblé les questions les plus fréquemment posées et répondu en une seule fois.

1. Était-ce vrai ou l'histoire n'est-elle qu'une histoire?

C'est une réalité. À cette époque, j'étais responsable d'un système de messagerie centralisé sur le campus de l'Université de Caroline du Nord à Chapel Hill. De plus, j'ai également participé à la configuration de la messagerie électronique pour les services qui, pour une raison quelconque, utilisaient leurs propres serveurs. L'essentiel dans le contexte de cette histoire est que j'ai écrit un fichier de configuration pour le serveur de messagerie, sendmail.cf, qui était utilisé par la plupart des serveurs du campus.

2. Quand cette histoire s'est-elle produite?

Je voudrais vraiment dire avec certitude. Mais malgré le fait que je suis l'un de ces plus (dans l'original - je suis l'un de ces types de rétention anale) qui stockent soigneusement tout leur courrier, entrant et sortant, je ne trouve pas une seule lettre à ce sujet. Au moment où j'écrivais, j'ai été informé du problème par téléphone et j'ai également répondu par téléphone. Après un certain temps, j'ai délibérément décidé de ne pas écrire de lettres, principalement parce que l'histoire est très bonne, et j'ai aimé la raconter et regarder les visages des gens qui l'ont entendue pour la première fois. Sur la base des souvenirs du bureau dans lequel je travaillais à l'époque, des collègues à qui j'ai raconté cette histoire, et d'autres détails non pertinents mais liés au temps, l'histoire s'est produite vers 1994-1997.

Cependant, vous pouvez certainement calculer l'heure plus précisément. Par exemple, lorsque sendmail 8 était déjà «assez stable», mais Sun livrait-il toujours sendmail 5? Eric Allman (Eric Allman) m'a écrit à ce sujet, que certaines fonctions pourraient être rétroportées vers sendmail 5, et si vous savez quand cela s'est produit, vous pouvez considérablement réduire l'intervalle de temps. En général, si vous avez des idées sur la façon de calculer plus précisément le temps d'une histoire, je les écouterai avec gratitude

3. Est-ce que cette histoire vous est vraiment arrivée, ou est-ce que la personnalité du personnage principal vient des «détails non pertinents» qui ont été modifiés?

C'est vraiment mon histoire. Peut-être qu'un de mes collègues m'a prévenu que «quelque chose s'est passé au bureau des statistiques» avant de parler au chef du département. Il se peut même que j'aie appelé le chef du département et pas lui. Très probablement, un de mes collègues était assis à côté de moi pendant que je réglais le problème, parce que j'ai l'habitude de discuter à haute voix des problèmes en cours de résolution. Mais je ne raconte guère l'histoire de quelqu'un d'autre et je récolte des lauriers de quelqu'un d'autre. Cependant, si vous travailliez avec moi à ce moment-là et que vous pensez que résoudre le problème est votre mérite, contactez-moi et nous trouverons quelque chose.

4. Si vous n'êtes pas sûr à 100% des détails, alors pourquoi y a-t-il tant de détails dans l'histoire?

Parce qu'avec les détails, l'histoire semble beaucoup mieux. Pensez-vous vraiment que si je commençais chaque phrase par les mots "je ne me souviens pas exactement, mais il semble que ce soit ...", alors quelque chose aurait changé? En fin de compte, au tout début, j'ai averti que certains détails mineurs avaient été modifiés et que certains avaient été délibérément omis - juste pour améliorer l'histoire.
Le deuxième point important est le site où l'histoire a été publiée pour la première fois. J'ai envoyé cette histoire à la liste de diffusion SAGE (System Administrators Guild) dans la section "défis incroyables". Ce ne sont que des histoires sur les tâches les plus incroyables que la direction confie parfois aux administrateurs système.

Bien sûr, si j'avais su que l'histoire se répandrait sur Internet, j'aurais été plus prudent en écrivant. Mais le texte a été écrit pour des collègues, que je connais pour la plupart personnellement et qui, en général, ont tendance à me croire.

5. L'histoire est drôle, mais les détails techniques à la fin sont erronés.

Oui je sais. Relisez la réponse à la question précédente. Tout d'abord, j'ai écrit une histoire humoristique basée sur un incident qui m'est arrivé. Ce n'est pas du matériel éducatif, il n'y a donc pas plus de détails techniques que nécessaire pour comprendre le sens général de ce qui se passe. En général, après avoir écrit cette histoire, j'ai été imprégnée d'un grand respect pour les auteurs qui écrivent des histoires basées sur des événements réels et maintenant je sais combien il est difficile de maintenir un équilibre entre crédibilité et fiction. Et maintenant, je sais bien quelle vague de critiques condamne l'auteur, en choisissant une syllabe artistique :-)

6. Bien, bien, mais pourquoi n'écris-tu pas du matériel de formation maintenant?

Malheureusement, cela ne fonctionnera pas, même si je le voulais, car je n'avais pas les données source. Je n'ai pas enregistré les journaux et je n'ai pas pris de notes. J'aimerais vraiment, vraiment qu'ils soient préservés, car je comprends que je pourrais en faire un bon article. Tout cela parut alors insignifiant, digne de se transformer en plaisanterie pour un cercle restreint d'amis. Et j'ai fait face à cette tâche - même sans journaux et notes.

Bien que ... en fait, il y a des détails dont je me souviens ou que je peux restaurer. Et je les utilise pour répondre aux questions suivantes.

7. La définition du délai de connexion () sur 3 ms n'a pas de sens.

Oui je sais. Mais il n'y avait pas une telle installation. L'histoire décrit comment j'ai passé 10 minutes à passer d'une limite de 500 miles sur la plage d'envoi de courrier à un délai de 3 ms, en raison de la vitesse de la lumière. En fait, le processus a pris plusieurs heures, et mon travail peut être comparé au travail d'un détective. Au final, j'ai trouvé une solution, fait des tests et versé du café (d'ailleurs, je suis sûr que c'était loin de la première tasse de café). Donc tout de même, qu'est-ce qui vous embrouille exactement dans le chiffre «3 ms»?

8. Eh bien, tout d'abord, 3 ms ne sont clairement pas suffisants, car cela suffit pour que le paquet sortant atteigne le destinataire. Mais vous devez toujours obtenir une réponse, donc le délai minimum devrait être de 6 ms?

Bien sûr. Ce n'est là qu'un de ces détails que j'ai omis. C'est trop compliqué et ennuyeux pour une histoire humoristique.

9. Ou peut-être que le délai d'attente devrait généralement être de 12/18/24 ms en raison du protocole de connexion TCP triphasé?

Peut-être. Encore une fois, ce sont les détails dont je ne me souviens pas car j'ai perdu toutes les notes. Cependant, je pense que lorsque le paquet SYN / ACK est reçu, le délai d'expiration de la fonction connect () est réinitialisé, c'est-à-dire qu'il n'est pas nécessaire que la connexion TCP soit entièrement établie pendant le délai d'expiration. Oui, même si cela devait, de toute façon, raconter l'histoire, je réduirais tous ces calculs complexes au nombre "3".

10. L'équipement réseau introduit des retards dans le flux du signal beaucoup plus importants que vous ne le pensiez.

Oui, vous avez peut-être raison. Mais je pourrais tenir compte de ces retards. Je ne suis pas sûr d'avoir tout fait comme ça, mais je pourrais, par exemple, cingler le routeur le plus proche (par exemple, un routeur desservant le réseau d'un autre collège de notre université) pour calculer le délai que le routeur donne. Ensuite, je pourrais multiplier le retard résultant par le nombre de nœuds par lesquels le signal passe à la destination. Ce montant est à peu près le même pour toutes les universités de la côte Est. Mais même si ce n'était pas le cas, le retard ajouté par un routeur redondant est de plusieurs centaines de microsecondes, ce qui n'affecte pas tellement le temps global.

11. Une histoire amusante, mais qui comporte une faille fatale : le signal dans le fil de cuivre ne se propage pas à la vitesse de la lumière.

Oui, c'est vrai, le signal arrive à une vitesse de ¾c environ. Mais le réseau du campus et l'épine dorsale étaient entièrement en fibre optique.

12. Aha! Mais même dans la fibre optique, la lumière ne se propage pas à la même vitesse que dans le vide!

Oui, vous m'avez ici. Dans la fibre optique, le signal se déplace à une vitesse de ⅔c (oui, plus lent que dans un fil de cuivre) à presque c, en fonction d'un tas de facteurs. Mais je le répète encore une fois - tout cela, je pourrais le prendre en compte et, bien sûr, le prendre en compte. J'ai fait un ping sur différents nœuds et enregistré le temps et la distance du ping sur le nœud. En comparant les chiffres obtenus, j'ai déduit un certain «temps empirique», légèrement différent du temps réel. Cependant, tout cela est également des détails insignifiants, que j'ai omis pour rendre l'histoire plus courte et plus fascinante.

13. Stop-stop-stop ... Voulez-vous dire que vous avez d'abord supposé que le problème était en quelque sorte lié à la vitesse de la lumière, et que vous êtes ensuite allé aux calculs (dans l'original - "tapé en unités", c'est-à-dire, utilisé l'utilitaire d'unités) ?

Oui, exactement. J'étais têtu. N'avez-vous pas remarqué, pendant le processus de résolution du mystère, les bonnes réponses? C'est exactement ce qui m'est arrivé. Très probablement, au contraire, j'ai d'abord transféré 500 miles en millisecondes légères et seulement ensuite j'ai ajusté la réponse à cette connaissance.

14. Autrement dit, vous saviez comment résoudre le problème des utilisateurs, mais vous ne l'avez pas résolu avant d'avoir compris qu'il s'agissait d'un délai d'attente?

Non. Dès que j'ai réalisé que le remplacement du sendmail standard dans SunOS par sendmail 8 résout le problème, je l'ai fait. (Même si je ne savais pas que cela résoudrait le problème, je le ferais car sendmail 5 avec les paramètres de sendmail 8 n'est pas la meilleure configuration). Mais j'ai gardé l'ancien binaire - pour toujours régler le problème à ma guise.

Les administrateurs système font toujours cela. Il n'arrive jamais que «le système fonctionne et est fatigué depuis trop longtemps», mais le redémarrage est souvent utile. Tout d'abord, l'administrateur résout le problème du mieux qu'il peut afin que les utilisateurs puissent continuer à travailler, puis il revient et recherche la véritable cause de ce qui s'est passé.

15. Habituellement, les données transitent sur Internet avec des itinéraires très bizarres, mais dans cette histoire, l'expéditeur se connecte toujours directement au destinataire. Comment ça?

Pas question. 500 miles plus ou moins - il y avait une zone pour envoyer une lettre au-delà de laquelle c'était impossible. À l'intérieur de cette zone, il y avait aussi des nœuds où les lettres n'étaient pas envoyées ou envoyées avec un succès variable.

Il peut y avoir au moins deux raisons à cela. Le premier est un délai supplémentaire (par exemple, sur le pare-feu), qui a conduit à l'expiration du délai d'expiration. Le second - le chemin vers ces nœuds était vraiment difficile, et sa longueur totale était de plus de 500 miles.

Le réseau de l'Université de Caroline du Nord a été très bien construit et le chemin du signal vers d'autres universités de la côte Est (à laquelle, en fait, le courrier a été livré avec succès) était presque direct (dans l'orthodromie d'origine) , surtout lorsque cette histoire s'est produite. À cette époque, il était rare qu'un paquet d'Atlanta à Washington passe par San Jose.

16. Et pourquoi avez-vous jugé nécessaire de mentionner dans l'histoire que votre réseau était presque entièrement construit sur des commutateurs?

Je ne sais pas. A cette époque, il semblait que sans cette remarque, l'histoire serait totalement invraisemblable. Bien que maintenant je ne comprends pas pourquoi. Ainsi, lorsque vous relisez l'histoire, vous pouvez jeter mentalement le paragraphe correspondant.

Un utilisateur avec le surnom Hacksaw a écrit ce qui suit: «La commutation exclut les retards, par exemple, pour résoudre les collisions. L'absence de tels retards a simplifié la recherche du problème décrit, car les données d'analyse étaient plus propres. Je parie que tu le pensais. "

17. Sendmail 5 ne comprend pas le fichier de configuration de sendmail 8.

Mais il a compris. On m'a déjà dit que le sendmail 5 que l'on peut trouver sur le réseau ne comprend pas. Par conséquent, je suis obligé de supposer que seul sendmail, fourni par Sun dans le cadre de Solaris, pourrait le faire. Si vous avez accès à sa source, je vous serais reconnaissant de vérifier si cela était possible. Mais encore - c'est arrivé, ce qui signifie que cela pourrait arriver :-)

18. sendmail a des valeurs de paramètres par défaut avec lesquelles il est compilé; il ne peut pas simplement mettre tous les paramètres non initialisés à 0.

Plusieurs personnes m'ont écrit à ce sujet. Aujourd'hui, c'est peut-être le cas, mais à cette époque, il n'en était certainement pas ainsi. J'en suis sûr, car un an ou deux après cette histoire, j'étais dans un atelier sendmail à LISA avec Eric Allman. Il a remarqué que sendmail n'a pas de valeurs par défaut pour certaines options dont il a parlé (dans le sendmail.cf standard, ces valeurs étaient, mais, comme vous vous en souvenez, cela ne s'applique pas à notre historique). J'en ai profité et je lui ai raconté une histoire à environ 500 miles. Il était littéralement allongé sous la table en riant :-)

19. L'utilitaire d'unités dans SunOS ne comprend pas ces unités comme des «millisecondes légères» (dans la traduction russe, il est dit «prenez 3 millisecondes et multipliez par la vitesse de la lumière», et la sortie de l'utilitaire d'unités est indiquée dans l'original)

Oui Et alors? Sur toutes les machines avec lesquelles je travaille, j'écris mes propres unités.dat avec un tas d'unités et de préfixes supplémentaires. Et en général, autant que je me souvienne, les unités que j'ai commencées sous AIX. Je ne sais pas si je sais quoi que ce soit sur les millisecondes légères AIX. Consultez le fichier units.dat fourni avec toute distribution Linux aujourd'hui. Il connaît probablement les millisecondes légères (millilightseconds).

20. Bien sûr, il est très pratique de se référer aux "notes perdues" ...

Bien sûr. Et combien de morceaux de papier il y a cinq ans conservez-vous?

21. Quoi qu'il en soit, cette histoire est une fiction!

Répondez à la question: si nous ignorons les détails techniques, la configuration incorrecte du serveur de messagerie peut-elle conduire au fait que les lettres sont remises aux destinataires à proximité, mais pas aux destinataires distants? Je pense que la réponse est oui. En fait, je sais que la réponse est oui parce que cela s'est réellement produit. Mais même si vous ne tenez pas compte de mon expérience et que vous ne regardez pas la question de l'extérieur, je pense qu'elle est toujours possible, même si à première vue elle semble peu plausible.

Si vous avez encore des questions auxquelles je n'ai pas répondu, écrivez-moi un e-mail à trey+500mi@lopsa.org. Je vais ajouter votre question à la FAQ et vous mentionner en tant qu'auteur. Mais très probablement, je dirai simplement: "Je ne sais pas, je ne me souviens pas et je n'ai pas les données pour répondre."

22. La signature indique que vous cherchez du travail. Est-ce toujours pertinent? (signature supprimée dans la traduction russe)

Plus maintenant, mais merci pour cette question!

Source: https://habr.com/ru/post/fr468503/


All Articles