Mail geht nicht weiter 500 Meilen - FAQ

Die Geschichte der E-Mail, die nicht weiter als 500 Meilen vom Absender entfernt war , ist längst zu einem bärtigen Klassiker geworden. Ich dachte, dass die normale Reaktion nur darin bestand, zu lachen, aber es gab nicht so wenige Leute, die dem Autor beweisen wollten, dass dies nicht möglich ist, weil ... Am Ende konnte der Autor es nicht ertragen und gab eine ganze FAQ heraus. Also treffe dich:

E-Mail, die nicht weiter als 500 Meilen ging


Ich habe viele Antworten auf die Veröffentlichung erhalten: "Mail geht nicht über 500 Meilen hinaus." Meine Geschichte wurde viele Male nachgedruckt und viel weiter verkauft, als ich es mir erhofft hatte. Die meisten Antworten sind danke für die lustige Geschichte und die Stellenangebote (übrigens danke für sie, und ich möchte, dass sie weiter kommen!). Es gab jedoch viele, die nach Ungenauigkeiten und Widersprüchen in meiner Geschichte suchten und Fehler mit Kleinigkeiten fanden. Anstatt jeden solchen Angriff zu beantworten, sammelte ich einfach die am häufigsten gestellten Fragen und beantwortete sie alle auf einmal.

1. War es wahr oder ist Geschichte nur eine Geschichte?

Es ist eine Realität. Zu dieser Zeit war ich für ein zentrales E-Mail-System auf dem Campus der Universität von North Carolina in Chapel Hill verantwortlich. Darüber hinaus war ich auch an der Einrichtung von E-Mails für Abteilungen beteiligt, die aus irgendeinem Grund ihre eigenen Server verwendeten. Die Hauptsache im Zusammenhang mit dieser Geschichte ist, dass ich eine Konfigurationsdatei für den Mailserver sendmail.cf geschrieben habe, die von den meisten Campus-Servern verwendet wurde.

2. Wann ist diese Geschichte passiert?

Ich würde wirklich gerne sicher sagen. Aber trotz der Tatsache, dass ich einer dieser Pluspunkte bin (im Original - ich bin einer dieser anal-zurückhaltenden Typen) , die alle eingehenden und ausgehenden E-Mails sorgfältig speichern, kann ich zu diesem Thema keinen einzigen Brief finden. Während ich schrieb, wurde ich telefonisch über das Problem informiert und auch telefonisch beantwortet. Nach einiger Zeit entschied ich mich bewusst, keine Briefe zu schreiben, hauptsächlich weil die Geschichte sehr gut ist, und ich erzählte sie gern nach und beobachtete die Gesichter von Menschen, die sie zum ersten Mal hörten. Basierend auf den Erinnerungen des Büros, in dem ich zu dieser Zeit arbeitete, der Kollegen, denen ich diese Geschichte erzählte, und anderer irrelevanter, aber zeitbezogener Details geschah die Geschichte zwischen 1994 und 1997.

Sie können die Zeit jedoch sicherlich genauer berechnen. Zum Beispiel, als sendmail 8 bereits "ziemlich stabil" war, Sun aber noch sendmail 5 auslieferte? Eric Allman (Eric Allman) hat mir darüber geschrieben, dass einige Funktionen auf sendmail 5 zurückportiert werden könnten, und wenn Sie wissen, wann es war, können Sie das Zeitintervall erheblich einschränken. Wenn Sie darüber nachdenken, wie Sie die Zeit einer Geschichte genauer berechnen können, werde ich ihnen im Allgemeinen dankbar zuhören

3. Ist Ihnen diese Geschichte wirklich passiert oder ist die Persönlichkeit der Hauptfigur von den sehr „irrelevanten Details“ geprägt, die geändert wurden?

Das ist wirklich meine Geschichte. Vielleicht warnte mich einer meiner Kollegen, dass „im Statistikamt etwas passiert ist“, bevor er mit dem Abteilungsleiter sprach. Es kann sogar sein, dass ich den Abteilungsleiter angerufen habe und nicht ihn. Höchstwahrscheinlich saß einer meiner Kollegen neben mir, während ich das Problem löste, weil ich es mir zur Gewohnheit gemacht habe, Arbeitsprobleme während des Lösungsprozesses laut zu diskutieren. Aber ich erzähle kaum die Geschichte eines anderen und ernte die Lorbeeren eines anderen. Wenn Sie zu diesem Zeitpunkt mit mir zusammengearbeitet haben und der Meinung sind, dass die Lösung des Problems Ihr Verdienst ist, setzen Sie sich mit mir in Verbindung, und wir werden uns etwas einfallen lassen.

4. Wenn Sie sich der Details nicht 100% sicher sind, warum enthält die Geschichte dann so viele Details?

Denn mit den Details sieht die Geschichte viel besser aus. Glaubst du wirklich, wenn ich jeden Satz mit den Worten "Ich erinnere mich nicht genau, aber es scheint ..." begonnen hätte, hätte sich etwas geändert? Am Ende, ganz am Anfang, warnte ich, dass einige kleinere Details geändert und einige absichtlich weggelassen wurden - nur um die Geschichte besser zu machen.
Der zweite wichtige Punkt ist der Ort, an dem die Geschichte zum ersten Mal veröffentlicht wurde. Ich habe diese Geschichte an die SAGE-Mailingliste (System Administrators Guild) im Abschnitt "Unglaubliche Herausforderungen" gesendet. Dies waren nur Geschichten über die unglaublichsten Aufgaben, die das Management manchmal Systemadministratoren stellt.

Wenn ich gewusst hätte, dass sich die Geschichte im ganzen Internet verbreiten würde, wäre ich natürlich vorsichtiger beim Schreiben gewesen. Der Text wurde jedoch für Kollegen geschrieben, von denen ich die meisten persönlich kenne und die mir im Allgemeinen eher glauben.

5. Die Geschichte ist lustig, aber die technischen Details am Ende sind falsch.

Ja ich weiß. Lesen Sie die Antwort auf die vorherige Frage erneut. Zunächst schrieb ich eine humorvolle Geschichte, die auf einem Vorfall basiert, der mir passiert ist. Dies ist kein Lehrmaterial, daher gibt es nicht mehr technische Details als nötig, um die allgemeine Bedeutung des Geschehens zu verstehen. Nachdem ich diese Geschichte geschrieben hatte, war ich im Allgemeinen von großem Respekt vor den Autoren erfüllt, die Geschichten über reale Ereignisse schrieben. Jetzt weiß ich, wie schwierig es ist, ein Gleichgewicht zwischen Glaubwürdigkeit und Fiktion aufrechtzuerhalten. Und jetzt weiß ich genau, was für eine Flut von Kritik den Autor zum Scheitern verurteilt, wenn er eine Kunstsilbe wählt :-)

6. Gut, gut, aber warum schreibst du jetzt kein Schulungsmaterial?

Leider wird dies nicht funktionieren, auch wenn ich wollte, weil ich nicht die Quelldaten hatte. Ich habe die Protokolle nicht gespeichert und hatte keine Notizen, die ich dann gemacht habe. Ich möchte wirklich, wirklich, dass sie erhalten bleiben, weil ich verstehe, dass ich daraus einen guten Artikel machen kann. Dann schien das alles trivial und nur einen Witz für einen engen Freundeskreis wert. Und ich habe diese Aufgabe gemeistert - auch ohne Protokolle und Notizen.

Obwohl ... tatsächlich gibt es Details, an die ich mich erinnere oder die ich wiederherstellen kann. Und ich benutze sie, um die folgenden Fragen zu beantworten.

7. Das Setzen des Zeitlimits für connect () auf 3 ms ist nicht sinnvoll.

Ja ich weiß. Aber es gab keine solche Installation. Die Geschichte beschreibt, wie ich aufgrund der Lichtgeschwindigkeit 10 Minuten damit verbracht habe, von einer 500-Meilen-Grenze für das Senden von E-Mails auf eine Zeitüberschreitung von 3 ms zu wechseln. Tatsächlich dauerte der Prozess mehrere Stunden, und meine Arbeit kann mit der Arbeit eines Detektivs verglichen werden. Am Ende fand ich eine Lösung, führte Tests durch und goß Kaffee ein (außerdem bin ich mir sicher, dass dies weit von der ersten Tasse Kaffee entfernt war). Was genau verwirrt Sie in der Zahl „3 ms“?

8. Zunächst einmal reichen 3 ms eindeutig nicht aus, da dies nur ausreicht, damit das ausgehende Paket den Empfänger erreicht. Sie müssen jedoch noch eine Antwort erhalten, sodass die minimale Verzögerung 6 ms betragen sollte.

Natürlich. Dies ist nur eines dieser Details, die ich weggelassen habe. Es ist zu kompliziert und langweilig für eine humorvolle Geschichte.

9. Oder sollte das Timeout aufgrund des dreiphasigen TCP-Verbindungsprotokolls im Allgemeinen 12/18/24 ms betragen?

Kann sein. Auch dies sind die Details, an die ich mich nicht erinnern kann, weil ich alle Notizen verloren habe. Ich denke jedoch, dass beim Empfang des SYN / ACK-Pakets das Zeitlimit für die Funktion connect () zurückgesetzt wird, dh, es ist nicht erforderlich, dass die TCP-Verbindung während des Zeitlimits vollständig hergestellt werden muss. Ja, selbst wenn es die Geschichte erzählen sollte, würde ich all diese komplexen Berechnungen auf die Zahl "3" reduzieren.

10. Netzwerkgeräte führen zu viel größeren Verzögerungen im Signalfluss als gedacht.

Ja, vielleicht hast du recht. Aber ich könnte diese Verzögerungen berücksichtigen. Ich bin mir nicht sicher, ob ich alles einfach so gemacht habe, aber ich könnte zum Beispiel den nächsten Router (zum Beispiel einen Router, der das Netzwerk eines anderen Colleges unserer Universität bedient) anpingen, um zu berechnen, wie viel Verzögerung der Router verursacht. Dann könnte ich die resultierende Verzögerung mit der Anzahl der Knoten multiplizieren, über die das Signal zum Ziel geleitet wird. Dieser Betrag ist für alle Universitäten an der Ostküste ungefähr gleich. Aber selbst wenn dies nicht der Fall wäre, beträgt die von einem redundanten Router hinzugefügte Verzögerung mehrere hundert Mikrosekunden, was die Gesamtzeit nicht so stark beeinflusst.

11. Eine lustige Geschichte, aber es gibt einen fatalen Fehler : Das Signal im Kupferdraht breitet sich nicht mit Lichtgeschwindigkeit aus.

Ja, das Signal kommt mit einer Geschwindigkeit von ¾c oder so. Das Campus-Netzwerk und das Backbone waren jedoch vollständig aus Glasfaser.

12. Aha! Aber auch in Glasfasern breitet sich Licht nicht mit der gleichen Geschwindigkeit aus wie im Vakuum!

Ja, hier hast du mich. In Glasfasern bewegt sich das Signal mit einer Geschwindigkeit von ⅔c (ja, langsamer als in einem Kupferdraht) bis fast c, abhängig von einer Reihe von Faktoren. Aber ich wiederhole noch einmal - all das konnte ich berücksichtigen und natürlich berücksichtigen. Ich habe verschiedene Knoten gepingt und die Ping-Zeit und die Entfernung zum Knoten aufgezeichnet. Beim Vergleich der erhaltenen Zahlen habe ich eine bestimmte „empirische Zeit“ abgeleitet, die sich geringfügig von der Echtzeit unterscheidet. All dies sind jedoch auch unbedeutende Details, die ich weggelassen habe, um die Geschichte kürzer und faszinierender zu machen.

13. Stop-Stop-Stop ... Wollen Sie sagen, dass Sie zuerst vermutet haben, dass das Problem irgendwie mit der Lichtgeschwindigkeit zusammenhängt, und erst dann zu den Berechnungen übergegangen sind (im Original - „in Einheiten getippt“), das heißt das Gerät Dienstprogramm verwendet) ?

Ja, das ist so. Ich war stur. Haben Sie während der Lösung des Rätsels nicht die richtigen Antworten bemerkt? Genau das ist mir passiert. Im Gegenteil, höchstwahrscheinlich habe ich zuerst 500 Meilen in leichte Millisekunden übertragen und erst dann die Antwort auf dieses Wissen angepasst.

14. Das heißt, Sie wussten, wie man das Problem der Benutzer löst, haben es aber erst gelöst, als Sie herausfanden, dass es sich um eine Zeitüberschreitung handelte?

Nein. Sobald ich feststellte, dass das Ersetzen des Standard-Sendmail in SunOS durch Sendmail 8 das Problem löst, habe ich es getan. (Selbst wenn ich nicht wüsste, dass dies das Problem lösen würde, würde ich es tun, da sendmail 5 mit Parametern von sendmail 8 nicht die beste Konfiguration ist). Aber ich habe die alte Binärdatei beibehalten - um das Problem in meiner Freizeit zu lösen.

Systemadministratoren tun dies immer. Es kommt nie vor, dass „das System zu lange läuft und müde ist“, aber ein Neustart hilft oft. Zuerst löst der Administrator das Problem so gut er kann, damit die Benutzer weiterarbeiten können. Später kehrt er zurück und sucht nach der wahren Ursache des Geschehens.

15. Normalerweise werden Daten über das Internet mit sehr bizarren Routen übertragen, aber in dieser Geschichte stellt der Absender immer eine direkte Verbindung zum Empfänger her. Wie so?

Auf keinen Fall. 500 Meilen plus oder minus - es gab eine Zone, um einen Brief zu senden, über den hinaus es unmöglich war. Innerhalb dieser Zone gab es auch Knoten, an denen Briefe nicht oder mit unterschiedlichem Erfolg gesendet wurden.

Dafür kann es mindestens zwei Gründe geben. Die erste ist eine zusätzliche Verzögerung (z. B. bei der Firewall), die zum Ablauf des Zeitlimits führte. Der zweite - der Weg zu diesen Knoten war wirklich schwierig und seine Gesamtlänge betrug mehr als 500 Meilen.

Das Netzwerk der University of North Carolina war sehr gut aufgebaut, und der Signalweg zu anderen Universitäten an der Ostküste (an die die Post tatsächlich erfolgreich zugestellt wurde) war fast direkt (im Original Orthodromie) , insbesondere als diese Geschichte passierte. In jenen Tagen war es selten, dass ein Paket von Atlanta nach Washington durch San Jose ging.

16. Und warum mussten Sie in der Geschichte immer noch erwähnen, dass Ihr Netzwerk fast vollständig auf Switches aufgebaut war?

Weiß nicht. Zu dieser Zeit schien die Geschichte ohne diese Bemerkung völlig unplausibel zu sein. Obwohl ich jetzt nicht verstehe warum. Wenn Sie die Geschichte erneut lesen, können Sie den entsprechenden Absatz mental wegwerfen.

Ein Benutzer mit dem Spitznamen Hacksaw schrieb Folgendes: „Das Umschalten schließt Verzögerungen aus, beispielsweise beim Auflösen von Kollisionen. Das Fehlen solcher Verzögerungen vereinfachte die Suche nach dem beschriebenen Problem, da die zu analysierenden Daten sauberer waren. Ich wette, du hast das gemeint. “

17. Sendmail 5 versteht die Konfigurationsdatei von sendmail 8 nicht.

Aber er verstand. Mir wurde bereits gesagt, dass sendmail 5, das im Netzwerk zu finden ist, nicht versteht. Daher muss ich davon ausgehen, dass nur sendmail, das von Sun als Teil von Solaris bereitgestellt wird, dies tun kann. Wenn Sie Zugriff auf die Quelle haben, wäre ich Ihnen dankbar, wenn Sie prüfen würden, ob dies möglich ist. Aber trotzdem - es ist passiert, was bedeutet, dass es passieren könnte :-)

18. sendmail hat Standardparameterwerte, mit denen es kompiliert wird. Es können nicht alle nicht initialisierten Parameter auf 0 gesetzt werden.

Mehrere Leute haben mir darüber geschrieben. Heute mag das so sein, aber damals war es definitiv nicht so. Ich bin mir sicher, denn ein oder zwei Jahre nach dieser Geschichte war ich mit Eric Allman in einem Sendmail-Workshop in LISA. Er bemerkte, dass sendmail für einige Optionen, über die er sprach, keine Standardwerte hat (in der Standard-sendmail.cf waren dies Werte, aber, wie Sie sich erinnern, gilt dies nicht für unseren Verlauf). Ich nutzte die Gelegenheit und erzählte ihm eine Geschichte über 500 Meilen. Er lag buchstäblich vor Lachen unter dem Tisch :-)

19. Das Einheiten-Dienstprogramm in SunOS versteht solche Einheiten nicht als „leichte Millisekunden“ (in der russischen Übersetzung heißt es „3 Millisekunden dauern und mit der Lichtgeschwindigkeit multiplizieren“, und die Ausgabe des Einheiten-Dienstprogramms wird im Original angezeigt).

Ja Na und? Auf allen Maschinen, mit denen ich arbeite, schreibe ich meine eigenen Einheiten.dat mit einer Reihe zusätzlicher Einheiten und Präfixe. Und im Allgemeinen, soweit ich mich erinnere, Einheiten, die ich unter AIX gestartet habe. Ich weiß nicht, ob ich etwas über die AIX-Lichtmillisekunden weiß. Schauen Sie sich die unit.dat an, die heute mit jeder Linux-Distribution geliefert wird. Er kennt wahrscheinlich leichte Millisekunden (Millilightsekunden).

20. Natürlich ist es sehr praktisch, sich auf "verlorene Notizen" zu beziehen ...

Natürlich. Und wie viele Zettel haben Sie vor fünf Jahren aufbewahrt?

21. Wie auch immer, diese Geschichte ist eine Fiktion!

Beantworten Sie die Frage: Wenn wir die technischen Details ignorieren, kann die falsche Konfiguration des Mailservers dazu führen, dass Briefe an Empfänger in der Nähe, aber nicht an entfernte Empfänger zugestellt werden? Ich denke die Antwort ist ja. Tatsächlich weiß ich, dass die Antwort ja ist, weil es tatsächlich passiert ist. Aber selbst wenn Sie meine Erfahrung nicht berücksichtigen und die Frage von außen betrachten, denke ich, dass dies immer noch möglich ist, obwohl es auf den ersten Blick unplausibel erscheint.

Wenn Sie noch Fragen haben, die ich nicht beantwortet habe, schreiben Sie mir eine E-Mail an trey+500mi@lopsa.org. Ich werde Ihre Frage zu den FAQ hinzufügen und Sie als Autor erwähnen. Aber höchstwahrscheinlich sage ich nur "Ich weiß es nicht, ich erinnere mich nicht und ich habe nicht die Daten, um zu antworten."

22. Die Unterschrift besagt, dass Sie Arbeit suchen. Ist das noch relevant? (Unterschrift in russischer Übersetzung entfernt)

Nicht mehr, aber danke für diese Frage!

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


All Articles