Python中的网络接口仿真?

Bob*_*obC 5 python simulation networking interface

我正在使用Python制作数字广播的模拟器.无线电通过RS-232端口和以太网端口的RF一中继,一对无线电管制作无缝管道.因此,模拟器将成对使用,它们之间的管道模拟RF链路,允许用户使用物理接口,虚拟接口或隧道连接到每一端.

对于RF串行端口,我使用PySerial和虚拟串行端口使模拟器尽可能多样化:我可以将模拟器连接到物理串行端口,网络套接字或另一个本地程序.除了用于在每个不同操作系统上创建虚拟串行端口的工具之外,此方法完全是跨平台的.

我想模拟器能够通过共享的网络接口经由虚拟接口网络与本地节目,与远程程序,并与经由将被专用于模拟器本地物理接口的远程程序.但到目前为止,我还没有找到一种直截了当的方法来做到这一点.我一直在关注SLIP/PPP,TAP/DUN,pcap/SOCK_RAW以及其他可能性,我看不出明显或一般的解决方案.

关键的困难似乎是涉及整个以太网接口,低于IP级别,在以太网协议本身的层面:如果它只是几个端口,解决方案将相对简单.或者我错过了一些令人眼花缭乱的事情?

如何使用Python以与RF串行接口解决方案一样多功能的方式创建和使用RF以太网接口?

Bob*_*obC 3

人们发布的大量答案鼓励我跳出框框思考。

我的方法是使用 Dummynet,这是一个真正令人惊叹的多功能工具。不幸的是,Dummynet Windows 和 Linux 端口维护得不好,这意味着我将运行 *BSD。

但这简化了事情,因为 *BSD 映像也可以作为 VM 运行,这大大简化了虚拟接口的处理。

如果我担心尺寸,我可以使用 picoBSD 或 nanoBSD 为我的模拟器制作一个小型定制系统。