Summary

  • RFC 970 leitet für unendlichen Speicher, FIFO, begrenzte Paketlebenszeit und mindestens zwei Schalter ab, dass dauerhafte Überlast schließlich sämtliche Pakete scheitern lässt.
  • Im Versuch stauten sich höchstens 916 IP-Datagramme zwischen Ethernet und einer Leitung mit 9600 Baud. Die TCP-Verbindung brach vorher wegen Zeitüberschreitung ab; der berechnete Endzustand wurde nicht direkt beobachtet.

Ein Lager ohne Kapazitätsgrenze hat immer noch eine schmale Ausfahrt. Kommen Pakete schneller an, als die Leitung sie senden kann, wächst die Warteschlange. Während sie warten, verstreicht ihre Lebenszeit. Im Gedankenexperiment von John Nagle verlässt ein Paket den ersten Schalter schließlich mit genau einer verbleibenden Einheit. Der zweite zieht sie ab und verwirft das Paket. Speicher war nicht das Problem. Die Auslieferung war es.

Mit RFC 970 vom Dezember 1985 wollte Nagle die damalige Fixierung auf Puffererschöpfung aufbrechen. Er setzte Speicher als unbegrenzt voraus und behielt eine einzige FIFO-Reihenfolge, endliche Paketlebenszeit, mindestens zwei Schalter und anhaltende Überlast. Das Ergebnis ist eine Ableitung aus diesen Annahmen. Es ist keine Meldung, dass das gesamte Internet damals alle Pakete verloren hätte.

Eine Beispielrechnung macht die Grenze der Speicherlösung sichtbar. Bei vier Leitungen mit je 56 Kilobit pro Sekunde und höchstens 15 Sekunden Paketlebenszeit berechnete Nagle einen maximalen Bedarf von 420 Kilobyte. Für diese Konfiguration reichen die Puffer gegen Speicherknappheit. Sie verlängern nicht die Gültigkeit eines Pakets, das den nächsten Schalter zu spät erreicht. Der RFC beschreibt die Lebenszeit in seinem Modell von 1985 als verbleibende Sekunden; heutige Hop-Zählung darf die damalige Rechnung nicht ersetzen.

Nagle baute auch einen Schalter mit mehreren Megabyte Speicher. Zwischen Ethernet und einer Leitung mit 9600 Baud erreichte die Warteschlange 916 IP-Datagramme. Dann lief die TCP-Verbindung wegen der stark gestiegenen Umlaufzeit in ein Timeout. Die Warteschlange hatte den berechneten Dauerzustand mit maximaler Lebenszeit noch nicht erreicht. Gemessen wurden Stau und TCP-Ausfall, nicht das vollständige Verschwinden aller Pakete.

Die eigentliche Macht liegt in der Reihenfolge. Eine gemeinsame FIFO belohnt den Host, der mehr Pakete einspeist: Er besetzt mehr Plätze und kann mehr Übertragungen erhalten. Nagle schlug deshalb eine Warteschlange je Quellhost vor. Der Schalter bedient nichtleere Schlangen reihum und sendet je Runde ein noch gültiges Paket. Mehr Verkehr verschafft dem eigenen Host keinen zusätzlichen Platz im Turnus; er verlängert nur dessen Wartezeit. Ein Source-Quench-Hinweis bei mehr als ungefähr zwei Paketen pro Host war Teil des damaligen Vorschlags, keine Aussage über heutige Praxis.

Die Schwachstelle benannte Nagle selbst. Wer viele Quelladressen vortäuscht, kann mehrere Anteile beanspruchen. Auch macht ein fairer Schalter das ganze Netz nicht automatisch fair. Der Ansatz passt vor allem an einen Engpass zwischen schnellem lokalem Netz und begrenzter Fernverbindung. Laut offiziellem RFC-Eintrag ist der Text ein Diskussionsmemo; die vorgeschlagenen Verfahren wurden darin nicht zu Standards erklärt. Der Streitpunkt bleibt greifbar: Wer verteilt die knappen Sendeplätze, wenn Speicher keinen Vorwand mehr liefert?

Sources