Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.8.2. 了解 IPoIB 通信模式

IPoIB 设备可以配置为在数据报或连接模式下运行。其区别在于,IPoIB 层尝试在通信的另一端与计算机打开的队列对类型。对于数据报模式,打开不可靠、断开连接的队列对。对于连接的模式,打开可靠、连接的队列对。
使用数据报模式时,不可靠、断开连接的队列对类型不允许任何大于 InfiniBand link-layer 的 MTU 的数据包。IPoIB 层在传输的 IP 数据包之上添加一个 4 字节 IPoIB 标头。因此,IPoIB MTU 需要比 InfiniBand link-layer MTU 小 4 字节。因为 2048 是一个常见的 InfiniBand 链路层 MTU,数据报模式中常见的 IPoIB 设备 MTU 是 2044。
使用连接模式时,可靠、连接的队列对类型允许大于 InfiniBand link-layer MTU 的消息,主机适配器在每个端处理数据包分段和重新集合。因此,InfiniBand 适配器以连接模式发送的 IPoIB 信息大小没有限制。但是,IP 数据包只具有 16 位大小字段的限制,因此限制为 65535 的最大字节数。允许的最大 MTU 实际上比这小,因为我们还必须考虑还必须符合该大小的各种 TCP/IP 标头。因此,连接模式中的 IPoIB MTU 被上限为 65520,以确保有足够的空间用于所有需要的 TCP 标头。
连接的模式选项通常具有更高的性能,但也消耗更多的内核内存。由于大多数系统比内存消耗更关注性能,因此连接模式是最常用的模式。
但是,如果为连接模式配置系统,它仍然必须以数据报模式发送多播流量(InfiniBand 交换机和光纤无法以连接模式传递多播流量),并且在与未为连接模式配置的任何主机通信时,它也会回退到数据报模式。管理员应注意,如果他们打算运行发送多播数据的程序,并且这些程序尝试将多播数据发送到接口上的最大 MTU,那么有必要为数据报操作配置接口,或者找到配置多播应用以将数据包发送大小调整到数据存储大小数据包的大小。