我有什么替代方法可以在最快的时间内读取数据包?
在用户空间中写驱动程序?
我从来没有写过网卡的驱动程序(但是如果不像编写整个操作系统那样困难,我会感兴趣?)。 我可以获得已经存在的驱动程序代码,这些驱动程序代码必须存在于Linux的某处,并将其“移植”到用户空间中? Linux内核驱动程序和我的驱动程序都试图竞争相同的数据包?
不写驱动程序,而是从C / C ++应用程序堆栈之后立即访问networking数据?
用OpenCV捕获H264stream
优雅地终止一个线程不使用TerminateThread()
linux用户级(pthread)线程是否在多个内核上运行?
USB插入时自动运行
如何以编程方式更改Windows 10任务栏图标大小
我对这种方法不太了解,所以如果有人能帮到我,我会感兴趣的。
我有兴趣实现我自己的零拷贝技术,以尽可能快地获取分组数据。 这台计算机不需要使用普通的networking,它可能是两台计算机之间的专有networking连接(对于TCP和UDP)。
编辑:
我的意思是延迟 ,不是吞吐量
在将VC6转换为VS2008时尝试捕获错误
来自C#代码的CMD命令不起作用(Windows)
C#在操作系统窗口中设置环境variables(不执行)
在时钟漂移过程中,Windows C / Sleep()函数如何工作?
在ubuntu 12.04中,android-ndk-r9d-linux-x86的ndk-gdb出现错误
如你所说,在Linux中接收数据包的最低延迟是绕过需要特殊驱动程序的Linux内核。 来自Mellanox,Solarflare,Myricom,Chelsio等的高端网络适配器提供内核旁路软件。 例如,Mellanox声称,您可以在2微秒内用ConnectX-3卡和VMA 6.0软件接收数据包
本周,Mellanox宣布推出最新版本的VMA 6.0消息加速器,其中包括通过ConnectX-3 VPI适配器卡增强的TCP和UDP加速支持。 由于超低的UDP延迟低于1.4微秒,TCP套接字延迟低于1.7微秒,据报道这种消息传递技术比竞争产品快两倍以上。
http://insidehpc.com/2012/01/10/interview-mellanox-vma-6-0-tackles-latency-for-high-frequency-trading/
我会说使用PCap应该足够快。 他们还修改了Linux版本,改进了性能 – PF_RING / PF_RING DNA 。