C++ 在ICMP报头校验和计算中?
在ICMP标头中,他们用以下语句填充校验和 我发现ICMP_回显值为8C++ 在ICMP报头校验和计算中?,c++,c,networking,packet,icmp,C++,C,Networking,Packet,Icmp,在ICMP标头中,他们用以下语句填充校验和 我发现ICMP_回显值为8 icmp->checksum = htons(~(ICMP_ECHO << 8)); icmp->checksum=htons(~(icmp\u ECHO校验和是: (1) 要校验和的相邻八位字节成对形成16位 整数,这16位整数的1的补码和是 形成 (2) 要生成校验和,将清除校验和字段本身, 16位1的补码和通过八位字节计算 相关的,并且该总和的1的补码放在 校验和字段 对于ICMP_回显消息(类型
icmp->checksum = htons(~(ICMP_ECHO << 8));
icmp->checksum=htons(~(icmp\u ECHO校验和是:
(1) 要校验和的相邻八位字节成对形成16位
整数,这16位整数的1的补码和是
形成
(2) 要生成校验和,将清除校验和字段本身,
16位1的补码和通过八位字节计算
相关的,并且该总和的1的补码放在
校验和字段
对于ICMP_回显消息(类型8,代码0),类型和代码字段应为0x08 0x00
,如果这是消息包含的所有数据,则这也是应构成校验和的16位整数之和