带外流量控制方法及设备与流程

专利2024-10-07  14


本发明属于流量控制技术领域,具体涉及一种带外流量控制方法及设备。



背景技术:

流量控制使网络能够提供无丢包的数据传输能力,当前使用较为广泛的inband流量控制有fc(flowcontrol,流量控制)和pfc(priority-baseflowcontrol,基于优先级的流量控制)计数,都是基于pause帧来实现的。当接收端出现流量拥塞时,触发pause帧的发送,对端接收到pause帧后,降低相应的流量发送,达到避免网络拥塞的目的。

通过pause帧进行流量控制有以下缺点:

1、pause帧属于inband流量控制,会占用物理口带宽;

2、在端口扩展以及stacking这种跨板应用场景中,跨板的流量会汇聚到板间互联口,再发送到对端,此时上述fc和pfc机制无法区分源端口的流量,导致流量控制无法工作。具体如下:

参图1所示,switch设备使用l2switch设备来扩展端口数量,两个设备通过端口0互联。流1、流2、流3从l2switch经过扩展口上送到主switch设备,当端口3出现拥塞,按fc(或pfc)机制会触发pause帧,发送到本设备的互联口,l2switch从互联口上收到pause帧,会暂停流量的发送,但是此时从l2switch端口流出去的报文是汇聚的,会导致流1、流2、流3都会暂停发送,达不到精确流量控制的目的,原则上只需要暂停流1的发送。

因此,针对上述技术问题,有必要提供一种带外流量控制方法及设备。



技术实现要素:

有鉴于此,本发明的目的在于提供一种带外流量控制方法及设备。

为了实现上述目的,本发明一实施例提供的技术方案如下:

一种带外流量控制方法,所述方法包括:

发送设备的接收端口读取队列深度,并判断是否达到流量控制的触发条件;

若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;

若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送。一实施例中,所述方法还包括:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

一实施例中,所述方法还包括:

若未达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为正常状态。

本发明另一实施例提供的技术方案如下:

一种带外流量控制方法,所述方法包括:

接收设备接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;

解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;

根据发送设备接收端口状态进行流量控制。

一实施例中,所述方法中,根据发送设备接收端口状态进行流量控制具体为:

若发送设备接收端口状态由正常状态变化为拥塞状态,则获取对应的接收设备队列信息,并停止该队列的调度;

若发送设备接收端口状态由拥塞状态变化为正常状态,则获取对应的接收设备队列信息,并恢复该队列的调度。

本发明又一实施例提供的技术方案如下:

一种带外流量控制设备,所述设备为发送设备,所述发送设备包括:

接收端口,用于读取队列深度;

第一队列管理单元,用于对发送设备中的队列进行管理;

第一流控单元,用于判断是否达到流量控制的触发条件;若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送;带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表。

一实施例中,所述第一流控单元还用于:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

一实施例中,所述第一流控单元还用于:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

本发明再一实施例提供的技术方案如下:

一种带外流量控制设备,所述设备为接收设备,所述接收设备包括:

第二流控单元,用于接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;根据发送设备接收端口状态进行流量控制;

第二队列管理单元,用于对接收设备中的队列进行管理;

发送端口,用于发送接收设备中的队列。

一实施例中,所述第二流控单元还用于:

若发送设备接收端口状态由正常状态变化为拥塞状态,则获取对应的接收设备队列信息,并停止该队列的调度;

若发送设备接收端口状态由拥塞状态变化为正常状态,则获取对应的接收设备队列信息,并恢复该队列的调度。

本发明具有以下有益效果:

本发明的带外流控信息通过创建接收设备队列信息与发送设备接收端口状态之间的映射关系,同时在接收设备单独为源端口单独分配一组队列,可以解决实现精准的流量控制,而不会影响其他源端口的流量,适用于端口扩展及堆叠等跨板应用场景中。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中端口扩展应用场景中流量控制的示意图;

图2为本发明发送设备中带外流量控制方法的流程示意图;

图3为本发明接收设备中带外流量控制方法的流程示意图;

图4为本发明中带外流量控制系统的模块示意图;

图5为本发明一具体实施例的发送设备中带外流量控制方法的流程示意图;

图6为本发明一具体实施例的接收设备中带外流量控制方法的流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

参图2所示,本发明公开了一种带外流量控制方法,所述方法包括:

发送设备的接收端口读取队列深度,并判断是否达到流量控制的触发条件;

若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;

若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送。

参图3所示,本发明还公开了一种带外流量控制方法,所述方法包括:

接收设备接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;

解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;

根据发送设备接收端口状态进行流量控制。

参图4所示,本发明还公开了一种带外流量控制系统,该带外流量控制系统包括发送设备(tx设备)和接收设备(rx设备),其中:

发送设备包括:

接收端口,用于读取队列深度;

第一队列管理单元,用于对发送设备中的队列进行管理;

第一流控单元,用于判断是否达到流量控制的触发条件;若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送;带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表。

接收设备包括:

第二流控单元,用于接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;根据发送设备接收端口状态进行流量控制;

第二队列管理单元,用于对接收设备中的队列进行管理;

发送端口,用于发送接收设备中的队列。

以下结合具体实施例对本发明作进一步说明。

参图3所示,本实施例中针对跨板流量控制,通过将拥塞端口和远端设备上源流量建立映射关系,实现精准的流量控制。依据报文的流向,将报文的出端口设备定义为发送设备(tx设备),报文入端口设备定义为接收设备(rx设备),例如图1中的l2switch为rx设备,switch为tx设备)。

如何建立tx设备的接收端口和rx设备的对应队列信息的映射关系是本发明着重解决的。建立映射关系如下:

1)rx设备源端口(sourceport)和tx设备接收端口之间的映射

在端口扩展的应用中,如图1所示,l2switch的功能只是用来出物理口,达到扩大switch端口的目的,交换转发逻辑都是在switch上完成,同时针对l2switch上扩展出来的物理口,在switch设备上必然有唯一的内部端口与之对应,通过端口扩展创建这种映射关系。

2)rx设备源端口(sourceport)和上行口之间的队列(queue)映射在rx设备的上行口,为rx设备的每个sourceport单独创建一组队列(queue),并保存映射关系.

3)tx设备接收端口和rx设备队列(queue)之间的映射

通过带外消息携带tx设备接收端口和rx设备队列之间的映射,如图4所示,在rx设备和tx设备分别创建同一种映射表,并通过带外消息将映射关系在rx设备和tx设备之间传递。

对于发送设备(tx设备),参图2并结合图5所示,本实施例中的流量控制方法如下:

发送设备的接收端口读取队列深度,并判断是否达到流量控制的触发条件;

若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;

若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送。

其中,若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态;若未达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为正常状态。

本实施例中,当达到流量控制的触发条件时,和普通fc(pfc)不同,此时不是触发pause帧,而是根据配置好的接收设备队列信息与发送设备接收端口状态的映射表,将对应发送设备接收端口状态置1,然后将映射表信息组成一定格式的带外流控信息由带外管脚发送到对端。

具体地,本实施例中判断是否达到流量控制的触发条件的具体步骤为:

接收端口读取队列深度,并判断是否到达触发门限;

若到达触发门限,则设置流量控制器状态为真,触发流量控制;

若未到达触发门限,进一步判断流量控制器状态是否为真,若是,则设置流量控制器状态为假,触发流量控制;若否,则丢弃对应报文。

对于接收设备(rx设备),参图3并结合图6所示,本实施例中的流量控制方法如下:

接收设备接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;

解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;

根据发送设备接收端口状态进行流量控制,具体为:

若发送设备接收端口状态由正常状态变化为拥塞状态,则获取对应的接收设备队列信息,并停止该队列的调度;

若发送设备接收端口状态由拥塞状态变化为正常状态,则获取对应的接收设备队列信息,并恢复该队列的调度。

对rx设备,从带外接口接收信息,并解析出接收设备的队列信息与发送设备接收端口状态的信息,根据发送设备接收端口对应的offset,获取到需要处理的队列信息,同时根据携带的流控信息来决定是暂停队列调度还是恢复该队列调度,以此达到流量控制的目的。

同时为了实现基于队列的调度,需要在rx设备上行流量,为每个sourceport单独分配队列资源,当流量控制作用在该队列时,不会影响其它端口的流量。

本发明中的带外流量控制系统及设备可应用于asic芯片、fpga芯片或np芯片等。使用的应用场景并不局限于图1所示的端口扩展,对堆叠端口这种场景同样适用。

另外,本发明中所描述的带外流控信息的封装格式,并没有明确限制,tx设备和rx设备约定一致即可,对不一致的格式,中间可以通过fpga进行互转。

由以上技术方案可以看出,本发明具有以下优点:

本发明的带外流控信息通过创建接收设备队列信息与发送设备接收端口状态之间的映射关系,同时在接收设备单独为源端口单独分配一组队列,可以解决实现精准的流量控制,而不会影响其他源端口的流量,适用于端口扩展及堆叠等跨板应用场景中。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。


技术特征:

1.一种带外流量控制方法,其特征在于,所述方法包括:

发送设备的接收端口读取队列深度,并判断是否达到流量控制的触发条件;

若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;

若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送。

2.根据权利要求1所述的带外流量控制方法,其特征在于,所述方法还包括:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

3.根据权利要求1所述的带外流量控制方法,其特征在于,所述方法还包括:

若未达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为正常状态。

4.一种带外流量控制方法,其特征在于,所述方法包括:

接收设备接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;

解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;

根据发送设备接收端口状态进行流量控制。

5.根据权利要求4所述的带外流量控制方法,其特征在于,所述方法中,根据发送设备接收端口状态进行流量控制具体为:

若发送设备接收端口状态由正常状态变化为拥塞状态,则获取对应的接收设备队列信息,并停止该队列的调度;

若发送设备接收端口状态由拥塞状态变化为正常状态,则获取对应的接收设备队列信息,并恢复该队列的调度。

6.一种带外流量控制设备,其特征在于,所述设备为发送设备,所述发送设备包括:

接收端口,用于读取队列深度;

第一队列管理单元,用于对发送设备中的队列进行管理;

第一流控单元,用于判断是否达到流量控制的触发条件;若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送;带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表。

7.根据权利要求6所述的带外流量控制设备,其特征在于,所述第一流控单元还用于:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

8.根据权利要求7所述的带外流量控制设备,其特征在于,所述第一流控单元还用于:

若达到流量控制的触发条件,将带外流控信息中的发送设备接收端口状态配置为拥塞状态。

9.一种带外流量控制设备,其特征在于,所述设备为接收设备,所述接收设备包括:

第二流控单元,用于接收带外流控信息,带外流控信息包括接收设备的队列信息与发送设备接收端口状态之间的映射表;解析带外流控信息,根据发送设备接收端口获取对应的接收设备队列信息;根据发送设备接收端口状态进行流量控制;

第二队列管理单元,用于对接收设备中的队列进行管理;

发送端口,用于发送接收设备中的队列。

10.根据权利要求9所述的带外流量控制设备,其特征在于,所述第二流控单元还用于:

若发送设备接收端口状态由正常状态变化为拥塞状态,则获取对应的接收设备队列信息,并停止该队列的调度;

若发送设备接收端口状态由拥塞状态变化为正常状态,则获取对应的接收设备队列信息,并恢复该队列的调度。

技术总结
本发明揭示了一种带外流量控制方法及设备,所述方法包括:发送设备的接收端口读取队列深度,并判断是否达到流量控制的触发条件;若是,则设置接收端口状态为拥塞状态,并配置带外流控信息后发送,带外流控信息包括接收设备队列信息与发送设备接收端口状态之间的映射表;若否,则判断当前端口状态是否为拥塞状态,如果为拥塞状态,清除接收端口的拥塞状态并配置带外流控信息后发送。本发明的带外流控信息通过创建接收设备队列信息与发送设备接收端口状态之间的映射关系,同时在接收设备单独为源端口单独分配一组队列,可以解决实现精准的流量控制,而不会影响其他源端口的流量,适用于端口扩展及堆叠等跨板应用场景中。

技术研发人员:李磊;苏良;麻孝强;赵茂聪
受保护的技术使用者:盛科网络(苏州)有限公司
技术研发日:2020.12.09
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-21612.html