IPv4-Header-Prüfsumme - IPv4 header checksum

Die IPv4-Header-Prüfsumme ist eine Prüfsumme, die in Version 4 des Internet Protocol (IPv4) verwendet wird, um Beschädigungen im Header von IPv4-Paketen zu erkennen. Es wird im IP-Paket-Header mitgeführt und repräsentiert das 16-Bit-Ergebnis der Summation der Header-Wörter.

Das IPv6- Protokoll verwendet keine Header-Prüfsummen. Die Entwickler waren der Ansicht, dass die in Protokollen wie PPP und Ethernet bereitgestellte Gesamtpaket-Link-Layer-Prüfsumme in Kombination mit der Verwendung von Prüfsummen in Protokollen der oberen Schicht wie TCP und UDP ausreichend ist. Damit werden IPv6-Router von der Aufgabe entlastet, die Prüfsumme bei jeder Paketänderung neu zu berechnen, beispielsweise durch das Absenken des Hop-Limit- Zählers bei jedem Hop.

Berechnung

Die Prüfsummenberechnung ist in RFC 791 definiert:

Das Prüfsummenfeld ist das 16-Bit- Einser-Komplement der Einser-Komplementsumme aller 16-Bit-Wörter im Header. Zum Berechnen der Prüfsumme ist der Wert des Prüfsummenfelds null.

Wenn keine Beschädigung vorliegt, sollte das Ergebnis der Summierung des gesamten IP-Headers, einschließlich der Prüfsumme, null sein. Bei jedem Hop wird die Prüfsumme verifiziert. Pakete mit Prüfsummenfehlanpassung werden verworfen. Der Router muss die Prüfsumme anpassen, wenn er den IP-Header ändert (zB beim Dekrementieren der TTL).

Beispiele

Berechnung der IPv4-Header-Prüfsumme

Nehmen Sie den folgenden abgeschnittenen Auszug eines IPv4-Pakets. Die Kopfzeile ist fett dargestellt und die Prüfsumme unterstrichen.
4500 0073 0000 4000 4011 b861 c0a8 0001
c0a8 00c7 0035 e97c 005f 279f 1e4b 8180

Für die Addition von Einerkomplement müssen wir jedes Mal, wenn ein Übertrag auftritt, eine 1 zur Summe addieren. Eine Carry-Überprüfung und -Korrektur kann bei jeder Zugabe oder als Postprozess nach allen Zugaben durchgeführt werden. Wird durch die Korrektur ein weiterer Übertrag erzeugt, wird eine weitere 1 zur Summe addiert.

Um die Prüfsumme zu berechnen, können wir zuerst die Summe jedes 16-Bit-Wertes innerhalb des Headers berechnen und nur das Prüfsummenfeld selbst überspringen. Beachten Sie, dass diese Werte in hexadezimaler Schreibweise vorliegen .
4500 + 0073 + 0000 + 4000 + 4011 + c0a8 + 0001 + c0a8 + 00c7 = 2479c
Die erste Ziffer ist der Übertragszähler und wird zur Summe addiert:
2 + 479c = 479e (wenn durch diese Addition ein weiterer Übertrag erzeugt wird, eine weitere 1 muss zur Summe addiert werden)
Um die Prüfsumme zu erhalten, nehmen wir das Einerkomplement dieses Ergebnisses: b861 (wie im ursprünglichen IP-Paket-Header unterstrichen gezeigt).

Überprüfen der IPv4-Header-Prüfsumme

Bei der Überprüfung einer Prüfsumme wird das gleiche Verfahren wie oben verwendet, außer dass die ursprüngliche Header-Prüfsumme nicht weggelassen wird.
4500 + 0073 + 0000 + 4000 + 4011 + b861 + c0a8 + 0001 + c0a8 + 00c7 = 2fffd
Addiere die Übertragsbits:
fffd + 2 = ffff
Das Einerkomplement (jedes Bit umdrehen ) ergibt 0000, was anzeigt, dass kein Fehler vorliegt erkannt. Die IP-Header-Prüfsumme prüft nicht auf die richtige Reihenfolge der 16-Bit-Werte innerhalb des Headers.

Siehe auch

Verweise

Externe Links