Doppelte Checksumme in UDP- /MAC-Frame notwendig?

Gast #4529449
Lesenswert?

Hallo, ich habe da ein Verständnisproblem. Wenn ich eine UDP oder TCP 
Nachricht übertrage beinhaltet der jeweilige Frame eine Checksumme. Wenn 
diese aber in einen MAC-Frame eingebettet sind enhält der MAC-Frame an 
sich ja schon eine Checksumme die scheinbar über alle Daten (Abgesehen 
von der Präambel) arbeitet. Warum wird hier eine doppelte Prüfung 
vorgenommen, oder kann die Checksumme in diesem Fall für UDP/ TCP Frames 
deaktiviert werden?
Evt. sollen die Daten weiter übertragen werden und benötigen dafür noch 
eine zusätzliche Sicherheit?

Grüße!
Gast #4529507
Lesenswert?

Da kommt noch was dazu. Der IP-Header hat noch ein Checksumme, die aber 
nur über den Header selbst gerechnet ist.
Das ganze rührt daher, dass IP-Pakete nicht zwingend über Ethernet 
laufen und ggf. bei einer Übertragung über das Internet Streckenweise 
gar nicht (adäquat) Checksummen-Geschützt sind. Man will sich also nicht 
auf die Fehlererkennung von niederen Schichten verlassen.
Abgesehen schützt die 32bit-CRC von Ethernet bei massiv schlechter 
Übertragungsqualität wesentlich besser vor falschen Daten. Die Idee 
dabei ist wohl lieber keine Daten als falsche Daten zu erhalten.
#4529860
Lesenswert?

unknown schrieb:
> kann die Checksumme in diesem Fall für UDP/ TCP Frames deaktiviert
> werden?

Bei UDP schon, bei TCP nicht.

https://www.ietf.org/rfc/rfc768.txt
> If the computed  checksum  is zero,  it is transmitted  as all ones
> (the equivalent  in one's complement  arithmetic).
>   An all zero  transmitted checksum  value means that the
> transmitter  generated  no checksum  (for debugging
> or for higher level protocols that don't care).
Gast #4530401
Lesenswert?

unknown schrieb:
> Wenn ich eine UDP oder TCP
> Nachricht übertrage beinhaltet der jeweilige Frame eine Checksumme. Wenn
> diese aber in einen MAC-Frame eingebettet sind enhält der MAC-Frame an
> sich ja schon eine Checksumme die scheinbar über alle Daten (Abgesehen
> von der Präambel) arbeitet.

Nur Frames, als Layer 2 PDU, enthalten eine Checksum über den gesamten 
Frame. Bezugnehmend auf das OSI Schichtenmodell ist es Aufgabe des Layer 
2, die fehlerfreie Zustellung eines Frames sicher zu stellen, und 
benötigt deshalb irgendein Kontrollmittel.

Packets und Segments aus den höheren Schichten enthalten keine 
Prüfsummen über eingekapselte Daten, sondern nur für die jeweiligen 
Header.
Gast #4532543
Lesenswert?

>Nur Frames, als Layer 2 PDU, enthalten eine Checksum über den gesamten
>Frame. Bezugnehmend auf das OSI Schichtenmodell ist es Aufgabe des Layer
>2, die fehlerfreie Zustellung eines Frames sicher zu stellen, und
>benötigt deshalb irgendein Kontrollmittel.

Ich hätte erwartet dass der MAC-Frame mit seinen 4 Byte CRC mindestens 
genauso verlässlich ist wie der UDP mit seinen 2 Byte CRC. Zumal der 
Rest der MAC-Frame Daten im Vergleich zum Payload/ den UDP-Daten eher 
gering ist.
#4532739
Lesenswert?

A. K. schrieb:
> Die Checksums innerhalb vom IP sind keine CRC.

Hier redet doch niemand von der IP checksumme (die nur den IP Header 
abdeckt). Hier wird über die Checksumme von UDP (die in der tat 
ebenfalls keine CRC ist) und die 32bit Checksumme von Ethernet (die 
tatsächlich eine CRC ist) diskutiert.

Aber wenn wir schonmal bei IP sind, dort frage ich mich ernsthaft warum 
man IP mit den UDP & TCP Pseudoheadern nochmal in deren Checksumme 
einfliessen lässt. Das macht mir bei meinem TCP/IP stack die 
Schichtenarchitektur kaputt. Mit IPv6 wurde das nochmal verschlimmert, 
weil dort andere Felder in den Pseudoheadern sind, statt die gleichen 
oder keine.

> Die UDP Checksum kann man auch weglassen (=0).

Hab ich auch schon geschrieben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren