Zitat von
shmia:
Nein, der
IP-Header hört nicht bei dem Eintrag "Header Checksum", sondern umfasst min. 6 * 4 Bytes = 24 Bytes.
Also grob so:
Delphi-Quellcode:
IPHeader : Array[0..12-1] of Word;
Result := 0;
for i:=0 to 12-1 do
begin
if i <> 5 then // das Feld Header Checksum auslassen
Inc(Result, not IPHeader[i]);
Result := not Result; // one's Complement
end;
hmm der Header in dem Fall ist doch aber nur 20Bytes, welches aber den CRC mit einschließt, und irgendwo hab ich gelesen, dass die beiden
IP-Felder nicht mit in der Checksumme einberechnet werden...
Also wird die Checksumme aus 24 Bytes berechnet sprich:
"Version",
"IHL",
"Type of Service",
"Total Length",
"Identification",
"Flags",
"Fragment Offset",
"Time to Live",
"Protocol",
"Source Address",
"Destination Address" (=16Byte) + weiteren 8Bytes aus
"Options",
"Padding" und
Datenteil...
Hab ich das nun korrect verstanden?
Bye