读取网络数据的最快方法
Quickest way to read network data?
我有哪些替代方法可以在最快的时间内读取数据包?
在用户空间中编写驱动程序
我从未为网卡编写过驱动程序(尽管如果它不像编写整个操作系统那么困难,我会感兴趣吗?)。我可以获得Linux中某个地方必须存在的现有驱动程序代码,并将其"移植"到用户空间吗?Linux内核驱动程序和我的驱动程序会试图争夺相同的数据包吗?
不是编写驱动程序,而是在堆栈之后立即从C/C++应用程序访问网络数据
我对这种方法了解不多,所以如果有人能在这里帮忙,我会感兴趣的。
我有兴趣实现我自己的零拷贝技术,以尽可能快地获得数据包数据。这台计算机不需要使用普通的互联网——它可以是两台计算机之间的专有网络连接(用于TCP和UDP)。
编辑:
我的意思是延迟,而不是吞吐量
正如您所说,Linux中接收数据包的最低延迟是绕过需要特殊驱动程序的Linux内核。Mellanox、Solarflare、Myricom、Chelsio等高端网络适配器提供内核旁路软件。例如,Mellanox声称,使用他们的ConnectX-3卡和VMA 6.0软件,您可以在2微秒内收到一个数据包
本周Mellanox宣布了其VMA6.0的最新版本消息加速器,包括增强的TCP和UDPConnectX-3 VPI适配器卡的加速支持。超低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。
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 是否有一种标准化的方法通过TCP/IP网络发送JPG图像
- 我不确定如何引用此神经网络训练方法中的权重
- 扫描网络中开放端口的最快方法
- 从 mfc 应用程序点击网络服务,并希望从网络服务登录方法读取用户代码返回
- 网络tcp套接字应用程序重试方法
- 对于tanh激活函数神经网络,对负/非数值数据进行归一化的最佳方法是什么
- ping 本地网络地址的最快方法
- 运行网络测试的方法
- 读取网络数据的最快方法
- 在网络应用程序中缓冲数据的OOP方法
- 保护 Cap'n Proto RPC 网络流量的好方法是什么?
- 在c/c++中实现神经网络的方法是什么?
- 在Windows上获得cpu使用率和网络吞吐量的最有效和最基本的方法
- 一种保护通过网络发送的数据的方法
- 是否有一种跨平台的方法可以在C++中获取网络统计信息