gpt4 book ai didi

c - 在libnet(tcp packet)中构建一个http数据包,请尽快帮助我们。我们被卡住!

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:08 26 4
gpt4 key购买 nike

我们正在构建一个 NAT 程序,我们更改来 self 们内部子网的每个数据包,通过 libnet 函数更改它的源 IP 地址。(用 libpcap 捕获数据包,把它嗅探结构并使用 libnet 构建新数据包)

通过TCP,更改后syn/ack数据包是好的,当HTTP-GET请求到来时,我们可以通过wireshark看到checksum字段有错误..所有其他字段与原始数据包完全相同。

有谁知道是什么导致了这个问题?其他数据包中的新校验和按应有的方式计算。但在 HTTP 数据包中它没有..

最佳答案

现代以太网卡可以在硬件中计算校验和,因此 TCP 堆栈倾向于将工作卸载到卡上。因此,校验和在 Wireshark 中无效是很常见的。

旁注:Wireshark 中有一个选项可以验证校验和:

Edit
Preferences
Protocols
TCP
Validate the TCP checksum if possible

关闭此功能以阻止 Wireshark 向您唠叨校验和。

关于c - 在libnet(tcp packet)中构建一个http数据包,请尽快帮助我们。我们被卡住!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com