Python を使用してデジタル ラジオのシミュレータを作成しています。ラジオは、RS-232 ポートとイーサネット ポートを 1 つずつ RF 経由で中継し、1 組のラジオがシームレスなパイプを形成します。したがって、シミュレーターはペアで使用され、それらの間のパイプは RF リンクをシミュレートし、ユーザーは物理インターフェイス、仮想インターフェイス、またはトンネルを使用して各エンドに接続できます。
RF シリアル ポートについては、PySerial と仮想シリアル ポートを使用してシミュレーターを可能な限り用途の広いものにしています。シミュレーターを物理シリアル ポート、ネットワーク ソケット、または別のローカル プログラムに接続できます。異なる OS ごとに仮想シリアル ポートを作成するために使用されるツールを除けば、このアプローチは完全にクロスプラットフォームです。
シミュレーターが、仮想インターフェイスを介してローカル プログラムと、共有ネットワーク インターフェイスを介してリモート プログラムと、シミュレーター専用のローカル物理インターフェイスを介してリモート プログラムとネットワーク接続できるようにしたいと考えています。しかし、これまでのところ、これを行う簡単な方法は見つかりませんでした。私は SLIP/PPP、TAP/DUN、pcap/SOCK_RAW などの可能性を検討してきましたが、明らかな解決策や一般的な解決策は見当たりません。
主な問題は、これが IP レベルより下のイーサネット プロトコル自体のレベルにあるイーサネット インターフェイス全体に関係しているように思われます。ポートが数個しかない場合、ソリューションは比較的単純になります。それとも、私は盲目的に明らかな何かを見逃していますか?
Python を使用して、RF シリアル インターフェイス ソリューションと同じくらい汎用性のある方法で RF イーサネット インターフェイスを作成および使用するにはどうすればよいですか?