Witam
mam nagłówek IGMP:
$17 $00 $ff $90 $e8 $00 $01 $6e
gdzie:
$17 typ: tu leave group
$00 czas 0 sek
$ff $90 suma kontrolna nagłowka
$e8 $00 $01 $6e multicast adres: 232.0.1.110

Czy ktoś jak jest liczona suma kontrolna?

znalazłem programy ale liczą co innego np:
var s : string;
w : word
s:=$17$00$00$00$e8$00$01$6e;
w:=CSC(s,8);

function CSC(Var Buffer; Size : integer) : Word;
type
TWordArray = Array[0..1] of Word;
var
ChkSum : LongWord;
i : Integer;
begin
ChkSum := 0;
i := 0;
While Size > 1 do begin
ChkSum := ChkSum + TWordArray(Buffer)[i];
inc(i);
Size := Size - SizeOf(Word);
end;

if Size=1 then ChkSum := ChkSum + Byte(TWordArray(Buffer)[i]);

ChkSum := (ChkSum shr 16) + (ChkSum and $FFFF);
ChkSum := ChkSum + (Chksum shr 16);
Result := Word(ChkSum);
end;