使用RAW套接字更改IP报头中标识字段的问题



我创建了一个RAW套接字,并将套接字选项设置为"IP_HDRINCL"。我正在设置传出UDP数据包和

中的标识字段。

发送相同的内容。当数据包发送出去时,我看到这个字段被更改为随机数。我可以在嗅探器捕获中看到相同的内容。

相同的代码在不同的Windows XP机器上构建和测试时,工作得很好。我可以看到传出包的IP报头中的标识字段与我设置的值相同。

不知道哪里出了问题。如果你有什么建议,请告诉我。

谢谢,

Renu

带有IP_HDRINCL的原始套接字自动设置将要发送的ip数据包的某些字段的值。

在您的示例中,如果case为零,数据包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.           |
          +----------------------+----------------------------+

最新更新