Zusammenfassung
- Der Wert 32 im Fragment Offset bezeichnet Byte 256 der ursprünglichen Daten, nicht Byte 32.
- Jedes Fragment mit MF=1 muss eine durch acht teilbare Datenlänge haben; das letzte Fragment darf davon abweichen.
Keine Bytezahl im Feld
RFC 791 definiert Fragment Offset als 13-Bit-Feld in Einheiten von acht Oktetten. Der Empfänger multipliziert den Feldwert mit acht und erhält so den Beginn der Fragmentdaten im ursprünglichen Datagramm. Aus 32 wird damit 256.
Die Rechnung passt zum begrenzten Header. Dreizehn Bits ergeben 8192 Positionen. Mit acht Oktetten pro Position reicht die Koordinate über 65.536 Oktette und damit über den Bereich, den das 16-Bit-Feld Total Length beschreibt. Die unteren drei Bits werden nicht gesendet, sondern beim Interpretieren als null ergänzt.
Gesparte Bits werden zur Senderpflicht
Auch der Beginn des nächsten Fragments muss darstellbar bleiben. Deshalb muss bei MF=1 die Datenlänge des aktuellen Fragments durch acht teilbar sein. Gemeint ist der Datenteil; die gesamte Fragmentlänge enthält zusätzlich den IPv4-Header.
Für das letzte Fragment ist kein weiterer Startpunkt nötig. Seine Datenlänge darf daher kein Vielfaches von acht sein. Die korrekte Regel betrifft also nicht jedes Fragment, sondern jedes nicht abschließende Fragment.
Zwei Felder, zwei Aussagen
Der Offset beschreibt den Anfang; MF zeigt, ob weitere Daten folgen. Ein unfragmentiertes Datagramm hat Offset null und MF=0. Das erste Fragment kann ebenfalls bei null beginnen, trägt aber MF=1. Das letzte Fragment kann einen Offset größer als null und MF=0 haben.
Bei der Wiederzusammensetzung werden Offset × 8 und die Datenlänge zu einem Byteintervall im ursprünglichen Datenraum. RFC 815 beschreibt bereits empfangene Intervalle und noch offene Lücken. Ein Fragment kann eine Lücke vollständig füllen, an einer Seite verkürzen oder teilen. MF=0 liefert die Endausdehnung, macht die Wiederzusammensetzung aber erst zusammen mit allen vorherigen Intervallen vollständig.
Eine gemeinsame Koordinate bei weiterer Aufteilung
Wird ein Fragment erneut geteilt, bleiben die neuen Offsets auf das ursprüngliche unfragmentierte Datagramm bezogen. Es entsteht keine lokale Nummerierung. Dadurch können mehrere Geräte nacheinander teilen, ohne dass der Empfänger die Aufteilungsgeschichte rekonstruieren muss.
Die historische Sparmaßnahme verschiebt Komplexität: Der Sender hält die impliziten Bits durch Ausrichtung ein, der Empfänger stellt daraus wieder Bytepositionen her.
Quellen
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
