CN107528791A - 一种拥塞控制方法及设备 - Google Patents
一种拥塞控制方法及设备 Download PDFInfo
- Publication number
- CN107528791A CN107528791A CN201710994503.9A CN201710994503A CN107528791A CN 107528791 A CN107528791 A CN 107528791A CN 201710994503 A CN201710994503 A CN 201710994503A CN 107528791 A CN107528791 A CN 107528791A
- Authority
- CN
- China
- Prior art keywords
- congestion
- port
- mrow
- path
- delay
- 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.)
- Pending
Links
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
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种拥塞控制方法及设备,所述方法包括:计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。本发明通过在控制器中计算队列长度计算端口之间的转发时延,避免了采用发送探测包对资源产生浪费的情况,并用协同拥塞控制算法进行内部路径的拥塞控制。
Description
技术领域
本发明涉及拥塞控制技术领域,尤其涉及一种拥塞控制方法及设备。
背景技术
高速网络、新一代数据中心、云计算,这些新型的网络系统对交换机和路由器的交换架构提出了更高要求,使其向着统一交换、更大带宽、更好扩展性、绿色节能等方向发展。反过来网络设备的进步进一步发展与改进会促使Internet的普及和良性发展。其中,交换架构决定了一台设备的容量、性能、扩展性以及QoS(Quality of Service,服务质量)等诸多关键属性。在交换设备发展的短短二十几年中,先后出现了共享总线交换、共享存储交换、Crossbar(Crossbar,交叉开关矩阵)矩阵交换和基于动态路由的CLOS交换架构等不同形态。对于代表业界发展水平的大容量或超大容量的机架式网络设备而言,通常采用由贝尔实验室的Charles Clos提出的CLOS交换架构或Crossbar矩阵交换架构。
CLOS交换架构是一个多级架构,每一级的每个交换单元都和下一级的所有交换单元相连接。一个典型的CLOS交换三级架构由(k,n)两个参数定义,参数k是中间级交换单元的数量,n表示的是第一级交换单元的数量,如第一级和第三级由n个k×k的交换单元组成,中间级由k个n×n的交换单元组成。整个构成了k×n的交换网络,即该网络有k×n个输入和输出端口。对于需要更高容量的交换网,中间级也可以是一个3级的CLOS网络,如4个第一级n×n芯片加上2个n×n的第二级芯片可构成一个2n×2n的交换网。由于CLOS网络的递归特性,理论上具有无与伦比的可扩展性,支持交换机端口数量、端口速率、系统容量的平滑扩展。CLOS交换架构可以做到严格的无阻塞(Non-blocking)、可重构(Re-arrangeable)、可扩展(Scalable)。
在CLOS的两级之间存在多条路径,并且这些路径带宽之和不小于下级节点输入链路带宽之和,任意一个输入端口与一个输出端口之间存在k条路径。虽然理论上CLOS结构可以构造无阻塞的网络设备,但是如何有效的使用两级之间的链路,避免拥塞是构建无阻塞网络设备的关键问题之一。现在常用的两种负载均衡技术有Round robin方式和HASH方式。
⑴Round robin方式
将数据流依次向可用链路均匀转发(可以基于统计速率、也可以基于逐包方式),一般来说,当服务器之间全部使用定长报文交互数据,基本就构成了一个“完全无阻塞交换网络”,但是存在的问题是,同一数据流的不同报文可能经过不同网络路径到达目的地,而且经过网络大规模流量浪涌后会存在严重的乱序问题而造成数据包重新传递、网络资源浪费等一系列问题,因此Round robin方式没有应用到实际中。
⑵HASH方式
使用网络设备的硬件负载均衡算法,基于数据流的二三层地址信息和四层端口号信息得到不同链路的选路信息,能够保证同一数据流经过相同路径到达目的地,避免乱序,这种方式由于简单实用,因此在实际设备的设计中应用得很广泛。但是不同数据流因为流量大小有差异,使得网络不同链路难以完全均衡。
发明内容
本发明提供了一种拥塞控制方法及设备,通过在控制器中计算队列长度计算端口之间的转发时延,避免了采用发送探测包对资源产生浪费的情况,并用协同拥塞控制算法进行内部路径的拥塞控制。
为了实现上述目的,本发明采取了如下技术方案:
一种拥塞控制方法,该方法包括:
计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
进一步地,所述的计算各端口路径的转发时延,包括:
按照设定规则更新数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延,计算公式为:
其中,C表示各端口的速率,k表示端口路径,Tp表示端口i和端口j之间的传输时延、传播时延和节点的处理时延的综合值,端口i和端口j之间的转发时延取决于端口队列长度信息,q1(t)+q2(t)+q3(t)表示什么端口队列长度信息。
进一步地,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
进一步地,计算拥塞值的公式为:
其中,MD表示转发时延的均值和均方差,CI表示拥塞标识,用于判断端口i和端口j之间的路径k是否发生拥塞,A和B是常量,A=1,B=4。
进一步地,所述设定规则包括:当前时间与上次发送队列长度信息的时间之差大于队列长度信息更新的最长时间间隔;
所述设定规则还包括:当前端口已经转发的数据字节数与上次更新端口队列长度信息时已经转发的数据字节数之差要大于该两次队列长度信息更新之间最多转发的数据字节数。
进一步地,该方法基于由多块业务板、多块转发板以及一块或多块控制板组成的设备上,每一块板卡都具有独立的CPU和控制器进行业务处理;
进一步地,所述的根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用随机早起检测算法RED;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
一种拥塞控制设备,所述设备由多块业务板、多块转发板以及一块或多块控制板组成,每一块板卡都具有独立的CPU和控制器进行业务处理;所述设备还包括:转发时延更新器、内部路径选择器和拥塞控制器;
所述转发时延更新器用于计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
所述内部路径选择器通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
进一步地,所述转发时延更新器用于计算各端口路径的转发时延,包括:
所述业务板和所述转发板按照设定规则向控制器发送数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延。
进一步地,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
进一步地,所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用RED算法;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
由上述本发明提供的技术方案可以看出,本发明通过在控制器中计算队列长度计算端口之间的转发时延,避免了采用发送探测包对资源产生浪费的情况,并用协同拥塞控制算法进行内部路径的拥塞控制。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种拥塞控制方法的流程图;
图2为本发明实施例提供的一种拥塞控制方法中转发时延的模块图;
图3为本发明实施例提供的一种拥塞控制方法中内部路径上的队列图;
图4为本发明实施例提供的一种拥塞控制方法中RED_RED_RED模型图;
图5为本发明实施例提供的一种拥塞控制方法中MCHOKeM_MCHOK eM_MCHOKeM模型图;
图6为本发明实施例提供的一种拥塞控制方法中RED_MCHOKeM_RE D模型图;
图7为本发明实施例提供的一种拥塞控制方法的仿真拓扑图;
图8为本发明实施例提供的一种拥塞控制方法中基于TCP流和UDP流的交织路由器的平均转发延时图;
图9为本发明实施例提供的一种拥塞控制方法中基于TCP流和UDP流的交织路由器有效吞吐量图;
图10为本发明实施例提供的一种拥塞控制方法中基于RED-MCHOKe M-RED模型的路由器有效吞吐量图;
图11为本发明实施例提供的一种拥塞控制方法中基于RED-RED-RED模型的路由器有效吞吐量图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
本发明提供了一种拥塞控制方法,该方法包括:
计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
在一个具体的实施例中,所述的计算各端口路径的转发时延,包括:
按照设定规则更新数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延,计算公式为:
其中,C表示各端口的速率,k表示端口路径,Tp表示端口i和端口j之间的传输时延、传播时延和节点的处理时延的综合值,端口i和端口j之间的转发时延取决于端口队列长度信息,q1(t)+q2(t)+q3(t)表示什么端口队列长度信息。
在一个具体的实施例中,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
在一个具体的实施例中,计算拥塞值的公式为:
其中,MD表示转发时延的均值和均方差,CI表示拥塞标识,用于判断端口i和端口j之间的路径k是否发生拥塞,A和B是常量,A=1,B=4。
在一个具体的实施例中,所述设定规则包括:当前时间与上次发送队列长度信息的时间之差大于队列长度信息更新的最长时间间隔;
所述设定规则还包括:当前端口已经转发的数据字节数与上次更新端口队列长度信息时已经转发的数据字节数之差要大于该两次队列长度信息更新之间最多转发的数据字节数。
在一个具体的实施例中,该方法基于由多块业务板、多块转发板以及一块或多块控制板组成的设备上,每一块板卡都具有独立的CPU和控制器进行业务处理;
在一个具体的实施例中,所述的根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用随机早起检测算法RED;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
本发明还提供了一种拥塞控制设备,所述设备由多块业务板、多块转发板以及一块或多块控制板组成,每一块板卡都具有独立的CPU和控制器进行业务处理;所述设备还包括:转发时延更新器、内部路径选择器和拥塞控制器;
所述转发时延更新器用于计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
所述内部路径选择器通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
在一个具体的实施例中,所述转发时延更新器用于计算各端口路径的转发时延,包括:
所述业务板和所述转发板按照设定规则向控制器发送数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延。
在一个具体的实施例中,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
在一个具体的实施例中,所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用RED算法;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
实施例:
图1为本发明实施例提供的一种拥塞控制设备的相关模块图;如图1所示:
本实施例提供一款基于CLOS架构的交织路由器,它增加了拥塞检测和基于流的负载均衡技术,并用协同拥塞控制算法进行内部路径的拥塞控制。
这种具有交织性的路由器通常是具有多块业务板、多块转发板以及一块或多块控制板组成,它最大的特点是具有“交织”特性,即不需要性能强大的转发板块,因为转发板块和业务板块的转发性能是相同的。每一块板卡都具有独立的CPU和控制芯片进行业务处理。业务板块的有一半的端口是连接用户端,供用户使用,另外一半的端口是与转发板块连接的,用来进行内部数据的转发。
从逻辑上看,可以将这种交织架构的路由器看成是有多个子路由器组成的虚拟节点,每块业务板可以看成是一个边缘路由器,而转发板可以看成是核心路由器,控制板可以看成是OpenFlow中的控制器。在无阻塞的交织路由器中首先要保证其内部节点不发生拥塞,并且要高效的对数据进行转发,即当一条路径发生拥塞时,要自动选取其它未发生拥塞的路径。因此,在路由器的拥塞控制中,需要实现两种功能,即路径拥塞的检测和路径拥塞的控制。本实施例中,利用队列长度进行拥塞的检测,拥塞的控制我们使用了多层拥塞控制的方法。
数据流从一个网络设备的一个端口进入,经过一系列网络设备,直到从另外一个网络设备的端口输出所经历的时间。这个时间我们称为端口之间的转发时延。为了获得端口之间的转发时延,通常采用发送探测包的方式进行检测,在入端口处发送探测包并记录发送的时间,当出端口收到探测包后,给入端口发送响应包,入端口收到响应包后,根据接收时间和所记录的发送时间,计算获得两个端口之间的转发时延。转发时延是由传播时延和排队时延两部分组成。其中,传播时延是固定值,是和网络介质等物理参数相关,而排队时延是动态变化的,是由端口队列长度决定的,直接反映路径的拥塞情况。通过探测包发送获取网络参数是通用的方法,但在设备内部路径上使用探测包会对资源产生浪费。
在交织路由器中,我们可以设定让业务板和转发板向管理板发送流信息,管理板卡根据流的信息进行过滤、路由、流量控制等一系列功能。与OpenFlow的架构一样,网络设备根据预先定义好的规则,主动向控制器发送流的信息和网络设备的基本信息。我们对控制信息进行了扩展,让网络设备向控制器发送它的端口队列长度的信息。因此我们可以在控制器中通过队列长度计算端口之间的转发时延,而不用发送探测包。
图2为本发明实施例提供的内部路径上的队列图;如图2所示:
在本实施例的交织路由器中,业务板卡和转发板卡上各端口的速率通常是相同的,用C表示。,路径k,端口i和端口j之间的转发时延取决于q1(t)+q2(t)+q3(t),端口i和j之间的转发时延为:
其中,Tp是端口i和端口j之间的传输时延、传播时延、节点的处理时延的综合值,对于固定的路径可以认为是常数。根据转发时延,可以获得转发时延的均值和均方差MD。我们可以通过拥塞标识CI来判断端口i和端口j之间的路径k是否发生拥塞。拥塞标识通过式可知
其中,A和B是常量,在我们的算法中A=1,B=4。
图3为本实施例提供的拥塞控制方法流程图,如图3所示:当一个数据流的第一个数据包从端口i进入路由器进行转发时,路由器根据目的地址在路由表进行匹配,知道它需要从端口j输出。内部路径选择器根据路径的转发时延计算出拥塞标识,路由器根据拥塞标示从端口i和端口j之间的多条路径中选择一条最佳路径进行转发,并对这条内部路径进行纪录,以后属于这个流的数据包就不需要内部路径选择器进行路径选择。同时,检测路径的拥塞标识,当拥塞标识大于所设定的阈值时,说明路径k上发生了拥塞,需要进行拥塞控制,包括内部路径的重新选择和路由器队列的拥塞控制。对于支持10G线速转发的高端路由器,可以将阈值设置为0.5ms。
目的地址、源地址、目的端口号、源端口号以及协议号这五个元素可以判断一个数据包是否属于一个数据流。内部路径选择器要保证一个数据流中的所有数据包在同一时刻,只能出现在同一条内部路径上,否则数据流经过路由器后会出现乱序现象。TCP流中的数据包的乱序能引起源节点对数据包的重传,造成网络资源的浪费。
在路由器内部路径上进行协同拥塞控制,可以采用如下三种方式:业务板和转发板上都采用RED算法;业务板上采用RED算法,转发板上采用MCHOKeM或CHOKeR算法;业务板和转发板都采用MCHOKeM算法或CHOKeR算法。
方式一如图4所示:
当通过路由器的流不具有分组标记,并且路由器也不需要对流进行分组标记的时候,业务板和转发板可以都采用RED算法,用RED_RED_RED表示,根据本实施例中的协同拥塞控制算法,针对拥塞点的发生的位置采用相应的协同控制策略,当路由器处于尽力而为的网络中,可以采用这种模型。
方式二如图5所示:
当路由器是DiffServ的核心路由器时,业务板和转发板都采用MCHOKe M算法或者是CHOKeR算法的时候,即有CHOKeR_CHOKeR_CHOKeR或者M CHOKeM_MCHOKeM_MCHOKeM。因为在边界路由器已经根据确定的规则对数据流进行分类和标记,MCHOKeM算法和CHOKeR算法可以为高优先级别的数据流提供合理的带宽控制。
方式三如图6所示:
当路由器是DiffServ的边界路由器时,业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法,即RED_MCHOKeM_RED或RED_CHOK eR_RED。到达路由器业务板的数据包没有标记信息,在业务板上对数据包进行分类,将它们聚集为有限的几种数据流等级并对数据包进行标记。而数据包经过转发板的时候,已经具有标记信息,所以可以对高优先级的数据流分配更多的带宽资源。
仿真结果及分析:
用NS-2进行了实验仿真。在实验中用6个节点仿真一个交织的无阻塞路由器,每个节点有4个端口,4个节点作为业务板,两个节点作为转发板。6个节点组成的交织路由器具有8个业务端口,其中4个端口作为输入端口,4个端口作为输出端口。所有端口的链路速度都是10Mb/s,内部路径的传输时延是3m s。
在实验中,我们的拥塞控制模型是RED_RED_RED和MCHOKeM_MCHO KeM_MCHOKeM,如图7所示。在实验中使用两种数据流:无响应的UDP流和长时FTP流。所有的数据流的输出端口是随机生成。每次实验的时间是100s。随着数据流数目的增加,我们观察输出端口的平均有效吞吐量和数据包的平均转发时延,这两个参数是网络设备的关键指标之一。
图8展示了交织路由器的转发时延和数据流的关系。交织路由器的一个主要特征是基于流的负载均衡,因此数据流的数目对路由器性能的影响至关重要。从图中可以看出,随着数据流数目的增加,路由器的转发时延保持了稳定的状态,交织路由器再数据流数目增加的时候依然可以保持比较低的转发时延。
图9展示了交织路由器有效吞吐量和数据流的关系。路由器的有效吞吐量是指被接收端成功接收的数据量,重传的数据和因乱序而丢弃的数据不计算在路由器的有效吞吐量中。从图中可以看出,随着数据流数目的增加,路由器的有效吞吐量保持了稳定状态,数据流没有发送同步现象。
图10和图11分别表示TCP流的有效吞吐量和UDP流的有效吞吐量在RED-M CHOKeM-RED模型和RED-RED-RED模型下的对比图。在试验中,TCP流和UDP流的数目保持一致,为TCP流分配的带宽是UDP流带宽的2倍。试验结果表明,RED-MCHOKeM-RED模型可以对TCP流进行了有效的保护,同时它可以有效的进行带宽的分配。实验结果表明,虽然存在大量的无响应的UDP流,RED-MCHOKeM-RED依然可以有效的保护TCP流,但是RED-RED-RED模型下,UDP流会占用TCP流的资源,造成TCP流无法正常传输数据。
综上所述,本发明实施例通过在控制器中计算队列长度计算端口之间的转发时延,避免了采用发送探测包对资源产生浪费的情况,并用协同拥塞控制算法进行内部路径的拥塞控制。
在实际应用中,使用拥塞标识来进行路径的拥塞判断具有如下优点:
(1)内部路径选择器和拥塞控制器使用相同的参数,使硬件的设计更加简单有效;
(2)在多条路径的情况下,使用拥塞标识可以进行并行计算,提高硬件的性能;
(3)这种拥塞标识的使用,可以使路由器具有扩展功能,将多个路由器扩展成具有更多端口数目的路由器。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种拥塞控制方法,其特征在于,该方法包括:
计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
2.根据权利要求1所述的方法,其特征在于,所述的计算各端口路径的转发时延,包括:
按照设定规则更新数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延,计算公式为:
<mrow>
<msubsup>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>q</mi>
<mn>1</mn>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>q</mi>
<mn>2</mn>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>q</mi>
<mn>3</mn>
</msub>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mrow>
<mi>c</mi>
</mfrac>
<mo>+</mo>
<msub>
<mi>T</mi>
<mi>p</mi>
</msub>
</mrow>
其中,C表示各端口的速率,k表示端口路径,Tp表示端口i和端口j之间的传输时延、传播时延和节点的处理时延的综合值,端口i和端口j之间的转发时延取决于端口队列长度信息,q1(t)+q2(t)+q3(t)表示什么端口队列长度信息。
3.根据权利要求2所述的方法,其特征在于,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
4.根据权利要求3所述的方法,其特征在于,计算拥塞值的公式为:
<mrow>
<msubsup>
<mi>CI</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>A</mi>
<mo>&CenterDot;</mo>
<msubsup>
<mi>d</mi>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>B</mi>
<mo>&CenterDot;</mo>
<msubsup>
<mrow>
<mo>(</mo>
<mi>M</mi>
<mi>D</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mi>k</mi>
</msubsup>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
</mrow>
其中,MD表示转发时延的均值和均方差,CI表示拥塞标识,用于判断端口i和端口j之间的路径k是否发生拥塞,A和B是常量,A=1,B=4。
5.根据权利要求4所述的方法,其特征在于,
所述设定规则包括:当前时间与上次发送队列长度信息的时间之差大于队列长度信息更新的最长时间间隔;
所述设定规则还包括:当前端口已经转发的数据字节数与上次更新端口队列长度信息时已经转发的数据字节数之差要大于该两次队列长度信息更新之间最多转发的数据字节数。
6.根据权利要求5所述的方法,该方法基于由多块业务板、多块转发板以及一块或多块控制板组成的设备上,每一块板卡都具有独立的CPU和控制器进行业务处理;其特征在于,所述的根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用随机早起检测算法RED;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
7.一种拥塞控制设备,所述设备由多块业务板、多块转发板以及一块或多块控制板组成,每一块板卡都具有独立的CPU和控制器进行业务处理;其特征在于,所述设备还包括:转发时延更新器、内部路径选择器和拥塞控制器;
所述转发时延更新器用于计算各端口路径的转发时延,根据所述转发时延计算各端口路径的拥塞值;
所述内部路径选择器通过判断所述拥塞值从多条路径中选择一条畅通路径进行数据流转发,并记录所述畅通路径;
所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制。
8.根据权利要求7所述的设备,其特征在于,所述转发时延更新器用于计算各端口路径的转发时延,包括:
所述业务板和所述转发板按照设定规则向控制器发送数据流和端口队列长度信息,通过所述端口队列长度信息计算端口路径的转发时延。
9.根据权利要求8所述的设备,其特征在于,所述的根据所述转发时延计算各端口路径的拥塞值,包括:
所述转发时延由传播时延和排队时延组成,所述传播时延是由网络介质的物理参数决定的固定值,所述排队时延是由端口队列长度信息决定的动态值,所述排队时延用于计算端口路径的拥塞值。
10.根据权利要求9所述的设备,其特征在于,所述拥塞控制器根据数据流的转发状态选用拥塞控制算法对判断为拥塞的路径进行拥塞控制,包括:
当数据流不具有分组标记且不需要对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板上都采用RED算法;
当已根据规则对数据流进行分组标记时,所述拥塞控制方式为:业务板和转发板都采用MCHOKeM算法或者CHOKeR算法;
当数据流是由业务板上进行分类,转发板上进行标记时,所述拥塞控制方式为:业务板采用RED算法,转发板采用MCHOKeM算法或CHOKeR算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994503.9A CN107528791A (zh) | 2017-10-23 | 2017-10-23 | 一种拥塞控制方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710994503.9A CN107528791A (zh) | 2017-10-23 | 2017-10-23 | 一种拥塞控制方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107528791A true CN107528791A (zh) | 2017-12-29 |
Family
ID=60684891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710994503.9A Pending CN107528791A (zh) | 2017-10-23 | 2017-10-23 | 一种拥塞控制方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107528791A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336755A (zh) * | 2019-06-28 | 2019-10-15 | 中国舰船研究设计中心 | 一种新型舰船网络拥塞控制方法 |
CN114500357A (zh) * | 2020-10-27 | 2022-05-13 | 北京华为数字技术有限公司 | 一种路径确定方法及装置 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671124A (zh) * | 2004-03-19 | 2005-09-21 | 清华大学 | 通信终端装置、通信终端接收方法、通信系统、网关 |
CN101656674A (zh) * | 2009-09-23 | 2010-02-24 | 中国人民解放军信息工程大学 | 拥塞控制方法及网络节点 |
CN101835234A (zh) * | 2010-03-23 | 2010-09-15 | 重庆邮电大学 | 一种基于接力节点的工业无线传感器网络通信方法 |
US20120110541A1 (en) * | 2010-10-29 | 2012-05-03 | International Business Machines Corporation | Constraint optimization of sub-net level routing in asic design |
JP5436370B2 (ja) * | 2010-08-23 | 2014-03-05 | 日本電信電話株式会社 | サーバ選択方法及び装置及びプログラム |
-
2017
- 2017-10-23 CN CN201710994503.9A patent/CN107528791A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671124A (zh) * | 2004-03-19 | 2005-09-21 | 清华大学 | 通信终端装置、通信终端接收方法、通信系统、网关 |
CN101656674A (zh) * | 2009-09-23 | 2010-02-24 | 中国人民解放军信息工程大学 | 拥塞控制方法及网络节点 |
CN101835234A (zh) * | 2010-03-23 | 2010-09-15 | 重庆邮电大学 | 一种基于接力节点的工业无线传感器网络通信方法 |
JP5436370B2 (ja) * | 2010-08-23 | 2014-03-05 | 日本電信電話株式会社 | サーバ選択方法及び装置及びプログラム |
US20120110541A1 (en) * | 2010-10-29 | 2012-05-03 | International Business Machines Corporation | Constraint optimization of sub-net level routing in asic design |
Non-Patent Citations (1)
Title |
---|
LINGYUN LU等: "《Coorprative Congestion Control in Multi-Level InterWeave Routers》", 《2012年国际通信与信息技术研讨会(ISCIT)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336755A (zh) * | 2019-06-28 | 2019-10-15 | 中国舰船研究设计中心 | 一种新型舰船网络拥塞控制方法 |
CN110336755B (zh) * | 2019-06-28 | 2023-01-03 | 中国舰船研究设计中心 | 一种新型舰船网络拥塞控制方法 |
CN114500357A (zh) * | 2020-10-27 | 2022-05-13 | 北京华为数字技术有限公司 | 一种路径确定方法及装置 |
CN114500357B (zh) * | 2020-10-27 | 2024-02-09 | 北京华为数字技术有限公司 | 一种路径确定方法及装置 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
US11838209B2 (en) | 2021-06-01 | 2023-12-05 | Mellanox Technologies, Ltd. | Cardinality-based traffic control |
CN115442306B (zh) * | 2021-06-01 | 2024-05-28 | 迈络思科技有限公司 | 基于基数的流量控制 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Expeditus: Congestion-aware load balancing in clos data center networks | |
Eliazov et al. | Performance of an ATM switch: simulation study | |
CN107528791A (zh) | 一种拥塞控制方法及设备 | |
Alshahrani et al. | Modeling and simulation of data center networks | |
Maksic et al. | Improving utilization of data center networks | |
Yébenes et al. | Improving non-minimal and adaptive routing algorithms in slim fly networks | |
Vasiliadis et al. | Modelling and performance study of finite-buffered blocking multistage interconnection networks supporting natively 2-class priority routing traffic | |
Sarma | Performance measurement of TCP and UDP using different queuing algorithm in high speed local area network | |
Sangeetha et al. | A novel traffic dividing and scheduling mechanism for enhancing security and performance in the tor network | |
Shi et al. | Congestion control with the fixed cost at the domain border | |
Liu et al. | RSLB: Robust and scalable load balancing in software-defined data center networks | |
Liu et al. | Flow splitting scheme over link‐disjoint multiple paths in software‐defined networking | |
Zhang et al. | Congestion-aware adaptive forwarding in datacenter networks | |
Kassing | Static yet flexible: Expander data center network fabrics | |
Belhareth et al. | Understanding TCP cubic performance in the cloud: A mean-field approach | |
Chuang et al. | Efficient load balancing in software defined networks | |
He et al. | Load-balanced multipath self-routing switching structure by concentrators | |
Prajapati et al. | Verifying Queue Length Scheme in Wired Communication for Congestion Control | |
Doo et al. | Multicore Flow Processor with Wire‐Speed Flow Admission Control | |
Zhanikeev | The switchboard optimization problem and heuristics for cut-through networking | |
Zhu et al. | MIFO: Multi-path Interdomain Forwarding | |
Hisamatsu et al. | Sizing Router Buffers for Large-Scale TCP/IP Networks | |
Gill et al. | Network information flow in network of queues | |
Li et al. | A System for Source Address Authentication and Anonymous Communication Based on SDN | |
Zhang et al. | Load Balancing Based on Flow Classification with Private Link in Programmable Switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171229 |
|
RJ01 | Rejection of invention patent application after publication |