【发布时间】:2016-08-18 23:38:57
【问题描述】:
我正在 Python 中使用原始套接字编写 TCP RST 数据包。为此,我在RST 标志中写入 1,在其余部分写入 0,将 windows 字段设置为 0,将紧急字段设置为 0。然后我交换源端口和目标端口。之后,我重新计算数据包大小并创建 IP 标头,现在使用正确的总长度 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)。好像它认为整个标头是 IP 或 TCP,但我不明白为什么。
【问题讨论】: