CN101924687B - 一种用于交换网流量控制的方法和装置 - Google Patents
一种用于交换网流量控制的方法和装置 Download PDFInfo
- Publication number
- CN101924687B CN101924687B CN2009101479718A CN200910147971A CN101924687B CN 101924687 B CN101924687 B CN 101924687B CN 2009101479718 A CN2009101479718 A CN 2009101479718A CN 200910147971 A CN200910147971 A CN 200910147971A CN 101924687 B CN101924687 B CN 101924687B
- Authority
- CN
- China
- Prior art keywords
- cell
- congested
- output
- multicast
- flow control
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
- H04L49/506—Backpressure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
Abstract
本发明公开了一种用于交换网流量控制的方法和装置,所述方法包括:实时监控单播虚拟输出队列和多播虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,产生拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;实时检测是否有信元进出该拥塞队列,若是,发出信元进出队通知消息;并根据该信元进出队通知消息,判断进入拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。所述装置包括:拥塞检测模块和反压模块。本发明解决了现有技术中存在的解决单播/多播两种通讯模式的拥塞问题上不够合理的问题。
Description
技术领域
本发明涉及数据交换技术领域,尤其涉及一种用于交换网流量控制的方法和装置。
背景技术
交换网是带宽交换设备(如交换机/路由器)中的核心部分。为了解决交换网流量的拥塞,避免因交换网拥塞导致的片内输出缓存溢出问题,通常采用流控技术对交换网的流量进行控制。现有的流控机制的基本思想包括以下两种:
(1)如果交换网发生拥塞,其输出端口发送控制信元,通知交换接入芯片减少对交换网的信元发送量,以缓解拥塞。
(2)通过交换网片外线卡获取交换网各发送端的状态和出口流量信息,通过状态和出口流量信息确定线卡发送端的分配带宽,通过提高带宽分配的合理性,来降低交换网的拥塞。
然而,上述流控机制具体存在以下问题:
方法(1)中叙述的流控机制,依靠交换网输出控制信元通知源端交换接入线卡拥塞状态,交换网必须有能够定位导致拥塞的源端线卡的能力。现有的解决方法对N*N交换网的N条VOQ(Virtual Output Queue,虚拟输出队列)再按信元不同的输入端口进行排队,即针对每个输出VOQ再做N个VIQ(VirtualInput Queue,虚拟输入队列),总共有N*N个VIQ。交换网发生拥塞时,通过判断VIQ的队长分析应该向哪些线卡发送控制信元。该方法需要大量的链表来实现N*N个VIQ,耗费资源较大。
目前多数商用交换网均支持单播/多播两种通讯模式,对于多播信元来说,交换网需要在片内对多播信元进行复制,即多播的输入带宽小于多播的输出带宽。方法(2)的基本思想是简单的将交换网输入带宽匹配输出带宽。由于交换网业务强度变化的随机性,单播多播在交换网输入带宽中的比例是动态变化的,仅利用交换网出口流量和交换网拥塞状态,很难准确计算动态匹配的输入流量。现有方法另外存在的问题是未将单多播的流控机制剥离开,这会导致一种信元被流控时影响另外一种信元的性能。若采用方法(2)作为流控手段,在解决单/多播混合拥塞问题上则会出现流控响应不可靠不准确的现象,该流控机制更适合处理一对一通信模式(单播)的交换网拥塞问题。
同时,现有技术中的流控方法都没有包含链路级流控机制,都不能很好解决拥塞带来的单播多播片内缓存溢出的问题,而缓存溢出会导致信元丢失,会为包重组带来困难,所以流控机制必须到考虑解决缓存溢出的问题。
可见,现有的流量控制方法在解决单播/多播两种通讯模式的拥塞问题上不够合理,不能够保证流控响应的可靠性、流控的准确性,且反压速度慢,无法避免拥塞问题带来的缓存溢出风险。
发明内容
本发明提供一种用于交换网流量控制的方法和装置,用以解决现有技术中存在的解决单播/多播两种通讯模式的拥塞问题上不够合理,不能够保证流控响应的可靠性、流控的准确性,且反压速度慢,无法避免拥塞问题带来的缓存溢出风险的问题。
本发明一种用于交换网流量控制的方法,包括以下步骤:
步骤1、实时监控单播虚拟输出队列和多播虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,产生拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;
步骤2、实时检测是否有信元进出该拥塞队列,若是,发出信元进出队通知消息;
步骤3、根据所述信元进出队通知消息,判断进入所述拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
具体的,在所述步骤1前还包括接收单播信元和多播信元,并将所述单播信元和多播信元排队存储到输出缓存中;
所述步骤3中还包括判断所述输出缓存是否溢出,若是,在所有输出端口输出的所有信元头上添加链路级流控有效指示信号。
进一步地,本发明提供的方法还包括:
在判断出进入所述拥塞队列的信元数未达到预设的门限值时,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号;
在所述输出缓存未溢出时,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
所述每个输入端口具有一信元阻塞计数器;
所述信元进出队通知消息包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当检测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
所述步骤3具体为:
根据所述信元进出队通知消息,将对应输入端口的信元阻塞计数器进行加1或减1处理,并判断所述信元阻塞计数器是否超过预设的门限值,若是,判定进入所述拥塞队列的信元数超限,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
本发明还提供一种用于交换网流量控制的装置,包括:输出缓存模块和队列管理模块,还包括:拥塞监测模块和反压模块,
所述拥塞监测模块,用于实时监控队列管理模块中所有虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,向所述反压模块发送拥塞指示信号,并开始实时检测是否有信元进出该拥塞队列,若是,发送信元进出队通知消息给所述反压模块;
所述反压模块,用于在接收到所述拥塞指示信号时,在对应输出端口的所有信元头上添加拥塞标识;在接收所述信元进出队通知消息时,根据所述信元进出队通知消息,判断进入所述拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
具体的,本发明提供的装置还包括:
信元接收模块,用于接收单播信元和多播信元,并将所述单播信元和多播信元排队存储到所述输出缓存模块中;
所述反压模块,还用于判断所述输出缓存模块中的输出缓存是否溢出,若是,在所有输出端口输出的所有信元头上添加链路级流控有效指示信号。
进一步地,所述反压模块,还用于在判断出进入所述拥塞队列的信元数未达到预设的门限值时,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号;在所述输出缓存未溢出时,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
所述反压模块维护有与每个输入端口一一对应的信元阻塞计数器;
所述信元进出队通知消息包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当检测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
所述反压模块包括:
拥塞指示消息接收子模块,用于接收所述拥塞监测模块发送的拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;
信元进出队通知接收子模块,用于接收所述拥塞监测模块发送的信元进出队通知消息,根据所述信元进出队通知消息,将对应输入端口的信元阻塞计数器上进行加1或减1处理;
计数器检测子模块,用于判断所述信元阻塞计数器是否超过预设的门限值,若是,判断出进入所述拥塞队列的信元数超限,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
与现有技术相比,本发明具有以下优点:
本发明所提供的方法和装置,可对当前链路的拥塞状况进行检测,并在检测到链路拥塞时,根据拥塞程度在信元头部添加拥塞指示信号或链路级流控信号,以使目的线卡根据信元头的内容进行流量控制或停止单播/多播动作。所以本发明提供的装置和方法能够同时解决单播/多播两种拥塞问题,且由于交换网所有拥塞指示信号和链路级流控信号都通过带内方式传递,即加载在数据信元(单播/多播)上携带到线卡,所以不占用交换网的输出带宽,提高了交换网的带宽利用率;同时,通过链路级流控提高了反压速度,有效防止了片内输出缓存溢出的问题。本发明采用了单播/多播独立流控的手段提高了流量控制的可靠性、准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用于交换网流量控制方法的流程图;
图2为本发明提供的用于交换网流量控制装置的结构图;
图3为本发明实施例中基于Shared memory架构的交换系统框图;
图4为本发明实施例中用于交换网流量控制装置的结构图;
图5为本发明实施例中慢速拥塞指示信号的产生示意图;
图6为本发明实施例中单播/多播信元格式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种用于交换网流量控制的方法和装置,用以解决现有技术中存在的解决单播/多播两种通讯模式的拥塞问题上不够合理,不能够保证流控响应的可靠性、流控的准确性,且反压速度慢,无法避免拥塞问题带来的缓存溢出风险的问题。
为了克服现有技术的不足,本发明提供的方法和装置,对于支持单播/多播两种通讯模式的交换网,解决两类信元输入带宽与输出带宽的动态匹配问题,提供链路级流控,防止交换网片内缓存溢出问题的发生,防止单播的流控响应影响多播性能,保证单多播的性能,总之提供一种流控响应可靠,流控准确且反压速度快的交换网流控方法和装置。
具体的,本发明提供的用于交换网流量控制方法的设计构思为:本方法通过实时监控单播虚拟输出队列和多播虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,产生拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;同时,开始实时检测是否有信元进出该拥塞队列,若是,产生信元进出队通知消息,以判断进入所述拥塞队列的信元数是否达到预设的门限值,若超过门限值,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号,若未超过门限值,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号。
同时,本发明提供的方法,还实时检测交换网内的输出缓存是否溢出,若溢出,则在所有输出端口输出的所有信元头上添加链路级流控有效指示信号,若未溢出,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
下面通过一具体实施例来详细阐述本发明提供的一种用于交换网流量控制的方法的具体实现过程,如图1所示,包括以下步骤:
步骤S101、实时监控单播虚拟输出队列和多播虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,产生拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识。其中,拥塞门限为交换网系统预先设定的,包括单播拥塞门限和多播拥塞门限。
需要说明的是,该步骤前还进行接收单播信元和多播信元的操作,接收单播或多播信元后,会根据每个信元的输出端口将信元进行排队,组成虚拟输出队列,所有输出端口相同的信元进入同一个队列,当然该排队过程为现有技术中即可实现的并不是本发明的关键点所在,在此为保证方案的完整性对其进行描述。同时,该信元进行接收和排队的操作会在交换网启动后会持续进行,且该持续接收和排队过程可与该步骤同步进行,并不限定其先后关系。
该步骤的具体实现过程为:当检测到单播虚拟输出队列越限时,产生单播拥塞指示,并在对应的输出端口输出的所有信元头上添加单播拥塞标识;当检测到多播虚拟输出队列越限时,产生多播拥塞指示,并在所有的输出端口输出的所有信元头上添加多播拥塞标识。
步骤S102、实时检测是否有信元进出该拥塞队列,若是,发出信元进出队通知消息。
需要说明的是,交换网系统维护有与每个输入端口一一对应的信元阻塞计数器,用于计量统计进出拥塞VOQ的信元数,且信元阻塞计数器包括单播信元阻塞计数器和多播信元阻塞计数器。
其中,信元进出队通知消息可以包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当监测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
基于上述描述,该步骤具体实现过程为:
实时检测是否有单播信元进入拥塞的单播虚拟输出队列,若有,检测其输入端口号,发出与该输入端口号对应的单播信元阻塞计数器加1指示消息;
实时检测是否有多播信元进入拥塞的多播虚拟输出队列,若有,检测其输入端口号,发出与该输入端口号对应的多播信元阻塞计数器加1指示消息;
实时检测是否有单播信元调度输出拥塞的单播虚拟输出队列,若有,检测输出信元的输入端口号,发出与该输入端口号使相应的单播信元阻塞计数器减1指示消息;
实时检测是否有多播信元调度输出拥塞的多播虚拟输出队列,若有,检测输出信元的输入端口号,发出与该输入端口号使相应的多播信元阻塞计数器减1指示消息。
步骤S103、根据信元进出队通知消息,判断进入所述拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
该步骤具体为:当接收到的通知消息为单播信元阻塞计数器加1指示消息时,将对应输入端口号单播信元阻塞计数器加1;当接收到的通知消息为多播信元阻塞计数器加1指示消息时,将对应输入端口号多播信元阻塞计数器加1;当接收到的通知消息为单播信元阻塞计数器减1指示消息时,将对应输入端口号单播信元阻塞计数器减1;当接收到的通知消息为多播信元阻塞计数器减1指示消息时,将对应输入端口号多播信元阻塞计数器减1。
同时,判断与输入端口对应的信元阻塞计数器是否超过预先设定的门限,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号;若不是,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号。
进一步的,在进行上述拥塞检测的同时,本发明实施例还进行以下操作:
判断单播或多播输出缓存是否溢出,若是,在所有的输出端口输出的所有信元头上添加链路级流控有效指示信号;若不是,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
本发明所提供的方法可对当前链路的拥塞状况进行检测,并在检测到链路拥塞时,根据拥塞程度在信元头部添加拥塞指示信号或链路级流控信号,以使目的线卡根据信元头的内容进行流量控制或停止单播/多播动作。所以本发明提供的装置和方法能够同时解决单播/多播两种拥塞问题,且由于交换网所有拥塞指示信号和链路级流控信号都通过带内方式传递,即加载在数据信元(单播/多播)上携带到线卡,所以不占用交换网的输出带宽,提高了交换网的带宽利用率;同时,通过链路级流控提高了反压速度,有效防止了片内输出缓存溢出的问题。本发明采用了单播/多播独立流控的手段提高了流量控制的可靠性、准确性。
本发明还提供一种用于交换网流量控制的装置,如图2所示,包括输出缓存模块210、队列管理模块220、拥塞监测模块230和反压模块240,其中,拥塞监测模块230,用于实时监控队列管理模块220中所有虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,向反压模块240发送拥塞指示信号,并开始实时检测是否有信元进出该拥塞队列,若是,发送信元进出队通知消息给反压模块240;
反压模块240,用于在接收到拥塞指示信号时,在对应输出端口的所有信元头上添加拥塞标识;在接收信元进出队通知消息时,根据信元进出队通知消息,判断进入拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
其中,反压模块240还维护有与每个输入端口一一对应的信元阻塞计数器;
上述信元进出队通知消息包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当检测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
反压模块240具体包括:
拥塞指示消息接收子模块241,用于接收拥塞监测模块230发送的拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;
信元进出队通知接收子模块242,用于接收拥塞监测模块230发送的信元进出队通知消息,根据信元进出队通知消息,将对应输入端口的信元阻塞计数器进行加1或减1处理;
计数器检测子模块243,用于判断信元阻塞计数器是否超过预设的门限值,若是,判断出进入拥塞队列的信元数超限,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
本发明提供的装置还包括:
信元接收模块250,用于接收单播信元和多播信元,并将单播信元和多播信元排队存储到输出缓存模块210中。
进一步的,反压模块210,还用于判断输出缓存模块210中的输出缓存是否溢出,若是,在所有输出端口输出的所有信元头上添加链路级流控有效指示信号。
反压模块210,还用于在判断出进入拥塞队列的信元数未达到预设的门限值时,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号;在所述输出缓存未溢出时,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
下面通过一优选的实施例来详细阐述本发明提供的用于交换网流量控制装置的结构图及其实现交换网流量控制的具体实现过程。
为清楚表述本发明,现以基于shared memory架构的N*N交换系统为基础进行说明,如图3所示为该系统的结构框图。其基本原理为:源线卡将接收到的单播包/多播包切割成规定大小的单播/多播信元,并为每个输出端口维护一个单播VOQ和多播VOQ,源线卡把两个VOQ信元调度输出给交换卡(又可称为“交换网”),交换卡将接收到的信元交换后再调度输出给目的线卡。其中,交换卡的1号输入端和1号输出端要连接同一个线卡。需要说明的是,本发明不拘泥于交换系统所采用的架构,时分交换结构(如共享缓存/共享总线结构)或空分交换结构(如crossbar结构)或混合型结构的交换结构都可使用本发明,但要求单播多播的交换处理平面分开。
如图4所示,为本发明实施例提供的用于交换网流量控制装置的结构图,该装置具体包括:N个输入端口、路由模块、输出缓存模块、反压模块、单播队列管理模块、单播拥塞检测模块、多播队列管理模块、多播拥塞检测模块和N个输出端口,其中,单播拥塞检测模块和多播拥塞检测模块的功能相当于拥塞监测模块230;路由模块的功能相当于信元接收模块250;单播队列管理模块和多播队列管理模块的功能相当于队列管理模块220。
具体的,输出缓存模块分为容量可配置的两个缓存区,分别存储单播信元和多播信元;单播队列管理模块和多播队列管理模块为N个输出端口分别维护N个单播虚拟输出队列和N个多播虚拟输出队列,其中,每个虚拟输出队列中的信元来自N个输入端口;反压模块为交换网的每个输入端口维护一个链路单播信元阻塞计数器u_link_count_n(Unicast Link Congestion Counter)和链路多播信元阻塞计数器m_link_count_n(Multicast Link Congestion counter),其中n=1、2、3......N。
交换网的中央处理器在流控开始前做以下操作:
(1)为单播虚拟输出队列配置三个单播拥塞门限URC(Unicast RouteCongestion),分别用URC_th_1、URC_th_2、URC_th_3表示单播路由的三种拥塞程度;具体的,当单播虚拟输出队列队长超过单播拥塞门限URC_th_1但低于单播拥塞门限URC_th_2时,表示发生轻度单播拥塞,用UCI=01来表示;当单播虚拟输出队列队长超过单播拥塞门限URC_th_2但低于单播拥塞门限URC_th_3时,表示发生中度单播拥塞,用UCI=10表示;当单播虚拟输出队列队长超过单播拥塞门限URC_th_3时,表示发生严重单播拥塞,用UCI=11表示;当无单播拥塞时用UCI=00表示。
(2)为多播虚拟输出队列配置三个多播拥塞门限MRC(Multicast RouteCongestion),分别用MRC_th_1、MRC_th_2、MRC_th_3表示多播路由的三种拥塞程度;具体的,当多播虚拟输出队列队长超过多播拥塞门限MRC_th_1但低于多播拥塞门限MRC_th_2时,表示发生轻度多播拥塞,用MCI=01表示;当多播虚拟输出队列队长超过多播拥塞门限MRC_th_2但低于多播拥塞门限MRC_th_3时,表示发生中度多播拥塞,用MCI=10表示;当多播VOQ队长超过多播拥塞门限MRC_th_3时,表示发生严重多播拥塞,用MCI=11表示;当无多播拥塞时用MCI=00表示。如图5所示为慢速拥塞指示信号的产生示意图;
当然上述拥塞程度的划分可以根据具体需要进行修改,并不仅仅限于上述一种划分方式。
(3)为链路单播信元阻塞计数器配置单播快速反压门限u_link_count_th;为链路多播信元阻塞计数器配置多播快速反压门限m_link_count_th;为单播输出缓存配置单播缓存溢出门限,为多播输出缓存配置多播缓存溢出门限。
单播拥塞监测模块实时监控所有单播虚拟输出队列的长度,假设输出端口m#单播VOQ长度超过预先配置的3个单播拥塞门限URC时,该模块将产生相应的单播拥塞指示UCI(Unicast Congestion Indication)传递给反压模块,反压模块将UCI打在从输出端口m#输出链路输出的所有信元头上,包括多播信元。
多播拥塞监测模块实时监控所有多播虚拟输出队列的长度,任一多播虚拟输出队列长度超过预先配置的3个多播拥塞门限MRC时,该模块将产生相应的多播拥塞指示MCI(Multicast Congestion Indication)传递给反压模块,反压模块将MCI打在从本交换网所有输出链路上输出的信元头上,包括单播信元。
具体的,当单播拥塞监测模块监测到某输出端口#j有单播拥塞情况发生时,单播拥塞监测模块根据#j单播虚拟输出队列队长超过单播拥塞门限的情况,产生UCI指示,并向反压模块发送,反压模块立即在从#j输出端口输出的所有信元(包括多播信元)打上UCI标志,具体的信元格式如图6所示,单播和多播的信元头都带有单播和多播的拥塞指示以及单播和多播的链路级流控指示。同时,单播拥塞监测模块实时监控当前发生拥塞的链路,若输出端口#j对应的单播虚拟输出队列又有信元入队,获取该入队信元的输入端口号#i,并向反压模块发送输入端口#i链路单播信元阻塞计数器u_link_count_i加1的指示信号,反压模块接收到链路单播信元阻塞计数器u_link_count_i加1的指示信号后,将u_link_count_i加1;若#j单播VOQ有信元出队,获取该出队信元的输入端口号#q,并向反压模块发送#q链路单播信元阻塞计数器u_link_count_q减1的指示信号,反压模块接收到链路单播信元阻塞计数器u_link_count_q减1的指示信号后,将u_link_count_q减1。
当多播拥塞监测模块监测到某输出端口#k有多播拥塞情况发生时,多播拥塞监测模块根据#k多播VOQ队长超过多播拥塞门限的情况,产生MCI指示,并向反压模块发送,反压模块立即在从所有输出端口输出的所有信元(包括单播信元)头打上MCI。同时,多播拥塞监测模块实时监控当前发生拥塞的链路,若#k多播VOQ又有信元入队,获取该入队信元输入端口号#h,并会向反压模块发送#h“链路多播信元阻塞计数器”m_link_count_h的加1指示信号,反压模块将m_link_count_h加1;若#k多播VOQ有信元出队,根据该出队信元的输入端口号#p,多播拥塞监测模将向反压模块发送#q“链路多播信元阻塞计数器”m_link_count_p的减1指示信号,反压模块将m_link_count_p减1。
需要说明的是,上述#j、#i、#q、#k、#h等是为了清楚的表述本发明的方案临时列举的,并不仅限于上述几个输入端口和输出端口。
反压模块还实时监测N个“链路单播信元阻塞计数器”和N个“链路多播信元阻塞计数器”,当任意一个计数器超过预先设置的门限时,都会引起对应的链路级流控。例如用“1”表示发生链路级流控,用“0”表示未发生链路级流控。假设u_link_count_i越限,但m_link_count_i没有越限,反压模块则在i#输出链路输出的信元头ULCI(Unicast Link Control Indication,单播链路级流控指示)位写1、MLCI(Multicast Link Control Indication,多播链路级流控指示)位写0,表示“单播链路级流控有效,多播链路级流控无效”。由于要求交换卡与线卡连接的对应性,信元携带该链路级流控指示到达i#线卡,将使i#线卡到本交换网的单播停止,但多播不受影响;同理,当u_link_count_i没有越限,但m_link_count_i越限,反压模块则在所有输出端口输出的所有信元头ULCI位写0、MLCI位写1,表示“单播链路级流控无效,多播链路级流控有效”,由于要求交换卡与线卡连接的对应性,信元携带该链路级流控指示到达i#线卡,将使i#线卡到本交换网的多播停止,但单播不受影响。其他情况类似上述操作。
本发明实施例提供的装置,为可靠的避免输出缓存溢出,反压模块还负责监测“单播输出缓存”和“多播输出缓存”的占用情况。当单播或多播输出缓存溢出时,按规则产生链路级流控指示,并添加在输出信元头上。例如,当单播输出缓存超过预设的门限,但多播输出缓存没有超过预设门限,反压模块将在所有输出链路的所有输出信元头ULCI位写1,MLCI位上写0,表示“单播链路级流控有效,多播链路级流控无效”标志,由于要求交换卡与线卡连接的对应性,信元携带该链路级流控指示到达对应的目的线卡,将使对应的目的线卡到本交换网的单播停止,但多播不受影响。其他情况以此类推。
接收到带有UCI信元的目的线卡,将三种单播拥塞标志对应成三种不同数量的令牌,目的线卡将得到的令牌注入给单播令牌桶,单播令牌桶控制输出令牌的速度,每个输出令牌代表一定量的单播信元授权,目的线卡将通过“授权控制信元”把单播授权发送给对应的源线卡,各源线卡根据接收到的单播授权调整单播信元的输出,从而达到交换网单播输入带宽匹配单播输出带宽之目的;接收到带有MCI信元的线卡,将三种多播拥塞标志对应成三种不同数量的令牌,线卡将得到的令牌注入给多播令牌桶,多播令牌桶控制输出令牌的速度,每个输出令牌代表一定量的多播信元授权,该线卡根据多播信元的授权,输出对应量的多播业务给交换网,达到交换网多播输入带宽匹配多播输出带宽之目的。
若目的线卡读到单播链路级流控有效,目的线卡与交换网(指输出”单播链路级流控有效标志信元”的交换网)连接端口的单播信元调度输出将被关闭,但该端口多播信元的调度输出不受影响;目的线卡对于多播拥塞标志、多播链路级流控的操作与上述单播的操作类似,参考线卡对单播流控的处理。
本发明实施例提供的装置,可对当前链路的拥塞状况进行检测,并在检测到链路拥塞时,根据拥塞程度在信元头部添加拥塞指示信号或链路级流控信号,以使目的线卡根据信元头的内容进行流量控制或停止单播/多播动作。所以本发明提供的装置和方法能够同时解决单播/多播两种拥塞问题,且由于交换网所有拥塞指示信号和链路级流控信号都通过带内方式传递,即加载在数据信元(单播/多播)上携带到线卡,所以不占用交换网的输出带宽,提高了交换网的带宽利用率;同时,通过链路级流控提高了反压速度,有效防止了片内输出缓存溢出的问题。本发明采用了单播/多播独立流控的手段提高了流量控制的可靠性、准确性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种用于交换网流量控制的方法,其特征在于,包括以下步骤:
步骤1、实时监控单播虚拟输出队列和多播虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,产生拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;
步骤2、实时检测是否有信元进出该拥塞队列,若是,发出信元进出队通知消息;
步骤3、根据所述信元进出队通知消息,判断进入所述拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
2.如权利要求1所述的方法,其特征在于,
所述步骤1前还包括接收单播信元和多播信元,并将所述单播信元和多播信元排队存储到输出缓存中;
所述步骤3中还包括判断所述输出缓存是否溢出,若是,在所有输出端口输出的所有信元头上添加链路级流控有效指示信号。
3.如权利要求2所述的方法,其特征在于,还包括:
在判断出进入所述拥塞队列的信元数未达到预设的门限值时,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号;
在所述输出缓存未溢出时,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
4.如权利要求1所述的方法,其特征在于,
每个输入端口具有一信元阻塞计数器;
所述信元进出队通知消息包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当检测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
5.如权利要求4所述的方法,其特征在于,所述步骤3具体为:
根据所述信元进出队通知消息,将对应输入端口的信元阻塞计数器进行加1或减1处理,并判断所述信元阻塞计数器是否超过预设的门限值,若是,判定进入所述拥塞队列的信元数超限,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
6.一种用于交换网流量控制的装置,包括输出缓存模块和队列管理模块,所述输出缓存模块用于存储单播信元和多播信元,其特征在于,还包括:拥塞监测模块和反压模块,
所述拥塞监测模块,用于实时监控队列管理模块中所有虚拟输出队列的长度,当其中某个队列长度超过拥塞门限时,向所述反压模块发送拥塞指示信号,并开始实时检测是否有信元进出该拥塞队列,若是,发送信元进出队通知消息给所述反压模块;
所述反压模块,用于在接收到所述拥塞指示信号时,在对应输出端口的所有信元头上添加拥塞标识;在接收所述信元进出队通知消息时,根据所述信元进出队通知消息,判断进入所述拥塞队列的信元数是否达到预设的门限值,若是,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
7.如权利要求6所述的装置,其特征在于,还包括:
信元接收模块,用于接收单播信元和多播信元,并将所述单播信元和多播信元排队存储到所述输出缓存模块中;
所述反压模块,还用于判断所述输出缓存模块中的输出缓存是否溢出,若是,在所有输出端口输出的所有信元头上添加链路级流控有效指示信号。
8.如权利要求7所述的装置,其特征在于,所述反压模块,还用于在判断出进入所述拥塞队列的信元数未达到预设的门限值时,在对应的输出端口输出的所有信元头上添加链路级流控无效指示信号;在所述输出缓存未溢出时,在所有的输出端口输出的所有信元头上添加链路级流控无效指示信号。
9.如权利要求6所述的装置,其特征在于,
所述反压模块维护有与每个输入端口一一对应的信元阻塞计数器;
所述信元进出队通知消息包括:当检测到有信元入队时产生的对应输入端口信元阻塞计数器加1指示消息和当检测到有信元出队时产生的对应输入端口信元阻塞计数器减1指示消息。
10.如权利要求9所述的装置,其特征在于,所述反压模块包括:
拥塞指示消息接收子模块,用于接收所述拥塞监测模块发送的拥塞指示信号,并在对应输出端口的所有信元头上添加拥塞标识;
信元进出队通知接收子模块,用于接收所述拥塞监测模块发送的信元进出队通知消息,根据所述信元进出队通知消息,将对应输入端口的信元阻塞计数器进行加1或减1处理;
计数器检测子模块,用于判断所述信元阻塞计数器是否超过预设的门限值,若是,判断出进入所述拥塞队列的信元数超限,在对应的输出端口输出的所有信元头上添加链路级流控有效指示信号。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101479718A CN101924687B (zh) | 2009-06-12 | 2009-06-12 | 一种用于交换网流量控制的方法和装置 |
EP10785740.1A EP2442498B1 (en) | 2009-06-12 | 2010-06-07 | Method and device for controlling switching network traffic |
PCT/CN2010/073637 WO2010142227A1 (zh) | 2009-06-12 | 2010-06-07 | 一种用于交换网流量控制的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101479718A CN101924687B (zh) | 2009-06-12 | 2009-06-12 | 一种用于交换网流量控制的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101924687A CN101924687A (zh) | 2010-12-22 |
CN101924687B true CN101924687B (zh) | 2012-11-28 |
Family
ID=43308425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101479718A Expired - Fee Related CN101924687B (zh) | 2009-06-12 | 2009-06-12 | 一种用于交换网流量控制的方法和装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2442498B1 (zh) |
CN (1) | CN101924687B (zh) |
WO (1) | WO2010142227A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248583B (zh) * | 2012-02-09 | 2016-04-13 | 迈普通信技术股份有限公司 | 一种基于有限深度的先进先出报文队列管理方法及装置 |
EP2768185A1 (en) * | 2013-02-13 | 2014-08-20 | British Telecommunications public limited company | Signalling congestion |
CN104539553B (zh) * | 2014-12-18 | 2017-12-01 | 盛科网络(苏州)有限公司 | 以太网芯片中实现流量控制的方法及装置 |
CN107276909B (zh) * | 2016-04-07 | 2021-04-06 | 深圳市中兴微电子技术有限公司 | 端口流量管理方法及装置 |
CN105763469B (zh) * | 2016-04-07 | 2019-03-22 | 烽火通信科技股份有限公司 | 三级Clos网络架构中链路拥塞检测及带宽控制的方法与系统 |
CN107579921B (zh) * | 2017-09-26 | 2020-09-25 | 锐捷网络股份有限公司 | 流量控制方法及装置 |
CN110336756B (zh) * | 2019-07-05 | 2022-04-05 | 西安电子科技大学 | 具有端口汇聚功能的Crossbar流量反压控制方法 |
CN112825511A (zh) * | 2019-11-20 | 2021-05-21 | 深圳市中兴微电子技术有限公司 | 一种交换网络拥塞管理方法、装置、设备和存储介质 |
CN113746743B (zh) * | 2020-05-29 | 2023-08-08 | 华为技术有限公司 | 一种数据报文传输方法及装置 |
CN112448895A (zh) * | 2020-11-03 | 2021-03-05 | 广州杰赛科技股份有限公司 | 一种网联车流量的分配方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499793A (zh) * | 2002-11-08 | 2004-05-26 | ��Ϊ��������˾ | 一种城域传输设备中虚容器映射通道的流量控制方法 |
CN1909508A (zh) * | 2006-08-23 | 2007-02-07 | 华为技术有限公司 | 端口流控方法 |
CN101253729A (zh) * | 2005-10-11 | 2008-08-27 | 思科技术公司 | 后向拥塞通知的方法和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519225B1 (en) * | 1999-05-14 | 2003-02-11 | Nortel Networks Limited | Backpressure mechanism for a network device |
US7586909B1 (en) * | 2002-03-06 | 2009-09-08 | Agere Systems Inc. | Striping algorithm for switching fabric |
US7274660B2 (en) * | 2002-08-15 | 2007-09-25 | Motorola, Inc. | Method of flow control |
US7859996B2 (en) * | 2004-10-29 | 2010-12-28 | Broadcom Corporation | Intelligent congestion feedback apparatus and method |
-
2009
- 2009-06-12 CN CN2009101479718A patent/CN101924687B/zh not_active Expired - Fee Related
-
2010
- 2010-06-07 EP EP10785740.1A patent/EP2442498B1/en active Active
- 2010-06-07 WO PCT/CN2010/073637 patent/WO2010142227A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499793A (zh) * | 2002-11-08 | 2004-05-26 | ��Ϊ��������˾ | 一种城域传输设备中虚容器映射通道的流量控制方法 |
CN101253729A (zh) * | 2005-10-11 | 2008-08-27 | 思科技术公司 | 后向拥塞通知的方法和设备 |
CN1909508A (zh) * | 2006-08-23 | 2007-02-07 | 华为技术有限公司 | 端口流控方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2442498A4 (en) | 2012-11-07 |
EP2442498B1 (en) | 2017-05-31 |
WO2010142227A1 (zh) | 2010-12-16 |
CN101924687A (zh) | 2010-12-22 |
EP2442498A1 (en) | 2012-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101924687B (zh) | 一种用于交换网流量控制的方法和装置 | |
CN101505270B (zh) | 分布式交换机聚合链路快速收敛的方法 | |
US7180862B2 (en) | Apparatus and method for virtual output queue feedback | |
US7839797B2 (en) | Event-driven flow control for a very high-speed switching node | |
JP3652759B2 (ja) | パケット流量監視制御方式 | |
US7453810B2 (en) | Method and apparatus for closed loop, out-of-band backpressure mechanism | |
CN102067530B (zh) | 向特定业务流提供背压流控制 | |
CN101227410A (zh) | 流量监管方法及流量监管设备 | |
EP1187399B1 (en) | Method and a device for controlling source specific data flow | |
CN101616097A (zh) | 一种网络处理器输出端口队列的管理方法及系统 | |
CN104104616A (zh) | 数据调度和交换的方法、装置及系统 | |
CN105579991A (zh) | 使用优先级进行工作保持的带宽保证 | |
CN101674247A (zh) | 一种对业务流量进行监管的方法及其装置 | |
CN102368741A (zh) | 支持层次化队列调度和流量整形的方法及装置 | |
CN101595679A (zh) | Mstp设备上基于速率限制实现流控的装置及方法 | |
CN102835081A (zh) | 基于三级互联交换网络的调度方法、装置及系统 | |
CN1050963A (zh) | 分组交换设备的故障检测和带宽监测装置 | |
CN100417136C (zh) | 一种基于三级交换网的下行队列快速反压传送装置及方法 | |
CN102119551B (zh) | 一种判断路径拥塞的方法、装置和系统 | |
CN106330758A (zh) | 一种基于多层队列流控反压的传送方法及装置 | |
CN101146050B (zh) | 帧中继报文传输方法和设备 | |
CN104601490B (zh) | 网络设备的流控方法和流控装置以及网络设备 | |
CN104518989A (zh) | 用于数据传输网络的网络元件的交换机装置 | |
CN108390852A (zh) | 用于跨网络远程信号集中监测系统的安全访问方法 | |
CN105871761A (zh) | 一种高阶矩阵开关、片上网络及通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |