INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

TCP - UDP Checksumme



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

25.11.2014, 09:01 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2014 09:21 von jg.)
Beitrag #3

michael.stahl Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2014

2013
2013
kA



RE: TCP - UDP Checksumme
Hallo GerdW,

nutzt denn LV die CRC bei UDP? Es besteht ja auch die Möglichkeit in das CRC-Feld 0 einzutragen, dann wird die CRC nicht berücksichtigt.
Wenn die CRC genutzt wird, nach welchem Verfahren wird sie gebildet? Wie es unter Wikipedia UDP beschrieben ist?

Berechnung der Prüfsumme (Quelle Wikipedia: http://de.wikipedia.org/wiki/User_Datagram_Protocol )

Die Berechnung der Prüfsumme beim Sender erfolgt nach folgendem Algorithmus:

Setze das Prüfsummenfeld im UDP-Header auf 0000 0000 0000 0000.
Erzeuge eine vorzeichenlose 32-Bit-Zahl für die Prüfsumme, initialisiere sie mit Nullen.
Fasse direkt benachbarte Bytes des UDP-Paketes zu 16-Bit-Blöcken zusammen. Falls der letzte Block weniger als 16 Bit hat, dann fülle ihn von hinten mit Nullen auf, bis er 16 Bit hat.
Speichere das Ergebnis der Addition aller 16-Bit-Blöcke mit Übertrag in der Prüfsumme.
Fasse direkt benachbarte Bytes des Pseudo-Headers zu 16-Bit-Blöcken zusammen.
Speichere das Ergebnis der Addition dieser 16-Bit-Blöcke und der bisherigen Prüfsumme mit Übertrag in der Prüfsumme.
Fasse direkt benachbarte Bytes der Prüfsumme zu zwei 16-Bit-Blöcken zusammen, addiere diese und speichere das Ergebnis mit Übertrag in der Prüfsumme, bis kein Übertrag mehr bei der Addition entsteht.
Die signifikantesten 16 Bit der 32-Bit-Prüfsumme sind nun Nullen. Die weniger signifikanten Bits sind die eigentliche Prüfsumme; speichere diese als vorzeichenlose 16-Bit-Zahl.
Wenn diese 16-Bit-Zahl nicht nur aus Einsen besteht, dann speichere ihr Einerkomplement im UDP-Header (sowohl 1111 1111 1111 1111 und das Einerkomplement hiervon, 0000 0000 0000 0000, symbolisieren die Zahl 0). In IPv4 UDP wird 0000 0000 0000 0000 auch verwendet, um zu signalisieren, dass keine Prüfsumme berechnet wurde. IPv6-UDP-Pakete mit der Prüfsumme 0000 0000 0000 0000 sind ungültig (RFC 6935).

Der Empfänger prüft zunächst, ob das Prüfsummenfeld des empfangenen Paketes nur aus Nullen besteht. Wenn ja, kann er das Paket als richtig empfangen werten, da keine Prüfsumme vorhanden ist. Wenn nicht, so wendet er den oben beschriebenen Algorithmus auf das empfangene Paket und den zugehörigen Pseudo-Header an, lässt den letzten Schritt weg und addiert die selbst berechnete Prüfsumme auf die im Prüfsummenfeld empfangene, was durch die Einerkomplementdarstellung einer Subtraktion entspricht. Erhält der Empfänger 0 als Ergebnis der Addition (bzw. Subtraktion), so wertet er die empfangenen Daten als mit den gesendeten übereinstimmend.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
TCP - UDP Checksumme - michael.stahl - 25.11.2014, 08:40
RE: TCP - UDP Checksumme - GerdW - 25.11.2014, 08:56
RE: TCP - UDP Checksumme - michael.stahl - 25.11.2014 09:01
RE: TCP - UDP Checksumme - GerdW - 25.11.2014, 09:04
RE: TCP - UDP Checksumme - GerdW - 25.11.2014, 10:20
RE: TCP - UDP Checksumme - GerdW - 25.11.2014, 10:27

Gehe zu: