CN106134138B - 一种拥塞控制的方法、设备和系统 - Google Patents

一种拥塞控制的方法、设备和系统 Download PDF

Info

Publication number
CN106134138B
CN106134138B CN201480038620.2A CN201480038620A CN106134138B CN 106134138 B CN106134138 B CN 106134138B CN 201480038620 A CN201480038620 A CN 201480038620A CN 106134138 B CN106134138 B CN 106134138B
Authority
CN
China
Prior art keywords
network node
data flow
congestion
pfc
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480038620.2A
Other languages
English (en)
Other versions
CN106134138A (zh
Inventor
肖俊俊
梁剑耀
文白林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106134138A publication Critical patent/CN106134138A/zh
Application granted granted Critical
Publication of CN106134138B publication Critical patent/CN106134138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了一种拥塞控制的方法,包括:第一网络节点对入端口进行基于优先级的流控(Priority‑based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得该数据流的流标识;第一网络节点生成包括该数据流的流标识的PFC帧,并发送该PFC帧到第二网络节点,指示第二网络节点对该数据流进行拥塞控制。本发明实施例通过在对现有的PFC机制进行改进,使得PFC机制能对某条具体的数据流进行拥塞检测,并将拥塞程度通过改进后的PFC桢发送给上行节点,可根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。本发明实施例还公开了一种网络节点、系统和计算机可读介质。

Description

一种拥塞控制的方法、设备和系统
技术领域
本发明实施例涉及网络领域,尤其涉及一种拥塞控制的方法、设备和系统。
背景技术
以太网(Ethernet)是一种计算机局域网组网技术。IEEE制定的IEEE 802.3标准给出了以太网的技术标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。
为解决以太网中出现拥塞时可能导致的丢包现象,目前已经制定了多项用于保障无损以太网的技术,包括量化拥塞通知(Quantized Congestion Notification,简称为QCN)协议和基于优先级的流控(Priority-based Flow Control,简称为PFC)机制。
图1是现有技术中QCN机制的工作原理示意图。QCN协议采用量化拥塞控制技术,相对于其他拥塞控制技术采用了相对精准的后向拥塞通知机制。在网络中的设备也被称之为网络节点;在网络节点上基于出端口队列设置拥塞检测点,即对网络节点上向外发出数据的缓存队列进行拥塞检测。如果网络节点检测到有拥塞发生时,则生成拥塞通知消息(Congestion Notification Message,简称为CNM),其中包含指示导致拥塞的流(Flow)的标识信息和拥塞程度的信息;网络节点将生成的CNM消息沿着流传输的反方向发送到导致拥塞的源终端,由源终端根据CNM消息降低相应流的数据发送速率。
图2是现有技术中PFC机制的工作原理示意图。支持PFC机制的节点将入端口队列上的数据流按照802.1Q协议规定的VLAN tag的优先级字段分为8个优先级队列,一旦检测到某优先级队列(比如图2中的优先级队列3)的流量过多导致拥塞,则接收端暂停该优先级队列3上的数据接收,发送端停止该优先级队列3上的数据发送。
在实际网络中,一般将QCN协议和PFC机制结合起来使用,如图3所示。网络节点E支持QCN协议和PFC机制;A与D,B与D,D与E,C与E,及F与E之间采用PFC机制进行流量控制。在各节点上会相应设置触发PFC机制及触发QCN机制的阈值。
举例来说,在节点E上,出端口队列缓存大小是500K字节,入端口队列缓存大小是100K字节。在节点E上,将触发QCN机制(即对出端口发送数据的速率进行流量控制)的阈值可设置为20%,即一旦出端口缓存占用率超过20%(即超过100k字节),节点E会启动QCN机制,对出端口发送数据的速率进行控制。
PFC机制作用于入端口,在节点E上将触发PFC机制(即对入端口接收数据的速率进行流量控制)的阈值可设置为80%,即一旦入端口缓存占用率超过了80%(即超过80K字节),节点E会启动PFC机制,对入端口接收数据的速率进行控制。如节点E检测到如图2中的某优先级队列的流量过多导致拥塞,则暂停该优先级队列上的数据接收。
当节点E上设置的触发PFC机制的阈值过低时,则节点E则很容易触发PFC机制,从而导致节点E降低入端口接收数据的速率,也就是节点C、D、F上出端口向节点E发送数据的速率。这样情况下,节点E的出端口可能永远不会产生拥塞,其上的QCN机制的流控功能就不会启动;从而导致了节点之间的链路利用率过低。
如果节点E上长时间拥塞,使得节点E上的入端口队列长时间被100%暂用,则节点E向节点D、F或C请求降低发送数据的速率。以节点E向节点D请求降低节点D向节点E发送数据的速率为例,一旦节点D向节点E发送数据的速率降下来,但暂时节点D上入端口接收数据的速率降不下来,则会导致节点D入端口的拥塞,实质上可以看作是节点E将入端口的拥塞扩散到节点D;并可能继续往上一级节点如节点A或节点B扩散。
当节点E上设置的触发PFC机制的阈值过高时,则其上的QCN机制会被先触发,使得相应数据流的源终端发送数据的速率降低;而此时节点E上触发PFC机制的阈值尚未达到,则节点E并不启动PFC机制的流量控制功能。节点E启动QCN机制后,如检测到拥塞则会生成CNM消息并发送到导致拥塞的源终端。但该过程需经过网络中的多个节点,在节点E发送CNM消息到源终端降低发送数据的速率的这段时间内,节点E处的出端口发送数据的速率被控制,但PFC机制尚未启动,则短时间内节点E不会控制入端口的接收数据的速率,导致节点E的出端口拥塞更加严重。
现有技术通过设置阈值的方式使QCN机制和PFC机制互相配合工作。然而如上所述,一旦阈值设置不合理则很可能导致拥塞扩散或者拥塞加重,降低整个网络系统的效率。另外,由于网络上数据流量的复杂性和不可预测性,固定设置阈值的方式并不能有效应对网络数据流量的变化,不能灵活解决拥塞控制的问题。
发明内容
有鉴于此,本发明实施例提供了一种拥塞控制的方法、设备和系统,能有效应对网络数据流量的变化,从而灵活解决拥塞控制的问题。
第一方面,本发明实施例提供了一种拥塞控制的方法,包括:
第一网络节点对入端口进行基于优先级的流控(Priority-based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得该数据流的流标识;
所述第一网络节点生成PFC帧,所述PFC帧包括所述数据流的流标识;
所述第一网络节点发送所述PFC帧到第二网络节点,指示所述第二网络节点对所述数据流进行拥塞控制。
第二方面,本发明实施例还提供了一种拥塞控制的方法,包括:
网络节点接收基于优先级的流控(Priority-based Flow Control,PFC)帧,所述PFC帧包括所述数据流的流标识;
所述网络节点根据所述PFC帧对所述数据流进行拥塞控制。
第三方面,本发明实施例还提供了一种网络节点,包括:
检测模块,用于对入端口进行基于优先级的流控(Priority-based FlowControl,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得所述数据流的流标识;
PFC帧生成模块,用于生成PFC帧,所述PFC帧包括所述数据流的流标识;
PFC帧发送模块,用于发送所述PFC帧,所述PFC帧用于指示接收该PFC帧的网络节点对所述数据流进行拥塞控制。
第四方面,本发明实施例还提供了一种网络节点,包括:
接收模块,用于接收基于优先级的流控(Priority-based Flow Control,PFC)帧,所述PFC帧包括某一数据流的流标识;
拥塞控制模块,用于根据所述PFC帧对所述数据流进行拥塞控制。
第五方面,本发明实施例还提供了一种拥塞控制系统,包括第一网络节点和第二网络节点;
所述第一网络节点,用于对入端口进行基于优先级的流控(Priority-based FlowControl,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得该数据流的流标识;所述第一网络节点用于生成包含所述数据流的流标识的PFC帧,并发送所述PFC帧到所述第二网络节点;
所述第二网络节点,用于对所述数据流进行拥塞控制。
第六方面,本发明实施例还提供了一种网络节点,包括处理器和存储器,所述存储器存储执行指令,当所述网络节点运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使所述网络节点执行上述第一方面的方法。
第七方面,本发明实施例还提供了一种网络节点,包括处理器和存储器,所述存储器存储执行指令,当所述网络节点运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述网络执行上述第二方面的方法。
第八方面,本发明实施例还提供了一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使主机执行上述第一方面的方法。
第九方面,本发明实施例还提供了一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使主机执行上述第二方面的方法。
本发明实施例通过在对现有的PFC机制进行改进,使得PFC机制能对某条具体的数据流进行拥塞检测,并将拥塞程度通过改进后的PFC桢发送给上行节点,可根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中QCN机制的工作原理示意图;
图2为现有技术中PFC机制的工作原理示意图;
图3为现有技术中QCN机制和PFC机制共同应用的工作原理示意图;
图4为本发明实施例对PFC桢结构的改进示意图;
图5为本发明实施例一的工作原理示意图;
图6为本发明实施例一的方法流程示意图;
图7为本发明实施例三的网络节点结构示意图;
图8为本发明实施例四的网络节点结构示意图;
图9为本发明实施例五的系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图4所示,是本发明实施例对现有的PFC桢结构的一种改进。现有的PFC桢中包括如下字段:
Destination address:6字节,用于标示数据桢的目的MAC地址。
Source address:6字节,用于标示数据桢的源MAC地址。
Ethetype:2字节,用于标示桢的类型。
Control opcode:2字节,用于标示控制码。
Prioirty enable vector:2字节,表示为反压使能向量,:其中第1个字节直接设置为0;第2个字节E(N)的8位分别与PFC机制中定义的8个优先级队列对应,表示指示是否需要暂停发送优先级队列N上的数据;当E(N)=1时表示需要暂停发送优先级队列N上的数据,暂停的时间为接下来的Time(N);当E(N)=0时表示不需要暂停发送优先级队列N上的数据。
Time(0)-Time(7):各2字节,为暂停定时器,指示暂停相应优先级队列的数据发送的时长,其单位可以是以当前物理芯片的传输速率传输512位数据所用的时间;比如Priority enable vector中的E(3)=1且Time(3)=8,该PFC帧指示的是暂停优先级队列3上的数据发送,暂停时长是以当前物理芯片的传输速率发送8*512=4096位的数据所需的时间。
Pad:预留字段,26字节。
CRC:4字节,是循环冗余校验信息。
本发明实施例可在上述预留的Pad字段内增加如下信息:
Flow Identifier(简称Flow ID):2字节,为流标识;该Flow ID是(由支持QCN机制的终端分配的标识,可通过Flow ID找到源终端多条数据流导致拥塞的具体数据流);对于PFC机制来说,网络节点在检测到入端口产生拥塞时,可标记导致拥塞的数据流;
TImes:2bit,指示在设定的周期内检测上述Flow ID对应的数据流发生拥塞的次数;
Label:1bit,标记当前的流控状态,取值可以为Red或Green(根据实际设计,Red可取值为0或1,相应地Green取值为1或0);如Label=Red,则指示接收到该PFC流控桢PFC桢的节点触发QCN流控机制;如Label=Green则暂不触发QCN流控机制。Label和Times是相关联的,一般是在节点上设置用于判断流控状态的N_Red,如果Times的取值超过N_Red,则Label=Green,否则Label=Red。
如图5所示,为本发明实施例一的工作原理示意图。该实施例中QCN机制和PFC机制共同应用,网络节点E支持QCN机制和PFC机制;A与D,B与D,D与E,C与E,及F与E之间采用PFC机制进行流量控制。在各节点上可以设置触发PFC机制的阈值和触发QCN机制的阈值,网络节点根据节点上的缓存使用情况和上述阈值来判断是否发生拥塞以及拥塞的严重程度。以图5所示源终端发送到目的终端的数据流Flow1(Flow ID=FID1)为例,该数据流经由节点A到D,并由节点E流向目的终端。下面结合流程示意图6详细阐述本发明实施例一的方法工作原理。
S601:节点E上的PFC机制开始工作,即节点E对入端口进行PFC检测。节点E一旦检测到入端口发生拥塞,则会标记导致拥塞的数据流Flow1的Flow ID即FID1,并生成如图4所示的PFC桢。
若在设定周期T内未检测到入端口发生拥塞,则节点E继续在入端口进行PFC检测。
S603:若在设定周期T内,Flow1上发生了拥塞,并检测Flow1发生拥塞的次数n,则节点E生成PFC桢,并沿着数据流Flow1的上行方向,将生成的PFC桢发送给节点E的上行节点即节点D。该PFC桢中的Flow ID字段取值为FID1,Times字段取值为n;如果n小于预先设置的N_Red,则Label字段取值为Green,如果n超过了N_Red,则Label字段取值为Red。
S605:当上述PFC桢中的Label=Green时,节点D在设置的时间内暂停向节点E发送Flow1上的数据,并对Flow1在入端口进行PFC检测。该设置的时间也称为暂停期间(即PauseDuration)。
S607:如果节点D上在暂停期间内检测到Flow1发生了拥塞,则节点D直接触发QCN流控机制,即节点D生成CNM消息并发送到数据流Flow1的源终端,通知源终端降低相应数据流Flow1的数据发送速率。
S609:如果节点E在周期T内检测到Flow1上拥塞的次数超过N_Red,即Label=Red时,节点D收到PFC桢后暂停向节点E发送Flow1上的数据,生成CNM消息并发送到数据流Flow1的源终端,通知源终端降低数据流Flow1的发送速率。
S611:暂停期间结束后,节点D上会恢复向节点E发送数据流Flow1上的数据。
具体来说,节点D上的PFC机制在暂停期间内未检测到Flow1发生拥塞,节点D上会恢复向节点E发送数据流Flow1上的数据。上述S607或S609所示情形,在暂停期间结束后节点D也会恢复向节点E发送数据流Flow1上的数据;当然S611情形下恢复Flow1上数据发送可以在节点D发送CNM消息的同时或者之前,只要是暂停期间结束后即可。
在恢复数据发送的同时,节点D和节点E都将清除之前记录的该Flow1上的Label标记和Times参数值。
需要说明的是,本发明上述实施例中,节点D在设置的暂停期间内暂停向节点E发送Flow1上的数据,采用了PFC机制中的暂停机制。具体参见如图4所示改进的PFC桢结构:如果节点E需要节点D暂停Flow1上的数据流发送,PFC帧的反压使能向量Prioirty enablevector会将该Flow1所在的优先级队列N对应的E(N)设置为1,并设置暂停期间Time(N)。节点E在接收到PFC帧后则会暂停该优先级队列N的数据发送,时长即为Time(N);因此该优先级队列N的其他数据流也会被暂停。在暂停期间Time(N)结束后,节点D会恢复该优先级队列N的数据发送,包括上述数据流Flow1的数据发送。
本发明实施例一通过在网络节点的入端口上通过PFC机制检测数据流的拥塞情况,根据拥塞的严重程度进行相应处理:在一设定周期内某条数据流导致拥塞次数未超过设定值时,将拥塞情况通过PFC桢沿数据流的反方向发送给上行网络节点,由该上行网络节点在暂停期间内先暂停发送该数据流的数据,减缓局部拥塞,并在当上行网络节点在暂停期间内检测到该数据流再次拥塞时直接,通过QCN流控机制通知数据流的源终端降低数据流的发送速率。
当然,若前述入端口进行PFC机制检测的网络节点在设定一周期内,检测到某条数据流导致拥塞次数超过设定值即拥塞已经较为严重时,上行网络节点在暂停发送该数据流的数据的同时,还可以通过QCN流控机制通知数据流的源终端降低数据流的发送速率。在实际业务中,源终端收到CNM消息时还会启动一定时器,用于在设定的恢复周期内判断拥塞情况是否缓解;如果拥塞缓解了则恢复该数据流之前的发送速率。在实际的网络环境下,可能有多个网络节点在上述恢复周期都通知源终端降低同一数据流的发送速率(如上述实施例一,若拥塞发生了扩散,节点A,节点D和节点E都通知了源终端降低数据流Flow1的发送速率),源终端在第1次收到CNM消息时会降低数据流的发送速率,而针对在恢复周期内再次接到的CNM消息,源终端可以不进一步降低速率,而是延长上述恢复周期。
进一步需要进一步说明的是,本发明上述实施例一在前述入端口进行PFC机制检测的网络节点在一设定周期内,检测到某条数据流出现拥塞次数超过设定值时,该网络节点发送PFC帧至上行网络节点,由上行网络节点暂停发送该数据流的数据的同时,上行网络节点通过QCN流控机制即发送CNM消息通知数据流的源终端降低数据流的发送速率。在实际实施过程中,也可以由在前述入端口进行PFC机制检测的网络节点一方面发送PFC帧至上行网络节点,使得该上行网络节点暂停发送该数据流的数据;另一方面,该网络节点直接也发送CNM消息至数据流的源终端通知该源终端降低数据流的发送速率。
上述实施例一仅是用于阐述说明本发明的示例性实施例。在实施过程中,还可以对图4的PFC桢结构进一步改进,并应用到上述图5和6示例的实施例、以及本发明所有的其他实施例中。比如PFC桢中可仅包括Flow Identifier和Label字段,不包括Times字段;也可以仅包括Flow Identifier和TImes字段,不包括Label字段,此时节点E仅需要记录在周期T内Flow1上发生拥塞的次数n即可,不需要设置N_Red并与n进行比较,在节点D上收到PFC桢后则可以根据收到的PFC桢中Times字段(即节点E检测到在周期T内Flow1上发生拥塞的次数n)和节点D在暂停期间内通过PFC机制检测到Flow1上是否发生拥塞及拥塞的次数m来判断Flow1的拥赛程度并确定节点D的操作,如n+m大于与设置的值触发QCN流控机制则发送CNM消息;也可以是m大于设置的值触发QCN流控机制时发送CNM消息。当然PFC桢也可以仅包括Flow Identifier字段,不包括Label和Times字段;节点D收到节点E发送的PFC桢后,节点D仅根据暂停期间内通过PFC机制检测到Flow1上是否发生拥塞及拥塞的次数m来判断Flow1的拥赛程度并确定节点D的操作,如m大于设置的值触发QCN流控机制则发送CNM消息,或者也可以不记录暂停周期内Flow1发生拥塞的次数,一旦发生拥塞则发送CNM消息。
本发明实施例二提供了一种拥塞控制的方法,包括:
第一网络节点对入端口进行基于优先级的流控(Priority-based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流比如Flow1发生拥塞,获得Flow1的流标识即Flow ID;
第一网络节点生成PFC帧并发送到第二网络节点,其中包括Flow1的流标识FlowID;
第二网络节点对Flow1进行拥塞控制。
可选的、上述PFC帧还包括拥塞程度信息,第二网络节点用于根据该拥塞程度信息对Flow1进行拥塞控制。拥塞程度信息是用于表示数据流Flow1上拥塞严重程度的参数,参见图4所示的PFC帧的结构示意图,可以通过Label字段或Times字段表达,也可以通过Label字段和Times字段一起表达。如Label=Red表示拥塞比较严重了,Label=Green则表示拥塞较轻,可以先通过局部暂停该数据流的发送先缓解拥塞;当然也可以直接用在周期T内Flow1上发生拥塞的次数n来判断拥塞的严重程度,n值越大表示拥塞越严重。
可选的、第二网络节点根据拥塞程度信息对Flow1进行拥塞控制可以包括:
在拥塞程度信息表示拥塞较严重时,第二网络节点发送拥塞通知消息(Congestion Notification Message,CNM)至数据流Flow1的源终端,通知该源终端降低数据流Flow1的发送速率;或者
在拥塞程度信息表示拥塞较轻时,第二网络节点在设定的暂停期间内暂停向第一网络节点发送数据流Flow1的数据;第二网络节点还可以在该暂停期间内在入端口对数据流Flow1进行PFC检测:若在暂停期间内PFC检测到数据流Flow1发生了拥塞,第二网络节点可以发送CNM消息至数据流Flow1的源终端,通知源终端降低数据流Flow1的发送速率。
在暂停期间内结束后,第二网络节点恢复向第一网络节点发送数据流Flow1的数据。
可选的、第一网络节点在检测周期内检测到数据流Flow1发生严重拥塞(比如出现拥塞次数超过设定值或者缓存占用率过高)时,还可以直接发送CNM消息至数据流Flow1的源终端通知该源终端降低数据流的发送速率。
本发明上述实施例一和实施例二通过在对现有的PFC机制及PFC桢结构进行改进,使得网络节点进行PFC机制检测时能确定对某条发生拥塞的具体的数据流进行拥塞检测,并将拥塞程度信息通过改进后的PFC桢发送到给上行节点,。在拥塞不严重时,先局部降低数据流的发送速率缓解拥塞;在拥塞严重或局部缓解拥塞后该数据流仍出现拥塞的情况下,时则通过QCN流控机制通知数据流的源终端降低数据流的发送速率。使用本发明实施例一的方法,可根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。
本发明实施例三提供了一种网络节点700,如图7所示。该网络节点700包括:
检测模块701,用于对入端口进行基于优先级的流控(Priority-based FlowControl,PFC)检测,如在设定的检测周期内检测到某一数据流比如Flow1发生拥塞,获得该数据流Flow1的流标识;
PFC帧生成模块703,用于生成PFC帧,其中包括检测模块701获得的数据流Flow1的流标识;
PFC帧发送模块705,用于发送PFC帧生成模块703生成的PFC帧,该PFC帧用于指示接收该PFC帧的网络节点对数据流Flow1进行拥塞控制。
可选的,上述PFC帧还包括拥塞程度信息。拥塞程度信息是表示数据流Flow1上拥塞严重程度的参数,参见图4所示的PFC帧的结构示意图,可以通过Label字段或Times字段表达,也可以通过Label字段和Times字段一起表达。如Label=Red表示拥塞比较严重了,Label=Green则表示拥塞较轻,可以先通过局部暂停该数据流的发送缓解拥塞;当然也可以直接用在设定的检测周期内Flow1上发生拥塞的次数n来判断拥塞的严重程度,n值越大表示拥塞越严重。
可选的、该网络节点还可以包括CNM消息发送模块707,用于在检测周期内检测到数据流Flow1发生严重拥塞(比如拥塞的次数超过设定值或者缓存占用率过高)时,发送CNM消息至数据流的源终端通知该源终端降低数据流的发送速率。
本发明上述实施例三提供的网络节点,可以识别出是哪条数据流发生了拥塞,并提供给其他网络节点,对数据流进行更灵活的拥塞控制;进一步还可以将拥塞程度信息通过发送给上行节点,在拥塞不严重时先局部降低数据流的发送速率缓解拥塞;在拥塞严重或局部缓解拥塞后该数据流仍出现拥塞时则通过QCN机制通知数据流的源终端降低数据流的发送速率。该实施例根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。
本发明实施例四提供了一种网络节点800,如图8所示。该网络节点800包括:
接收模块801,用于接收基于优先级的流控(Priority-based Flow Control,PFC)帧,该PFC帧包括某一数据流比如Flow1的流标识;
拥塞控制模块803,用于根据上述接收模块801接收到的PFC帧对数据流Flow1进行拥塞控制。
可选的,上述PFC帧还可以包括拥塞程度信息;拥塞控制模块803根据该拥塞程度信息对数据流Flow1进行拥塞控制。拥塞程度信息是表示数据流Flow1上拥塞严重程度的参数,参见图4所示的PFC帧的结构示意图,可以通过Label字段或Times字段表达,也可以通过Label字段和Times字段一起表达。如Label=Red表示拥塞比较严重了,Label=Green则表示拥塞较轻,可以通过局部暂停该数据流的发送先缓解拥塞;当然也可以直接用在检测周期内数据流Flow1上发生拥塞的次数n来判断拥塞的严重程度,n值越大表示拥塞越严重。
可选的、拥塞控制模块803还可以用于在设定的暂停期间内暂停发送所述数据流的数据。
可选的、网络节点800还可以包括:发送模块805。拥塞控制模块803还可以用于在上述暂停期间内在入端口对数据流Flow1进行PFC检测;若在暂停期间内检测到数据流Flow1发生拥塞,发送模块805用于发送拥塞通知消息(Congestion NotificationMessage,CNM)至数据流Flow1的源终端,通知上述源终端降低数据流Flow1的发送速率。
暂停期间结束后,拥塞控制模块803恢复发送数据流Flow1的数据。
本发明上述实施例四提供的网络节点,可以根据接收的PFC帧识别出是哪条数据流发生了拥塞,并根据拥塞程度对该数据流进行更灵活的拥塞控制:在拥塞不严重时先局部降低数据流的发送速率缓解拥塞;在拥塞严重或局部缓解拥塞后该数据流仍出现拥塞时则通过QCN机制通知数据流的源终端降低数据流的发送速率。该实施例根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。
本发明实施例五提供了一种拥塞控制系统,如图9所示,该系统包括第一网络节点和第二网络节点。
第一网络节点对入端口进行基于优先级的流控(Priority-based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流比如Flow1发生了拥塞,则获取该数据流Flow1的流标识。第一网络节点生成包括上述数据流Flow1的流标识的PFC帧,并发送该PFC帧到第二网络节点。
第二网络节点根据该PFC桢对数据流Flow1进行拥塞控制。
可选的,上述PFC帧还可以包括拥塞程度信息;第二网络节点根据拥塞程度信息对数据流Flow1进行拥塞控制。拥塞程度信息是用于表示数据流Flow1上拥塞严重程度的参数,参见图4所示的PFC帧的结构示意图,可以通过Label字段或Times字段表达,也可以通过Label字段和Times字段一起表达。如Label=Red表示拥塞比较严重了,Label=Green则表示拥塞较轻,可以通过局部暂停该数据流的发送先缓解拥塞;当然也可以直接用在检测周期内Flow1上发生拥塞的次数n来判断拥塞的严重程度,n值越大表示拥塞越严重。
可选的、第二网络节点根据对数据流Flow1进行拥塞控制可以包括:
第二网络节点用于发送拥塞通知消息(Congestion Notification Message,CNM)至数据流Flow1的源终端,通知该源终端降低数据流Flow1的发送速率。
可选的、第二网络节点根据对数据流Flow1进行拥塞控制也可以包括:第二网络节点在设定的暂停期间内暂停向第一网络节点发送数据流Flow1的数据。
进一步地、第二网络节点还可以在上述暂停期间内在入端口对数据流Flow1进行PFC检测;
若在暂停期间内数据流Flow1发生拥塞,第二网络节点发送CNM消息至数据流Flow1的源终端,通知该源终端降低所述数据流的发送速率。
暂停期间结束后,第二网络节点恢复向第一网络节点发送数据流Flow1的数据。
可选的、第一网络节点在设定的检测周期内检测到发生严重拥塞(比如数据流Flow1出现拥塞次数超过设定值或者缓存占用率过高)时,也可以直接发送CNM消息至数据流的源终端通知该源终端降低数据流的发送速率。
本发明上述实施例五提供的拥塞控制系统,可以识别出是哪条数据流发生了拥塞并根据拥塞程度进行更灵活的拥塞控制:在拥塞不严重时先局部降低数据流的发送速率缓解拥塞;在拥塞严重或局部缓解拥塞后该数据流仍出现拥塞时则通过QCN机制通知数据流的源终端降低数据流的发送速率。该实施例根据拥塞情况对数据流进行灵活处理,可以有效应对网络数据流量的变化和拥塞扩散的问题,提高了整个网络系统的效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种拥塞控制的方法,其特征在于,包括:
第一网络节点对入端口进行基于优先级的流控(Priority-based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得该数据流的流标识;
所述第一网络节点生成PFC帧,所述PFC帧包括所述数据流的流标识;
所述第一网络节点发送所述PFC帧到第二网络节点,指示所述第二网络节点对所述数据流进行拥塞控制;
所述PFC帧还包括拥塞程度信息;所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制;
所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述第二网络节点用于发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
2.如权利要求1所述的方法,其特征在于,所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述第二网络节点用于在设定的暂停期间内暂停向所述第一网络节点发送所述数据流的数据。
3.如权利要求2所述的方法,其特征在于,所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制还包括:
所述第二网络节点用于在所述暂停期间内在入端口对所述数据流进行PFC检测;
若在暂停期间内所述数据流发生拥塞,所述第二网络节点用于发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
4.如权利要求1或2所述的方法,其特征在于:在所述检测周期内检测到所述数据流发生严重拥塞时,所述第一网络节点发送拥塞通知消息(Congestion NotificationMessage,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
5.一种拥塞控制的方法,其特征在于,包括:
网络节点接收基于优先级的流控(Priority-based Flow Control,PFC)帧,所述PFC帧包括所述数据流的流标识;
所述网络节点根据所述PFC帧对所述数据流进行拥塞控制;
所述PFC帧还包括拥塞程度信息;所述网络节点根据所述拥塞程度信息对所述数据流进行拥塞控制;
所述网络节点根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述网络节点发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
6.如权利要求5所述的方法,其特征在于,所述网络节点根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述网络节点在设定的暂停期间内暂停发送所述数据流的数据。
7.如权利要求6所述的方法,其特征在于,所述网络节点根据所述拥塞程度信息对所述数据流进行拥塞控制还包括:
所述网络节点在所述暂停期间内在入端口对所述数据流进行PFC检测;
若在暂停期间内所述数据流发生拥塞,所述网络节点发送拥塞通知消息(CongestionNotification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
8.一种网络节点,其特征在于,包括:
检测模块,用于对入端口进行基于优先级的流控(Priority-based Flow Control,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得所述数据流的流标识;
PFC帧生成模块,用于生成PFC帧,所述PFC帧包括所述数据流的流标识;
PFC帧发送模块,用于发送所述PFC帧,所述PFC帧用于指示接收该PFC帧的网络节点对所述数据流进行拥塞控制;
所述PFC帧还包括拥塞程度信息;
所述网络节点还包括CNM消息发送模块,用于在所述检测周期内检测到所述数据流发生严重拥塞时,发送CNM消息至数据流的源终端通知所述源终端降低所述数据流的发送速率。
9.一种网络节点,其特征在于,包括:
接收模块,用于接收基于优先级的流控(Priority-based Flow Control,PFC)帧,所述PFC帧包括某一数据流的流标识;
拥塞控制模块,用于根据所述PFC帧对所述数据流进行拥塞控制;
所述PFC帧还包括拥塞程度信息;所述拥塞控制模块根据所述拥塞程度信息对所述数据流进行拥塞控制;
还包括:
发送模块,用于发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
10.如权利要求9所述的网络节点,其特征在于,所述拥塞控制模块用于在设定的暂停期间内暂停发送所述数据流的数据。
11.如权利要求10所述的网络节点,其特征在于,所述拥塞控制模块用于在所述暂停期间内在入端口对所述数据流进行PFC检测;
若在暂停期间内所述数据流发生拥塞,所述拥塞控制模块发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
12.一种拥塞控制系统,其特征在于,包括第一网络节点和第二网络节点;
所述第一网络节点,用于对入端口进行基于优先级的流控(Priority-based FlowControl,PFC)检测,如在设定的检测周期内检测到某一数据流发生拥塞,获得该数据流的流标识;所述第一网络节点用于生成包含所述数据流的流标识的PFC帧,并发送所述PFC帧到所述第二网络节点;
所述第二网络节点,用于对所述数据流进行拥塞控制;
所述PFC帧还包括拥塞程度信息;所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制;
所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述第二网络节点用于发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
13.如权利要求12所述的系统,其特征在于,所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制包括:
所述第二网络节点用于在设定的暂停期间内暂停向所述第一网络节点发送所述数据流的数据。
14.如权利要求13所述的系统,其特征在于,所述第二网络节点用于根据所述拥塞程度信息对所述数据流进行拥塞控制还包括:
所述第二网络节点用于在所述暂停期间内在入端口对所述数据流进行PFC检测;
若在暂停期间内所述数据流发生拥塞,所述第二网络节点用于发送拥塞通知消息(Congestion Notification Message,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
15.如权利要求12或13所述的系统,其特征在于,在检测周期内检测到所述数据流发生严重拥塞时,所述第一网络节点还用于发送拥塞通知消息(Congestion NotificationMessage,CNM)至所述数据流的源终端,通知所述源终端降低所述数据流的发送速率。
16.一种网络节点,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述网络节点运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述网络节点执行权利要求1至4任一所述的方法。
17.一种网络节点,其特征在于,包括处理器和存储器,所述存储器存储执行指令,当所述网络节点运行时,所述处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述网络节点执行权利要求5至7任一所述的方法。
18.一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使主机执行权利要求1至4任一所述的方法。
19.一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于使主机执行权利要求5至7任一所述的方法。
CN201480038620.2A 2014-12-04 2014-12-04 一种拥塞控制的方法、设备和系统 Active CN106134138B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/093015 WO2016086385A1 (zh) 2014-12-04 2014-12-04 一种拥塞控制的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN106134138A CN106134138A (zh) 2016-11-16
CN106134138B true CN106134138B (zh) 2020-02-21

Family

ID=56090829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480038620.2A Active CN106134138B (zh) 2014-12-04 2014-12-04 一种拥塞控制的方法、设备和系统

Country Status (2)

Country Link
CN (1) CN106134138B (zh)
WO (1) WO2016086385A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022227636A1 (zh) * 2021-04-26 2022-11-03 华为技术有限公司 传输控制方法、装置及系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600320B (zh) * 2017-09-30 2022-04-05 华为技术有限公司 拥塞处理方法及设备、数据中心网络
CN109600316B (zh) * 2017-09-30 2022-08-26 华为技术有限公司 控制流量的方法及装置
CN109714128B (zh) * 2017-10-25 2021-12-31 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN109218308A (zh) * 2018-09-14 2019-01-15 上海赋华网络科技有限公司 一种基于智能网卡的数据高速安全交换方法
CN111385216B (zh) * 2018-12-29 2023-11-07 中兴通讯股份有限公司 基于pfc帧的拥塞控制方法、装置、系统及存储介质
CN111526095B (zh) * 2019-02-02 2023-12-08 华为技术有限公司 一种流量控制方法和装置
CN112242914B (zh) 2019-07-18 2023-10-03 华为技术有限公司 网络异常根因定位方法、装置及系统、计算机存储介质
CN110647071B (zh) * 2019-09-05 2021-08-27 华为技术有限公司 一种控制数据传输的方法、装置及存储介质
US11206568B2 (en) 2019-09-19 2021-12-21 Realtek Semiconductor Corporation Router and routing method
TWI730476B (zh) * 2019-09-19 2021-06-11 瑞昱半導體股份有限公司 路由器及路由方法
CN112565096B (zh) * 2019-09-26 2023-01-03 瑞昱半导体股份有限公司 路由器及路由方法
CN115462050A (zh) * 2020-04-30 2022-12-09 华为技术有限公司 一种拥塞控制方法、网络设备及系统
CN112134809B (zh) * 2020-09-16 2024-04-23 山东云海国创云计算装备产业创新中心有限公司 一种流量控制方法、装置、设备及可读存储介质
US11818046B2 (en) * 2021-01-26 2023-11-14 Samsung Electronics Co., Ltd. Coordinated congestion control in network-attached devices
CN115378955A (zh) * 2021-05-21 2022-11-22 华为技术有限公司 一种数据处理方法以及相关设备
TWI792981B (zh) * 2022-04-15 2023-02-11 國立陽明交通大學 流量控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867511A (zh) * 2009-04-20 2010-10-20 华为技术有限公司 流控帧发送方法、相关设备及系统
CN103997465A (zh) * 2014-05-27 2014-08-20 华为技术有限公司 一种生成cnm的方法及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7239636B2 (en) * 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867511A (zh) * 2009-04-20 2010-10-20 华为技术有限公司 流控帧发送方法、相关设备及系统
CN103997465A (zh) * 2014-05-27 2014-08-20 华为技术有限公司 一种生成cnm的方法及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022227636A1 (zh) * 2021-04-26 2022-11-03 华为技术有限公司 传输控制方法、装置及系统

Also Published As

Publication number Publication date
WO2016086385A1 (zh) 2016-06-09
CN106134138A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106134138B (zh) 一种拥塞控制的方法、设备和系统
KR102317523B1 (ko) 패킷 제어 방법 및 네트워크 기기
JP5233504B2 (ja) 経路制御装置およびパケット廃棄方法
JP4031803B2 (ja) 同期式イーサネット(登録商標)システムにおける時間臨界の情報伝送方法
WO2021018087A1 (zh) 数据传输方法及装置
US9025451B2 (en) Positive feedback ethernet link flow control for promoting lossless ethernet
US9571410B2 (en) Credit-based link level flow control and credit exchange using DCBX
US8811171B2 (en) Flow control for multi-hop networks
WO2016062106A1 (zh) 报文处理方法、装置及系统
US9167477B2 (en) Transmission device, transmission method and computer program
JP7046979B2 (ja) データ伝送方法、装置、システム、およびデバイス
WO2020156288A1 (zh) 拥塞控制方法、终端及可读存储介质
US8908510B2 (en) Communication link with intra-packet flow control
WO2017091941A1 (zh) 一种处理业务数据包的方法及装置
CN105391647A (zh) 一种流量控制的方法及系统
CN103166872A (zh) 网络中流量转发的方法和网络设备
CN109600320B (zh) 拥塞处理方法及设备、数据中心网络
EP3893435A1 (en) Method and apparatus for processing ioam information
CN109219944B (zh) 用于减小分组网络中mtu大小的系统和方法
CN108390828B (zh) 报文转发方法及装置
US10749803B1 (en) Enhanced congestion avoidance in network devices
JP2008236733A (ja) 帯域制御装置、帯域制御システム、帯域制御方法
JP2015126499A (ja) 送信装置、受信装置、パケット送信方法、及びパケット受信方法
US11646969B2 (en) Application-based data labeling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant