03-IPCC配置
本章节下载: 03-IPCC配置 (236.76 KB)
目 录
IPCC(Intelligent Proactive Congestion Control,智能主动拥塞控制)是在ECN基础上发展的一种网络拥塞控制技术。它利用网络设备来主动监控和响应网络拥塞,通过智能调整数据流速率来优化网络性能。有关ECN功能的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
IPCC智能主动拥塞技术的实现主要依靠如下三种机制:
· 智能检测机制:IPCC能够智能识别设备端口的拥塞状态,提高拥塞检测的效率和准确性。
· 主动控制机制:当网络设备处发生拥塞时:
¡ 对于ECN,是由支持ECN的报文接收端发送CNP(Congestion Notification Packets,拥塞通知报文),通知发送端调节报文发送速率。
¡ 对于IPCC,是由配置IPCC功能的网络设备主动发送CNP,通知发送端调节报文发送速率。当报文发送端和接收端的网络规模较大时,由支持IPCC的网络设备反馈拥塞状态,可以有效提高拥塞响应速度。
· 动态调节机制:在拥塞状态变化时,IPCC能够及时调整CNP的发送量,以平衡吞吐量和时延性能。
基于以上机制,IPCC显著减少了网络延迟,提高了吞吐量,增强了网络的稳定性和效率。
IPCC功能仅对RoCEv2报文生效,而RoCEv2是基于UDP协议封装的,其报文格式如图1-1所示。
图1-1 RoCEv2报文格式
· Ethernet header:以太报文头,包括源MAC地址和目的MAC地址等信息。
· IP header:IP报文头,包括源IP地址和目的IP地址等信息。
· UDP header:UDP报文头,包括源端口号和目的端口号,其中RoCEv2报文的目的端口号为4791。
· Payload:消息负载。
· CRC和FCS:分别对应冗余检测和帧校验。
· InfiniBand Base Transport Header:InfiniBand传输层的头部字段,包含了RoCEv2报文的关键信息,IPCC功能涉及的主要字段如下。
¡ Opcode:表示RoCEv2的报文类型,具体类型如下。
- ConnectMsg:表示CM建链报文,此报文用于建立RoCEv2连接。建立RoCEv2连接后,本端和远端才能传递数据报文。
- Send:表示Send报文,此类报文用于发送端向远端请求传递数据,发送端不指定接收端存储数据的地址。
- Write:表示Write报文,此类报文用于发送端向远端请求写入数据,发送端会在报文中指定接收端存储数据的地址、key(关键值)和数据长度
- Read:表示Read报文,此类报文用于发送端向远端请求读取数据,发送端会在报文中会指定远端请求读取数据的地址、key和数据长度。
- ACK:表示ACK报文,远端每接收到一个RoCEv2报文后,均会反馈的应答消息。
以上Send、Write和Read类型的RoCEv2报文也被称为RoCEv2数据报文。
¡ Dest QP(Destination Queue Pair):目的QP,用来标识一条RoCEv2流。相当于RoCEv2报文中的目的端口,是用来建立RoCEv2流表的关键信息。
IPCC通常部署在数据中心网络场景中,在转发设备接收报文的接口上开启IPCC功能,可以实现智能主动拥塞控制。IPCC工作原理如图1-2所示。
图1-2 IPCC工作原理图
IPCC的工作过程包含以下几个步骤:
(2) 建立RoCEv2流表
当转发设备的接口开启IPCC功能后,其会对经过该接口的RoCEv2数据报文进行复制,并上送设备CPU处理:
a. 首先,根据RoCEv2建链报文中的四元组信息关键值(RoCEv2流的客户端IP地址、RoCEv2流的服务器端IP地址、客户端QP值、服务器端QP值)生成流表项,从而建立RoCEv2流表。
b. 之后,基于RoCEv2数据报文,将流表与设备的转发接口关联。
通过上述步骤,持续更新和维护RoCEv2流表,以便跟踪每条RoCEv2流的地址信息和转发路径。
(3) 智能计算拥塞通知报文数量
转发设备检测开启IPCC功能的接口队列长度,根据队列的拥塞状态智能计算主动发送的拥塞通知报文数量:
¡ 当队列长度增加时:如果队列缓存占用率较小,仅需发送少量拥塞通知报文;如果队列缓存占用率较大,则应发送更多的拥塞通知报文以迅速缓解拥塞,减少转发时延。
¡ 当队列长度减少时:如果队列缓存占用率较小,则无需发送拥塞通知报文,以免降速导致吞吐量下降;如果队列缓存占用率较大,则需发送少量拥塞通知报文,尽可能在保证吞吐和时延性能的同时缓解队列拥塞。
(4) 构造并发送拥塞通知报文
转发设备按照计算出的拥塞通知报文数量和RoCEv2流表中的地址信息,构造相应的拥塞通知报文,并主动发送给发送端。发送端在收到拥塞通知报文后将降低RoCEv2报文的发送速率。
IPCC功能不支持和M-LAG功能配合使用。有关M-LAG的详细介绍请参见“二层技术-以太网交换配置指导”中的“M-LAG”。
IPCC功能仅对三层单播流量生效,并且对隧道封装的报文(如VXLAN、GRE等)不生效。
IPCC配置任务如下:
(1) 开启IPCC功能
(2) 对指定队列开启IPCC功能
IPCC功能仅对RoCEv2报文生效。
IPCC功能是基于全局双向流的RoCEv2流量分析功能。如果IPCC和Netanalysis同时使能,必须配置NetAnalysis功能的工作模式为双向模式,并且netanalysis rocev2 statistics命令必须配置为全局模式。
配置本功能的同时,需要对指定队列开启IPCC功能(通过ipcc queue命令),否则配置不生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
IPCC功能仅支持在二层以太网接口和三层以太网接口上配置,不支持在三层以太网子接口、聚合接口等逻辑接口上配置。
(3) 开启IPCC功能。
ipcc enable
缺省情况下,IPCC功能处于关闭状态。
开启了本功能后,转发设备会对开启了IPCC功能的指定队列的队列长度进行检测,根据队列的拥塞状态智能计算出主动发送的拥塞通知报文数量,接着按照计算出的报文数目和RoCEv2流表中获取到的构造拥塞通知报文所需的字段信息来构造拥塞通知报文,向RoCEv2数据报文发送端主动发送拥塞通知报文,发送端收到拥塞通知报文后降低RoCEv2报文的发送速率。
在配置本功能的同时,需要通过ipcc enable命令开启指定接口的IPCC功能,否则配置不生效。
(1) 进入系统视图。
system-view
(2) 配置对指定队列开启IPCC功能。
ipcc queue queue-id
缺省情况下,未对任何队列开启IPCC功能。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IPCC的运行情况,通过查看显示信息验证配置的效果。
表1-1 IPCC显示和维护
操作 |
命令 |
显示IPCC中设备主动发送的CNP报文统计信息 |
display ipcc statistics interface interface-type interface-number |
清除IPCC中设备主动发送CNP报文的统计信息 |
reset ipcc statistics [ interface interface-type interface-number ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!