Моделирование сетевого интерфейса в Python?

Я делаю симулятор цифрового радио с использованием Python. Радиорелейные ретрансляторы через РЧ по одному порту RS -232 и порту Ethernet, при этом пара радиомодулей образует бесшовные трубы. Таким образом, симулятор будет использоваться парами, с каналами между ними, имитирующими радиоканал, что позволит пользователям подключаться к каждому концу, используя физические интерфейсы, виртуальные интерфейсы или туннели.

Для последовательного порта RF я использую PySerial и виртуальные последовательные порты, чтобы сделать симулятор максимально универсальным. :Я могу подключить симулятор либо к физическому последовательному порту, либо к сетевому сокету, либо к другой локальной программе. Помимо инструментов, используемых для создания виртуальных последовательных портов в каждой отдельной ОС, этот подход полностью кроссплатформенный -.

Я бы хотел, чтобы симулятор мог подключаться к локальной программе через виртуальный интерфейс, к удаленной программе через общий сетевой интерфейс и к удаленной программе через локальный физический интерфейс, предназначенный для симулятора. Но до сих пор я не нашел прямого способа сделать это. Я рассматривал SLIP/PPP, TAP/DUN, pcap/SOCK _RAW и другие возможности и не вижу очевидного или общего решения.

Основная трудность, по-видимому, заключается в том, что здесь задействован весь интерфейс Ethernet ниже уровня IP, на уровне самого протокола Ethernet :. Если бы было всего несколько портов, решение было бы относительно простым. Или я упускаю что-то ослепительно очевидное?

Как использовать Python для создания и использования интерфейса RF Ethernet таким же универсальным способом, как и решение последовательного интерфейса RF?

5
задан BobC 27 June 2012 в 20:16
поделиться