Auteur Sujet: Driver réseau "fait maison" pour Windows  (Lu 8339 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Driver réseau "fait maison" pour Windows
« Réponse #12 le: 12 juillet 2014 à 13:15:24 »
Oui, la puce FTDI2232 (interface USB) a déjà des drivers et/ou API pour l'utiliser sous Windows ou Linux. Pas de problème, cette partie là fonctionne déjà. Je sais dialoguer à plusieurs Mb/s (je sais, ça ne vous impressionne pas, mais moi si!) entre un programme fait maison sur mon PC et la carte que je développe. Il "suffit" d'utiliser des drivers simulant une connexion série, c'est à priori le plus simple. Par contre, ça ne me donne aucune piste pour l'interfaçage de mon programme sur PC avec la couche réseau (OSI L3) du PC. C'est bien ça mon plus gros problème. C'est vrai qu'avec ça, tu ne me fais pas vraiment envie. Et vu mon faible niveau en programmation sur PC, je crois bien que je vais abandonner l'idée de faire des drivers, et me tourner vers une autre solution.

Donc t'as un existant qui marche, tu veux ajouter du 'réseau' :

Un truc simple à faire : ajoute lui un socket réseau pour échanger des données via IP.
Tu peux partir sur un protocole simple pour voir comment ca marche: un simple 'echo'/chat par exemple.

Puis ensuite tu peux faire évoluer ca en un serveur GRE par exemple (ou autre serveur point a point sur IP style PPTP, SSH, L2TP, SSL).
A l'arrivé tu auras un truc ou il suffit d'ouvrir une session avec pour avoir un lien réseau (couche 3) via ton équipement.



obinou

  • AS197422 Tetaneutral.net
  • Expert
  • *
  • Messages: 1 668
  • Montgesty (46150)
    • Tetaneutral.net
Driver réseau "fait maison" pour Windows
« Réponse #13 le: 12 juillet 2014 à 13:35:07 »
Salut,


Perso je regarderais du coté de TUN/TAP:

* Le driver windows existe déjà, et sous linux aussi.
* Ya des tas d'exemple de code, à commencer par les VPN & wireshark.

Du coup , ça se décomposerais simplement en un démon qui écouterais les trames venant du FT2232 , et les réinjecter (en utilisant l'API TUN/TAP) dans la couche réseau Windows, qui les gérera ensuite "normalement".
A la vitesse d'un port série, ça ne risque pas de causer de problèmes.

A voir aussi si le FTDI sur port série est obligatoire: Si tu connais les teensy (notamment les derniers , version 3 ou 3.1) , ils sont plus puissants et permettent plus de chose en USB. J'dis ça car je suis en train de bosser sur un firmware pour ces machins qui , quand tu les branche en Ethernet, serait reconnu sous windows (et linux) comme une carte ethernet USB (peut-être par RNDIS, je sais pas encore - là je suis sur le CDC-Ethernet). Après, niveau firmware rien de plus simple d'utiliser le port série hardware du teensy pour faire une sorte de convertisseur série <> IP (enfin si , faut gérer la couche TCP/IP, mais heureusement ça existe déjà)

Perso mon projet est pour de la domotique, mais le concept de IP over HAM me plait bien aussi... :-)

Leon

  • Client SFR sur réseau Numericable
  • Modérateur
  • *
  • Messages: 5 971
Driver réseau "fait maison" pour Windows
« Réponse #14 le: 12 juillet 2014 à 16:11:41 »
Merci à Obinou et Kgersen!

Je vois que je ne suis pas le seul à bidouiller, ça me rassure!  :)
Merci pour ces idées. Ca me mets sur d'autres pistes que je ne connaissais pas du tout, et c'est exactement ça que je recherchais!  :)

Un truc simple à faire : ajoute lui un socket réseau pour échanger des données via IP.
Tu peux partir sur un protocole simple pour voir comment ca marche: un simple 'echo'/chat par exemple.

Puis ensuite tu peux faire évoluer ca en un serveur GRE par exemple (ou autre serveur point a point sur IP style PPTP, SSH, L2TP, SSL).
A l'arrivé tu auras un truc ou il suffit d'ouvrir une session avec pour avoir un lien réseau (couche 3) via ton équipement.
Pour les tunnels GRE ou autre, c'est une bonne idée à la base. Mais malheureusement, GRE n'est pas supporté sur Windows, les implèmentations de GRE étant visiblement rares et non maintenues; et les autres types de tunnels semblent complexes à gérer (il faudrait que je simule l'autre bout du tunnel).

Perso je regarderais du coté de TUN/TAP:
* Le driver windows existe déjà, et sous linux aussi.
* Ya des tas d'exemple de code, à commencer par les VPN & wireshark.
Du coup , ça se décomposerais simplement en un démon qui écouterais les trames venant du FT2232 , et les réinjecter (en utilisant l'API TUN/TAP) dans la couche réseau Windows, qui les gérera ensuite "normalement".
Pour TUN/TAP, ça ressemble à une bonne solution pour ce que je veux faire : interfacer une application avec une carte réseau virtuelle. Je vais regarder ça de plus près, en espérant que ça soit accessible pour moi.

Citer
A voir aussi si le FTDI sur port série est obligatoire: Si tu connais les teensy (notamment les derniers , version 3 ou 3.1) , ils sont plus puissants et permettent plus de chose en USB.
J'utilise les FTDI2232 qui émulent (côté PC) des ports séries, mais côté matériel, c'est interfacé comme des FIFO 8 bits, donc ça permet des transferts à haut débits (plus de 100Mb/s), même avec le driver qui émule un port série. Je ne suis donc pas limité par la vitesse/puissance des vrais ports série. C'est juste qu'il est plus facile pour moi d'écrire un programme qui dialogue avec un port série (virtuel ou réel), plutôt qu'un programme qui s'interface avec un driver que je maitrise moins.

Je vous tiendrais au courant de mes bidouilles, mais ça n'est pas pour tout de suite.

Leon.

krtman

  • Expert
  • Abonné Free adsl
  • *
  • Messages: 141
Driver réseau "fait maison" pour Windows
« Réponse #15 le: 13 juillet 2014 à 00:10:38 »
Si SLIP n'est plus supporté, PPP l'est certainement encore. C'est son successeur. Après en protocole L2 pour faire du point a point, il y aussi HDLC.

Leon

  • Client SFR sur réseau Numericable
  • Modérateur
  • *
  • Messages: 5 971
Driver réseau "fait maison" pour Windows
« Réponse #16 le: 13 juillet 2014 à 07:19:14 »
Si SLIP n'est plus supporté, PPP l'est certainement encore. C'est son successeur. Après en protocole L2 pour faire du point a point, il y aussi HDLC.
Oui, PPP est supporté par les windows récents. Mais si je choisis PPP, il faudra que je simule un serveur PPP, ce qui est complexe. Autant pour du SLIP, ça se fait en quelques lignes de code, mais pour du PPP, c'est autre chose.
HDLC n'est plus supporté non plus par les windows récents, comme SLIP. Il existe des programmes"tiers" pour faire du HDLC ou du SLIP.

Je note toutes ces idées, et je creuse avant de me faire une opinion et de me lancer. J'aurais plein de tests à faire pour vérifier si certaines solutions sont faisables.

Leon.