0

我创建了一个 RAW 套接字并将套接字选项设置为“IP_HDRINCL”。我在传出的 UDP 数据包中设置标识字段,并且

发送相同的。我看到发送数据包时该字段更改为随机数。我可以在嗅探器捕获中看到相同的内容。

在不同的 Windows XP 机器上构建和测试相同的代码时,工作正常,即。我可以看到传出数据包的 IP 标头中的标识字段带有我设置的相同值。

不知道出了什么问题。如果您有任何见解,请告诉我。

谢谢,

雷努

4

1 回答 1

0

原始套接字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.           |
          +----------------------+----------------------------+
于 2013-03-26T12:04:32.960 回答