绕过TCP-IP堆栈

Joe*_*oel 5 performance network-programming tcp

我意识到这是一个有点开放的问题......

在低延迟应用程序的上下文中,我听到了绕过TCP-IP堆栈的引用.

这是什么意思,并假设您在网络上有两个需要交换消息的进程,这样做的各种选项(和相关的权衡)是什么?

Ste*_*e-o 4

通常,第一步是使用 TCP 卸载引擎、ToE 或用户空间 TCP/IP 堆栈(例如 OpenOnload)。

完全跳过 TCP/IP 意味着通常会考虑 InfiniBand 并使用 RDMA 动词,甚至在原始以太网之上实现自定义协议。

一般来说,由于使用内核中的任何内容,您会产生延迟,因此用户空间机制是理想的,然后 TCP/IP 堆栈本身就是一种开销,考虑到所有层和可以安排的复杂性:IP 系列、子层网络、VLAN、IPSEC 等