我的 Linux 主板在 USB0 端口上运行 DHCP 服务器,为连接的 RNDIS 客户端分配固定 IP。当我将 Win XP 或 Ubuntu 计算机连接到此主板时,主机会立即获取固定 IP。但是当我连接 Windows 7 主机时,需要 45-60 秒才能获取固定 IP。在获取固定 IP 之前,Win7 主机通过 RNDIS 接口获取一些 APIPA IP。我查看了主板和 Win7 主机之间的数据包传输,发现客户端(Win7)正在广播 REQUEST 数据包,而数据包中没有任何 DHCP 服务器 IP。45-50 秒后,数据包传输如下:
CLIENT -> DHCP DISCOVER
SERVER -> DHCP OFFER
CLIENT -> DHCP REQUEST
SERVER -> DHCP ACK
然后它获取 IP,这是正确的 DHCP 方式。我可以在 REQUEST 数据包中看到服务器(Linux 主板)的 IP。但在发送 DHCP_DISCOVER 之前,它会发送多个 REQUEST 数据包,其中没有任何服务器 IP。
谁能帮我一下这里的问题是什么,或者我遗漏了什么东西。