在最快的时间内读取数据包的替代方法是什么?
在用户空间中编写驱动程序?
我从未编写过网卡驱动程序(尽管如果不像编写整个操作系统那样困难,我会感兴趣吗?)。我能否获得Linux中某个地方必须已经存在的驱动程序代码,并将其从字面上“移植”到用户空间中?Linux Kernel驱动程序和我的驱动程序都将尝试竞争同一数据包吗?
不是编写驱动程序,而是从C / C ++应用程序堆栈之后立即访问网络数据?
我对这种方法不太了解-因此,如果有人可以在这里提供帮助,我会很感兴趣。
我对实现自己的零复制技术以尽可能快地获取数据包数据感兴趣。这台计算机不需要使用普通的Internet,它可以是两台计算机之间的专用网络连接(用于TCP和UDP)。
编辑:
我的意思是等待时间,而不是吞吐量
如您所说,在Linux中接收数据包的最低延迟是绕过Linux内核,这需要特殊的驱动程序。来自Mellanox,Solarflare,Myricom,Chelsio等的高端网络适配器提供了内核绕过软件。例如,Mellanox声称您可以使用其ConnectX-3卡和VMA 6.0软件在2微秒内收到数据包
本周,Mellanox宣布了其最新版本的VMA 6.0 Messaging Accelerator,其中包括通过ConnectX-3 VPI适配器卡增强的TCP和UDP加速支持。据报道,这种消息传递技术的UDP延迟低于1.4微秒,TCP套接字延迟低于1.7微秒,因此其速度是竞争产品的两倍以上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句