Heim Betrieb und Instandhaltung Sicherheit Was ist das Prinzip der Fragmentierung und Assemblierung von IP-Datagrammen?

Was ist das Prinzip der Fragmentierung und Assemblierung von IP-Datagrammen?

May 24, 2023 am 11:12 AM
ip


Wenn ein Host Daten an einen anderen Host sendet, müssen die Daten über mehrere Routing-Ebenen weitergeleitet werden. Der Weiterleitungsprozess von IP auf der Routing-Ebene ist relativ kompliziert. Wie wird das vom Zielhost gesendete Datagramm verarbeitet?

Zuerst müssen wir das Format des Datagramms verstehen:

Was ist das Prinzip der Fragmentierung und Assemblierung von IP-Datagrammen?

IP-Weiterleitung und -Steuerung werden durch den Header des IP-Datagramms bestimmt

Der Wert der 4-Bit-Header-Länge wird in Einheiten von 4 Bytes angegeben Mindestwert Es ist 5, was bedeutet, dass die minimale Header-Länge 4x5=20 Bytes beträgt, was dem IP-Header ohne Optionen entspricht. Der durch die 4-Bit-Energietabelle dargestellte Maximalwert beträgt 15, was bedeutet, dass die maximale Header-Länge beträgt ist 60 Wörter. Abschnitt

Das 8-Bit-TOS-Feld enthält 3 Bits, die zur Angabe der Priorität des IP-Datagramms verwendet werden (derzeit veraltet), und 4 Bits, die optionale

angeben, einschließlich der minimalen Verzögerung, des maximalen Durchsatzes und der maximalen Zuverlässigkeit des Servicetyp, Geschlecht und Mindestkosten, und die Gesamtzahl der Bits ist immer 0.

Die Gesamtlänge von 16 Bit ist die Anzahl der Bytes des gesamten Datagramms (einschließlich IP-Header und IP-Layer-Nutzlast).

Jedes Mal, wenn ein IP-Datagramm übertragen wird, wird die 16-Bit-Kennung um 1 erhöht

, was zum Fragmentieren und erneuten Zusammensetzen des Datagramms verwendet werden kann.

3-Bit-Flag und 13-Bit-Slice-Offset für das Slicing. TTL (Time to live) wird wie folgt verwendet

:

Der Quellhost legt eine Überlebenszeit für das Datenpaket fest, z. B. 64. Jedes Mal, wenn es einen Router passiert

, verringert es den Wert um 1. Wenn dies der Fall ist Wenn das Netzwerk des Zielhosts nach einer zu langen Zeit immer noch nicht gefunden wird, wird das Paket verworfen. Daher ist die Einheit dieser Überlebenszeit nicht Sekunden, sondern Hops. Das Protokollfeld gibt an, ob das Protokoll der oberen Schicht TCP, UDP, ICMP oder IGMP ist.

Dann gibt es noch die Prüfsumme, die nur den IP-Header überprüft, und das übergeordnete Protokoll ist für die Datenüberprüfung verantwortlich.

Die IP-Adresslänge von IPv4 beträgt 32 Bit.

Im IP-Datagramm beträgt die Gesamtlänge ein 16-Bit-Feld, und die maximale Länge eines Datagramms beträgt 2^16-1. Obwohl das längstmögliche Datagramm die Übertragungseffizienz verbessern kann, überschreitet es selten 1500 Bytes Da es hier 1500 Bytes überschreitet, wird davon ausgegangen, dass dieses Datagramm fragmentiert werden sollte. Nachdem das IP-Datagramm fragmentiert wurde, bildet jedes Fragment ein Paket mit einem IP-Header und wird unabhängig weitergeleitet. Nach der Ankunft am Zielhost verarbeitet die IP-Schicht des Zielhosts alle empfangenen Fragmente, bevor sie an die Transportschicht übertragen werden werden wieder zu einem Datagramm zusammengesetzt.

1. IP-Fragmentierungsprinzip:

Der Prozess der Fragmentierung und Neuzusammensetzung ist für die Transportschicht erst dann möglich, wenn er die nächste Station erreicht neu zusammengesetzt und durch die IP-Schicht des Ziels vervollständigt. Das fragmentierte Datagramm kann bei Bedarf erneut fragmentiert werden. sodass bei der Assemblierung die gleichen IP-Datenpaketfragmente identifiziert werden können. Im IP-Header zeichnet die 16-Bit-Identifikationsnummer eindeutig die ID eines IP-Pakets auf, und IP-Fragmente mit derselben ID werden wieder zusammengesetzt, während der 13-Bit-Fragment-Offset die Position eines IP-Fragments relativ zum gesamten Paket aufzeichnet ; Das 3-Bit-Flag in der Mitte dieser beiden Tabellen markiert, ob sich hinter diesem Fragment neue Fragmente befinden. Der Empfänger kann die IP-Daten mithilfe der in diesen drei Feldern bereitgestellten Informationen neu zusammensetzen. Dabei handelt es sich um alle Informationen, die die IP-Fragmentierung ausmachen.

(1) Die Rolle des Flag-Feldes

0 DF MF

Das Flag-Feld hat drei Ziffern, das höchste Bit ist 0, dieser Wert muss in alle Gruppen kopiert werden

Der Wert „Nicht fragmentieren“ (DF) muss sein kopiert. DF=1 bedeutet, dass der empfangende Host das Paket nicht fragmentieren kann. Wenn das Paket nicht fragmentiert werden kann, seine Länge jedoch die MTU überschreitet, kann das Paket nur verworfen werden und es muss eine ICMP-Fehlermeldung verwendet werden, um den Quellhost zu benachrichtigen. DF=0 bedeutet, dass es fragmentiert werden kann

Fragmentierung (MF) gibt an, ob das Fragment das letzte Fragment ist, MF=1 bedeutet, dass das akzeptierte Fragment nicht das letzte Fragment ist, MF=0 bedeutet, dass das akzeptierte Fragment das letzte Fragment ist Das absichtliche Senden einiger IP-Fragmente anstelle aller Fragmente führt dazu, dass der Zielhost immer darauf wartet, dass die Fragmente verbraucht werden und Systemressourcen belegen.

2. MTU-Prinzip (Maximum Transmission Unit)

Wenn zwei entfernte CPs miteinander verbunden sind, müssen ihre Daten viele Router und verschiedene Netzwerkmedien passieren, um das andere Ende zu erreichen

, verschiedene Medien im Netzwerk. Die MTUs sind einfach unterschiedlich wie ein langer Abschnitt einer Wasserleitung, der aus Wasserrohren unterschiedlicher Dicke (unterschiedliche MTU) besteht. Die maximale Wassermenge, die durch diesen Abschnitt der Wasserleitung fließt, wird durch die dünnste Wasserleitung in der Mitte bestimmt.

Für die oberen Protokolle der Netzwerkschicht (hier nehmen wir den TCP/IP-Protokollcluster als Beispiel) ist ihnen die Dicke der Wasserleitungen egal, weil sie denken, dass es eine Frage des Netzwerks ist. Auf der Netzwerkschicht erkennt das IP-Protokoll die Größe jedes vom Protokoll der oberen Schicht übertragenen Datenpakets und bestimmt anhand der MTU-Größe der Maschine, ob es fragmentiert werden muss. Der größte Nachteil von Sharding besteht darin, dass es die Übertragungsleistung verringert und die Aufteilung von Aufgaben, die einmal erledigt werden können, in mehrere Prozesse erfordert. Daher achten die höheren Schichten des Netzwerks (Implementierung der Transportschicht) häufig darauf, da einige höhere Schichten aus bestimmten Gründen möglicherweise erfordern, dass die Pakete nicht fragmentiert werden können, und der Index dem Header der IP eine Beschriftung hinzufügt Datagramm. :DF Wenn ein IP-Datenpaket über ein großes Netzwerksegment übertragen wird und die MTU kleiner als das Datenpaket ist, verwirft das Weiterleitungsgerät das Datenpaket entsprechend der Situation. Dann wird eine Fehlermeldung an den Absender zurückgegeben, was häufig zu Kommunikationsproblemen führt. Glücklicherweise beträgt die MTU der meisten Netzwerkverbindungen 1500 oder mehr. Bei UDP ist es egal, in welcher Reihenfolge die Datenpakete eintreffen ist richtig, daher stellt UDP im Allgemeinen keine großen Anforderungen an die Fragmentierung. Bei TCP ist die Reihenfolge der Datenpakete sehr wichtig Fehler während des Übertragungsprozesses, daher stellen einige TCP-Anwendungen Anforderungen an die Fragmentierung – sie können nicht fragmentiert werden Um die beste Übertragungsleistung zu erzielen, handelt das TCP-Protokoll beim Verbindungsaufbau normalerweise den MSS-Wert beider Parteien aus. Dieser Wert wird bei der Implementierung des TCP-Protokolls durch MTU ersetzt IP-Datenpaket) 20 Bits und der Header des TCP-Datensegments 20 Bits, daher beträgt die MSS-Größe häufig 1460. Beide Parteien bestimmen den maximalen MSS-Wert dieser Verbindung basierend auf dem bereitgestellten minimalen MSS-Wert

II

Ein unfragmentiertes Datagramm. Das Fragmentierungsinformationsfeld ist alle 0, das heißt, mehrere Fragmentierungsflags sind 0 und der Offset ist 0. Um ein Datagramm zu fragmentieren, müssen Sie die folgenden Schritte ausführen:

(1) Überprüfen Sie das DF-Flag Überprüfen Sie, ob Fragmentierung zulässig ist. Wenn dieses Bit gesetzt ist, wird das Datagramm verworfen und ein ICMP-Fehler an die Quelle zurückgegeben.

(2) Basierend auf dem MTU-Wert wird das Datenfeld in zwei oder Teilepaare unterteilt. Mit Ausnahme des letzten Datenteils, alles neu. Die Länge der Datenoption muss ein Vielfaches von 8 Bytes sein. Mit Ausnahme des letzten Datagramms sind für alle Fragmente mehrere Fragmentierungsflags gesetzt. (5) Das Fragment-Offset-Feld in jedem Fragment wird auf die Position gesetzt, die dieser Datenteil im ursprünglichen Datagramm einnimmt. Diese Position ist relativ zum Anfang des ursprüngliches unfragmentiertes Datagramm.

(6) Wenn Optionen im ursprünglichen Datagramm enthalten sind, bestimmt das höherwertige Byte des Optionstypbytes, ob diese Informationen in alle fragmentierten Datagramme oder nur in das erste Datagramm kopiert werden.

(7) Legen Sie das Header-Feld und das Gesamtlängenfeld des neuen Datagramms fest.

(8) Berechnen Sie das Prüfsummenfeld im Nachrichtenkopf neu.

Zu diesem Zeitpunkt werden diese fragmentierten Datagramme wie ein vollständiges IP-Datagramm weitergeleitet. Jedes Datagrammfragment kann sein Ziel über verschiedene Routen erreichen. Bei kleineren MTU-Routen können sie weiter fragmentiert werden

Auf dem Zielhost werden die Daten wieder zum ursprünglichen Datagramm zusammengesetzt und das vom sendenden Host festgelegte Identifikationsfeld sowie die Yuan-IP-Adresse und die Ziel-IP-Adresse im Datagramm werden zusammen verwendet. Der Fragmentierungsprozess ändert dieses Feld nicht

3. Zusammensetzen

Um die Fragmente dieser Datagramme zu rekonstruieren, weist der empfangende Host einen Speicherpuffer zu, wenn das erste Fragment eintrifft. Dieser Host startet auch einen Timer. Wenn nachfolgende Fragmente des Datagramms eintreffen, werden die Daten an der durch den Fragment-Offset angegebenen Stelle in den Pufferspeicher kopiert, und wenn alle Fragmente angekommen sind, wird das vollständige, unfragmentierte Original-Datagramm wiederhergestellt.

Wenn der Timer abläuft und der Shard in einem nicht genehmigten Zustand verbleibt, werden die Daten nicht beibehalten. Der Anfangswert dieses Timers ist der Lebensdauerwert des IP-Datagramms. Er ist abhängig von der Implementierung und kann bei einigen Implementierungen konfiguriert werden.

Zusammensetzungsschritt

Auf der Empfangsseite setzt ein vom Absender gesendetes Original-IP-Datenpaket alle Fragmente wieder zusammen, bevor es an das Protokoll der oberen Schicht übermittelt werden kann. Jedes neu zusammenzusetzende IP-Datagramm verwendet eine IPQ-Struktur zur Darstellung


In Um die Zusammenstellung von Fragmenten effektiv zu verbessern, muss die zum Speichern von Fragmenten verwendete Struktur die folgenden Punkte erfüllen

(1) Eine Gruppe von Paketen eines bestimmten Datagramms schnell lokalisieren

(2) Zu einem bestimmten Paket gehören. Neue Fragmente schnell in ein einfügen Gruppe von Fragmenten eines Datagramms

(3) Bestimmen Sie effektiv, ob alle Fragmente eines Datagramms empfangen wurden

(4) Verfügen Sie über einen Reassembly-Timeout-Mechanismus. Wenn die Reassemblierung vor Ablauf des Timeouts abgeschlossen ist, werden alle Inhalte des Datagramms abgeschlossen gelöscht werden

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip der Fragmentierung und Assemblierung von IP-Datagrammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie legen Websites über Nginx IP-Beschränkungen für die Black-/Whitelist sowie IP-Zugriffsbeschränkungen für Länder und Städte fest? Wie legen Websites über Nginx IP-Beschränkungen für die Black-/Whitelist sowie IP-Zugriffsbeschränkungen für Länder und Städte fest? Jun 01, 2023 pm 05:27 PM

1. Black/White-List-IP-Einschränkungskonfiguration Nginx bietet mehrere Möglichkeiten, Black- und White-Lists zu konfigurieren. Hier sind nur zwei häufig verwendete Methoden. 1. Die erste Methode: Die Anweisungen „allow“, „denydeny“ und „allow“ gehören zu ngx_http_access_module. Nginx lädt dieses Modul standardmäßig, sodass es direkt verwendet werden kann. Diese Methode ist die einfachste und direkteste. Die Einstellung ähnelt der Firewall iptable. Verwendung: Fügen Sie direkt zur Konfigurationsdatei hinzu: #Whitelist-Einstellungen, gefolgt von „Zulassen ist zugänglich“ IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}# Blacklist-Einstellungen,

Was bedeutet das Binden von IP und Mac? Was bedeutet das Binden von IP und Mac? Mar 09, 2023 pm 04:44 PM

Unter IP- und Mac-Bindung versteht man die Zuordnung einer bestimmten IP-Adresse zu einer bestimmten MAC-Adresse, sodass nur das Gerät, das die MAC-Adresse verwendet, die IP-Adresse für die Netzwerkkommunikation verwenden kann. Durch das Binden von IP und Mac kann verhindert werden, dass die IP-Adresse des gebundenen Hosts gefälscht wird. Voraussetzungen: 1. Die MAC-Adresse ist eindeutig und kann nicht gefälscht werden. Sie kann nur an Hosts im Netzwerk gebunden werden, die direkt mit dem Router verbunden sind. Das Gateway des Hosts befindet sich auf dem Router.

So überprüfen Sie die IP-Adresse auf WeChat So überprüfen Sie die IP-Adresse auf WeChat May 31, 2023 am 09:16 AM

So überprüfen Sie die IP-Adresse auf WeChat: 1. Melden Sie sich bei der Computerversion von WeChat an, klicken Sie mit der rechten Maustaste auf die Taskleiste am unteren Bildschirmrand und klicken Sie auf „Task-Manager“. 2. Wenn der Task-Manager angezeigt wird, klicken Sie auf „; Details“ in der unteren linken Ecke; 3. Aufgabenverwaltung Geben Sie die Option „Leistung“ des Browsers ein und klicken Sie auf „Ressourcenmonitor öffnen“; 4. Wählen Sie „Netzwerk“ und überprüfen Sie den WeChat-Prozess „Wechat.exe“; 5. Klicken Sie auf „ TCP-Verbindung“ unten, um die IP-bezogene Situation des WeChat-Netzwerks zu überwachen. Wenn Sie eine Nachricht senden und eine Antwort erhalten, wird die IP-Adresse der anderen Person angezeigt.

So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest So legen Sie die Verzeichnis-Whitelist und die IP-Whitelist in Nginx fest May 18, 2023 pm 03:52 PM

1. Legen Sie die Verzeichnis-Whitelist fest: Es gibt keine Einschränkung für den angegebenen Anforderungspfad. Wenn es keine Einschränkung für den Anforderungspfad zum API-Verzeichnis gibt, kann er als server{location/app{proxy_passhttp://192.168.1.111 geschrieben werden: 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#Weil Nginx der genauen Übereinstimmung Priorität einräumt

So erhalten Sie die echte IP-Adresse des Benutzers basierend auf dem Nginx-Reverse-Proxy So erhalten Sie die echte IP-Adresse des Benutzers basierend auf dem Nginx-Reverse-Proxy May 13, 2023 pm 05:07 PM

Einführung Wenn nginx als Reverse-Proxy verwendet wird, stammt die vom Standardkonfigurations-Backend erhaltene IP-Adresse von nginx. Verwenden Sie request.getRemoteAddr();, um die IP-Adresse von nginx zu erhalten, nicht die tatsächliche IP des Benutzers. 1. Ändern Sie die Nginx-Konfiguration: server{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10.

Abfrage der lokalen IP-Adresse Abfrage der lokalen IP-Adresse Jan 05, 2024 pm 01:42 PM

Die Methoden zum Abfragen der IP-Adresse dieses Geräts sind: 1. Öffnen Sie unter Windows das „Startmenü“ und suchen Sie nach „cmd“, um die Eingabeaufforderung zu öffnen. Geben Sie „ipconfig“ ein und drücken Sie dann die Eingabetaste, um ein zu finden Zeile mit dem Namen „IPv4-Adresse“, die Zahl daneben ist die IP-Adresse des Geräts. 2. Klicken Sie unter macOS auf das Apple-Symbol in der oberen linken Ecke des Bildschirms, wählen Sie „Systemeinstellungen“ und suchen Sie das aktuell verbundene Netzwerk Klicken Sie in der Option „Netzwerk“ auf die Schaltfläche „Erweitert“, suchen Sie die IP des Geräts auf der Registerkarte „TCP/IP“ usw.

Was soll ich tun, wenn mein WLAN keine IP-Zuweisung anzeigt? Was soll ich tun, wenn mein WLAN keine IP-Zuweisung anzeigt? Aug 30, 2023 am 11:58 AM

Lösung für WLAN, bei dem keine IP-Zuweisung angezeigt wird: 1. Starten Sie das Gerät und den Router neu, schalten Sie die WLAN-Verbindung auf dem Gerät aus, schalten Sie das Gerät aus, schalten Sie den Router aus, warten Sie einige Minuten und öffnen Sie dann den Router erneut, um eine Verbindung zum WLAN herzustellen 2. Überprüfen Sie die Router-Einstellungen und starten Sie DHCP neu. 3. Setzen Sie die Netzwerkeinstellungen zurück, wodurch alle gespeicherten WLAN-Netzwerke und Passwörter gelöscht werden. 4. Aktualisieren Sie Nachdem Sie die Router-Firmware installiert haben, melden Sie sich bei der Router-Verwaltungsschnittstelle an, suchen Sie nach den Optionen für die Firmware-Aktualisierung und befolgen Sie die Anweisungen.

Wie zählt NGINX PV, UV und unabhängige IP der Website? Wie zählt NGINX PV, UV und unabhängige IP der Website? May 19, 2023 am 09:13 AM

Konzept: uv (uniquevisitor): eindeutiger Besucher, jeder unabhängige mit dem Internet verbundene Computer (basierend auf Cookies) wird als Besucher betrachtet und die Anzahl der Besucher, die Ihre Website innerhalb eines Tages (00:00–24:00 Uhr) besuchen. Besuche desselben Cookies innerhalb eines Tages werden nur einmal gezählt. PV (Seitenaufruf): Besuche, also Seitenaufrufe oder Klicks, jeder Besuch der Website durch den Benutzer wird einmal erfasst. Wenn ein Benutzer dieselbe Seite mehrmals besucht, wird die Gesamtzahl der Besuche gezählt: Die gleiche IP-Adresse wird nur einmal zwischen 00:00 und 24:00 Uhr gezählt Ich gebe zunächst die Umgebung an, in der Nginx Version 1.7 ausgeführt wird. Das Backend Tomcat läuft dynamisch

See all articles