Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.06.22;
Скачать: CL | DM;

Вниз

правильно подсчитать контрольную сумму 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.007 c
2-1377441828
Сеньор
2013-08-25 18:43
2014.06.22
Пересортировка численных данных в Memo или ListBox


15-1385843401
Юрий
2013-12-01 00:30
2014.06.22
С днем рождения ! 1 декабря 2013 воскресенье


15-1386575834
oldman
2013-12-09 11:57
2014.06.22
С днем рождения!


2-1377270653
Zheksonz
2013-08-23 19:10
2014.06.22
Sender


15-1386058324
LDV
2013-12-03 12:12
2014.06.22
html-редактор