Ma carte Linux utilise un serveur DHCP sur le port USB0 pour attribuer une adresse IP fixe au client RNDIS connecté. Lorsque je connecte une machine Win XP ou Ubuntu à cette carte, la machine hôte obtient l'adresse IP fixe immédiatement. Mais lorsque je connecte un hôte Windows 7, il faut 45 à 60 secondes pour obtenir l'adresse IP fixe. Avant d’obtenir l’adresse IP fixe, l’hôte Win7 reçoit une interface APIPA IP sur RNDIS. J'ai regardé dans le transfert de paquet entre la carte et l'hôte Win7, j'ai vu que le client (Win7) diffuse des paquets REQUEST sans adresse IP de serveur DHCP dans les paquets. Après 45 à 50 secondes, le transfert de paquet se passe comme suit:
CLIENT -> DHCP DISCOVER
SERVER -> DHCP OFFER
CLIENT -> DHCP REQUEST
SERVER -> DHCP ACK
et alors il obtient l'IP, qui est la manière appropriée de DHCP. Je peux voir l'adresse IP du serveur (linux board) dans le paquet REQUEST. Mais avant d’envoyer DHCP_DISCOVER, il envoie plusieurs paquets REQUEST sans l’adresse IP du serveur.
Quelqu'un pourrait-il pls. aidez-moi quel est le problème ici, ou il me manque quelque chose.