gpt4 book ai didi

python - TCP/IP header 错误 hdr 长度 40 - 太长

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:42 27 4
gpt4 key购买 nike

我正在使用原始套接字在 Python 中编程 TCP RST 数据包。为此,我在 RST 标志中写入 1,在其余标志中写入 0,将 windows 字段设置为 0,将紧急字段设置为 0。然后交换源端口和目标端口。之后,我重新计算数据包大小并创建 IP header ,现在具有正确的总长度 IP 字段。

pacekts 看起来不错,但这是我在 tcpdump 中看到的:

IP host-11-0-0-10.http > host-11-0-0-9.37516: Flags [R] [bad hdr length 40 - too long, > 20]
0x0000: 4500 0028 9ffc 4000 4006 84ad 0b00 000a
0x0010: 0b00 0009 0050 928c 554c 31d8 0000 0000
0x0020: a004 0000 f9b3 0000

据我所知,IP 长度是正确的(0028 ==> 40 字节 ==> 20 字节 IP 和 20 字节 TCP)。就好像它相信整个 header 是 IP 或 TCP,但我不明白为什么。

最佳答案

问题出在 TCP header 中。 data offset 字段(这就是 RFC 中的名称,但也通常称为 header length),您已将其设置为 10(0xa0 的第一个半字节位于偏移量 0x20 处)你的数据包转储)。这是 TCP header 中 32 位字的数量,或者是 TCP 有效负载的偏移量。在本例中,它应该是 5(20 字节)。

40 太长,因为 IP header 已经指定了数据包的总长度,因此 IP header 之后只剩下 20 个字节。

关于python - TCP/IP header 错误 hdr 长度 40 - 太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020798/

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