CN103139103B - 一种网络拥塞的控制方法及装置 - Google Patents
一种网络拥塞的控制方法及装置 Download PDFInfo
- Publication number
- CN103139103B CN103139103B CN201110396558.2A CN201110396558A CN103139103B CN 103139103 B CN103139103 B CN 103139103B CN 201110396558 A CN201110396558 A CN 201110396558A CN 103139103 B CN103139103 B CN 103139103B
- Authority
- CN
- China
- Prior art keywords
- data flow
- queue
- buffer queue
- transmission
- capacity
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络拥塞的控制方法及装置,包括:针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列;针对传输的不同类型的数据流分别执行下述操作:确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,根据确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列,从而能够较好地实现对网络拥塞的控制,提高网络服务质量,提升用户的感知度。
Description
技术领域
本发明涉及通信网络管理技术领域,尤其是涉及一种网络拥塞的控制方法及装置。
背景技术
随着通信技术的不断发展,尤其是无线局域网技术向传统信息通讯领域中的渗透,使得通信网络中数据传输量成倍的增长。在通信网络中的多核高速集中转发环节,由于大量数据业务堆积,会造成网络拥塞,进而导致网络崩溃。所以通信系统中集中转发环节的网络服务质量(QOS,Quality of Service)管理对于解决网络拥塞变得尤为重要。
现有技术对通信网络中集中转发环节的QOS管理方法主要有以下两种方法:
第一种方法:采用尾丢弃(Tail Drop)的方法实现通信网络中集中转发环节的QOS管理,其实施原理是在数据传输的过程中,当数据缓冲区队列被填满之后丢弃后续接收到的数据。
第二种方法:采用随机先期检测(RED,Random Early Detection)的方法实现通信网络中集中转发环节的QOS管理,这种方法实施原理是预先设定两个阈值:第一阈值和第二阈值,其中第一阈值小于第二阈值,在数据流量小于预先设定的第一个阈值时,正常进行数据传输;当数据流量大于预先设定的第一个阈值且小于预先设定的第二阈值时,则根据平均队列长度计算出丢弃概率,然后根据计算出的丢弃概率,对数据进行随机丢弃;当数据流量高于预先设定的第二个阈值时,则对后续到达的数据全部丢弃。
上述两种方法分别存在以下缺陷:
针对第一种方法,因为尾丢弃的管理方法是一种被动的管理方法,在数据传输的过程中,容易造成因为某类型数据突发的高流量占满了缓冲队列,而其他类型数据无法通过的死锁现象,进而使得网络传输资源浪费。
针对第二种方法,虽然可以避免满队列和死锁现象的发生,但是在数据传输过程中,不同类型的数据的优先级别也不同,而采用RED的方法实现集中转发环节的QOS管理,针对不同类型的数据采取同一个标准的控制阈值,所以在数据传输的公平性上难以得到保证。
上述现有技术中使用的两种控制网络拥塞的方法,控制方法简单粗化,容易导致QOS降低,导致网络传输资源的浪费,并且,对数据类型的优先级别不做区分的网络拥塞控制方法也会带来网络流量的限制,从而降低了网络服务质量,进而影响了用户的感知度。
发明内容
本发明实施例提供一种网络拥塞的控制方法及装置,能够较好地避免现有技术中采取的网络拥塞控制机制带来的网络传输资源浪费和网络服务质量下降的问题,进而提高网络服务质量,提升用户的感知度。
本发明实施例技术方案如下:
一种网络拥塞的控制方法,包括:针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列;针对传输的所述不同类型的数据流分别执行下述操作:根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足第二深度标识值用于标识所述缓冲队列的队列容量不足;根据确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列。
一种网络拥塞的控制装置,包括:缓冲队列分配模块,用于针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列;缓冲队列参数值确定模块,用于针对传输的不同类型的数据流,根据缓冲队列分配模块分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及用于针对传输的不同类型的数据流,确定缓冲队列分配模块分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足;控制模块,用于针对传输的不同类型的数据流,根据缓冲队列参数值确定模块针对为该种类型的数据流配置的缓冲队列确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列。
本发明实施例提出的技术方案,根据一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列,针对传输的不同类型的数据流,根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足;根据确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列,进而实现对网络拥塞的控制。这样,可以对不同类型的数据流采取不同的阈值和控制策略,从而有区别地对待在一个网络传输环境中传输的不同类型的数据流,能够较好地避免现有技术中采取的网络拥塞控制机制带来的网络传输资源浪费和网络服务质量下降的问题,进而提高网络服务质量,提升用户的感知度。
附图说明
图1为本发明实施例中,提出的网络拥塞的控制方法的硬件组成架构图;
图2为本发明实施例中,提出的缓冲队列结构图;
图3为本发明实施例中,提出的一种网络拥塞的控制方法流程图;
图4为本发明实施例中,提出的为每个类型的数据流分配对应的缓冲队列方法流程图;
图5为本发明实施例中,提出的针对每一个缓冲队列判断该缓冲队列存储容量流程图;
图6为本发明实施例中,判断出的不同类型数据流通过率的示意图;
图7为本发明实施例中,提出的一种网络拥塞的控制装置结构图。
具体实施方式
针对现有技术中存在的对网络传输环境中传输的数据流类型不做区分,简单粗化的实现网络拥塞的控制,容易导致QOS降低,网络传输资源浪费,进而影响用户的感知度的问题,本发明实施例中提出的技术方案,根据一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列,针对传输的所述不同类型的数据流,根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足;根据确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列,进而实现对网络拥塞的控制。这样,可以对不同类型的数据流采取不同的阈值和控制策略,从而有区别地对待在一个网络传输环境中传输的不同类型的数据流,能够较好地避免现有技术中采取的网络拥塞控制机制带来的网络传输资源浪费和网络服务质量下降的问题,进而提高网络服务质量,提升用户的感知度。
下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
如图1所示,为本发明实施例中提出的网络拥塞的控制方法的硬件组成架构图,本发明实施例这里提出的网络拥塞的控制方法所依赖的硬件组成架构,包括:
数据接收模块(Input Port),属于物理接口,用于集中接收通信网络中各网络链路汇聚而来的不同类型的数据流,即在通信网络中的集中转发环节中,用于接收不同类型的数据流,并将接收到的不同类型的数据流进行传输。
先入先出队列(Input FIFO),在本发明实施例这里作为二级缓冲区队列,属于硬件管理和数据存储区域,用于存放由数据接收模块传输的不同类型的数据流,在数据流进入先入先出队列后,遵循简单的先入先出原则,等待处理。
具体地,在先入先出队列存储的数据流占满整个队列,使该缓冲队列处于溢出状态时,将不再接收后续到达的数据流,只有在先入先出队列的溢出状态终止时,才可以继续接收后续到达的数据流。
数据处理模块(PIP,Packet Input Processing),用于执行针对在同一个网络传输环境中,为传输的不同类型的数据流,分配不同的传输优先级,并根据分配的不同传输优先级,设置传输优先级标识。其中,网络传输环境不同,对不同类型的数据流的传输优先级的设置也不完全相同。
具体地,数据处理模块根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级可以但不限于采用以下几种方式:
第一种方式在确定的策略模式为基于数据包类型的策略模式时,为IPv4和/或Ipv6类型的数据包、传输控制协议(TCP,Transmission Control Protocol)类型的数据包、用户数据包协议(UDP,User Datagram Protocol)类型的数据包和其他类型的数据包分别配置由高至低的传输优先级。
第二种方式:在确定的策略模式为基于差分服务代码点(DSCP,Differentiated Services Code Point)值的策略模式时,根据传输的数据流的报文头(TOP)字段中携带的DSCP值,为该数据流配置传输优先级。例如,可以根据传输的数据流的报文中的TOP字段中,携带的第0~63个DSCP值将传输的数据流转化为由高至低的8个传输优先级0~7。
第三种方式:在确定的策略模式为基于网络互连协议(IP,Internet Protocol)的策略模式时,根据传输的数据流的报文虚拟局域网(Vlan)IP的优先级标识,为该数据流配置传输优先级。例如,在传输的数据流使用了Vlan标识(ID,Identity)的网络传输环境中,可以根据传输的数据流报文中的Vlan IP中的优先级字段,为该传输的数据流配置8个由高到低的传输优先级0~7。
第四种方式:在确定的策略模式为基于端口的策略模式时,根据接收该数据流的接收端口的优先级,为该数据流配置传输优先级。例如,在基于端口的策略模式下,可以启用8个数据处理端口,为每个数据处理端口传输的数据流配置一个传输优先级,每个数据处理端口可以用端口IP标识。其中,基于端口的策略模式,通过将数据处理端口分离,为每个数据处理端口传输的数据流配置不同的传输优先级,可以实现将用于管理的数据流与其他业务数据的数据流分离,从而达到针对不同类型的业务数据的数据流分配不同的传输优先级的目的。
第五种方式:在确定的策略模式为默认配置的策略模式时,为不同类型的数据流配置相同的传输优先级。即在该策略模式下,不区分不同数据流的传输优先级。
缓冲队列(Work Queue),在本发明实施例中作为一级缓冲区队列,其结构可以参照图2所示,属于硬件管理和数据存储区域,支持至少1个不同的缓冲区队列,每个缓冲队列有区别地存放不同类型的数据流,并且对应每个缓冲区队列的各参数值,例如平均队列容量深度值、总的队列容量深度值、第一深度标识值及第二深度标识值等都可以单独设定。
需要说明的是,针对每一个缓冲队列,与其对应的平均队列容量深度值,可以根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量确定。总的队列容量深度值用于标识该缓冲队列具有的总的容量深度。第一深度标识值可以用于标识该缓冲队列的队列容量充足,即该缓冲队列还可以继续接收并存储数据流,第二深度标识值可以用于标识该缓冲队列的队列容量不足,即该缓冲队列此时没有足够的存储空间或者存储空间已满,不能够再继续接收并存储数据流。
具体地,上述平均队列容量深度值可以但不限于按照下述公式计算得出:
Qavg=(Q'avg×Pavg+Qfree×Pn)/(Pavg+Pn) (公式1)
其中,Qavg为当前传输周期中的平均队列容量深度值,Q'avg为前一传输周期中的平均队列容量深度值,Qfree为当前传输周期中的剩余队列容量,Pavg为平均队列容量深度权值,Pn是剩余队列容量深度权值。
由上述公式1中可以得出,在初始状态下,因为Q'avg=0,前一传输周期中的已用队列容量为0,所以Q'avg=0。若平均队列容量深度权值Pavg和剩余队列容量深度权值均设置为1,则将缓冲队列的所有剩余队列容量的一半设置为平均队列容量深度值。一种较佳的实现方式,为保证在初始状态下,缓冲队列处于连续接收并存储数据流的状态,对Qavg的具体设置可以为Qavg=Qfree,即,此时平均队列容量深度值是缓冲队列的所有剩余队列容量值。随着数据流不间断的传输,平均队列容量深度值也将随之变化。
具体地,上述总的队列容量深度值可以但不限于按照下述公式2计算得出:
Q=min{Qbace×Pq,Qmax} (公式2)
其中,Qbace为队列容量深度基数,Qmax为队列最大可能容量深度,Pq为队列容量深度权值。
因为该计算方法是在加权公平性算法的基础上得出的,所以能够实现在保证每个缓冲区队列容量深度的差异性的同时,也能够保证每个缓冲区队列的总的容量深度在最大可能容量深度的范围内,综合考虑了硬件上的承受能力。
具体地,缓冲队列的第一深度标识值、第二深度标识值可以是预先设定的两个阈值,可以按照下述公式3和公式4计算得出:
Q1=(Q×P×i)/e1 (公式3)
Q2=(Q×P)/e2 (公式4)
其中,Q1为第一深度标识值,Q2为第二深度标识值,Q为上述公式2中计算出的缓冲队列具有的总的队列容量深度值,P为根据预先为该网络传输环境设定的策略模式,为传输的不同类型的数据流分别配置的传输优先级系数,i为预计数据流密度,e1、e2均为策略系数。
由上述公式3和公式4中可以看出,第一深度标识值随数据流密度差异而浮动,第二深度标识值则根据预先为该网络传输环境设定的策略模式而保持恒定。对于传输优先级系数P,可以采取预先设定的方式,例如:可以预先设定传输优先级1所对应的系数为2。对于策略系数e1、e2的取值,依赖于在一个网络传输环境中预先设定的策略模式,即对应不同的策略模式,策略系数e1、e2的取值也不完全相同,例如,在预先设定的策略模式是端口策略模式时,策略系数e1、e2的取值可以为8。
中央调度模块(SSO,Schedule Synchronization Order Unit),用于获取存储在缓冲区队列中的不同类型的数据流,然后将获得的数据流分发给至少一个空闲的CPU单元进行数据处理。一种较优的实现方式,中央调度模块,可以按照预先为每个缓冲队列设置的不同传输优先级,优先处理传输优先级高的缓冲队列中缓存的数据流,也可以兼顾传输优先级低的缓冲队列中缓冲的数据流。
进一步地,基于上述硬件架构,本发明实施例这里提出一种网络拥塞的控制方法,如图3所示,具体过程为:
步骤301,数据接收模块接收在通信网络中传输的不同类型的数据流,并将接收到的不同类型的数据流传输至先入先出队列中存储。
步骤302,判断先入先出队列是否处于溢出状态,如果判断结果为是,则进行步骤303,否则,进行步骤304。
步骤303,在判断出先入先出队列处于溢出状态时,丢弃数据流,不进行存储。
步骤304,在判断出先入先出队列处于非溢出状态时,则将数据流传输至先入先出队列中存储。
步骤305,数据处理模块在先入先出队列中获取存储的不同类型的数据流,并且针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列,用于存储数据流。
其中,针对不同的网络传输环境,因为传输的业务数据不同,因此为不同的网络传输环境,预先设定的策略模式也可以不完全相同。尤其是在同一个通信网络中,由于网络传输环境的改变,相应的为该网络环境设定的策略模式也需要改变,基于此,步骤305可以采用一种较优的实施方式,可以先确定网络传输环境中预先设定的策略模式,然后根据确定出的策略模式,为传输的不同类型的数据流分别配置由高至低或者由低至高的传输优先级,然后为每个类型的数据流分配相对应的缓冲队列,具体实施过程如图4所示:
步骤B01,判断该网络传输环境中预先设定的策略模式是否为基于数据包类型的策略模式,如果判断结果为是,则执行步骤B02,反之执行步骤B03。
步骤B02,为IPv4和/或Ipv6类型的数据包配置最高的传输优先级0,为TCP类型的数据包配置次高的传输优先级1,为UDP类型的数据包配置次低的传输优先级2,为其他类型的数据包配置最底的传输优先级3。
步骤B03,继续判断该网络传输环境中预先设定的策略模式是否为基于差分服务代码点DSCP值的策略模式,如果判断结果为是,则执行步骤B04,反之,执行步骤B05。
步骤B04,根据传输的数据流的报文头(TOP)字段中携带的DSCP值,为该数据流配置传输优先级。
步骤B05,继续判断该网络传输环境中预先设定的策略模式是否为基于IP的策略模式,如果判断结果为是,执行步骤B06,反之执行步骤B07。
步骤B06,根据传输的数据流的报文虚拟局域网Vlan IP的优先级标识,为该数据流配置传输优先级。
步骤B07,继续判断该网络传输环境中预先设定的策略模式是否为基于端口的策略模式,如果判断结果为是,执行步骤B08,反之执行步骤B09。
步骤B08,根据接收该数据流的接收端口的优先级,为该数据流配置传输优先级。
其中,在确定出该网络传输环境中预先设定的策略模式是基于端口的策略模式时,在初始状态下,各端口是处于开放状态,但是可能会存在下述情况,在经过至少一个传输周期之后,有的数据处理端口在硬件上会处于反向偏置状态,此时,后续到达该数据处理端口的数据流不能经过该端口传输,会回压至先入先出队列中等待处理,在回压状态结束时,再进入缓冲队列中。而已经进入缓冲队列中的数据流则按照预先设置的传输优先级继续等待处理。
步骤B09,继续判断该网络传输环境中预先设定的策略模式是否为默认配置的策略模式,如果判断结果为是,则执行步骤B10,反之执行步骤B11。
步骤B10,为不同类型的数据流配置相同的传输优先级。
步骤B11,结束判断。
需要说明的是,在上述步骤B01~B11的执行过程中,针对一个网络传输环境中传输的不同类型的数据流,在为该数据流配置传输优先级之后,可以进而为不同类型的数据流分配不完全相同的缓冲队列。
一种较优的实现方式,确定预先为该网络传输环境设定的策略模式,并根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级;根据在为该网络传输环境下传输的不同类型的数据流配置的传输优先级,为不同类型的数据流分别配置不同的缓冲队列。
步骤306,针对传输的不同类型的数据流,根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值Qavg;并确定分配给该种类型数据流的缓冲队列的第一深度标识值Q1和第二深度标识值Q2。
具体地,对应每个缓冲队列的平均队列容量深度值Qavg,第一深度标识值Q1和第二深度标识值Q2的具体计算方法请参照上述公式1~公式4,这里不再赘述。
步骤307,根据步骤306确定出的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列。
其中,针对每一个缓冲队列,如图5所示,步骤307的具体实施过程如下:
步骤51,首先判断该缓冲队列是否还有存储容量,如果判断结果为是,则进行步骤52,反之,则进行步骤53。
其中,具体的判断过程如下:将确定出的该缓冲队列的平均队列容量深度值Qavg与确定出的该缓冲队列的第一深度标识值Q1做比较,在Qavg>Q1时,则确定该缓冲队列存储容量充足,进行步骤52,反之确定该缓冲队列存储容量不充足或者已经没有存储容量,执行步骤53。
步骤52,控制该种类型的数据流进入为该种类型的数据流配置的缓冲区队列。
步骤53,将确定出的该缓冲队列的平均队列容量深度值Qavg与确定出的该缓冲队列的第二深度标识值Q2作比较,判断Qavg<Q2是否成立,如果成立,则确定该缓冲队列不足,没有容量在继续缓存数据流,进而执行步骤54,反之执行步骤55。
步骤54,控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列。
具体地,当预先为该网络传输环境设定的策略模式是基于端口的策略模式时,可以将该数据流回压至具有为该数据流分配的传输优先级的数据处理端口,从而实现在不丢弃数据流的基础上,控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列。
步骤55,若确定该缓冲队列的平均队列容量深度值Qavg大于该缓冲队列的第二深度标识值Q2,且小于该缓冲队列的第一深度标识值Q1的条件成立,则将该种类型的数据流中的部分数据流随机丢弃、且控制剩余部分数据流进入为该种类型的数据流配置的缓冲区队列。
其中,步骤55的具体实施过程为:在确定出Q2<Qavg<Q1时,首先确定传每个输周期时长内的随机丢弃概率值,然后在每个传输周期时长内,根据确定出的随机丢弃概率值对本周期时长内传输的数据流进行随机丢弃处理。
具体地,可以按照下述公式确定传输周期时长内的随机丢弃概率值:
Pn=Pbace×(Qavg-Q1)/(Q2-Q1) (公式5)
P=Pn/(1-count×Pn) (公式6)
其中,Pbace为概率基数,Pn为分组丢弃概率,count为当前分组被丢弃后,到下一分组被丢弃时已到达分组数,P为随机丢弃概率。
参见图6所示,为判断出的不同类型数据流通过率的示意图。
步骤308,根据步骤307中确定出的控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列的处理结果,在有空闲的中央处理器(CPU)出现时,中央调度模块可以按照步骤307中确定出的结果,从缓冲队列中提出数据流,将提取的数据流传输给CPU,由CPU对该数据流进行处理。其中,中央调度模块提取数据流的提取方式可以但不限于采用令牌环轮询机制,并兼顾着预先为各类型的数据流配置的传输优先级的差异进行,即传输优先级高的数据流将获得更频繁的轮询机会。
相应地,本发明实施例还提出一种网络拥塞的控制装置,如图7所示,包括:
缓冲队列分配模块71,用于针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列。
缓冲队列参数值确定模块72,用于针对传输的不同类型的数据流,根据缓冲队列分配模块71分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的平均队列容量深度值,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及用于针对传输的不同类型的数据流,确定缓冲队列分配模块71分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足。
其中,缓冲队列参数值确定模块分别按照上述公式1~4,确定所述缓冲队列在当前传输周期中的平均队列容量深度值、第一深度标识值和第二深度标识值。
控制模块73,用于针对传输的不同类型的数据流,根据缓冲队列参数值确定模块72针对为该种类型的数据流配置的缓冲队列确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列。
其中,控制模块具体用于,在缓冲队列参数值确定模块确定出的平均队列容量深度值大于第一深度标识值时,控制该种类型的数据流进入为该种类型的数据流配置的缓冲区队列;在缓冲队列参数值确定模块确定出的平均队列容量深度值小于第二深度标识值时,控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列;在缓冲队列参数值确定模块确定出的平均队列容量深度值大于第二深度标识值,且小于第一深度标识值时,将该种类型的数据流中部分数据流随机丢弃、且控制剩余部分数据流进入为该种类型的数据流配置的缓冲区队列。
其中,控制模块73具体用于,确定传输周期时长内的随机丢弃概率值;在每个传输周期时长内,根据确定出的随机丢弃概率值对本周期时长内传输的数据流进行随机丢弃处理。
具体地,控制模块73如何确定传输周期时长内的随机丢弃概率值请参照上述公式5~公式6的详细阐述,这里不再赘述。
上述网络拥塞控制的装置,还包括:
策略模式确定模块74,用于确定预先为该网络传输环境设定的策略模式,并根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级;
控制模块73,具体用于在策略模式确定模块74确定的策略模式是基于端口的策略模式时,将后续到达的该种类型的数据流从具有为该种类型的数据流分配的传输优先级的数据处理端口,回压至先入先出队列。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种网络拥塞的控制方法,其特征在于,包括:
针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列;
针对传输的所述不同类型的数据流中任一一种类型数据流分别执行下述操作:
根据分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及
确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足;
根据确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列;
其中,按照下述公式,确定分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值:
Q1=(Q×P×i)/e1,Q2=(Q×P)/e2;
其中,Q1为第一深度标识值,Q2为第二深度标识值,Q为缓冲队列具有的总的队列容量深度值,P为根据预先为该网络传输环境设定的策略模式,为传输的不同类型的数据流分别配置的传输优先级系数,i为预计数据流密度,e1、e2均为策略系数;
按照下述公式,确定缓冲队列具有的总的队列容量深度值Q:
Q=min{Qbace×Pq,Qmax}
其中,Qbace为队列容量深度基数,Qmax为队列最大可能容量深度,Pq为队列容量深度权值。
2.如权利要求1所述的方法,其特征在于,按照下述公式,确定所述缓冲队列在当前传输周期中的平均队列容量深度值:
Qavg=(Q'avg×Pavg+Qfree×Pn)/(Pavg+Pn)
Qavg为当前传输周期中的平均队列容量深度值,Q'avg为前一传输周期中的平均队列容量深度值,Qfree为当前传输周期中的剩余队列容量,Pavg为平均队列容量深度权值,Pn是剩余队列容量深度权值。
3.如权利要求1所述的方法,其特征在于,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列,包括:
在确定出的平均队列容量深度值大于第一深度标识值时,控制该种类型的数据流进入为该种类型的数据流配置的缓冲区队列;
在确定出的平均队列容量深度值小于第二深度标识值时,控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列;
在确定出的平均队列容量深度值大于第二深度标识值,且小于第一深度标识值时,将该种类型的数据流中部分数据流随机丢弃、且控制剩余部分数据流进入为该种类型的数据流配置的缓冲区队列。
4.如权利要求3所述的方法,其特征在于,还包括:
确定预先为该网络传输环境设定的策略模式,并根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级;
控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列,具体包括:
在确定的策略模式是基于端口的策略模式时,将后续到达的该种类型的数据流从具有为该种类型的数据流分配的传输优先级的数据处理端口,回压至先入先出队列。
5.如权利要求3所述的方法,其特征在于,将该种类型的数据流中部分数据流随机丢弃,包括:
确定传输周期时长内的随机丢弃概率值;
在每个传输周期时长内,根据确定出的随机丢弃概率值对本周期时长内传输的数据流进行随机丢弃处理。
6.如权利要求5所述的方法,其特征在于,按照下述公式确定传输周期时长内的随机丢弃概率值:
Pn=Pbace×(Qavg-Q1)/(Q2-Q1),
P=Pn/(1-count×Pn);
其中,Pbace为概率基数,Pn为分组丢弃概率,count为当前分组被丢弃后,到下一分组被丢弃时已到达分组数,P为随机丢弃概率,Qavg为当前传输周期中的平均队列容量深度值。
7.如权利要求4所述的方法,其特征在于,根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级,包括:
在确定的策略模式为基于数据包类型的策略模式时,为IPv4和/或Ipv6类型的数据包、传输控制协议TCP类型的数据包、用户数据包协议UDP类型的数据包和其他类型的数据包分别配置由高至低的传输优先级;或者
在确定的策略模式为基于差分服务代码点DSCP值的策略模式时,根据传输的数据流的报文头TOP字段中携带的DSCP值,为该数据流配置传输优先级;或者
在确定的策略模式为基于网络互连协议IP的策略模式时,根据传输的数据流的报文虚拟局域网Vlan IP的优先级标识,为该数据流配置传输优先级;或者
在确定的策略模式为基于端口的策略模式时,根据接收该数据流的接收端口的优先级,为该数据流配置传输优先级;或者
在确定的策略模式为默认配置的策略模式时,为不同类型的数据流配置相同的传输优先级。
8.如权利要求1所述的方法,其特征在于,还包括:
确定预先为该网络传输环境设定的策略模式,并根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级;
为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列,包括:
根据在为该网络传输环境下传输的不同类型的数据流配置的传输优先级,为不同类型的数据流分别配置不同的缓冲队列。
9.一种网络拥塞的控制装置,其特征在于,包括:
缓冲队列分配模块,用于针对一个网络传输环境,为在该网络传输环境下传输的不同类型的数据流分配不同的缓冲队列;
缓冲队列参数值确定模块,用于针对传输的所述不同类型的数据流中任一一种类型数据流分别执行下述操作:根据缓冲队列分配模块分配给该种类型数据流的缓冲队列在当前传输周期中的剩余队列容量,和所述缓冲队列在当前传输周期的前一传输周期中的已用队列容量,确定所述缓冲队列在当前传输周期中的平均队列容量深度值;以及用于针对传输的不同类型的数据流,确定缓冲队列分配模块分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值,所述第一深度标识值用于标识所述缓冲队列的队列容量充足,第二深度标识值用于标识所述缓冲队列的队列容量不足;
控制模块,用于针对传输的不同类型的数据流,根据缓冲队列参数值确定模块针对为该种类型的数据流配置的缓冲队列确定的平均队列容量深度值、第一深度标识值和第二深度标识值之间的关系,控制该种类型的数据流进入为该种类型的数据流配置的缓冲队列;
其中所述缓冲队列参数值确定模块按照下述公式,确定缓冲队列分配模块分配给该种类型数据流的缓冲队列的第一深度标识值、第二深度标识值:
Q1=(Q×P×i)/e1,Q2=(Q×P)/e2;
其中,Q1为第一深度标识值,Q2为第二深度标识值,Q为缓冲队列具有的总的队列容量深度值,P为根据预先为该网络传输环境设定的策略模式,为传输的不同类型的数据流分别配置的传输优先级系数,i为预计数据流密度,e1、e2均为策略系数;
其中,缓冲队列参数值确定模块按照下述公式,确定缓冲队列具有的总的队列容量深度值Q:
Q=min{Qbace×Pq,Qmax}
其中,Qbace为队列容量深度基数,Qmax为队列最大可能容量深度,Pq为队列容量深度权值。
10.如权利要求9所述的装置,其特征在于,所述缓冲队列参数值确定模块按照下述公式,确定所述缓冲队列在当前传输周期中的平均队列容量深度值:
Qavg=(Q'avg×Pavg+Qfree×Pn)/(Pavg+Pn)
其中,Qavg为当前传输周期中的平均队列容量深度值,Q'avg为前一传输周期中的平均队列容量深度值,Qfree为当前传输周期中的剩余队列容量,Pavg为平均队列容量深度权值,Pn是剩余队列容量深度权值。
11.如权利要求9所述的装置,其特征在于,所述控制模块,具体用于在缓冲队列参数值确定模块确定出的平均队列容量深度值大于第一深度标识值时,控制该种类型的数据流进入为该种类型的数据流配置的缓冲区队列;在缓冲队列参数值确定模块确定出的平均队列容量深度值小于第二深度标识值时,控制该种类型的数据流禁止进入为该种类型的数据流配置的缓冲区队列;在缓冲队列参数值确定模块确定出的平均队列容量深度值大于第二深度标识值,且小于第一深度标识值时,将该种类型的数据流中部分数据流随机丢弃、且控制剩余部分数据流进入为该种类型的数据流配置的缓冲区队列。
12.如权利要求11所述的装置,其特征在于,还包括策略模式确定模块,用于确定预先为该网络传输环境设定的策略模式,并根据确定的策略模式为传输的不同类型的数据流分别配置传输优先级;
所述控制模块,具体用于在策略模式确定模块确定的策略模式是基于端口的策略模式时,将后续到达的该种类型的数据流从具有为该种类型的数据流分配的传输优先级的数据处理端口,回压至先入先出队列。
13.如权利要求11所述的装置,其特征在于,所述控制模块,具体用于确定传输周期时长内的随机丢弃概率值,并在每个传输周期时长内,根据确定出的随机丢弃概率值对本周期时长内传输的数据流进行随机丢弃处理。
14.如权利要求13所述的装置,其特征在于,所述控制模块按照下述公式,确定传输周期时长内的随机丢弃概率值:
Pn=Pbace×(Qavg-Q1)/(Q2-Q1),
P=Pn/(1-count×Pn);
其中,Pbace为概率基数,Pn为分组丢弃概率,count为当前分组被丢弃后,到下一分组被丢弃时已到达分组数,P为随机丢弃概率,Qavg为当前传输周期中的平均队列容量深度值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110396558.2A CN103139103B (zh) | 2011-12-02 | 2011-12-02 | 一种网络拥塞的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110396558.2A CN103139103B (zh) | 2011-12-02 | 2011-12-02 | 一种网络拥塞的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103139103A CN103139103A (zh) | 2013-06-05 |
CN103139103B true CN103139103B (zh) | 2015-11-04 |
Family
ID=48498427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110396558.2A Expired - Fee Related CN103139103B (zh) | 2011-12-02 | 2011-12-02 | 一种网络拥塞的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103139103B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9379992B2 (en) * | 2013-12-25 | 2016-06-28 | Cavium, Inc. | Method and an apparatus for virtualization of a quality-of-service |
CN103685018B (zh) * | 2013-12-25 | 2017-01-18 | 杭州华为数字技术有限公司 | 消息处理方法和装置及通信系统 |
CN104092566B (zh) * | 2014-06-25 | 2017-04-12 | 电子科技大学 | 一种区分服务的队列管理方法 |
CN105897365B (zh) * | 2016-03-23 | 2019-01-18 | 京信通信系统(中国)有限公司 | 一种处理器的防冲击处理方法及装置 |
CN106411776A (zh) * | 2016-09-22 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 数据流调度系统以及数据流调度方法 |
CN107302505B (zh) * | 2017-06-22 | 2019-10-29 | 迈普通信技术股份有限公司 | 管理缓存的方法及装置 |
CN107634915A (zh) * | 2017-08-25 | 2018-01-26 | 中国科学院计算机网络信息中心 | 数据传输方法、装置及储存介质 |
CN111274010B (zh) * | 2020-01-14 | 2024-01-16 | Oppo广东移动通信有限公司 | 数据控制方法、装置、电子设备及存储介质 |
CN111246284B (zh) * | 2020-03-09 | 2021-05-25 | 深圳创维-Rgb电子有限公司 | 视频流播放方法、系统、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6348106B1 (en) * | 1999-04-06 | 2002-02-19 | Oreck Holdings, Llc | Apparatus and method for moving a flow of air and particulate through a vacuum cleaner |
CN1345503A (zh) * | 1999-03-31 | 2002-04-17 | 英国电讯有限公司 | 分组消息的方法和设备 |
CN1466334A (zh) * | 2002-06-12 | 2004-01-07 | ��Ϊ��������˾ | 一种控制路由器接口报文发送速率的方法 |
CN101414957A (zh) * | 2007-10-17 | 2009-04-22 | 北京中电华大电子设计有限责任公司 | 一种用于无线局域网的缓冲队列管理方法 |
CN101562566A (zh) * | 2009-06-04 | 2009-10-21 | 吉林大学 | 基于实时路由器缓存占有率的主动队列管理方法 |
-
2011
- 2011-12-02 CN CN201110396558.2A patent/CN103139103B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1345503A (zh) * | 1999-03-31 | 2002-04-17 | 英国电讯有限公司 | 分组消息的方法和设备 |
US6348106B1 (en) * | 1999-04-06 | 2002-02-19 | Oreck Holdings, Llc | Apparatus and method for moving a flow of air and particulate through a vacuum cleaner |
CN1466334A (zh) * | 2002-06-12 | 2004-01-07 | ��Ϊ��������˾ | 一种控制路由器接口报文发送速率的方法 |
CN101414957A (zh) * | 2007-10-17 | 2009-04-22 | 北京中电华大电子设计有限责任公司 | 一种用于无线局域网的缓冲队列管理方法 |
CN101562566A (zh) * | 2009-06-04 | 2009-10-21 | 吉林大学 | 基于实时路由器缓存占有率的主动队列管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103139103A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103139103B (zh) | 一种网络拥塞的控制方法及装置 | |
US7916718B2 (en) | Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics | |
WO2017157274A1 (zh) | 网络流量控制的方法及其网络设备 | |
US7457245B2 (en) | Directional and priority based flow control mechanism between nodes | |
KR100716184B1 (ko) | 네트워크 프로세서에서의 큐 관리 방법 및 그 장치 | |
US8908522B2 (en) | Transmission rate control | |
US9882817B2 (en) | Inter-device policing on network interface devices in LAG configuration | |
CN101075963B (zh) | 一种基于网络QoS的动态控制装置及其方法 | |
CN103929372B (zh) | 主动队列管理方法和设备 | |
CN101984608A (zh) | 报文拥塞避免方法及系统 | |
WO2014110391A1 (en) | Direct memory access rate limiting in a communication device | |
CN103959724A (zh) | 在混合通信网络中提供路径信息 | |
CN103959698A (zh) | 具有无缝路径切换的混合联网系统 | |
EP2702731A1 (en) | Hierarchical profiled scheduling and shaping | |
WO2007047865A2 (en) | Coalescence of disparate quality of service matrics via programmable mechanism | |
CN101834790A (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
CN101834787A (zh) | 调度数据的方法和系统 | |
TW202002596A (zh) | 運算裝置中預測封包壽命之佇列系統 | |
CN102065015B (zh) | 一种数据传输方法、网络设备以及装置 | |
CN105007235B (zh) | 一种无线多媒体传感器网络中的拥塞控制方法 | |
JP2020072336A (ja) | パケット転送装置、方法、及びプログラム | |
WO2016177058A1 (zh) | 数据流调度方法及装置 | |
CN100380890C (zh) | 将上协议层匹配到高速串行总线的数据传送方法 | |
US20090073878A1 (en) | Usage based queuing with accounting for wireless access points | |
CN101719928B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151104 Termination date: 20211202 |