2010-11-18 33 views
1

Je travaille sur un projet qui implique un périphérique USB, à travers lequel nous recevrons des paquets IP à partir d'un PC à distance. Nous attribuons au PC distant son adresse IP. J'ai expérimenté avec l'envoi de paquets IP bruts par plusieurs méthodes:Existe-t-il un moyen facile de router les paquets IP d'une application Windows d'espace utilisateur vers le réseau?

1 - raw sockets: ping fonctionne très bien, problèmes d'envoi tcp

2 - tun/tap W32: J'ai réussi à obtenir ce assez de travail pour envoyer pings sortir et obtenir des pings vers le périphérique phy ethernet, mais ne pouvait pas les lire en utilisant ReadFile (...) sur le pilote guid. - winpcap: le ping fonctionne, sortant tcp apparaît sur wireshark (donc je suppose qu'il quitte le pc), mais je ne reçois jamais un ack à mon syn. Je suis également inquiet que si je recevais un accusé de réception, la pile TCP de Windows enverrait une première.

Notre objectif est d'être un passage transparent du PC client au réseau. client < -wrapped ip de paquets> [appareil] < -wrapped ip de paquets> WinPC < - IP -> IpNetwork

Il est possible que im aller à ce mal, semble que cela devrait être plus facile.

Je me rends compte que Windows n'est probablement pas le système d'exploitation idéal, mais je n'ai aucun contrôle sur le système d'exploitation.

merci à l'avance

+0

Votre problème avec tun/tap sonne comme un problème de routage - peut-être que le transfert IP est désactivé dans le registre? – caf

Répondre

0

fixe mon problème avec des paquets TCP Syn ne s'Acked, s'avère que j'oublié d'inclure le pseudo-en-tête lors du calcul de la somme de contrôle d'en-tête TCP. Maintenant, il semble que la poignée de main tcp se termine, donc j'appelle ce problème résolu. Si quelqu'un a envie de recommander un meilleur moyen d'y parvenir, n'hésitez pas à répondre. Pour l'instant, on dirait que nous allons utiliser la méthode winpcap. Pour que cela fonctionne sans fenêtres en permanence avec les connexions TCP, vous devez activer le partage de connexion Internet (ICS) sur l'adaptateur à partir duquel vous envoyez des paquets. A part ça, ça a fini par marcher pour nous.