为什么我们需要libnet_do_checksum? HTTP校验和不起作用

时间:2010-06-03 13:32:04

标签: http checksum packet

据我所知,如果我们在函数libnet_build_tcp中写0,tcp校验和会自动计算,那为什么我们需要libnet_do_checksum?

当我尝试构建新数据包时,我遇到了错误。一个规则的TCP数据包(SYN,ACK)工作正常,但HTTP数据包不起作用,因为tcp校验和错误。 我必须使用libnet_do_checksum吗?

1 个答案:

答案 0 :(得分:0)

如果要手动计算校验和,可以使用libnet_do_checksum(),以便在发送之前进行检查。例如。

您确定携带HTTP数据的数据包是否存在校验和错误? OS可能正在使用校验和卸载。 Wireshark会在原始计算机上报告错误的校验和,但网卡会在通过网络发送数据包之前对其进行计算。