Tcp和IP的校验和运算的问题,高手帮忙

chilicsdn 2003-12-17 12:53:30
我在计算Tcp和IP的校验和时,调试发现tcp校验和正确但是ip校验和不对?大家帮我分析一下问题可能出在什么地方。tcp校验和运算传入tcp头和伪tcp头;ip校验和运算传入ip头和tcp头。
附上我的校验和运算checksum函数:
function TForm1.CheckSum(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(not ChkSum);
end;
...全文
48 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

6,211

社区成员

发帖
与我相关
我的任务
社区描述
windows网络管理与配置
社区管理员
  • 网络管理与配置社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧