Tworzę symulator cyfrowego radia za pomocą Pythona. Przekaźniki radiowe nad RF przesyłają po jednym porcie RS-232 i porcie Ethernet, z parą radiotelefonów tworzących bezszwowe rury. W związku z tym symulator będzie używany w parach, z rurami pomiędzy nimi symulującymi łącze RF, umożliwiając użytkownikom łączenie się z każdym końcem za pomocą fizycznych interfejsów, wirtualnych interfejsów lub tuneli.Symulacja interfejsu sieciowego w Pythonie?
Dla portu szeregowego RF używam PySerial i wirtualnych portów szeregowych, aby symulator był jak najbardziej wszechstronny: mogę podłączyć symulator do fizycznego portu szeregowego, do gniazda sieciowego lub do innego lokalnego programu . Oprócz narzędzi używanych do tworzenia wirtualnych portów szeregowych na każdym innym systemie operacyjnym, podejście to jest całkowicie wieloplatformowe.
Chciałbym, aby symulator mógł łączyć się z lokalnym programem za pośrednictwem wirtualnego interfejsu, ze zdalnym programem za pośrednictwem współdzielonego interfejsu sieciowego oraz ze zdalnym programem poprzez lokalny fizyczny interfejs, który byłby dedykowany symulator. Ale do tej pory nie znalazłem prostego sposobu na zrobienie tego. Patrzyłem na SLIP/PPP, TAP/DUN, pcap/SOCK_RAW i inne możliwości i nie widzę oczywistego ani ogólnego rozwiązania.
Kluczowa trudność polega na tym, że dotyczy to całego interfejsu Ethernet, poniżej poziomu IP, na poziomie samego protokołu Ethernet: gdyby było to tylko kilka portów, rozwiązanie byłoby stosunkowo proste. Czy może brakuje mi czegoś oślepiająco oczywistego?
Jak używać języka Python do tworzenia i korzystania z interfejsu RF Ethernet w sposób tak wszechstronny, jak rozwiązanie interfejsu szeregowego RF?
[Dummynet] (http://info.iet.unipi.it/~luigi/dummynet/) i [ns-3] (http://www.nsnam.org/wiki/index.php/Main_Page) wydają się interesujące i są wieloplatformowe. – BobC
Dodaj interfejsy TAP (lub może TUN), a ja mogę być gotowy! – BobC