2010-05-26 12 views

Répondre

3

Le noyau ne fait rien de tel.

Le noyau acheminera votre trafic vers la destination finale la plus appropriée en fonction des informations de routage et des réseaux attribués à chaque carte. Cependant, si vous utilisez TCP, votre communication bidirectionnelle n'utilisera qu'une seule route car il n'y a qu'une seule adresse associée à cette connexion.

Si vous essayez d'implémenter un système d'envoi/réception à hébergement multiple, ceci n'est pas supporté par le protocole TCP normal - vous devrez utiliser un protocole différent, probablement implémenté dans le noyau.

+0

Oui, c'est le cas. J'ai oublié de le signaler. Je recevrai la multidiffusion de l'Eth0 et enverrai/recevra TPC du modem 3G. Est-ce encore impossible? Merci. –

1

Vous pouvez faire en sorte que deux sockets UDP différentes se lient à des cartes réseau distinctes avec le bind(2) et en émettent une et écoutent de l'autre.

2

Le noyau ne vous oblige pas à utiliser une seule interface. Il choisit simplement une interface par défaut si vous ne spécifiez pas autrement. Vous pouvez spécifier une interface spécifique en spécifiant son adresse IP dans la commande bind(). Pour obtenir une liste des interfaces disponibles et de leurs noms, utilisez la fonction ioctl (SIOCGIFCONF).

Voici un exemple: http://techpulp.com/2008/10/get-list-of-interfaces-using-siocgifconf-ioctl/