2017-10-03 6 views
0

Je suis un peu en difficulté. Je dirais que la raison principale est que je n'ai pas étudié complètement le modèle OSI.Comment sélectionner les ports ethernet pour la connexion UDP?

J'ai un flux entrant en entrée UDP sur le port ETH0 de ma machine Linux. J'effectue certaines fonctions avec ma machine Linux. Maintenant, je veux envoyer un autre flux (à partir d'un tuyau nommé) à nouveau comme sortie UDP au port ETH1 de la machine.

Le flux d'entrée provient d'un encodeur et la sortie est également envoyée vers un PC Windows pour être testé.

machine Linux est Ubuntu OS 12.

Est-ce possible, et comment puis-je y parvenir? Je vous serais reconnaissant si vous pouviez me dire tout à partir de zéro

Merci

EDIT 1: Pour vous donner un avant-goût de ce qui se passe dans mon esprit:

Permettez-moi de le décomposer en Lay man man (je crois que les réponses sont déjà assez lay-man pour vous les gars, lol) mais de toute façon:

J'ai un appareil qui génère un flux vidéo. Ce flux vidéo sort d'un câble que je branche dans le trou de mon processeur étiqueté "ETH0". Maintenant, il y a quelque chose d'une adresse qui va "UDP" et je peux utiliser cette adresse pour voir le flux vidéo sur ma machine Linux. Maintenant, je fais des choses fantaisistes sur ce sujet (démultiplexage, encodage, re-multiplexage) et Voila j'ai un "tube nommé" que je veux ensuite sortir sur un autre appareil.

Maintenant, cet autre périphérique est connecté à ma machine Linux via un second câble branché dans le trou 'ETH1' de la CPU. Je comprends que je vais devoir envoyer des données sur ce deuxième câble sous la forme de "paquets UDP" avec une adresse définie (et le port?).

Comment puis-je travailler sur les détails? Comment "choisir" quel UDP dépasse quel ETH?

+0

Vous utilisez Ethernet et UDP. Ceux-ci n'ont rien à voir avec le modèle OSI, qui est à la fois défunt et inapplicable à tout ce qui existe dans le monde réel. Ils * ont * quelque chose à voir avec le modèle * TCP/IP *, et le modèle Ethernet, bien que ce soit un "port Ethernet" qui me dépasse. Pas clair ce que vous demandez. – EJP

+0

@EJP Je crois que "port Ethernet" se réfère ici à une interface Ethernet physique sur une carte réseau. – Vovanrock2002

+0

Désolé pour le mauvais choix de mots, mon cerveau s'est détraqué avec des heures de googling et probablement lu beaucoup de choses non pertinentes. Par port Ethernet, je voulais dire "L'endroit où vous insérez le câble Ethernet". –

Répondre

1

Il appartient au routeur IP de l'OS de décider quelle interface utiliser. Habituellement, vous ne voulez pas vraiment "pousser quelque chose hors de eth1", parce que ce serait, bien, opération de niveau 1 de l'OSI. Vous travaillez au niveau 3, donc ce que vous préférez, c'est "envoyer quelque chose à un tel endroit, donc l'envoi par eth1 est optimal".

La solution la plus simple consisterait à définir une route statique qui indique au système que les datagrammes IP vers un emplacement spécifique doivent être envoyés via une interface spécifique ou via une interface avec une adresse IP spécifique. Les deux options sont couvertes par this AskUbuntu question.

+0

Hey! vérifier le montage s'il vous plaît ... Il est trop long pour un commentaire –

+0

@vedantgala la réponse est toujours la même. Mettre en place des routes statiques entre le PC et le second appareil et n'hésitez pas à envoyer des datagrammes entre eux alors. Dans le code, lier à l'adresse IP de l'interface et envoyer des données à l'adresse de l'appareil - Ubuntu va déterminer quelle interface physique utiliser. – Vovanrock2002

+0

okay j'ai une dernière question; dis que j'ai des datagrammes que je veux sortir en UDP (et éventuellement envoyer sur ETH1). Dites que cette adresse est udp: //@229.1.1.11: 5000. Comment puis-je savoir que cela se terminera sur ETH1 et non sur ETH0? car en même temps d'une autre adresse udp: //@225.1.0.122: 1234 reçoit en continu des données (qui sont venues par ETH0). Y a-t-il une adresse supplémentaire à assigner avant/après l'udp: // @ 229 .... qui fera la différence entre les deux ETH0 et ETH1? C'est après que j'ai défini des routes statiques –