IB网络特点
IB网络通过如下几个技术,提供了更低的时延,更高的带宽,更低的cpu占用。
Kernel Bypass(内核旁路):应用程序直接与网卡交互,不经过操作系统。
Zero Copy(零拷贝):数据直接从网卡拷贝到应用程序内存中,不经过内核中转,不产生额外的拷贝副本。
CPU Offload(硬件卸载):所有传输逻辑(路由,包头拆解,数据校验等)由网卡处理,cpu不参与。
更高的带宽
IB网络目前能提供200 Gb/s的带宽能力,远超传统以太网。
更低的延迟
传统以太网的处理流程如下:
1:以太网卡将数据通过DMA方式写入内存空间。
2:操作系统内核协议栈对该数据进行处理。
3:操作系统通知应用程序处理接收到的网络数据。
4:应用程序从内核空间拷贝数据到应用程序内存并进行处理。
通过以上处理流程,10G的网络流量带宽至少需要消耗20G的内存带宽,因此带来了较高的带宽消耗和延迟。
IB网络处理流程如下:
1:应用程序向网卡注册可以使用的内存空间。
2:网卡接收到数据后直接进行协议栈的处理(offload概念,协议栈功能下放网卡)。
3:网卡处理完成后,将数据写入应用程序注册的内存空间(bypass概念)后通知应用程序进行处理。
4:应用程序直接处理写入内存的数据包,无需要操作系统内核参与,也无需额外拷贝数据(bypass概念)。
IB网卡通过该方式,数据包只需要向内存拷贝一次,对于10G的网络流量,只消耗10G的内存带宽,因此带来了更低的处理延迟。
更低的CPU占用
由于通信协议栈的处理,CPU不在参与,因此带来了更低的CPU占用。