Frage

Warum ist der Pseudo-Header vorangestellter an den UDP-Datagramm für die Berechnung der UDP-Prüfsumme? Was ist das Vernünftige dahinter?

War es hilfreich?

Lösung

Von der TCP- oder UDP-Sicht ist das Paket keine IP-Adressen enthalten. (IP ist die Schicht unter ihnen.)

So eine richtige Prüfsumme, eine „Pseudo-Header“ zu tun ist im Preis enthalten. Es ist „Pseudo“, weil es nicht actaully Teil des UDP-Datagramm ist. Es enthält die wichtigsten Teile des IP-Headers, das heißt, Quell- und Zieladresse, Protokollnummer und Datenlänge.

Damit soll sichergestellt werden, dass die UDP-Prüfsumme berücksichtigt diese Felder aus.

Andere Tipps

Die nächst Sie eine Antwort bekommen „direkt aus dem Maul des Pferdes“, ist von David P. Reed unter dem folgenden Link.

http://www.postel.org/pipermail/ end2end Interesse / 2005-Februar / 004616.html

Die kurze Version der Antwort ist, "die Pseudo-Header aus historischen Gründen existiert".

Ursprünglich TCP / IP war ein einziges monolithisches-Protokoll (nur TCP). Wenn sie beschlossen, es teilen sich in TCP und IP (und andere), haben sie die beiden nicht trennen alles, was sauber: die IP-Adressen immer noch als Teil der TCP gedacht waren, aber sie waren nur „geerbt“ von der IP-Schicht anstatt im TCP-Header wiederholt. Der Grund, warum die TCP-Prüfsumme über Teile des IP-Header arbeitet (einschließlich der IP-Adressen), weil sie Kryptographie zu verwenden beabsichtigt, die TCP-Nutzlast zu verschlüsseln und zu authentifizieren, und sie die IP-Adressen und andere TCP-Parameter in der Pseudo-Header sein wollte durch den Authentifizierungscode geschützt. Das wäre es nicht machbar für einen Mann in der Mitte mit den IP-Quell- und Zieladressen zu manipulieren machen. Zwischen-Router nicht die Manipulation bemerken, aber der TCP-Endpunkt würde, wenn es versucht, die Signatur zu verifizieren

Aus verschiedenen Gründen keine dieser großen Verschlüsselungs Plan geschah, aber die TCP-Prüfsumme, die nach wie vor seinen Platz nahm arbeitet über den Pseudo-Header, als ob es eine nützliche Sache zu tun waren. Ja, es gibt Ihnen ein teensy wenig zusätzlichen Schutz gegen zufällige Fehler, aber das ist nicht, warum es existiert. Ehrlich gesagt, würden wir besser dran ohne sie sein: die Kopplung zwischen TCP und IP bedeutet, dass Sie TCP neu zu definieren, wenn Sie IP ändern. Somit umfasst die Definition von IPv6 eine neue Definition für die TCP- und UDP-Pseudo-Header (siehe RFC 2460, S8.1). Warum wählten die IPv6-Designer diese Kopplung zu verewigen, anstatt die Chance zu ergreifen abschaffen es über mich.

Wenn diese Protokolle wurden entwickelt wird, ein ernstes Anliegen von ihnen war ein Host ein Paket empfangen dachte, es ihnen war, als es nicht war. Wenn ein paar Bits wurden im IP-Header während des Transports und ein Paket des Kurses geändert (aber das IP-Prüfsumme war immer noch korrekt ist), die TCP / UDP-Stack des umgeleiteten Empfängers blättert noch wissen, um das Paket zu verwerfen.

Obwohl die Pseudo-Header, um die Trennung der Schichten Idiom brach, wurde es für die erhöhte Zuverlässigkeit als akzeptabel erachtet.

  

"Der Zweck eines Pseudo-Header besteht darin, dass der UDP zu überprüfen   Datagramm hat sein richtiges Ziel erreicht. Der Schlüssel zu   die pseudo-Header Verständnis liegt in der Realisierung, dass die richtigen   Ziel besteht aus einer spezifischen Maschine und einer spezifischen Protokoll   Port innerhalb dieser Maschine. Der UDP-Header selbst gibt nur die   Protokoll-Portnummer. Damit das Ziel, UDP auf die überprüfen   Maschine Senden berechnet eine Prüfsumme, die die Ziel-IP deckt   sowie die UDP-Datagramm-Adresse. Der Pseudo-Header ist nicht   mit den UDP-Datagramm übertragen, noch ist es in der Länge enthielt. "

E. Comer -. Internetworking mit TCP / IP 4. Ausgabe

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top