IPV4-GRUNDLAGEN
Wie werden Fragmente wieder zu einem Datagramm?
Sofern zulässig, kann ein Router ein IPv4-Datagramm aufteilen, damit es über den nächsten Übertragungsabschnitt passt. Der empfangende Host gruppiert zusammengehörige Fragmente, ordnet die jeweiligen Nutzdaten anhand ihres Offsets ein und wartet auf alle Teile. Fehlt ein Teil, kann die Wartezeit für das unvollständige Datagramm ablaufen. Die folgenden Diagramme erläutern den Mechanismus und stellen keine Produktmessung dar.
Übertragungsweg
Sender → Router → Ziel
Ein Router kann fragmentieren, wenn dies zulässig ist und die MTU des nächsten Hops kleiner ist.
Felder
ID · Offset · MF
Der Empfänger gruppiert die Teile anhand von Adressen, Protokoll und ID; Offsets bestimmen ihre Position.
Fehlender Teil
Warten → Zeitüberschreitung → Verwerfen
Das letzte Fragment allein belegt nicht, dass die Nutzdaten vollständig sind.
Checkliste zur Untersuchung – aufklappen
| Prüfpunkt | Was zu bestätigen ist | So wird geprüft |
|---|---|---|
| Übertragungsweg | Schnittstellen und MTUs | Tatsächliche Route dokumentieren |
| Fragmente | Adressen, Protokoll, ID, Offset und MF | Autorisierte Paketmitschnitte vergleichen |
| Dämpfung | Lückenlose Abdeckung | Paketmitschnitte entlang des Pfads und am Empfänger vergleichen |
Von einer Steuerung gesendete Informationen kommen nicht immer als ein vollständiges IP-Datagramm an. Manchmal werden sie in Fragmente aufgeteilt. Wie erkennt der Empfänger, welche Teile zusammengehören und an welche Position jeder Teil gehört? Was geschieht, wenn ein Teil nie ankommt? Um die IPv4-Fragmentierung zu verstehen, müssen Ethernet-Switching, IP-Routing und die Reassemblierung beim Empfänger getrennt betrachtet werden.

Zunächst zwischen einem IP-Datagramm und einem Ethernet-Frame unterscheiden
Steuerungen, Gateways und Server tauschen Daten über Übertragungsstrecken aus. Ein IP-Datagramm wird in einer äußeren Kapselung transportiert, die zur jeweiligen Übertragungsstrecke passt; bei Ethernet befindet es sich in einem Ethernet-Frame. Frames werden zwischen benachbarten Geräten übertragen, während IP-Adressen helfen, das Ziel auf der Netzwerkschicht zu bestimmen. Diese Schichten haben unterschiedliche Header und Längenbegrenzungen.
Die maximale IP-Übertragungseinheit einer Schnittstelle, kurz MTU, begrenzt die Größe eines darüber gesendeten IP-Pakets. Eine Route zwischen Subnetzen kann mehrere IP-Schnittstellen mit unterschiedlichen Grenzwerten durchlaufen. Ein Paket, das auf einem vorgelagerten Abschnitt passt, passt nicht zwangsläufig auch beim nächsten Hop. Dieser Leitfaden konzentriert sich auf Fragmentfelder und Reassemblierung und soll nicht nahelegen, dass jedes Übertragungsproblem bei großen Paketen durch Fragmentierung verursacht wird.
Wann kann Fragmentierung auftreten?
Ein IPv4-Sender kann vor der Übertragung fragmentieren. Auch ein Router, der IPv4 weiterleitet, kann ein Paket in kleinere Fragmente aufteilen, wenn das Paket die MTU des nächsten Hops überschreitet und Fragmentierung zulässig ist. Jedes Fragment besitzt einen eigenen IP-Header und transportiert einen Teil der ursprünglichen IP-Nutzdaten.
Ist im ursprünglichen Datagramm das DF-Flag (Don’t Fragment, nicht fragmentieren) gesetzt und muss es einen nächsten Hop mit kleinerer MTU passieren, kann der Router es nicht einfach aufteilen. Normalerweise verwirft er das Paket und sendet eine entsprechende ICMP-Fehlermeldung zurück; die tatsächliche Rückmeldung hängt von den Geräten und der Filterung ab. Ob der Sender seine Paketgröße anpasst, hängt vom Protokoll und der Implementierung ab.
Ein gewöhnlicher industrieller Layer-2-Switch leitet Ethernet-Frames weiter; er teilt ein zu großes IPv4-Datagramm nicht in IP-Fragmente auf. Ein Gerät mit Routing-Funktion kann IP-Verkehr je nach Schnittstellen, Konfiguration und tatsächlichem Pfad unterschiedlich verarbeiten. Die Aufschrift Switch oder Gateway auf einem Gehäuse legt nicht das Verhalten jedes einzelnen Ports fest.
Wie erkennt der Empfänger zusammengehörige Fragmente?
Der Header eines IPv4-Fragments enthält Quell- und Zieladresse, Protokoll und Identifikation. Der Empfänger verwendet diese Felder gemeinsam, um Fragmente dem ursprünglichen Datagramm zuzuordnen. Das Identifikationsfeld dient in erster Linie der Fragmentierung und Reassemblierung; betrachten Sie es nicht als dauerhaft global eindeutige Seriennummer für jedes Paket.
Stellen Sie sich ein langes Dokument vor, das in einzelne Seiten aufgeteilt ist: Eine Stapelkennzeichnung und Empfängerinformationen helfen dabei, die Seiten zu gruppieren. Dieser Vergleich hat Grenzen. Netzwerkgeräte verwenden Paketfelder und Reassemblierungsregeln, statt das Dokument zu verstehen, und eine ID ist weder eine Authentifizierung noch ein Sicherheitsmechanismus.
Paketmitschnitte am Sender, am Router und am Empfänger können unterschiedliche Perspektiven zeigen. Gruppieren Sie Fragmente nicht allein anhand einer ID und führen Sie Mitschnitte aus unterschiedlichen Richtungen und an verschiedenen Orten nicht ohne Kontext zusammen. Klären Sie zunächst Aufzeichnungspunkt, Zeitpunkt, IP-Adressen und Protokoll; untersuchen Sie anschließend die Fragmentfelder.

Was sagen Offset und MF-Flag aus?
Der Fragment-Offset gibt an, an welche Stelle innerhalb der ursprünglichen IP-Nutzdaten die Nutzdaten des Fragments gehören. Er wird in Einheiten von acht Bytes angegeben, nicht als Bytenummer innerhalb eines Ethernet-Frames. Der Empfänger ordnet die Teile anhand der Offsets an ihren Positionen ein, statt sie einfach in der Reihenfolge ihres Eintreffens aneinanderzufügen. Ein späteres Fragment kann zuerst eintreffen.
MF steht für More Fragments (weitere Fragmente): Bei einem nicht letzten Fragment ist MF normalerweise auf 1 gesetzt, beim letzten Fragment hingegen auf 0. MF = 0 kennzeichnet das Ende des Datagramms; dies beweist nicht, dass alle vorherigen Teile angekommen sind. Der Empfänger benötigt weiterhin eine lückenlose Abdeckung vom Anfang bis zum Ende, bevor er die reassemblierten Nutzdaten weitergibt.
Bei der Fragmentierung gilt außerdem eine Ausrichtungsregel: Mit Ausnahme des letzten Fragments müssen die Nutzdatenlängen der Fragmente normalerweise Vielfache von acht Bytes sein. Betreiber müssen nicht jedes Binärfeld von Hand berechnen, sollten aber prüfen, ob ein Mitschnittwerkzeug das rohe Offset-Feld oder eine bereits umgerechnete Byteposition anzeigt.
Was geschieht, wenn ein Teil verloren geht?
Der Empfänger hält üblicherweise einen temporären Reassemblierungszustand vor und wartet auf fehlende Fragmente. Ist das Datagramm beim Ablauf der Zeitüberschreitung für diesen Zustand noch unvollständig, wird es verworfen; eine Anwendung kann die verbleibenden Fragmente normalerweise nicht als vollständiges IP-Datagramm verwenden. Puffergrenzen, die Behandlung von Zeitüberschreitungen und Sicherheitsrichtlinien unterscheiden sich je nach System. Allgemeine Erläuterungen legen daher keine Werte für ein bestimmtes Produkt fest.
Mehr Fragmente bedeuten mehr unabhängig voneinander übertragene Teile für ein Datagramm. Ein fehlender Teil kann verhindern, dass das gesamte Datagramm reassembliert wird. Deshalb sind der vollständige Pfad und jedes einzelne Fragment relevant. Ein Übertragungsproblem bei großen Paketen allein beweist jedoch keinen Fragmentverlust: Überlastung, Filterung, Geräteauslastung und andere Verbindungsprobleme können ähnliche Auswirkungen haben.
Ob TCP oder eine Anwendung einen erneuten Übertragungsversuch unternimmt, ist eine Frage höherer Schichten und hängt vom Protokoll und der Implementierung ab. Die IPv4-Fragmentierung selbst bietet keinen allgemeinen Mechanismus zur zuverlässigen erneuten Übertragung einzelner Fragmente. Eine Anwendung, die UDP verwendet, sollte nicht davon ausgehen, dass IP fehlende Nutzdaten automatisch ersetzt.

Was sollte bei einer Untersuchung dokumentiert werden?
Erfassen Sie in einer autorisierten Testumgebung zunächst Sender, Layer-2-Switches, Routing-Schnittstellen, Tunnel und Empfänger. Dokumentieren Sie Schnittstellen-MTUs, DF-Einstellung, Protokoll sowie Ort und Zeitpunkt der Aufzeichnung. Prüfen Sie für jede mutmaßlich zusammengehörige Fragmentgruppe Quell- und Zieladresse, Protokoll, Identifikation, Offset und MF, statt nur die Paketlänge zu betrachten.
Wenn beim Sender ein vollständiges Datagramm und an der ausgehenden Schnittstelle des Routers mehrere Fragmente zu sehen sind, prüfen Sie die IP-Weiterleitung und die Schnittstellen-MTU. Verlassen alle Fragmente diese Schnittstelle, erreichen aber nur einige den Empfänger, untersuchen Sie Verluste oder Filterung entlang des tatsächlichen Pfads. Die Konfiguration der Portspiegelung, Offloading der Netzwerkschnittstelle und der Aufzeichnungspunkt können beeinflussen, was sichtbar ist; ein einzelner Screenshot zeigt nicht das gesamte Netzwerk.
Berücksichtigen Sie auch, wie Sicherheitsgeräte mit Fragmenten umgehen. Manche Regeln prüfen Ports der Transportschicht, ein nicht erstes Fragment enthält jedoch normalerweise nicht den vollständigen Transport-Header. Wie ein Gerät Zustandsinformationen zuordnet und ob es Fragmente zulässt, hängt von seiner Implementierung und seinen Regeln ab. Dass das erste Fragment passiert, beweist nicht, dass jedes Fragment passiert ist. Sichern Sie die bestehende Konfiguration und stimmen Sie Änderungen mit den für Betriebssicherheit und Informationssicherheit verantwortlichen Personen ab.
Wenn die Reassemblierung wiederholt fehlschlägt, untersuchen Sie Pfad-MTU, Paketverluste und Filterung, statt lediglich die Wartezeiten des Empfängers zu verlängern. Echtzeitanwendungen und Anwendungen, die auf vollständige Daten angewiesen sind, können unterschiedliche Anforderungen haben. Entscheiden Sie über Änderungen anhand des Protokolldesigns, der Gerätedokumentation und kontrollierter Tests.
Lassen Sie bei Produktionssteuerungen das Testzeitfenster und den Testumfang vom Anlagenbetreiber genehmigen. Deaktivieren Sie keine Firewall, vergrößern Sie keine Frame-Größen und aktivieren Sie kein Routing, ohne die Auswirkungen zu verstehen und einen Rücksetzplan zu haben. Prüfen Sie die Protokollunterstützung und Netzwerkgrenzen, bevor Sie eine begrenzte Änderung testen.
Die einzelnen Schritte getrennt betrachten
IPv4-Fragmentierung ist ein Mechanismus der Netzwerkschicht. Der Empfänger verwendet Adressen, Protokoll, Identifikation, Offsets und MF-Informationen, um ein Datagramm zu reassemblieren. Teile können in anderer Reihenfolge eintreffen, aber das Datagramm muss vollständig sein und die Regeln des Empfängers erfüllen, bevor es an höhere Schichten übergeben wird. MTU, IP-Routing, Frame-Grenzen von Switches und erneute Übertragungsversuche der Anwendung gehören zu unterschiedlichen Schritten und müssen jeweils gesondert belegt werden.
Industrie-Switches und Gateways von FCTELE können Bestandteil industrieller Ethernet-Netzwerke sein. Ob ein bestimmtes Produkt und seine Firmware IP-Routing, Schnittstellen-MTU-Einstellungen oder Filterung unterstützen, muss anhand der jeweiligen Dokumentation geprüft werden. Diese Abbildungen erläutern allgemeine Mechanismen; sie stellen weder eine Messung noch eine interne Schaltung eines bestimmten FCTELE-Modells dar.
Quellen
RFC 791: Internetprotokoll · RFC 6864: IPv4-Identifikationsfeld · Produktinformationen zum verwaltbaren Industrie-Switch von FCTELE.
Übersetzt aus dem chinesischen Fachartikel: Chinesischen Originalartikel lesen.
Häufige Fragen
Fragmentiert ein Ethernet-Switch ein IPv4-Datagramm?
Ein gewöhnlicher Layer-2-Switch leitet Frames weiter; IP-Fragmentierung kann bei einem IPv4-Sender oder einem Router erfolgen, sofern dies zulässig ist.
Bedeutet MF = 0, dass alle Fragmente angekommen sind?
Nein. Es kennzeichnet das letzte Fragment; der Empfänger benötigt weiterhin eine lückenlose Abdeckung der ursprünglichen Nutzdaten.
Was geschieht, wenn ein Fragment fehlt?
Der Empfänger wartet gemäß seinen Reassemblierungsregeln; ein unvollständiges Datagramm wird verworfen, wenn die Zeitüberschreitung für den Reassemblierungszustand abläuft.
Geltungsbereich und weiterführende Literatur
Dies ist eine allgemeine Erläuterung zu IPv4, kein Produkttest und keine Messung.
Wie Industrie-Switches Frames weiterleiten · RFC 791 · RFC 6864


