Entschlüsselung, IP-Fragmentierung und Reassemblierung: Mylinking™ Network Packet Broker identifiziert IP-fragmentierte Pakete

Einführung

Wir alle kennen das Prinzip der Klassifizierung und Nichtklassifizierung von IP und seine Anwendung in der Netzwerkkommunikation. Die IP-Fragmentierung und -Reassemblierung ist ein wichtiger Mechanismus bei der Paketübertragung. Überschreitet die Größe eines Pakets die maximale Übertragungseinheit (MTU) einer Netzwerkverbindung, wird es durch die IP-Fragmentierung zur Übertragung in mehrere kleinere Fragmente aufgeteilt. Diese Fragmente werden unabhängig voneinander im Netzwerk übertragen und am Zielort durch den IP-Reassemblierungsmechanismus wieder zu vollständigen Paketen zusammengesetzt. Dieser Prozess der Fragmentierung und Reassemblierung stellt sicher, dass große Pakete im Netzwerk übertragen werden können und gleichzeitig die Integrität und Zuverlässigkeit der Daten gewährleistet ist. In diesem Abschnitt sehen wir uns die Funktionsweise der IP-Fragmentierung und -Reassemblierung genauer an.

IP-Fragmentierung und -Reassemblierung

Verschiedene Datenverbindungen haben unterschiedliche maximale Übertragungseinheiten (MTU). Beispielsweise beträgt die MTU der FDDI-Datenverbindung 4352 Byte und die Ethernet-MTU 1500 Byte. MTU steht für Maximum Transmission Unit und bezeichnet die maximale Paketgröße, die über das Netzwerk übertragen werden kann.

FDDI (Fiber Distributed Data Interface) ist ein Hochgeschwindigkeitsstandard für lokale Netzwerke (LANs), der Glasfaser als Übertragungsmedium nutzt. Die Maximum Transmission Unit (MTU) ist die maximale Paketgröße, die von einem Sicherungsschichtprotokoll übertragen werden kann. In FDDI-Netzwerken beträgt die MTU 4352 Byte. Das bedeutet, dass die maximale Paketgröße, die vom Sicherungsschichtprotokoll im FDDI-Netzwerk übertragen werden kann, 4352 Byte beträgt. Überschreitet das zu übertragende Paket diese Größe, muss es fragmentiert werden, um es für die Übertragung in mehrere Fragmente passender MTU-Größe aufzuteilen und beim Empfänger wieder zusammenzusetzen.

Bei Ethernet beträgt die MTU typischerweise 1500 Byte. Das bedeutet, dass Ethernet Pakete mit einer Größe von bis zu 1500 Byte übertragen kann. Überschreitet die Paketgröße das MTU-Limit, wird das Paket für die Übertragung in kleinere Fragmente fragmentiert und am Zielort wieder zusammengesetzt. Die Reassemblierung des fragmentierten IP-Datagramms kann nur vom Zielhost durchgeführt werden; der Router führt keine Reassemblierung durch.

Wir haben bereits über TCP-Segmente gesprochen, aber MSS steht für Maximum Segment Size und spielt eine wichtige Rolle im TCP-Protokoll. MSS bezeichnet die Größe des maximal zulässigen Datensegments, das in einer TCP-Verbindung gesendet werden kann. Ähnlich wie MTU wird MSS verwendet, um die Paketgröße zu begrenzen, allerdings auf der Transportschicht, der TCP-Protokollschicht. Das TCP-Protokoll überträgt die Daten der Anwendungsschicht, indem es sie in mehrere Datensegmente aufteilt, wobei die Größe jedes Datensegments durch MSS begrenzt wird.

Die MTU jeder Datenverbindung ist unterschiedlich, da jeder Datenverbindungstyp für unterschiedliche Zwecke verwendet wird. Je nach Verwendungszweck können unterschiedliche MTUs gehostet werden.

Angenommen, der Sender möchte ein 4000 Byte großes Datagramm über eine Ethernet-Verbindung senden. Dieses Datagramm muss für die Übertragung in drei kleinere Datagramme aufgeteilt werden. Dies liegt daran, dass die Größe jedes einzelnen Datagramms die MTU-Grenze von 1500 Byte nicht überschreiten darf. Nach dem Empfang der drei kleinen Datagramme setzt der Empfänger sie anhand der Sequenznummer und des Offsets jedes Datagramms wieder zum ursprünglichen 4000 Byte großen Datagramm zusammen.

 IP-Fragmentierung und -Reassemblierung

Bei einer fragmentierten Übertragung macht der Verlust eines Fragments das gesamte IP-Datagramm ungültig. Um dies zu vermeiden, wurde in TCP MSS eingeführt, bei dem die Fragmentierung auf der TCP-Ebene statt auf der IP-Ebene erfolgt. Der Vorteil dieses Ansatzes besteht darin, dass TCP die Größe jedes Segments präziser steuern kann, wodurch die mit der Fragmentierung auf der IP-Ebene verbundenen Probleme vermieden werden.

Bei UDP versuchen wir, keine Datenpakete zu senden, die die MTU überschreiten. Dies liegt daran, dass UDP ein verbindungsorientiertes Transportprotokoll ist, das im Gegensatz zu TCP keine Zuverlässigkeit und keine Übertragungswiederholungsmechanismen bietet. Wenn wir ein UDP-Datenpaket senden, das die MTU überschreitet, wird es von der IP-Schicht für die Übertragung fragmentiert. Sobald eines der Fragmente verloren geht, kann das UDP-Protokoll keine erneute Übertragung durchführen, was zu Datenverlust führt. Um eine zuverlässige Datenübertragung zu gewährleisten, sollten wir daher versuchen, die Größe der UDP-Datenpakete innerhalb der MTU zu kontrollieren und eine fragmentierte Übertragung zu vermeiden.

Mylinking ™ Netzwerkpaketbrokerkann automatisch verschiedene Arten von Tunnelprotokollen VxLAN/NVGRE/IPoverIP/MPLS/GRE usw. identifizieren und kann entsprechend dem Benutzerprofil die Tunnelflussausgabe der inneren oder äußeren Eigenschaften bestimmen.

○ Es kann VLAN-, QinQ- und MPLS-Labelpakete erkennen

○ Kann das innere und äußere VLAN identifizieren

○ IPv4/IPv6-Pakete können identifiziert werden

○ Kann VxLAN-, NVGRE-, GRE-, IPoverIP-, GENEVE- und MPLS-Tunnelpakete identifizieren

○ Fragmentierte IP-Pakete können identifiziert werden (Unterstützt die Identifizierung von IP-Fragmenten und unterstützt die Neuzusammensetzung von IP-Fragmenten, um die L4-Funktionsfilterung für alle IP-Fragmentierungspakete zu implementieren. Implementieren Sie eine Richtlinie zur Verkehrsausgabe.)

Warum ist IP und TCP fragmentiert?

Da die IP-Schicht bei der Netzwerkübertragung das Datenpaket automatisch fragmentiert, wird das Datenpaket automatisch von der IP-Schicht fragmentiert und normal übertragen, auch wenn die TCP-Schicht die Daten nicht segmentiert. Warum benötigt TCP also eine Fragmentierung? Ist das nicht übertrieben?

Angenommen, es gibt ein großes Paket, das auf der TCP-Schicht nicht segmentiert ist und während der Übertragung verloren geht, überträgt TCP es erneut, allerdings nur als ganzes großes Paket (obwohl die IP-Schicht die Daten in kleinere Pakete mit jeweils einer MTU-Länge aufteilt). Dies liegt daran, dass die IP-Schicht sich nicht um die zuverlässige Datenübertragung kümmert.

Mit anderen Worten: Wenn die Transportschicht die Daten beim Transport einer Maschine zum Netzwerk fragmentiert, erfolgt dies nicht auf der IP-Schicht. Wenn die Fragmentierung auf der Transportschicht nicht erfolgt, ist eine Fragmentierung auf der IP-Schicht möglich.

Vereinfacht ausgedrückt segmentiert TCP die Daten, sodass die IP-Schicht nicht mehr fragmentiert ist. Bei erneuten Übertragungen werden nur kleine Teile der fragmentierten Daten erneut übertragen. Auf diese Weise können die Übertragungseffizienz und -zuverlässigkeit verbessert werden.

Wenn TCP fragmentiert ist, ist die IP-Schicht dann nicht fragmentiert?

In der obigen Diskussion wurde erwähnt, dass nach der TCP-Fragmentierung beim Sender keine Fragmentierung auf der IP-Ebene erfolgt. Es kann jedoch sein, dass sich entlang der Transportverbindung andere Geräte auf der Netzwerkebene befinden, deren maximale Übertragungseinheit (MTU) kleiner ist als die MTU beim Sender. Daher wird das Paket, obwohl es beim Sender fragmentiert wurde, beim Durchlaufen der IP-Ebene dieser Geräte erneut fragmentiert. Schließlich werden alle Shards beim Empfänger zusammengesetzt.

Wenn wir die minimale MTU über die gesamte Verbindung bestimmen und Daten mit dieser Länge senden können, tritt keine Fragmentierung auf, egal an welchen Knoten die Daten übertragen werden. Diese minimale MTU über die gesamte Verbindung wird als Pfad-MTU (PMTU) bezeichnet. Wenn ein IP-Paket bei einem Router ankommt und die MTU des Routers kleiner als die Paketlänge ist und das DF-Flag (Do not Fragment) auf 1 gesetzt ist, kann der Router das Paket nicht fragmentieren, sondern nur verwerfen. In diesem Fall generiert der Router eine ICMP-Fehlermeldung (Internet Control Message Protocol) mit dem Namen „Fragmentation Needed But DF Set“. Diese ICMP-Fehlermeldung wird mit dem MTU-Wert des Routers an die Quelladresse zurückgesendet. Wenn der Absender die ICMP-Fehlermeldung erhält, kann er die Paketgröße basierend auf dem MTU-Wert anpassen, um eine erneute verbotene Fragmentierung zu vermeiden.

IP-Fragmentierung ist eine Notwendigkeit und sollte auf der IP-Ebene, insbesondere auf Zwischengeräten in der Verbindung, vermieden werden. Daher ist in IPv6 die Fragmentierung von IP-Paketen durch Zwischengeräte verboten und kann nur am Anfang und Ende der Verbindung durchgeführt werden.

Grundlegendes Verständnis von IPv6

IPv6 ist die sechste Version des Internetprotokolls und der Nachfolger von IPv4. IPv6 verwendet eine 128-Bit-Adresslänge und kann somit mehr IP-Adressen bereitstellen als IPv4 mit 32 Bit. Dies liegt daran, dass der IPv4-Adressraum allmählich erschöpft ist, während der IPv6-Adressraum sehr groß ist und den Anforderungen des zukünftigen Internets gerecht wird.

Wenn wir über IPv6 sprechen, bringt es neben mehr Adressraum auch bessere Sicherheit und Skalierbarkeit mit sich, was bedeutet, dass IPv6 im Vergleich zu IPv4 ein besseres Netzwerkerlebnis bieten kann.

Obwohl IPv6 schon lange existiert, verläuft seine weltweite Verbreitung noch relativ langsam. Dies liegt vor allem daran, dass IPv6 mit dem bestehenden IPv4-Netzwerk kompatibel sein muss, was eine Umstellung und Migration erfordert. Mit der Erschöpfung der IPv4-Adressen und der steigenden Nachfrage nach IPv6 setzen jedoch immer mehr Internetdienstanbieter und Organisationen schrittweise auf IPv6 um und realisieren schrittweise den Dual-Stack-Betrieb von IPv6 und IPv4.

Zusammenfassung

In diesem Kapitel haben wir uns genauer angesehen, wie IP-Fragmentierung und -Reassemblierung funktionieren. Unterschiedliche Datenverbindungen haben unterschiedliche Maximum Transmission Units (MTU). Überschreitet die Größe eines Pakets die MTU-Grenze, wird es durch IP-Fragmentierung zur Übertragung in mehrere kleinere Fragmente aufgeteilt und nach der Ankunft am Ziel mithilfe des IP-Reassemblierungsmechanismus wieder zu einem vollständigen Paket zusammengesetzt. Der Zweck der TCP-Fragmentierung besteht darin, die Fragmentierung der IP-Schicht zu verhindern und bei der erneuten Übertragung nur die fragmentierten kleinen Daten erneut zu übertragen, um die Übertragungseffizienz und -zuverlässigkeit zu verbessern. Entlang der Transportverbindung können sich jedoch weitere Geräte der Netzwerkschicht befinden, deren MTU kleiner ist als die des Absenders, sodass das Paket auf der IP-Schicht dieser Geräte dennoch erneut fragmentiert wird. Fragmentierung auf der IP-Schicht sollte möglichst vermieden werden, insbesondere auf Zwischengeräten in der Verbindung.


Beitragszeit: 07.08.2025