Форум: "Сети";
Текущий архив: 2014.06.22;
Скачать: [xml.tar.bz2];
Внизправильно подсчитать контрольную сумму IP пакета. Найти похожие ветки
← →
Краб (2010-05-03 11:55) [0]Добрый день господа.
У меня возникла проблема в подсчёте чек суммы IP пакета перед отправкой.
Вот функция:
function Checksum(var Buffer; Size: word): WORD;
var i: Integer;
Sum: DWORD;
p: PWORD ;
begin
p:=@Buffer;
Sum := 0;
for i := 0 to Size - 1 do
begin
Sum := Sum + htons(p^);
inc(p);
end;
while (Sum shr 16) > 0 do
Sum := (Sum and $FFFF)+(Sum shr 16);
Sum := not Sum;
Result := Sum;
end;
Вроде должно работать правильно, но в итоге тем же самым WireShark"ом , мы замечаем:
Checksum: 0x4b28 [incorrect, should be 0x284b (maybe caused by "UDP checksum offload"?)]
или
Checksum: 0x7728 [incorrect, should be 0x2877 (maybe caused by "UDP checksum offload"?)]
Есть у кого-нибудь догадки : что я сделал не так ? =)
(искал другие функции, но найти подобный рабочий вариант у меня не получилось)
← →
Краб (2010-05-03 14:18) [1]ошибку нашёл сам .
удалите/закройте пожалуйста тему.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2014.06.22;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.002 c