我创建了一个 RAW 套接字并将套接字选项设置为“IP_HDRINCL”。我在传出的 UDP 数据包中设置标识字段,并且
发送相同的。我看到发送数据包时该字段更改为随机数。我可以在嗅探器捕获中看到相同的内容。
在不同的 Windows XP 机器上构建和测试相同的代码时,工作正常,即。我可以看到传出数据包的 IP 标头中的标识字段带有我设置的相同值。
不知道出了什么问题。如果您有任何见解,请告诉我。
谢谢,
雷努
我创建了一个 RAW 套接字并将套接字选项设置为“IP_HDRINCL”。我在传出的 UDP 数据包中设置标识字段,并且
发送相同的。我看到发送数据包时该字段更改为随机数。我可以在嗅探器捕获中看到相同的内容。
在不同的 Windows XP 机器上构建和测试相同的代码时,工作正常,即。我可以看到传出数据包的 IP 标头中的标识字段带有我设置的相同值。
不知道出了什么问题。如果您有任何见解,请告诉我。
谢谢,
雷努
原始套接字IP_HDRINCL
会自动设置将要发送出去的 ip 数据包的某些字段的值。
在您的情况下,如果数据包 ID 为零,则数据包 ID 将被覆盖。(是你的情况吗?)
情况如下:(取自Raw Socket 手册页)
+---------------------------------------------------+
|IP Header fields modified on sending by IP_HDRINCL |
+----------------------+----------------------------+
|IP Checksum |Always filled in. |
+----------------------+----------------------------+
|Source Address |Filled in when zero. |
+----------------------+----------------------------+
|Packet Id |Filled in when zero. |
+----------------------+----------------------------+
|Total Length |Always filled in. |
+----------------------+----------------------------+