Bonjour à tous,
Aujorud'hui j'aimerais rediriger des données provenant d'un port (série ou Ethernet) vers un autre port (série ou Ethernet).
Comme peut le faire des outils comme SOCAT ou NETCAT.
Les données redirigées ne doivent pas être traitées et sont de différentes tailles et brutes (comprendre qu'elles n'ont pas de caractère de début de trame ou de fin de trame).
D'un port Ethernet à un autre port Ethernet pas de soucis.
D'un port Ethernet à un une liaison Série : c'est relativement simple, grâce au header Ethernet, on sait quand une trame entière est arrivée et on peut ensuite la découper pour transmettre les octets via le port série.
Mais le problème se pose quand il s'agit de rediriger des données d'une liaison série vers un port Ethernet.
En effet, afin d'encapsuler les données dans une trame Ethernet on a besoin d'avoir à disposition l'ensemble des données.
Or, comment pourrais je savoir que j'ai reçu toute ma trame via le port série (les data ne sont qu'une suite d'octet dans un port série...) si je n'ai pas de caractère de fin dans mes octets reçues ?
J'avais pensé à définir un délai inter-trame => Si le temps entre les octets reçus via le port série sont inférieur à ce délai alors c'est qu'il s'agit encore de la même trame et on attend d'avoir enfin un temps supérieur au délai avant d'être sur d'avoir toute la trame et donc d'encapsuler les données avant de les envoyer en Ethernet.
Avez vous déjà rencontré ce genre de problème ?
Avez vous des idées ou des pistes ?
Merci beaucoup !
Partager