• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

智能无损网络技术白皮书-6W105

手册下载

智能无损网络技术白皮书-6W105-整本手册.pdf  (1.89 MB)

  • 发布时间:2025/10/14 19:41:47
  • 浏览量:
  • 下载量:

智能无损网络技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2025 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品


 

1 概述··· 1-1

1.1 简介·· 1-1

1.2 智能无损网络的发展·· 1-1

1.3 产生背景·· 1-1

1.3.1 RDMA需要无损网络环境·· 1-1

1.3.2 无损网络是数据中心必要的基础设施·· 1-3

1.3.3 分布式应用业务需要无损网络技术·· 1-4

1.4 技术架构·· 1-5

2 流量控制技术··· 2-6

2.1 流量控制技术的起源·· 2-7

2.2 PFC工作原理·· 2-8

2.2.1 转发芯片缓存简介·· 2-8

2.2.2 PFC工作流·· 2-10

2.3 PFC死锁检测·· 2-12

2.3.1 PFC死锁的产生·· 2-12

2.3.2 触发PFC死锁检测·· 2-12

2.3.3 PFC死锁判定·· 2-13

2.3.4 PFC死锁恢·· 2-13

2.4 PFC死锁预防·· 2-13

2.4.1 PFC死锁预防的产生背景·· 2-13

2.4.2 PFC高风险业务流·· 2-14

2.4.3 PFC死锁预防工作原理·· 2-15

3 拥塞控制技术··· 3-15

3.1 ECN· 3-16

3.1.1 基本概念·· 3-16

3.1.2 实现原理·· 3-16

3.2 时延ECN和动态ECN· 3-19

3.2.1 时延ECN的工作原理·· 3-19

3.2.2 动态ECN的工作原理·· 3-21

3.3 ECN Overlay· 3-23

3.3.1 基本概念·· 3-23

3.3.2 实现原理·· 3-23

3.4 AI ECN· 3-24

3.4.1 背景简介·· 3-24

3.4.2 实现原理·· 3-25

3.5 IPCC· 3-27

3.5.1 基本概念·· 3-27

3.5.2 实现原理·· 3-27

4 负载均衡技术··· 4-30

4.2 LBN· 4-31

4.2.1 应用场景·· 4-31

4.2.2 工作原理·· 4-32

4.3 DLB· 4-34

4.3.1 单一流切分·· 4-34

4.3.2 引入新变量·· 4-35

4.4 FGLB· 4-36

4.4.1 应用场景·· 4-36

4.4.2 工作原理·· 4-37

4.5 Spraylink· 4-39

4.5.1 工作原理·· 4-40

4.6 DDC· 4-41

4.6.1 DDC架构简介·· 4-41

4.6.2 DDC的工作原理·· 4-42

5 大小流区分调度··· 5-45

5.1 大小流区分调度原理·· 5-45

5.2 大小流自适应缓存·· 5-45

6 智能无损存储网络技术(iNOF··· 6-46

6.1 iNOF简介·· 6-46

6.2 iNOF组网·· 6-47

6.2.1 iNOF网络元素·· 6-47

6.2.2 iNOF直连组网·· 6-47

6.2.3 iNOF跨交换机组网·· 6-48

6.3 技术优点·· 6-49

6.4 H3C iNOF实现的技术特色·· 6-50

7 参考文献··· 7-50

 


1 概述

1.1  简介

智能无损网络是一种通过流量控制、拥塞控制、负载均衡等技术,实现“零丢包、低延迟和高吞吐”的网络技术方案。它主要应用在数据中心网络中,用于满足AI训练、分布式存储、HPCHigh Performance Computing,高性能计算)等场景需求。

1.2  智能无损网络的发展

2008年以前,数据中心以物理机房为核心,聚焦服务器托管和基础网络连接。此阶段网络以高带宽和基础连通性为目标,但缺乏对低时延、零丢包的支持。此时,计算、存储和业务网络三网分立,无法满足高性能业务需求。

随着虚拟化和云计算兴起,数据中心网络面临流量激增与性能瓶颈问题。为了提升网络性能,“零丢包、低延迟和高吞吐”的无损网络成为发展方向。2009年前后,InfiniBand因市场低迷逐渐边缘化,以太网通过TRILL(多链路透明互联)和DCB(数据中心桥接)两大技术实现突破。同时,RoCERDMA over Converged Ethernet)协议诞生,依托RDMA技术大幅降低CPU负载,推动无损网络进一步演进。

20142020年,为支撑分布式存储、高性能计算(HPC)等场景,避免以太网络中RoCE丢包问题,无损网络的两大核心技术逐步完善——PFC(基于优先级的流量控制)通过按优先级暂停流量,避免缓冲区溢出导致的丢包。ECN(显式拥塞通告)端到端主动通知发送端降速,减少全局吞吐影响。

2020年之后,智能无损网络进入全面落地期。物理层集成AI芯片优化转发效率,网络层结合AI技术实现动态拥塞预测,应用层通过iNOF(智能无损存储网络)统一存储与以太网协议。未来,随着AI算力需求爆发,智能无损网络将进一步突破性能边界。

1.3  产生背景

1.3.1  RDMA需要无损网络环境

RDMARemote Direct Memory Access,远程直接内存访问)技术的核心在于“绕过操作系统内核(Kernel Bypass)”和“零拷贝(Zero-Copy)”。它允许应用程序在远程主机的内存中直接读写数据,而不需要目标主机的CPU参与数据传输,也不需要数据经过本地操作系统的网络协议栈进行封装/解封装。因此,相对TCP/IP协议栈的处理流程,RDMA绕过了系统内核协议栈数据拷贝上下文切换等过程,使得服务器内的数据处理时延降低到微秒级别。另一方面,TCP/IP协议栈的吞吐量受CPU处理能力的限制,单流性能通常在10Gbps以下,一旦吞吐量达到40GbpsCPU利用率将达到100%RDMA绕过内核处理流程,可实现100Gbps甚至更高吞吐率,而不大幅占用CPU资源。因此,作为以太网承载的RDMA技术,RoCEv2RDMA over Converged Ethernet version 2)协议已成为数据中心高性能网络的主流协议。

图1 RDMA的相对优势

 

当前分布式存储、HPC高性能计算、AI人工智能等数据中心场景均采用RoCEv2作为以太网上的传输协议来降低传输时延和CPU负担同时提升吞吐率。但是RoCEv2是一种基于无连接的UDP协议,缺乏完善的丢包保护机制,发生丢包后,需由应用层或上层协议处理,同时触发整个队列的暂停和重传,导致带宽利用率骤降。RoCEv2协议要求网络的丢包率不超过0.00001,理想情况应该提供零丢包的网络环境。为了发挥出RDMA的真正性能,突破数据中心大规模分布式系统的网络性能瓶颈,势必要为RDMA搭建一套“无丢包、低时延、高吞吐”的无损网络环境。

图2 RoCEv2协议的吞吐率和丢包率关系示意图

 

1.3.2  无损网络是数据中心必要的基础设施

计算、存储、网络是数据中心的三要素,三者需要协同发展。在计算芯片算力、存储读取速度方面,业界取得了巨大的进展,只有不断提升网络性能,才能满足数据中心各类应用场景需求。

在分布式存储应用场景中,存储介质不断发展,采用NVMeNon Volatile Memory Express,非易失性内存主机控制器接口规范)接口协议的SSD存储介质和SCMStorage Class Memory,存储类内存)访问性能相对HDD机械硬盘提升了10000倍。然而,传统以太网端到端的网络时延数量级一般在微秒量级。一旦网络中出现拥塞丢包,端到端网络时延会超过毫秒量级。网络的时延逐渐成为阻碍分布式存储系统整体性能进一步提升的主要因素。

图3 存储介质的访问时延和端到端网络时延对比示意图

 

2016年到2025年,近10GPU/AI芯片算力增长了几百倍。但在大模型训练任务场景中,AI模型参数量每18个月增长40倍,远超同期芯片算力增速,模型训练任务需数大量GPU集群协作。如4所示,随着集群中计算节点数量的增加,训练任务完成时长呈现下降趋势,但随着计算节点进一步扩大,由于任意节点的网络通信延迟或数据丢包重传引发所有节点等待,反而降低了计算效率、延长了训练完成时间。因此,在算力和存储性能飞速发展的背景下,无丢包和低时延的无损网络环境是未来数据中心发展的必要的基础设施。

图4 计算节点通信时延抵消了计算节点数量增加带来的效率提升

 

1.3.3  分布式应用业务需要无损网络技术

随着云计算发展,数据中心里绝大部分核心业务均采用分布式架构部署。分布式应用业务通常将复杂的大规模计算任务拆解为可并行执行的子任务,分发到集群中的不同计算节点进行处理。每个计算节点执行任务后,再将处理结果进行汇总,统一传输给同一个节点。此时,网络中就出现了“many to one”的Incast流量模型。在以太网设备的出端口,Incast流量极易引发设备内部缓存溢出,造成网络拥塞,甚至导致丢包。以太网中端到端的时延主要包括信号在链路上的传播时延(5纳秒/米)、数据串行处理时延(纳秒级)、拥塞排队时延和丢包重传造成的时延(毫秒级)等。丢包重传带来的时延远大于信号传输和转发时延,会显著降低分布式应用的性能。为了避免数据中心业务场景中Incast流量模型的问题,必须采用无损网络技术方案。

图5 Incast流量易引发拥塞丢包

 

1.4  技术架构

由于标准以太网本身允许丢包,不具备原生无损特性,而拥塞丢包是造成数据中心网络高时延、低吞吐的核心问题。为了在标准以太网基础设施上高效稳定地运行RoCEv2协议,需通过一系列技术实现无损环境。在智能无损网络中,流量控制技术和拥塞控制技术是保证网络无丢包的基础,在此基础上,利用流量调度技术,如负载均衡和大小流区分等手段为流量合理分配网络资源,提升网络的综合性能。智能无损网络的技术架构如6所示:

图6 智能无损网络的技术架构

 

·     流量控制技术:是在节点间应用的防丢包技术,属于“链路”级别技术,而非端到端整网流量控制方案。

流量控制技术主要是指IEEE 802.1Qbb定义的PFCPriority-based Flow Control,基于优先级的流量控制)。PFC主要部署在网络边缘的交换设备。连接计算或存储节点的边缘网络设备在检测到接收缓存即将溢出时,向发送端发送“暂停帧”(PFC Pause Frame),临时停止特定优先级队列的数据发送,避免队列拥塞丢包。通常为了避免整网业务瘫痪,与PFC共同部署的还包括PFC死锁检测、PFC死锁预防。

·     拥塞控制技术:是端到端的防丢包技术,避免整网任意位置发生流量拥塞。拥塞控制技术的核心是基于ECNExplicit Congestion Notification,显式拥塞通知)通过拥塞通知报文告知发送端降速来避免拥塞丢包,本文主要介绍ECN门限设置方式和手段。

·     流量调度技术:包括流量在链路上的负载均衡技术以及差异化的队列调度机制(大小流区分调度)。通过合理的流量调度避免拥塞并且最大化利用链路带宽,提升网络整体性能。

·     存储网络融合:在存储网络应用场景中,智能无损网络提供了iNOFIntelligent Lossless NVMe Over Fabric,智能无损存储网络)功能,通过对iNOF主机的快速管控,提升存储网络的易用性,实现以太网和存储网络融合。

2 流量控制技术

为了控制以太网交换机之间或网卡与交换机端口之间链路流量超出接收端处理能力,造成接收端丢包,IEEE 802.3工作组定义以太网的流量控制技术。流量控制技术是无损网络的基础。

流量控制技术是在两个节点间的链路上应用的防丢包技术,属于“链路”级别技术而非端到端整网流量控制方案,因此又称为链路级流控技术。

2.1  流量控制技术的起源

1997IEEE 802.3工作组批准了802.3X Annex 31B扩展标准,它描述了最基本的链路间流量控制规范。802.3X Annex 31B中规定,接收设备端口在接收缓存已满或即将溢出时,可以向发送设备端口发送以太网PAUSE控制帧(Ethernet PAUSE MAC Control Frame)暂停发送端的数据传输,防止接收端拥塞丢包。802.3X Annex 31B的流量控制规定称为基于端口的流量控制(Global PAUSE)。如7所示,发送端暂停时间由以太网PAUSE控制帧中携带的2字节PAUSE Time定义,取值范围为065535,暂停时长的单位称为Quanta,每个Quanta等于传输512比特所需时间。对于速率越高的链路,暂停时间越短。

图7 以太网PAUSE控制帧结构

 

基于端口的流量控制一旦开启,端口上所有类型流量都会被暂停,不同服务等级的流量都将受到影响,无法保证高优先业务的延迟和抖动。另外,整个链路的流量暂停会大幅减少链路吞吐率并降低链路带宽利用率。因此,IEEE 802.3工作组在基于端口的流量控制基础上改进,提出了PFCPriority-based Flow Control,基于优先级的流量控制)。

PFC允许网络设备根据不同数据流的优先级进行流量控制。当接收缓存中特定优先级对应的流量即将溢出时,网络设备可以向对端设备发送反压信号(PFC PAUSE帧如8所示),要求对端设备停止发送特定优先级的流量,以防止缓存溢出和数据丢失。这种个别流量控制方式允许网络在某些流量拥塞时保持流畅,同时防止对其他流量造成干扰。

图8 PFC PAUSE帧结构

 

2.2  PFC工作原理

RoCEv2交换机中,数据包转发、流量控制、拥塞控制和负载均衡功能都是由接口板卡上的转发芯片完成,且流量控制技术和拥塞控制技术都与转发芯片的缓存管理联系紧密。因此,在介绍PFC工作原理前,需要简单了解转发芯片的缓存机制。

2.2.1  转发芯片缓存简介

9所示,转发芯片中存在一块公共的MMUMemory Management Unit,内存管理单元)用于缓存设备端口接收和发送的数据报文。MMU的存储空间大小可以从几十MB到几个GB不等,对于高速低时延的数据中心交换机而言,一般配置较小的缓存空间以减少寻址时延。

图9 典型转发芯片的架构示意图

 

设备将入(Ingress)和出(Egress)两个方向的报文都缓存到MMU中的物理缓存空间中。在逻辑上,MMU按队列粒度设置缓存上限并区分入方向和出方向队列。当设备接收报文时,先将报文按优先级映射到指定的入端口队列中,若该端口队列已占用的缓存空间大小与该报文长度之和超出入方向缓存上限,则缓存溢出,报文被丢弃。同理,设备发送的报文若超出端口队列的出方向缓存上限也会被丢弃。

说明

此处,统一以“队列”指代出方向和入方向的逻辑实现。入方向的“队列”是基于优先级映射实现的,也称为Priority Group。出方向的“队列”表示不同的调度算法,例如加权公平队列(WFQ)、随机早期检测(RED),也称为Queue

 

10所示,MMU除了设置缓存上限外,对入(Ingress)和出(Egress)方向端口队列还会细分不同“水线”,这些“水线”是影响流量控制和拥塞控制的关键。

图10 IngressEgress方向的不同“水线”示意

 

MMU将端口队列的缓存上限进一步细分:

·     Guaranteed(保证缓存):按端口和队列严格划分,用于保证端口下队列的基本转发能力。保证缓存不支持互相抢占,设备缺省情况下会为每个队列设置固定大小的保证缓存,避免队列中报文因抢占不到共享缓存空间而无法转发。转发芯片中MMU可能不存在保证缓存。

·     Shared(共享缓存):按队列划分,不同端口的同一队列共享缓存空间。共享缓存用于保证队列的突发转发能力,当队列中存在突发流量,保证缓存空间不足时,可以使用Shared缓存暂时存储未转发出去的报文。共享缓存空间通常较大,队列之间支持互相抢占共享缓存空间。MMU根据当前空闲的缓存空间大小、队列已占用的缓存空间大小动态调整队列可用的共享缓存空间,从而避免丢包。

·     Headroom(预留的专用缓存):在入方向端口队列存在预留的专用缓存。Headroom缓存专门用于存储本队列触发PFC功能后接收到的报文。在发送PFC PAUSE帧之后到上游设备停止发包之前,这段时间内收到的报文存储在Headroom缓存中,防止报文被丢弃。

入方向端口队列的最大可用的共享缓存和保证缓存之和即PFC反压门限XOFF。当入方向队列占用达到PFC反压门限XOFF时,将触发PFC机制,设备端口生成PFC PAUSE帧。当入方向队列占用恢复到PFC恢复门限XON时,即恢复正常,允许报文发送。

2.2.2  PFC工作流程

11所示,PFC工作原理如下:

(1)     Device A通过直连端口向Device B持续发送不同802.1p优先级标识的业务流量。Device B接收端口收到流量后,根据端口的优先级映射关系将802.1p标识的业务流量放到对应的队列中等待转发。例如,Priority1的流量进入缓存队列1

(2)     当缓存队列1的流量未及时转发,缓存空间虽未溢出但队列长度超出了PFC反压门限XOFF时,Device B立即向Device A发送PFC PAUSE帧。PFC PAUSE帧中e[1]置为1,表示队列1的流量要暂停发送一段时间,Device A按照PFC PAUSE帧的指示暂停发送对应优先级的流量。此时,Device ADevice B之间其他优先级的流量可以正常处理。如果缓存队列1持续超出XOFF,则Device A将会持续接收到多个PFC PAUSE帧,对应优先级流量一直处于暂停发送状态。

(3)     当拥塞情况缓解后,缓存队列1中的流量被转发,队列长度低于PFC反压解除门限XON。此时Device BDevice A发送RESUME消息,允许缓存队列1的流量正常发送。

注意

PFC反压门限XOFFHeadroom缓存大小需要合理规划设置,否则可能一旦拥塞Headroom缓存就迅速溢出,PFC未生效即造成网络丢包,也可能由于频繁触发PFC机制降低链路吞吐率。XOFFHeadroom缓存大小的设置通常要综合考虑众多因素的影响,例如:

·     PFC PAUSE帧通过链路传输所需的时间,这被称为传输延迟。在PFC PAUSE帧到达Device A并得到确认前,数据传输并未暂停,此时需要足够的Headroom缓存报文。

·     接收端Device A的响应时间,即其内部逻辑处理PFC PAUSE帧所需的时间。规范中将此限制为60Quanta,在10Gbps链路上相当于3840字节。

·     收发设备接口的MTU值。以接收设备为例,设想当Device B准备发送PFC PAUSE帧的瞬间,恰好有满载MTU尺寸的帧进入收发器逻辑。PFC PAUSE帧必须等待该数据包完成处理后才能发送。与此同时,Device A仍在持续发送流量并占用更多缓存空间。

 

图11 PFC工作原理示意图

 

12所示,当Device B的出接口上某个队列产生拥塞时,导致本设备对应流量的入接口缓存超过门限,Device B向所有上游设备(数据报文的来源)发送PFC PAUSE帧。Device A接收到PFC PAUSE帧,会根据PFC PAUSE帧的指示,停止发送对应优先级的报文,并将数据存储到本地接口出方向的缓存空间。如果Device A本地接口出方向队列抢占共享缓存空间,进一步引发入接口缓存队列拥塞,也达到反压门限XOFF时,则Device A也向上游设备发送PFC PAUSE帧。通过逐级发送PFC PAUSE信号,直到抵达网络终端设备,这样可以有效消除网络节点因拥塞导致的数据包丢失。Device E接收到PFC PAUSE帧后,对该队列报文进行缓存,未达到Device E的缓存门限时,不向上游设备发送PFC PAUSE帧。

图12 多级设备之间的PFC PAUSE帧处理示意图

 

2.3  PFC死锁检测

2.3.1  PFC死锁的产生

PFC死锁是指多个设备之间,因为环路等原因,同时出现了拥塞(各自端口缓存消耗超过了阈值),又都在等待对方释放资源,从而导致的“僵持状态”(所有交换机的数据流永久堵塞)。

13所示,多个设备发生拥塞后互相发送PFC PAUSE帧,使PFC PAUSE帧在网络内泛洪,导致网络内设备无法转发报文,使整网业务瘫痪。

图13 PFC死锁产生示意图

 

2.3.2  触发PFC死锁检测

14所示,Device B的端口Interface收到来自Device APFC PAUSE帧后,停止发送对应优先级队列的报文。Device B启动PFC死锁检测定时器,在检测周期内检测该优先级队列收到的PFC PAUSE帧。

图14 触发PFC死锁检测示意图

 

2.3.3  PFC死锁判定

15所示,如果在PFC死锁检测周期内,Device B上端口Interface的指定优先级队列一直处于PFC XOFFPFC反压帧触发门限)状态,即在检测周期内该优先级队列持续不断地收到PFC PAUSE帧,则Device B判定Device A发生死锁,进入死锁状态。

图15 PFC死锁判定示意图

 

2.3.4  PFC死锁恢复

设备检测到某个接口发生死锁后,将启动自动恢复定时器。在自动恢复周期内,设备将关闭该接口的PFC功能和PFC死锁检测功能,以忽略接口收到的PFC PAUSE帧。同时,设备对数据报文执行转发或丢弃动作(由管理员手工配置),以规避PFC死锁问题。

在自动恢复定时器超时后,设备将开启PFC功能和PFC死锁检测功能。如果经过死锁恢复后,仍不断出现PFC死锁现象,管理员可以设置PFC死锁的触发上限,当PFC死锁发生次数到达上限后,设备将强制关闭PFC功能和PFC死锁检测功能。待排除故障后,需要管理员手工恢复PFC功能和PFC死锁检测功能。

2.4  PFC死锁预防

PFC死锁预防是一种技术,设备通过识别可能导致PFC死锁的业务流并调整其队列优先级,从而防止PFC死锁的发生。

2.4.1  PFC死锁预防的产生背景

16所示,正常情况下,业务流量转发路径为A-B-C-D。当网络的防环机制出现问题时,将会导致业务流量从DA转发。故障流量在A-B-C-D间转发,形成环路。如果网络设备A~D接口的缓存空间中使用的资源达到PFC XOFF门限,则网络设备向故障流量的上游发送PFC PAUSE帧。PFC PAUSE帧在环网中持续发送,最终导致所有设备进入PFC死锁状态,整网断流。

图16 环网PFC死锁示意图

 

2.4.2  PFC高风险业务流

PFC死锁预防功能中定义了端口组概念,如17所示,设备Dinterface 1interface 2属于同一端口组。当设备D检测到同一条业务流从该端口组的接口上进出时,即说明该业务流是一条高风险业务流。此类业务流易形成PFC PAUSE帧环路,引起PFC死锁。

说明

端口组的划分依据是接口的PFC死锁预防功能配置。有关PFC死锁预防功能配置,请参见相关配置手册。

 

图17 PFC高风险业务流

 

2.4.3  PFC死锁预防工作原理

当前PFC死锁预防功能仅对携带DSCP值的业务流量生效

设备收到报文后,会根据报文的DSCP值以及设备上dscp-dot1p的映射关系,将该报文加入指定dot1p优先级的队列转发。PFC死锁预防功能工作原理为:

(1)     部署端口组:管理员提前规划,将可能产生PFC PAUSE帧的接口划分到同一端口组。例如,一台Leaf交换机,将其上行口划分到同一端口组中。

(2)     识别高风险业务流

(3)     修改映射关系:设备收到报文后,修改报文的DSCP值和对应的dot1p优先级,使报文在新的dot1p优先级队列中使用新的DSCP值转发。

18所示,Device A发送指定DSCP值的业务流量。Device B收到业务流量后,根据报文的DSCP值以及设备上dscp-dot1p的映射关系,让业务流量在队列1中转发。如果Device B检测到该业务流量为高风险业务流,易引起PFC死锁,则Device B会修改业务流量队列优先级,使业务流量切换到队列2转发,这样就可以规避队列1可能产生的PFC PAUSE帧,预防PFC死锁的产生。

图18 PFC死锁预防工作原理示意图

 

3 拥塞控制技术

拥塞控制技术是一种端到端的防丢包技术,它可以避免整网任意位置发生流量拥塞。在不同网络场景中,拥塞控制的算法各不相同,例如二层以太网中的QCNQuantized Congestion Notification,量化拥塞通知)、数据中心网络的DCTCPData Center TCP)和DCQCNData Center Quantized Congestion Notification,数据中心量化拥塞通知),这些拥塞控制技术的思路都是利用拥塞通知报文要求发送端降速,从而缓解拥塞,避免丢包。因此,其核心机制是ECNExplicit Congestion Notification,显式拥塞通知)。

拥塞控制技术与流量控制技术的区别在于:

·     流量控制技术是接收端和发送端两点之间的速率协同,由接收端来控制发送端的数据传输速率,防止接收方拥塞丢包;

·     拥塞控制技术是一个全网设备多点的协同过程,所有主机和网络中的转发设备均参与控制网络中的数据流量,以达到网络无丢包、低时延、高吞吐的目的。

在现网中,流量控制和拥塞控制需要配合应用,共同防范拥塞丢包。

3.1  ECN

ECN是一种拥塞通知技术,适用于“many to one”的Incast流量模型,可以避免设备出接口上拥塞丢包的发生。

ECN利用IP报文头中的DS域来标记报文传输路径上的拥塞状态。支持该功能的终端设备可以通过报文中的ECN标记判断出传输路径上是否发生了拥塞,从而调整报文的发送方式,避免拥塞加剧。

3.1.1  基本概念

RFC 2481标准中,IP报文头中DS域的最后两个比特位被定义为ECN域,并进行了如下定义:

·     比特位6用于标识发送端设备是否支持ECN功能,称为ECT位(ECN-Capable Transport

·     比特位7用于标识报文在传输路径上是否经历过拥塞,称为CE位(Congestion Experienced

图19 IPv4报文头中的ECN示意图

 

19所示以IPv4报文为例,RFC 3168ECN域的取值进行如下规定:

·     ECN域的取值为00时,表示该报文不支持ECN功能。

·     ECN域的取值为01或者10时,表示该报文支持ECN功能,分别记为ECT0)或ECT1)。

·     ECN域的取值为11时,表示该报文在转发路径上发生了拥塞,记为CE

3.1.2  实现原理

ECN功能需要和WRED策略配合应用。

20所示,没有开启ECN功能的WRED策略按照一定的丢弃策略随机丢弃接口出队列(出方向缓存)中的报文,WRED策略为每个队列都设定上限长度QL_max和下限长度QL_min,对队列中的报文进行如下处理:

·     当队列的长度小于下限QL_min时,不丢弃报文;

·     当队列的长度超过上限QL_max时,丢弃所有到来的报文;

·     当队列的长度在上限QL_max和下限QL_min之间时,开始随机丢弃到来的报文。队列越长,丢弃概率越高,队列丢弃概率随队列长度线性增长,不超出最大丢弃概率x%

图20 WRED丢弃概率与队列长度示意图

 

21所示,在部署ECN功能的WRED策略的组网图中,存在三类设备角色:

·     转发设备(Congestion Point):报文在网络中转发路径上经过的设备,转发设备支持ECN功能,可以识别报文中ECN域的取值。报文在转发设备的接口上可能发生拥塞,所以转发设备又称为Congestion Point,转发设备需要部署ECN功能的WRED策略。

·     报文接收端(Notification Point):接收端设备网卡支持ECN功能,可以识别报文中取值为0110或者11ECN域。接收端同时作为拥塞通知的发起设备,收到ECN域取值为11的报文时,将每隔时间周期T1发送拥塞通知报文给报文发送端,要求发送端降低报文发送速率。

·     报文发送端(Reaction Point):发送端设备网卡支持ECN功能,从发送端发出报文的ECN域的取值为01或者10。发送端同时作为拥塞通知的应答设备,收到拥塞通知时,将以一定的降速比率降低当前自身发送报文的发送速率,并开启计时器,当计时器超出时间T2T2>T1)后,发送端设备未再次收到拥塞通知,则发送端认为网络中不存在拥塞,恢复一定的报文发送速率。当计时器在时间T2T2>T1)内,发送端设备再次收到拥塞通知,则发送端进一步降低报文发送速率。

说明

报文接收端(Notification Point发送拥塞通知的算法和报文发送端(Reaction Point速率调整的算法最初在IEEE 802.1Qau标准中定义,称为QCNQuantized Congestion Notification,量化拥塞通知)。但QCN最初仅运行在二层网络上,并不适合数据中心网络。为了适配数据中心网络,2010年先出现了DCTCP作为数据中心的专用拥塞控制协议。此时,数据中心仍以TCP作为传输协议。随着RoCEv2协议在数据中心的应用,为了在运行RoCEv2协议的数据中心实现拥塞控制,2015年出现了DCQCNData Center Quantized Congestion Notification,数据中心量化拥塞通知)。DCQCN改进了QCN算法,基于ECN机制控制发送端速率。

·     在报文接收端:拥塞通知报文按照时间间隔T1(例如50微秒)周期产生。接收端检查每条流在上一时间间隔T1内是否收到ECN域为11的报文,若未收到,则立即产生拥塞通知报文并传送回发送方。后续每个时间间隔T1内,接收方最多产生一条拥塞通知报文。

·     在报文发送端:在收到某条流的拥塞通知后,参照DCTCP的机制降低发送速率。首先将当前速率RC保存为目标速率RT,再按照RC=RC*(1-α/2)α=1-g*α+g公式更新当前速率RC和速率调整因子α,其中g为小于1的常量。如果发送端在时间间隔T2T2>T1)内未收到拥塞通知,则按照α=1-g*α公式更新速率调整因子α,并基于速率调整因子α增加当前速率。

 

图21 部署ECN功能的WRED策略的组网图

 

部署了ECN功能的WRED策略的转发设备(Congestion Point)对接收到的数据报文进行识别和处理的具体处理方式如下:

·     当转发设备的报文在出方向排队,该队列的长度小于下限QL_minQL_min也称为ECN低门限)时,不对报文进行任何处理,转发设备直接将报文从出接口转发。

·     当转发设备的报文在出方向进入队列排队,该队列的长度大于下限QL_min但小于上限QL_maxQL_max也称为ECN高门限)时:

¡     如果设备接收到的报文中ECN域取值为00,表示报文发送端不支持ECN功能,转发设备按照未开启ECN功能的WRED策略处理,即随机丢弃接收的报文。

¡     如果设备接收到的报文中ECN域取值为01或者10,表示报文发送端支持ECN功能,将按照WRED策略中的线性丢弃概率来修改部分入方向报文的ECN域为11后继续转发该报文,所有入方向接收到的报文均不丢弃。

¡     如果设备接收到的报文中ECN域取值为11,表示该报文在之前的转发设备上已经出现拥塞,此时转发设备不处理报文,直接将报文从出接口转发。

·     当转发设备的报文在出方向进入队列排队,该队列的长度大于上限QL_max时:

¡     如果设备接收到的报文中ECN域取值为00,表示报文发送端不支持ECN功能,转发设备按照未开启ECN功能的WRED策略处理,即丢弃接收的报文。

¡     如果设备接收到的报文中ECN域取值为01或者10,表示报文发送端支持ECN功能,将100%修改入方向报文的ECN域为11后继续转发该报文,所有入方向接收到的报文均不丢弃。

¡     如果设备接收到的报文中ECN域取值为11,表示该报文在之前的转发设备上已经出现拥塞,此时转发设备不处理报文,直接将报文从出接口转发。

合理设置ECN门限可以缓解拥塞同时保证网络的时延和吞吐率。

上述ECN域标识的修改过程是转发设备在出方向报文检测到拥塞后,修改入方向报文ECN域标识。设备在处理过程中存在一定延时,为了加快该流程,转发设备在出方向队列检测到拥塞后,直接修改出方向报文的ECN域标识,这个技术称为Fast ECN

相较于未部署ECN功能的WRED策略,部署了ECN功能的WRED策略具备如下优势:

·     通过合理设置WRED策略中队列长度的下限值,可以使转发设备提前感知到路径上的拥塞,并由报文接收端通知报文发送端放缓发送速率。

·     在转发设备上,对超出队列长度下限值的报文仅标记ECN域为11,而不再丢弃报文,避免网络中报文丢弃和重传的过程,减少了网络时延。

·     网络中出现拥塞时,发送端在一定时间内逐步降低报文发送速率,在拥塞现象消失后,发送端逐步提升报文发送速率,避免出现网络吞吐量在拥塞前后快速振荡的情况。

3.2  时延ECN和动态ECN

ECN门限的设置是影响ECN功能的关键。H3C提供多种灵活方式触发ECN功能。

·     时延ECN:根据设备转发时延来触发ECN功能;

·     动态ECN:设备根据共享缓存占用情况来动态触发ECN功能;

3.2.1  时延ECN的工作原理

1. 设备处理报文的时延

22所示,报文从设备入端口到出端口转发的总时延dnode=dprocess+dqueue+dtransmit,其中:

·     处理时延dprocess:数据报文进入设备端口后进行误码校验、分析报文头和查询表项出口等行为产生的时延,这部分时延通常只有微秒级别或更少。

·     排队时延dqueue:数据报文进入MMU缓存排队等待调度的时延,这部分时延与拥塞程度和占用缓存大小有关。想象一下一个堵车的场景,堵车长度越长(占用缓存越大),新到达拥堵路段的车辆越多(拥塞程度越高)则离开拥堵路段所消耗的时间越长。

·     传输时延dtransmit:表示将一个完整的数据报文从出端口转换为信号发送的时间,如果出端口速率为R(bps),报文长度为L(bit),则至少需要L/R才能将该分组报文完整发送。在数据中心高速链路上,R可以达到几十上百Gbps,传输时延只要纳秒量级。

图22 报文在设备内部处理时延的示意

 

传统的ECN功能仅与出方向队列中报文长度有关,缓存占用越多队列越长,ECN域被标记为11的概率越大。这种ECN的触发方式虽然可以避免丢包,但设备链路高负载运行时,流量强度(traffic intensity)大,报文都先进行缓存,等待出队列调度,导致排队时延dqueue增加报文在设备中转发处理的总时间dnode

说明

流量强度通常用L*a/R表示。其中,L表示分组报文的平均长度(bit/packet)a表示分组报文到达队列的平均速率(packets/s)R表示出端口的带宽速率(bps)L*a/R1时,到达端口的流量超过端口转发速率,队列缓存就会趋向于无限增长。为了避免丢包必须要求网络系统中L*a/R1。实际网络中,分组报文不是周期性规律地到达端口,且每个分组报文长度也属于随机分布。在一段时间内密集到达的突发流量会超出端口转发速率,就造成排队。此时,如果流量强度越趋近于1,理论上的排队时延就趋于无穷大。如果分组报文到达时间间隔较大报文长度较小,出端口有充足时间转发报文,则流量强度趋近于0,端口几乎不需要排队。

 

图23 排队时延与流量强度的理论关系示意图

 

2. 时延ECN的机制

时延ECN技术允许允许管理员为队列设置转发时延阈值T。转发芯片用报文从出端口转发的时间戳减去报文到达入端口的时间戳,得到报文在设备中转发处理的总延时dnode。如果dnode超出了设置的时延阈值T,则该端口队列将触发ECN功能,缓解拥塞情况。

24所示,还可以指定时延ECN生效的队列长度范围,例如:

·     设置队列长度下限Buffer_Low,只有当队列长度设置的Buffer_Low才能触发时延ECN机制。

·     设置队列长度上限Buffer_High,只有当队列长度设置的Buffer_High才能触发时延ECN机制。

·     同时设置队列长度下限Buffer_Low和队列长度上限Buffer_High,只有当队列长度处于Buffer_LowBuffer_High之间,才能触发时延ECN机制。

设备上仅部署基本ECN功能,当队列长度在ECN低门限和ECN高门限之间时,拥塞通知报文的触发概率随队列长度线性增长,不能满足实际需求。如果部署基本的ECN功能的同时叠加时延ECN功能,则可以优化拥塞通知报文的触发时机。此时,可以将Buffer_Low设置为基本ECN功能的ECN低门限,Buffer_High设置为基本ECN功能的ECN高门限,在ECN低门限和ECN高门限之间按照时延阈值来触发拥塞通知。

图24 指定时延ECN生效的队列长度范围

 

3.2.2  动态ECN的工作原理

在部署基本ECN功能时,需要静态设置ECN门限,ECN门限如何取值非常具有挑战,而且也不能满足动态变化的网络流量需求。动态ECN提供了一种根据共享缓存占用情况来动态设置ECN高门限的方法。

PFC工作原理一节中介绍了共享缓存的概念。可以将共享缓存看作一块所有队列共用的“海绵”,当某个队列产生突发流量时,“海绵”将突发流量全部吸收。但“海绵”存在缓存上限,某个队列占用多了,则其他队列可用缓存空间就相对减少。为了避免丢包,MMU会动态调整各队列可用的共享缓存空间,满足不同队列的需求。因此,动态设置ECN高门限时可以将队列可用的共享缓存空间大小作为参考基准,ECN高门限可以随着队列可用共享缓存空间大小动态变化。

动态ECN功能定义了队列长度阈值Dynamic_ECN。当转发设备上出端口的实时队列长度达到Dynamic_ECN阈值时,触发ECN功能标记ECN域为11,业务报文的接收端接收到ECN域为11的报文后,定期发送拥塞通知告知业务报文发送端降低报文速率,避免时延敏感的业务报文在设备上进一步拥塞。

Dynamic_ECN=MinShared_limitMax((Shared_limit - Offset),Floor))。其中,

·     Shared_limit表示队列可用的共享缓存空间大小;

·     Offset表示相对偏移量;

·     Floor表示队列的保障深度

·     Minxy)函数表示取xy之中较小的数;

·     Maxxy)函数表示取xy之中较大的数。

以转发芯片中不存在Guaranteed固定缓存情况为例,说明OffsetFloor的作用:

·     25所示,当部署了动态ECN功能的队列存在拥塞时,MMU会适当增加本队列可用的共享缓存空间大小Shared_limit大,Shared_limit - Offset相较Floor大,但比Shared_limit小,最终Dynamic_ECN=Shared_limit - Offset此时,为了缓解本队列的拥塞,Offset的作用是留出一定预留量,在队列占用长度暂未达到队列Shared_limit就提前触发动态ECN功能。

图25 Shared_limit过大的情况

 

·     26所示,当其他队列拥塞情况严重时,部署了动态ECN功能的队列的可用的共享缓存空间大小会被挤占导致Shared_limit – Offset小于Floor。此时,引入Floor参数作为队列的保障深度,使得Dynamic_ECN=MinShared_limitFloor),避免过早触发本队列报文的ECN功能,导致可用共享缓存空间被进一步挤占,防止报文被“饿死”的情况。

图26 Shared_limit过小的情况

 

3.3  ECN Overlay

3.3.1  基本概念

ECN Overlay功能使VXLAN网络支持ECN功能:当VXLAN网络中设备出接口拥塞时,可标记报文ECN域为CE,并确保CE标记在报文传输过程中不被丢失。

3.3.2  实现原理

VXLAN网络中拥塞发生的位置不同,报文ECN域处理流程和传递ECN信息的过程略有不同。如27所示,VXLAN隧道入节点的出接口发生拥塞为例,报文ECN域处理流程和传递ECN信息的过程为:

(1)     ECN信息的映射:在VXLAN隧道的发起端检测到拥塞时,设备将原始IP报文的ECN域标记为CE。报文发送时,将原始IP报文进行VXLAN封装,此时设备将原始IP报文ECN域的CE映射到VXLAN报文外层IP头部的ECN域中。

(2)     ECN信息的传递:在VXLAN网络中传递的报文将携带CE标记,Underlay的中转设备不进行修改。

(3)     ECN信息的恢复:在VXLAN隧道的终结端解封装VXLAN报文时,执行第一步中相反的操作,即设备将VXLAN报文外层IP头部的ECN域中的信息复制到原始IP报文的ECN域中。

如果VXLAN网络的中转发设备的出接口上发生拥塞,则仅在Underlay的中转设备上标记VXLAN报文外层IP头部的ECN域,并且在VXLAN隧道的终结端将ECN域中的信息复制到原始IP报文的ECN域中。如果VXLAN隧道出节点的出接口发生拥塞,则仅需要执行上述ECN信息的恢复步骤。

图27 ECN Overlay工作原理示意图

 

3.4  AI ECN

3.4.1  背景简介

各个队列转发的数据流量特征会随时间动态变化,网络管理员通过静态设置ECN门限时,并不能满足实时动态变化的网络流量特征:

·     ECN门限设置过高时,转发设备将使用更长的队列和更多缓存来保障流量发送的速率,满足吞吐敏感的大流的带宽需求。但是,在队列拥塞时,报文在缓存空间内排队,会带来较大的队列时延,不利于时延敏感的小流传输。

·     ECN门限设置偏低时,转发设备使用较短的队列和少量缓存尽快触发来降低队列排队的时延,满足小流对时延的需求。但是,过低的ECN门限会降低网络吞吐率,影响吞吐敏感的大流,限制了大流的传输。

另一方面网络中如果同时部署了PFCECN功能时,我们希望ECN门限设置可以保证设备优先触发ECN功能,降低报文发送端的速率缓解拥塞情况,而非先触发PFC功能直接通知发送端停止发送报文。只有当ECN功能触发后未缓解拥塞,拥塞反而严重恶化时才触发PFC功能,此时通知发送端停止数据报文发送,直到拥塞缓解后再通知继续发送数据报文。ECNPFC同时部署减缓拥塞时的作用顺序应如下图所示:

图28 ECNPFC同时部署减缓拥塞示意图

 

28流程可知,当拥塞发生时,从转发设备发送ECN域标记为11的数据报文到报文发送端降速的过程中,发送端仍以原速率持续发送数据报文。这段时间内网络中的拥塞将进一步恶化,只有合理并动态设置ECN低门限,设备才能尽量避免触发PFC影响网络中的吞吐率。

基于以上原因,我们需要一种智能地实时ECN低门限控制功能,这种功能称为AI ECN功能。

3.4.2  实现原理

AI ECN利用设备本地的AI业务组件,按照一定流量模型算法动态优化ECN门限。

图29 AI ECN功能实现示意图

 

设备内的转发芯片会采集当前流量的特征数据,比如队列缓存占用率、流量吞吐率以及大小流占比等,然后将这些网络流量实时信息传递给AI业务组件。

AI ECN功能启用后,AI业务组件收到推送的流量实时信息后,将智能的对当前的流量特征进行判断,识别当前的网络流量场景是否符合已知的流量模型。

·     如果该流量模型符合大量已知流量模型中的一种,AI业务组件将根据已知流量模型推理出实时ECN门限最优值。

·     如果该流量模型不符合已知流量模型,AI组件将基于现网状态,在保障高带宽、低时延的前提下,不断地实时修正当前的ECN门限,并最终计算出最优的ECN门限配置。

最后,AI业务组件将最优ECN门限下发到设备转发芯片中,调整ECN门限。

AI ECN能够根据流量特征和变化而实时调整ECN门限:

·     当队列中小流占比高时,降低ECN触发门限,保证多数小流的低时延性。

当队列中大流占比高时,提高ECN触发门限,保证多数大流的高吞吐性。

3.5  IPCC

3.5.1  基本概念

IPCCIntelligent Proactive Congestion Control,智能主动拥塞控制)与ECN技术类似,也是一种通过拥塞通知报文来通知发送端降低报文发送速率的拥塞控制技术。IPCC是由网络设备主动发起的拥塞控制技术。用于转发RoCEv2报文的网络设备接口如果开启了IPCC功能,则设备根据该接口的拥塞情况,主动发送拥塞通知报文通知发送端降低发送速率。设备可以基于接口队列的拥塞程度,智能计算需要发送的拥塞通知报文数量,精准调整发送端速率,避免过度降速。

IPCC和传统ECN技术的对比如1所示。

表1 IPCC和传统ECN技术对比

技术对比

IPCC

传统ECN

发送拥塞通知报文位置

转发报文的网络设备

报文的接收端

报文拥塞的响应过程

直接主动响应。由网络中出现拥塞点的设备发送拥塞通知给报文发送端,拥塞点快速触发,通知发送端降速

间接被动响应。被标记的报文需传播整条转发路径抵达接收端后再由接收端发送拥塞通知报文通知发送端降速

发送端降速的效果

出现拥塞点的网络设备根据拥塞接口上队列长度和缓存占用,智能计算需要发送的拥塞通知报文个数,精确控制发送端降速

报文接收端如果持续收到ECN域取值为11的报文时,将每隔一定时间周期发送拥塞通知报文给报文发送端降速,降速效果滞后于拥塞点的实际变化

应用场景

仅对RoCEv2报文生效

对于TCPUDP等报文均能生效,适用范围更广

硬件支持要求

需要硬件芯片和驱动支持

需要硬件芯片和驱动支持

 

1比较可知,IPCCECN功能基础上进行改进,使转发设备具备发送拥塞通知报文的能力,对于网络中拥塞控制更加准确和迅速。

3.5.2  实现原理

由于IPCC功能仅对RoCEv2报文生效,下面先简单介绍RoCEv2报文的结构和关键信息。

RoCEv2InfiniBand是目前主流的RDMA协议。但相较于InfiniBandRoCEv2是基于以太网的RDMA协议。如30所示,RoCEv2基于UDP协议封装,其目的端口号固定为4791RoCEv2InfiniBand的主要区别在数据链路层和网络层。RoCEv2报文传输层继承了InfiniBand报文中传输层的Base Transport HeaderExtended Transport Header的结构和信息。

图30 RoCEv2InfiniBand报文格式对比

 

根据InfiniBand Architecture Specification标准,BTHBase Transport Header,基本传输层报文头)中包含了RoCEv2报文的关键信息,部分字段含义如下:

·     OpCode:表示RoCEv2的操作类型,也标识了BTH之后携带的ETHExtended Transport Header扩展传输层报文头)的类型。具体类型包括但不限于:

¡     Send:此类操作用于发送端向远端请求传递数据,发送端不指定接收端存储数据的地址。

¡     RDMA Write:此类操作用于发送端向远端请求写入数据,发送端会在报文中指定接收端存储数据的地址、key(关键值)和数据长度。

¡     RDMA Read:此类操作用于发送端向远端请求读取数据,发送端会在报文中指定远端请求数据的地址、key和数据长度。

¡     ACK:表示ACK报文,远端接收到一组RoCEv2报文,会反馈的应答消息。

操作类型为SendWriteReadRoCEv2报文也被称为RoCEv2数据报文。

·     Destination QPDestination Queue Pair):目的端的队列编号,用来标识一条RoCEv2流。通常,在RoCEv2数据报文中执行SendRDMA WriteRDMA Read操作时,发送端和目的端都会创建队列,生成一个队列对QP。发送队列用于存储发送端的消息和请求,接收队列用于存储远端发送的消息或请求。Destination QP是建立RoCEv2流表的关键信息。

·     ACK Request:应答响应要求标记位,表示是否要求远端发送ACK的响应。

·     PSNPacket Serial Number):表示RoCEv2报文的序列号,可通过检测PSN是否连续来判断是否存在丢失的数据包,若出现丢包,就会返回NAK报文。

图31 IPCC工作原理图

 

IPCC的工作原理如31所示。

·     建立RoCEv2流表:在转发设备上,启用了IPCC功能的接口复制经过该设备的RoCEv2数据报文,并将其上送到设备的CPU处理。根据RoCEv2报文的源IP地址、目的IP地址和目的QP信息建立RoCEv2流表。RoCEv2流表中包括流量的入方向接口和出方向接口、出接口队列的相关信息。

持续存在RoCEv2流量时,设备上保持并维护RoCEv2流表。如果出接口上发生拥塞,则可以根据RoCEv2流表定位到该业务流的出入接口。

·     智能计算拥塞通知报文数量:转发设备对接口中启用了IPCC功能的队列进行检测,根据队列长度以及队列占用缓存空间的比率变化智能计算主动发送的拥塞通知报文数量。

¡     当队列长度增加,队列缓存占用率较少,则发送少量拥塞通知报文给发送端,缓解队列拥塞,但不会使发送端过度降速;

¡     当队列长度增加,队列缓存占用率较多,则发送较多的拥塞通知报文给发送端,快速缓解队列拥塞,降低转发时延。

¡     当队列长度减少,队列缓存占用率较少,则不发送拥塞通知报文给发送端,防止降速造成吞吐率下降;

¡     当队列长度减少,队列缓存占用率较多,则发送少量拥塞通知报文给发送端,在尽量保证吞吐率和时延性能的情况下缓解队列拥塞。

转发设备根据RoCEv2流表中的地址信息构造拥塞通知报文,并主动将拥塞通知报文发送给发送端。发送的拥塞通知报文数量为上一步中计算出的报文数目。发送端收到拥塞通知报文后,通过降低RoCEv2报文的发送速率来缓解网络拥塞。

IPCC功能克服了传统ECN所面临的局限性,它通过更精细的算法来确定何时以及如何发送拥塞通知报文。这种改进方法依赖于对网络状况的实时分析,以计算出恰当的拥塞通知报文发送频率。该机制确保拥塞通知的发送既迅速又精确,以便及时地缓解网络拥塞情况,而不会引起不必要的性能下降。IPCC功能通过动态调整通知报文的发送,优化了网络流量管理,从而提高了整个网络的数据传输效率和稳定性

4 负载均衡技术

在网络中,通常采用LACPLink Aggregation Control Protocol,链路聚合控制协议)和ECMPEqual-Cost Multi-Path routing,等价路径负载分担)来调整链路负载,避免流量集中在某条链路导致拥塞丢包。传统网络中LACPECMP为了避免报文乱序问题,普遍采用逐流负载分担方式。逐流负载分担基于Hash散列,将流量的五元组(源目的地址、源目的端口号及协议号)作为Hash因子,计算并选取路径转发流量。但该方式在数据中心网络中面临以下问题:

·     在逐流Hash过程中,可能出现流量“极化”导致负载不均的情况。例如,跨设备多次Hash时,第一次Hash后,流量均衡分担在不同链路,但第二次经过同样的Hash算法,已经Hash的流量仍选择同一条链路转发,从而导致其他链路无负载。

·     AI分布式训练场景中,AllReduce操作会产生大规模同步流量,其流数量少而数据量大,属于大流。静态逐流负载分担基于随机概率选路,对于数量多而数据量小的小流效果较好,但对样本数量少的大流负载均衡效果一般。

·     在“many to many”的流量模型中,Hash算法是设备本地计算,缺乏网络全局的视角,不能保证全局所有链路流量负载均衡。可能存在某条链路的带宽利用率很高,而其他链路负载轻的情况。

32所示,为了避免链路负载不均衡导致部分链路拥塞丢包,H3C在数据中心网络中实现了多种负载均衡技术。

图32 H3C无损网络负载均衡技术概览

 

4.2  LBN

LBNLoad Balance Network,负载均衡网络)是一种设备级别的逐流负载均衡技术。在出入端口对称的情况下,LBN通过对出入端口进行分组和智能编排,形成入端口和出端口间一对一映射关系,将流量精准地分担到不同出口,以提升网络吞吐率。LBN适用于流量模型单一且网络规模不大的情况。

4.2.1  应用场景

33所示,数据中心网络通常采用无阻塞(Non-blocking)、可重构(Re-arrangeable)、可扩展(Scalable)的CLOS架构,即Spine-LeafLeaf-Spine-Superspine拓扑结构。在这种网络拓扑中Leaf节点和Spine节点全互联,每个Leaf节点上下行端口带宽为1:1,端口链路数量通常也是1:1

在数据中心智算网络流量模型单一且规模不大的情况下,可以部署LBN功能。此时,节点上仅存在从多个下行端口进入设备并从多个上行端口转发的流量,LBN使入端口和出端口一一绑定,流量仅通过绑定的入端口和出端口转发,避免多个入端口流量汇聚到单一出口的情况。

说明

如果出入端口数量不是1:1,但出入端口总带宽比值为1:1,也可以按带宽来实现入端口和出端口之间映射,此时,出入端口的映射关系不再是1:1。例如,设备存在2200Gbps的出端口和4100Gbps的入端口,则每两个100Gbps入端口流量可以映射到一个200Gbps出端口,实现无阻塞传输。

 

图33 典型的数据中心网络CLOS架构拓扑

 

4.2.2  工作原理

目前LBN技术仅支持应用在等价路由和二层以太网链路聚合场景中,推荐在等价路由场景中应用LBN技术。

等价路由场景中,设备路由表中存在相同目的地址不同下一跳的等价路由。流量从设备不同入端口进入设备后,通过等价路由从不同的出端口转发。通过LBN技术使每个入端口流量映射到对应出端口,例如,来自Port 1的流量只能从Port 4出,来自Port 2的流量只能从Port 5出。

图34 LBN应用在等价路由场景

 

在二层以太网链路聚合场景,Port 4Port 5Port 6是二层聚合口Bridge-Aggregation 1的成员端口。流量从设备不同入端口进入设备后,根据目的地址查找路由表的出端口为二层聚合口,形成了多入口多出口的场景。通过LBN技术使每个入端口流量映射到对应出端口,例如,来自Port 1的流量只能从Port 4出,来自Port 2的流量只能从Port 5出。

图35 LBN应用在二层以太网链路聚合场景

 

以等价路由场景为例,LBN的工作原理如下:

(1)     用户将入端口加入LBN组后,设备为LBN组中每个入端口设置LBN值,例如为Port 1 设置LBN值为0

(2)     对出端口进行编号。根据路由表中每个等价路由组内的出端口顺序,为出端口从0开始编号。例如,Port 4 Port 5Port 6的编号依次为012

图36 LBN为入端口和出端口进行编号

 

(3)     每个等价路由组与每个LBN组形成映射关系。将每个LBN组中入端口的LBN值依次对每个等价路由组内的出端口数量进行取余运算,形成每个入端口与出端口的映射关系。例如,Port 1LBN值为0,等价路由组A中存在3个出端口。LBN03取余为0,则Port 1对应流量出端口是编号为0Port 4

图37 等价路由组与LBN组映射

 

在二层以太网链路聚合场景,则形成每个二层聚合口与每个LBN组的映射关系。计算方式与等价路由组类似。

4.3  DLB

DLBDynamic Load Balance,动态负载均衡)是一种增强的本地逐流负载均衡技术,它主要从两个方面改进了传统的负载均衡算法:

·     在时间维度上将一条流进行切割,实现更细粒度的Hash计算。

·     引入了实时端口负载作为流量负载选路因素,可以动态选择负载更轻的链路转发。

对于业务流量多为大流的场景,部署DLB的链路负载均衡效果更优。

4.3.1  单一流切分

38所示,对于五元组相同的单一流,数据包到达设备端口的时间存在先后差异。将抵达设备端口超出指定时间间隔的数据包划分为不同FlowSet

图38 单一流切分不同FlowSet示意图

 

设备基于分割后的FlowSet进行Hash,选取当前负载较轻的等价链路转发,同一FlowSet中的数据包的转发链路相同。

说明

需要注意的是,切分FlowSet的时间间隔设置与流量模型密切相关。试想,如果时间间隔设置过小时,不同FlowSet在网络中传输的端到端时延差值可能超过切分FlowSet的时间间隔。此时,目的端接收到的FlowSet就会产生乱序问题,而通常情况下,目的端硬件不支持乱序恢复,导致数据传输失效。因此,请基于实际流量模型和场景合理设置切分FlowSet的时间间隔。

 

4.3.2  引入新变量

FlowSet选择等价出端口时,引入链路的负载和拥塞情况作为考量标准,优选当前链路负载轻且队列长度短的链路转发。

图39 选择等价出端口时引入链路的负载和拥塞情况

 

4.4  FGLB

FGLBFlexible Global Load Balancing,灵活全局负载均衡)是一种根据整网节点流拥塞状态和全网拓扑进行全局算路,从而识别出最优传输路径的技术,因其具备“全局视角”的优势,称之为全局负载均衡技术。

4.4.1  应用场景

LBNDLBSpraylink技术都是基于设备本地的链路负载均衡技术,对于数据在远端链路上的传输情况缺乏判断,因而不可避免地出现全局整体链路负载不均或远端链路故障丢包的情况。如40所示,Leaf A节点经过本地负载均衡算法选路后,将服务器M到服务器N的流量分配到三条等价链路上。

·     Spine BLeaf C的远端链路故障时,由于Leaf A无法及时感知异常,仍然会在短时间内将流量通过链路2转发。此时,Leaf A只能等待毫秒级的路由收敛或FRR切换才能重新进行负载分担。对于数据中心网络高吞吐的流量毫秒级的流量切换会造成大量丢包。

·     Spine BLeaf C的远端链路负载过重产生拥塞时,触发了DCQCN等拥塞控制机制,可能引起多个源端发送流量降速,降低了网络整体的吞吐率。

为了避免丢包和吞吐率降低,需要全局负载均衡技术在流量选路时快速感知全局链路状态,选取最合适的链路进行流量转发。

图40 本地负载分担无法感知远端链路拥塞

 

4.4.2  工作原理

FGLB的关键在于获取网络全局状态信息,包括下游链路的拥塞情况、链路故障信息、带宽利用率以及网络中的流量分布等信息。H3C通过以下两种手段来实现全局状态信息的收集:

·     基于高速探针的FGLB:利用支持高速探针的设备硬件实现微秒级的全局链路状态信息同步,监测端口状态和拥塞情况。

·     基于自适应路由的FGLB:利用扩展的BGP传递一种私有协议报文——ARNAdaptive Routing Notification,自适应路由通知)报文ARN可以在邻居间通告链路质量、链路状态和拥塞情况,使得节点掌控全局信息。

1. 基于高速探针的FGLB

4142所示,数据中心的设备都部署了硬件芯片支持的高速探针技术。业务流量转发过程中,高速探针可以实时捕获各接口链路基本状态和队列缓存使用情况,这些全局链路状态信息将汇总收集到FGLB负载均衡器。FGLB负载均衡器按照实时链路状况以微秒级的速度调整转发策略,修改设备上的流量转发表项。例如,Spine B->Leaf C的链路发生远端链路拥塞或故障时,Leaf A节点快速调整服务器MN的流量,绕开远端拥塞路径,避免传输中断或丢包。

由于探测间隔极短,远快于路由收敛时间,因此可以实现远端故障时的本地数据面快切,即先切换当前流量转发路径,再刷新转发表项,确保路由信息的实时更新和数据转发的正确性。

图41 基于高速探针获取全局链路状态

 

图42 Leaf A上的FGLB更新转发表项

 

2. 基于自适应路由的FGLB

4344所示,Leaf节点和Spine节点建立BGP邻居。扩展的BGP中定义了新的ARNAdaptive Routing Notification,自适应路由通知)协议报文。ARN报文可以通告链路的Up/Down状态、量化的链路质量以及发生拥塞的流对应的流表等信息。当Spine B->Leaf C的链路发生拥塞或故障时,Spine B会将本地链路异常的信息通过ARN通告给Leaf ALeaf A基于异常链路的信息,调整本地的转发模式。Leaf A可以支持不同的调整方式:

·     调带宽模式:为了充分利用链路带宽,Leaf设备可以根据ARN报文中携带的链路带宽信息,调整流量发送速率以防止过载并缓解拥塞。

·     调流模式:链路出现拥塞或者故障时,将流量切换至其他链路中转发,避开拥塞或故障链路。

关于自适应路由的详细介绍,请参见新华三的“自适应路由技术白皮书”。

图43 ARN通告链路异常

 

图44 Leaf A上的FGLB更新转发表项

 

说明

FGLB中使用的转发表项为Traffic Matrix表,它包含了流量的五元组标识信息、下一跳以及出接口信息。Traffic Matrix表可以通过控制器计算生成或自适应路由生成。当设备上存在Traffic Matrix表时,流量优先按照Traffic Matrix表转发,而无需查找路由转发表。

 

4.5  Spraylink

SprayLink(逐包喷洒技术)是一种端网融合的动态逐包负载均衡方案,由网络设备按逐包方式进行链路负载分担,由主机网卡对不同链路分担的报文进行乱序恢复。除了采用逐包分担方式以外,H3CSprayLink技术还借鉴了DLB的动态负载分担思路,引入实时负载度量(端口带宽负载、队列大小),实现了动态的流量分担效果。实测数据显示,采用SprayLink技术进行网络调优,可使多条链路的总带宽利用率达到95%以上,比传统哈希方法提升明显。

相对逐流的负载分担,逐包的负载分担粒度更细,对于大流的负载均衡效果优于逐流负载均衡。但逐包负载分担产生的报文乱序问题依赖主机网卡芯片处理,对硬件要求高,支持乱序重组的智能网卡较少,成本较高。关于Spraylink的详细介绍,请参见新华三“Spraylink技术白皮书”。

4.5.1  工作原理

设备通过三个步骤完成SprayLink负载分担。

(1)     区分流量

在运行RoCEv2数据中心网络中,RoCE协议报文不能乱序,需要区分RoCE协议报文和RoCE数据报文,仅对RoCE数据报文进行逐包负载分担。

a.     对所有报文默认采用逐包负载分担。

b.     设备下发ACL,缺省的ACL规则为匹配UDP目的端口号为4791reserve字段为0的报文,此报文为RoCE协议报文(reserve字段为RoCE协议报文特有),动作为进行逐流负载分担。未匹配上ACL规则的报文则进行逐包负载分担。也支持自定义ACL规则指定匹配条件对流量进行分类。

(2)     运行Spray HASH算法。

Spray Hash是在传统ECMP Hash运算的基础上增加带宽和队列深度对选路结果的影响,通过定期检测流量来纠正流量不均衡问题。

ECMP成员的流量分支进行定期测量。测量对象:

¡     ECMP成员口发送的字节数量。

¡     ECMP成员入队列单元数量。

将以上各ECMP成员的两组数据分别采用指数加权移动均值(EWMA)计算平均值并进行排序后,结合Hash运算结果,从中选出最优路径。

Spray HASH效果如下图所示,服务器M到服务器N的流量经过Leaf A发送,Leaf A的等价链路3负载过高,故报文将通过其他两条链路进行逐包负载分担,直到高负载链路的负载恢复。

图45 Spray HASH效果图

 

(3)     乱序调整

因为Spray HASH采用逐包负载分担,同一个数据流的多个数据包的转发链路可能不同,因此主机侧接收端收到的报文可能是乱序的,接收端需要通过报文乱序重组功能整理报文的顺序。如下图所示:

图46 Spray HASH报文乱序调整

 

4.6  DDC

DDCDiversified Dynamic-Connectivity,多元动态联接)是一种分布式解耦的机框架构。DDC传统的集中式机框交换机拆分为多个独立的模块化盒式交换机。这些模块化盒式交换机分别承担信元交换和数据转发的功能,它们通过物理网络互联来实现100%均衡且无阻塞的高速数据转发。关于DDC的详细介绍,请参见新华三“DDC技术白皮书”。

4.6.1  DDC架构简介

47所示,H3CDDC方案将传统的框式交换设备解耦为由多个盒式交换机组成的Spine-Leaf架构,其中原框式交换设备的业务板卡(Line Card)作为接入Leaf,交换网板(Switch Fabric)作为Spine。在DDC架构中:

·     Leaf设备称为NCFNetwork Connectivity Fabric网络交换单元),用于数据信元交换。如果报文的入接口和出接口分布在不同的NCP,则需要通过NCF将入口NCP收到的数据转发给出口NCPNCF上无业务接口,仅存在专属物理接口SFISerDes Framer Interface)来传输NCP之间的数据。

·     Spine设备称为NCPNetwork Connectivity Processor,网络业务单元),负责处理协议报文并转发业务报文。NCP必须使用SFI接口连接NCF,同时NCP上的业务口用来接入服务器或外网设备,是整个DDC对外的输入、输出接口。

说明

物理接口SFI需要支持DDC的专用芯片。

 

图47 DDC分布式架构示意图

 

4.6.2  DDC的工作原理

1. 建立转发表

NCFNCP组成DDC架构时,每台NCFNCP都需要独立配置唯一的成员编号(MODID)用以区分并标识设备。DDC系统中,NCP的业务接口都拥有唯一标识即MODID端口编号PortID

48所示,当NCP接入NCF后,NCF通过私有协议能够自动发现NCP设备,获取其MODID和连接该NCP的端口信息,形成NCFCell转发表。

NCP可以通过ARP在数据平面学习到本地连接的服务器IPMAC信息。所有NCP之间通过同IP网段的CPU虚拟接口(OSF口)建立BGP EVPN邻居,并基于BGP EVPN路由通告,本地NCP学习远端NCP的路由表项信息,生成NCPCell转发表,其中包含:

·     NCP直连的服务器目的IP前缀。

·     目的IP前缀的出接口:

¡     如果是本地直连的出接口,则通过本地接口编号标识,如Port1

¡     如果是远端NCP的出接口,则通过远端NCPMODIDPortID标识,如MOD2Port1

·     远端封装索引EncapIndex:三层转发时的封装信息,如目的MAC地址、VLAN信息等。

图48 NCFNCPCell转发表

 

2. VOQ调度和Cell转发

VOQVirtual Output Queue,虚拟输出队列)是一种用于高性能网络设备的队列管理机制,旨在解决传统输入队列架构中的队头阻塞(Head-of-Line Blocking)问题。

说明

队头阻塞指的是传统交换机的入端口的物理缓存仅维护一个出队列,当出队列头部的数据包因目标输出端口被占用而无法转发时,后续数据包即使目标端口空闲也会被阻塞,导致吞吐量下降。

 

VOQ技术在输入端口为每个输出端口分配一个虚拟队列(即VOQ),数据包根据目标端口分类存储。即使某个VOQ(如发往端口X)的头部数据包被阻塞,其他VOQ(如发往端口Y)仍可继续传输。

VOQ利用Credit来申请带宽资源,再调度队列完成流量转发,避免了拥塞发生。其工作原理如下:

(1)     Credit申请与分配

NCPNCF交互报文,同步DDC组网拓扑,并根据DDC出端口的数量创建虚拟输出队列,并生成VOQ和出端口的对应关系表项。

入口NCP收到报文,查找路由表,根据其出端口放入对应的虚拟输出队列。入口NCP不直接将数据包发送至NCF和出口NCP,而是通过VOQ机制与出口NCP协同工作,检查是否有足够带宽可供使用。

¡     入端口的虚拟输出队列向出端口申请Credit,以通知出端口有数据待发送。

¡     只有当出端口有足够带宽资源时,出口NCP才会向入端口的虚拟输出队列分配Credit

¡     如果出端口没有足够资源,则不会分配Credit给输入端口的虚拟输出队列。在没有Credit的情况下,虚拟输出队列将报文暂存在本地,等到申请到带宽资源后再发送,从而避免网络内部的阻塞和丢包。

(2)     数据转发

a.     入端口在收到Credit后,根据VOQ和出端口的对应关系表将数据包转发至NCF。此时,NCP将数据包切分成固定长度的Cell,每个Cell封装上Cell转发信息,包括出端口标识、远端封装索引、信元的序列号等。

b.     每个信元都根据其头信息独立进行hash运算,然后根据hash结果被分配到不同的等价路径上,通过SFI口发送给NCF

c.     NCF收到信元后,根据信元中携带的Cell转发信息查找本地Cell转发表获取出接口,然后将其发送给出口NCP

d.     出口NCP收到信元后,根据信元中携带的Cell转发信息进行报文重组,获取二层报文头的封装信息,并为重组后的报文添加封装,从指定端口发送给服务器。

图49 DDC架构中的转发流程

 

5 大小流区分调度

大小流区分调度是一种流量调度技术,在队列调度时优化不同流量的调度策略来优化网络性能,满足各类流量的不同需求。

数据中心网络中充斥着各种各样的流量,我们通常使用源目的IP地址、源目的端口号以及协议号这五元组标识一条流。流可以简单的分为大流和小流。大流占网络流总数极少,但其承载了网络总数据量的90%,具有持续时间长、占用带宽大、数量较少的特点,但是对时延要求较低,例如数据备份迁移、AI大模型训练。小流的特点是持续时间短、占用带宽小,但是对时延要求较高,希望能得到快速响应,例如查询流量。

5.1  大小流区分调度原理

在无损网络中大流可能因为流量调度在同一条链路上传输导致负载不均衡,链路的端口可能因突发大流造成拥塞,影响其他小流的传输。因此,需要将大流识别出来,大小流区分调度,以满足小流的延迟需求和大流的吞吐率需求。

50所示,大小流区分调度机制如下:

(1)     网络管理员配置大流识别参数(流速和尺寸),设备根据识别参数将网络流量中的大流识别出来;

(2)     网络管理员为大流指定丢弃优先级、本地优先级或dot1q优先级,设备根据本地优先级或者dot1q优先级将识别出来的大流映射到特定的队列中,与其他非大流区分调度。一旦发生拥塞,设备也可以根据配置的丢弃优先级,优先丢弃大流报文,以保证小流的低延迟体验。

图50 大小流区分调度示意图

 

5.2  大小流自适应缓存

大小流区分调度可以识别出大流,但在转发芯片的MMU中,小流队列和大流队列仍共享缓存空间,大流队列抢占绝大部分共享缓存,在大流队列发生拥塞之前,可能小流队列就已经产生丢包。此时,共享缓存的空间分配不够合理。为了共享缓存可以尽可能多地吸收小流流量,避免小流的丢包,降低丢包带来的小流的时延,需要合理降低大流队列共享缓存的占用。

当网络拥塞时,在保证大流吞吐率的前提下,大小流自适应缓存功能可以动态降低大流队列可用共享缓存上限,同时提升小流队列的共享缓存空间上限,如51所示,开启大小流自适应缓存功能后,工作流程如下:

(1)     缺省情况下,大流队列和小流队列均使用尾丢弃(Tail-Drop)的方式来避免拥塞,即大流队列或小流队列长度占满可用的共享缓存后,新进入缓存空间的报文被100%丢弃。

(2)     发生网络拥塞,设备端口监控到小流队列发生丢包时,触发大小流自适应缓存功能。此时大流采用WRED丢弃门限,即系统降低大流队列的丢弃门限,并按照WRED方式以一定概率丢弃大流报文,从而释放更多共享缓存空间供小流使用。

(3)     如果检测周期内设备发现小流仍然持续丢包,则进一步降低大流队列的WRED丢弃门限,持续增加小流可用缓存空间。

(4)     检测周期内小流不再发生丢包,系统逐步恢复大流队列的丢弃门限,最终恢复到系统默认的尾丢弃方式。

图51 大小流自适应缓存功能工作原理示意图

 

6 智能无损存储网络技术(iNOF

6.1  iNOF简介

iNOFIntelligent Lossless NVMe Over Fabric,智能无损存储网络)是一种以太网和存储网络的融合优化技术。它能实现海量存储设备的自动发现,网络故障的快速感知,并将存储设备的加入和离开第一时间通知给智能无损网络内的所有设备,为实现智能无损网络的“无丢包、低时延、高吞吐”提供基础支持。关于iNOF更详细的介绍,请参见新华三“iNOF技术白皮书”。

6.2  iNOF组网

iNOF有两种典型组网,这两种组网的适用场景不同:

·     iNOF直连组网,适用于小规模网络。

·     iNOF跨交换机组网,适用于规模较大的数据中心网络。

6.2.1  iNOF网络元素

iNOF网络中,包括以下三个重要元素:

·     iNOF主机:支持iNOF协议的网络服务器和磁盘设备,以下简称主机。

·     iNOF交换机:用于接入主机且支持iNOF功能的交换机。

·     iNOF域(Zone):iNOF使用域来管理主机。当域内有主机加入或者离开,iNOF会将这个主机的加入和离开信息通知给同一域内的其它主机,以便其它主机能够感知同一域内任一主机的加入或者离开。

为方便管理,iNOF域分为两类:

¡     自定义iNOF域:用户根据组网需求手工创建的iNOF域,需要手工向其中添加主机。

¡     缺省iNOF域:设备出厂即存在的iNOF域,无需用户创建,不能删除。对于未加入自定义iNOF域的主机,用户可以选择是否自动让它加入缺省iNOF域。

6.2.2  iNOF直连组网

iNOF直连组网如52所示,它要求同一域内的所有主机和同一iNOF交换机直连。主机和iNOF交换机之间通过交互二层报文,来通知主机状态变化(即主机加入或离开iNOF网络,也称为主机上线/离线),iNOF交换机之间不交互iNOF相关信息。iNOF直连组网适用于小规模网络。

图52 iNOF直连组网示意图

 

6.2.3  iNOF跨交换机组网

iNOF跨交换机组网如53所示,它支持同一域内的主机可以连接在不同的iNOF交换机上,iNOF交换机之间通过iNOF报文传递域内所有主机的加入或离开信息。iNOF跨交换机组网适用于规模较大的数据中心,这样的数据中心拥有多台主机,主机属于不同的组织或部门(对应不同的iNOF域),同一组织或部门的主机通过多台iNOF交换机相连。

为了跨交换机传递主机信息,通常要求iNOF交换机之间全部两两建立直连连接,这种全连接的方式增加了维护复杂度,不利于后续iNOF交换机的加入。H3C基于成熟的BGP技术,将BGP协议进行扩展,复用BGP反射器技术,来实现iNOF跨交换机组网。

iNOF跨交换机组网中:

·     iNOF交换机和主机直连,iNOF交换机和主机之间交互的报文和报文交互流程同iNOF直连组网。

·     iNOF交换机之间基于iBGP连接建立iNOF连接,通过BGP报文携带iNOF路由信息,利用BGP反射器技术,将一台iNOF交换机感知到的主机状态变化通知给域内的所有iNOF交换机。iNOF路由信息包括主机的加入或离开信息,以及iNOF的配置信息。

提示

iNOF跨交换机组网中,为简化组网,必须至少部署一台iNOF反射器,其它iNOF交换机均为客户机。所有客户机和反射器连接,客户机和客户机之间不建议连接,主机和iNOF反射器、iNOF交换机直连。因为客户机和客户机之间连接容易导致组网的复杂性,在路由快速变化时可能会出现路由表项短暂波动等非预期或不可控的现象。

为避免单点故障、提高网络的可靠性,一个iNOF域中也可以部署多个iNOF反射器。当一个反射器故障时,其它反射器能继续工作。这些路由反射器及其客户机之间形成一个集群,反射器上需要配置相同的集群ID,以便集群具有统一的标识,避免路由环路的产生

 

图53 iNOF跨交换机组网示意图

 

6.3  技术优点

iNOF具有以下优势:

·     即插即用

当主机接入iNOF网络时,iNOF交换机能够自动发现该设备,并将新主机加入消息同步给网络中的其他iNOF交换机以及通知同一iNOF域中的其它主机,以便其它主机能迅速发现新加入的主机,并自动和新主机建立连接,迅速实现存储业务的部署。

·     故障快速感知

当网络故障时,iNOF交换机能够快速检测到故障,并将故障状态信息同步给网络中的其它iNOF交换机以及通知同一iNOF域中的其它主机。如果该网络故障影响了存储设备,则主机会快速断开与该存储设备的连接,将业务切换到冗余路径。

6.4  H3C iNOF实现的技术特色

H3C对成熟的BGP技术进行扩展,来实现iNOF跨交换机组网的技术具有以下特性:

·     基于BGP连接建立iNOF连接,传输层使用TCP协议,可以为iNOF信息的传输提供稳定的连接。

·     基于BGP提供的丰富的路由策略,能够对iNOF路由实现灵活的过滤和选择。

·     iNOF复用BGP路由反射功能,在大规模的iNOF网络中可以有效减少iNOF连接的数量,简化网络拓扑,降低网络维护成本。同时,管理员在反射器上完成iNOF域和成员主机的配置后,iNOF可自动将这些配置同步给客户机,从而,可以简化iNOF的部署和配置。

·     iNOF复用BGPGRGraceful Restart,平滑重启)和NSRNonstop Routing,不间断路由)功能,在iNOF交换机进行主备倒换或BGP协议重启时,保障iNOF信息的传递不中断。

·     iNOF复用BGP连接,BGP支持和BFD联动,因此,iNOF也能够利用BFD快速检测到链路故障。

·     借助BGP会话的各种加密手段,例如MD5认证、GTSMGeneralized TTL Security Mechanism,通用TTL安全保护机制)、keychain认证,可以提高iNOF交换机间连接的安全性。

7 参考文献

·     IEEE 802.1Qau

·     Congestion Control for Large-Scale RDMA Deployments

·     RFC 3168 The Addition of Explicit Congestion Notification (ECN) to IP

·     Annex 17 RoCEv2

·     Computer Networking: a Top Down Approach

·     自适应路由技术白皮书-新华三集团

·     DDC技术白皮书-新华三集团

·     Spraylink技术白皮书-新华三集团

·     iNOF技术白皮书-新华三集团

 

新华三官网
联系我们