wti*_*tip 6 python networking tap packet
我正在寻找创建一个客户端/服务器应用程序,我可以用来将网络数据包分成两半,通过单独的udp连接隧道传输每一半的数据包(因为每个udp连接将通过不同的wifi链接),然后重新组装在另一端拆分数据包.除了分割数据包之外,每个半数据包还必须具有ID和序列号,以便可以正确地重新组装它们.
基本上我正在尝试做类似于MLPPP的事情
我希望使用python和TUN/TAP网络驱动程序来做到这一点.我发现以下python代码示例和模块,我认为可能对此项目有所帮助.
Python tun/tap
Python原始数据包操作
我的问题是可以使用python完成必要的数据包修改,这可能是什么方法来解决这个问题?我可以使用上面的模块来做这个还是有更好的解决方案?我正在寻找一些能引导我朝正确方向发展的信息,因为我不是一名经验丰富的程序员.欢迎使用任何代码示例或其他链接.
我们在生产中正在做类似的事情,而且效果很好。不过,我们不会拆分单独的数据包。我们为每个连接设置分数权重(无限制)并将数据包发送出去。我们有一些代码来处理每行的不同延迟。在另一端,我们缓冲它们并重新排序。性能非常好 - 我们的网站拥有 5 条以上的 ADSL 线路,并且速度良好,下载速度为 40+ Mbps。
拆分数据包(例如 1500/2 = 750)会引入不必要的开销...让数据包尽可能大。
我们为 UDP 数据包开发了自己的协议(标头格式)。我们已经对 tun/tap 进行了高达 200 Mbps 的环回测试,因此内核与用户空间的交互肯定运行良好。以前我们使用 NFQUEUE 但存在可靠性问题。
以上所有内容都是用 Python 编写的。