一种数据的传输方法和网络设备与流程

文档序号:14879578发布日期:2018-07-07 09:22阅读:116来源:国知局

本发明涉及计算机技术领域,尤其涉及一种数据的传输方法和网络设备。



背景技术:

随着云计算、大数据、物联网等技术的发展,当前网络中存在多种新兴的业务,而这些业务良好体验的背后是对吞吐(throughput)和时延(latency)的要求,因而网络需要能够同时支持不同业务对吞吐和时延的不同需求。

然而实际的情况是,对于目前以传输控制协议(transmissioncontrolprotocol,tcp)为主要传输协议的网络,在带宽和网络拓扑已定的情况下,为了支持并发和减少丢包需要使用队列,而tcp自身的特性又使得在队列存在的情况下很难同时保证高吞吐和低时延,这是由于tcp协议如下的行为特点决定的:tcp在无法感知网络性能上限的情况下,一步一步的逼近上限,即tcp存在上探式(probing)的窗口增加,同时发包具有突发(burst)的特点;tcp对于链路、队列状况无感知,盲目的增加发送窗口会导致拥塞,出现丢包;仅使用丢包作为拥塞信号进行窗口调节,使得时延增加;丢包时发送窗口急剧变化,窗口恢复缓慢,带宽利用率低。

接下来分析在带宽和网络拓扑已定的情况下目前的tcp为什么难以同时满足高吞吐和低时延。throughput定义为端到端的最大发送速率,虽然和带宽成正比,但是最终的决定因素来源于tcp发送窗口的调节,在带宽已定、网络拓扑已定的情况下,throughput和丢包率成反比,所以提高throughput需要降低丢包率,这样就需要较深的缓冲区,因为深缓冲区对于burst的容忍性也越好,因而可以防止突发丢包。

latency定义为一个数据包发送出去到被接收的时间,它的组成可以包括:传播时延、转发时延、排队时延。其中排队时延在网络出现拥塞的时候,达到数百毫秒,这是时延的主要部分也是最难受控的部分,而且buffer越大时延也越大,所以为了降低时延,需要减少buffer的深度,因而需要浅buffer。这就造成了提高throughput需要深buffer,而降低时延需要浅buffer的困境。

综上可知,现有技术中由于buffer的存在高吞吐和低时延是无法同时满足的。另外,现有技术中目前通常针对单个队列进行优化管理,例如采用reno方案进行管理,这种方案会盲目的根据丢包进行大比例的减少发送窗口,导致吞吐率剧烈抖动。而在路由器,商业交换机等网络设备中,一般会有4-8个队列,而在多队列的情况下,多个队列还是需要共享一个端口,若仍按照单个队列的方式共享端口的转发能力会导致转发性能不足,队列产生拥挤,时延增大。



技术实现要素:

本发明实施例提供了一种数据的传输方法和网络设备,用于实现多队列情况下满足数据包对时延和吞吐率的要求。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种数据的传输方法,包括:接收数据发送端发送的第一数据包;根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度,所述第一队列为所述n个队列中的一个队列,所述n个队列为用于传输携带有显式拥塞信号的数据包的队列,所述n个队列分别对应于不同的优先级,所述优先级根据时延latency和吞吐率throughput确定,所述n为大于或等于2的自然数;在确定所述第一数据包进入所述第一队列的情况下,当所述第一队列的已使用长度超过所述第一队列对应的标记阈值时,在所述第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包;按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第二数据包,以使所述数据接收端在接收到所述第二数据包之后向所述数据发送端发送携带所述拥塞标记的响应消息。本发明实施例中根据时延和吞吐率对用于传输携带有显式拥塞信号的数据包的n个队列进行了优先级划分,对于数据发送端发送的不同数据包可以业务类型选择对应优先级的队列。对于数据发送端发送的第一数据包,选取出第一队列用于传输添加有拥塞标记的第一数据包,该第一数据包按照第一队列的优先级进行调度后,数据接收端会向数据发送端发送携带拥塞标记的响应消息,从而本发明实施例中可以实现主动队列管理,实现多队列情况下满足数据包对时延和吞吐率的要求。通过使用基于显式拥塞信号进行拥塞控制减少拥塞,将其应用到多队列中去,并根据队列资源阈值的分配实现不同时延、带宽的组合。本发明通过将显式拥塞信号与多队列的主动队列管理相结合,在保证吞吐率的同时可以降低时延,从而为大带宽、低时延的业务在传输层提供了解决方案,有利于相关业务的推广和部署。

结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:在确定所述第一数据包进入所述第一队列的情况下,当所述第一队列的已使用长度没有超过所述第一队列对应的标记阈值时,按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第一数据包。当第一队列的已使用长度没有超过第一队列对应的标记阈值时,说明此时第一队列中容纳的数据包数量没有超过该第一队列的拥塞容忍强度,网络设备无需对第一数据包进行主动队列管理,网络设备可以直接将第一数据包进行转发,而无需添加拥塞标记。

结合第一方面,在第一方面的第二种可能的实现方式中,所述根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度,包括:根据所述第一数据包的业务类型确定所述第一数据包传输所需要的队列的优先级;根据所述第一数据包传输所需要的队列的优先级从所述n个队列中选择优先级相匹配的第一队列。针对不同队列的优先级设置有对应的时延和吞吐率,则通过业务类型查找到时延和吞吐率满足第一数据包要求的队列,则该队列就是匹配成功的第一队列,通过优先级的要求匹配出第一队列,从而第一数据包就可以进入该第一队列。

结合第一方面,在第一方面的第三种可能的实现方式中,所述接收数据发送端发送的第一数据包之后,所述方法还包括:根据所述第一数据包的业务类型确定所述第一数据包进入用于传输携带有显式拥塞信号的数据包的队列,或者所述第一数据包进入用于传输未携带显式拥塞信号的数据包的队列进行调度,所述用于传输携带有显式拥塞信号的数据包的队列与所述用于传输未携带显式拥塞信号的数据包的队列对应于不同的优先级;在确定所述第一数据包进入所述用于传输携带有显式拥塞信号的数据包的队列的情况下,触发执行如下步骤:根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度。网络设备除了配置用于传输携带有显式拥塞信号的数据包的队列,还配置有用于传输未携带显式拥塞信号的数据包的队列,网络设备接收到第一数据包之后,还需要先确定第一数据包是否进入用于传输携带有显式拥塞信号的数据包的队列,从而可以实现对数据包按照业务类型从多个队列中选取对应的队列进行数据包传输,从而满足数据发送端的多种业务需求,而不是只能按照唯一的队列进行调度。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:在确定所述第一数据包进入所述用于传输未携带显式拥塞信号的数据包的队列的情况下,根据所述第一数据包的业务类型确定所述第一数据包进入m个队列中的第二队列进行调度,所述第二队列为所述m个队列中的一个队列,所述m个队列为用于传输未携带显式拥塞信号的数据包的队列,所述m为大于或等于1的自然数;在确定所述第一数据包进入所述第二队列的情况下,调度所述第二队列向数据接收端发送所述第一数据包。若确定第一数据包进入用于传输未携带显式拥塞信号的数据包的队列,网络设备无需对第一数据包进行主动队列管理,网络设备可以直接将第一数据包进行转发,而无需添加拥塞标记。

结合第一方面,在第一方面的第五种可能的实现方式中,所述方法还包括:根据所述n个队列分别对应的优先级配置所述n个队列中每个队列的标记阈值,所述标记阈值与所述优先级呈负相关。本发明实施例中网络设备对n个队列中每个队列配置不同的标记阈值,从而不同的标记阈值可以触发在不同的队列已使用长度的情况下是否执行添加拥塞标记的方式,即不同的标记阈值可以触发在不同的队列已使用长度的情况下进行主动队列管理。

结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述n个队列分别对应的优先级配置所述n个队列中每个队列的标记阈值,包括:通过如下方式计算所述n个队列中的第i个队列的阈值ki:其中,所述ki表示所述n个队列中的第i个队列标记的阈值大小,所述i为小于或等于n的自然数;所述c表示端口转发速率,所述rtt表示往返时延,所述λ表示所述n个队列中每个队列的最大使用长度比例,所述ωi表示第i个队列的优先级权重,所述∑ωj表示所述n个队列中所有队列对应的优先级权重之和。网络设备可以为用于传输携带有显式拥塞信号的数据包的n个队列分配设置优先级权重,则每个队列的优先级权重都与n个队列中所有队列对应的优先级权重之和相处,可以得到每个队列的优先级权重比例,通过该优先级权重比例来调节不同队列的标记阈值。数据发送端的拥塞控制算法越可扩展,达到最大的吞吐率需要占用的队列越少,而此时时延却可以降低100倍。所以在此情况下,只要保证ωi/∑ωj在1/10内即可保证高吞吐、低时延,同时不同的ki可获得高吞吐与低时延的不同组合。

结合第一方面,在第一方面的第七种可能的实现方式中,所述方法还包括:对所述n个队列按照所述时延的等级和所述吞吐率的等级进行分类;对于不同等级的所述时延和不同等级的所述吞吐率进行两两组合,得到时延与吞吐率组合,所述时延与吞吐率组合包括:不同等级的所述时延所分别对应的不同等级的所述吞吐率;将每个时延与吞吐率组合映射到所述n个队列中的不同队列上。对于不同等级的时延和不同等级的吞吐率进行两两组合,得到时延与吞吐率组合,时延与吞吐率组合包括:不同等级的时延所分别对应的不同等级的吞吐率,例如高吞吐与超低时延的组合,超高吞吐和低时延的组合等等,最后再将每个时延与吞吐率组合映射到n个队列中的不同队列上。

结合第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能或第六种可能或第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第二数据包,包括:根据所述第一队列对应的优先级获取所述第一队列对应的调度策略;根据获取到的所述调度策略将所述第一队列中的所述第一数据包发送给数据接收端。网络设备从n个队列中选择用于传输第一数据包的队列时,可以根据第一数据包的业务类型与队列的优先级进行匹配,在前述内容中针对不同队列的优先级设置有对应的时延和吞吐率,则通过业务类型查找到时延和吞吐率满足第一数据包要求的队列,则该队列就是匹配成功的第一队列,通过优先级的要求匹配出第一队列,从而第一数据包就可以进入该第一队列。

第二方面,本发明实施例还提供一种网络设备,包括:接收模块,用于接收数据发送端发送的第一数据包;队列确定模块,用于根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度,所述第一队列为所述n个队列中的一个队列,所述n个队列为用于传输携带有显式拥塞信号的数据包的队列,所述n个队列分别对应于不同的优先级,所述优先级根据时延latency和吞吐率throughput确定,所述n为大于或等于2的自然数;标记模块,用于在确定所述第一数据包进入所述第一队列的情况下,当所述第一队列的已使用长度超过所述第一队列对应的标记阈值时,在所述第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包;

发送模块,用于按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第二数据包,以使所述数据接收端在接收到所述第二数据包之后向所述数据发送端发送携带所述拥塞标记的响应消息。本发明实施例中根据时延和吞吐率对用于传输携带有显式拥塞信号的数据包的n个队列进行了优先级划分,对于数据发送端发送的不同数据包可以业务类型选择对应优先级的队列。对于数据发送端发送的第一数据包,选取出第一队列用于传输添加有拥塞标记的第一数据包,该第一数据包按照第一队列的优先级进行调度后,数据接收端会向数据发送端发送携带拥塞标记的响应消息,从而本发明实施例中可以实现主动队列管理,实现多队列情况下满足数据包对时延和吞吐率的要求。通过使用基于显式拥塞信号进行拥塞控制减少拥塞,将其应用到多队列中去,并根据队列资源阈值的分配实现不同时延、带宽的组合。本发明通过将显式拥塞信号与多队列的主动队列管理相结合,在保证吞吐率的同时可以降低时延,从而为大带宽、低时延的业务在传输层提供了解决方案,有利于相关业务的推广和部署。

在本发明的第二方面中,网络设备的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据的传输方法的流程方框示意图;

图2为本发明实施例提供的数据包通过多队列调度的应用场景示意图;

图3为本发明实施例提供的服务器和终端之间传输数据包的流程示意图;

图4-a为本发明实施例提供的一种网络设备的组成结构示意图;

图4-b为本发明实施例提供的另一种网络设备的组成结构示意图;

图4-c为本发明实施例提供的另一种网络设备的组成结构示意图;

图5为本发明实施例提供的另一种网络设备的组成结构示意图。

具体实施方式

本发明实施例提供了一种数据的传输方法和网络设备,用于实现多队列情况下满足数据包对时延和吞吐率的要求。

下面结合附图,对本发明的实施例进行描述。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

在现有技术基于tcp队列的调度方案中,无法对不同优先级的数据流进行区别调度,但是不同的业务对于时延和吞吐的侧重不一样,例如高清视频在需要低时延的同时对吞吐的要求更高、在线游戏对吞吐有要求的同时对时延的要求跟高,本发明实施例中用于传输携带有显式拥塞信号的数据包的n个队列可以按照队列的优先级能区别对待这些业务,并针对不同的侧重提供不同的保证,而本发明实施例中n个队列的优先级是通过latency和throughput进行配置的,本发明实施例能够解决现有技术中的队列困境,使得低时延与高吞吐在多队列存在的情况下同时满足,按照现有技术运营方若想提高低时延、高带宽,必须要被动扩充容量,或者提供网络专线,而这会提高很大成本,本发明实施例中不需要做扩容或者网络专线,就可以保证有些数据包对低时延和高带宽的要求。

本发明实施例需要解决在网络带宽已定、链路已定的情况下,解决由于队列的存在导致latency和throughput难已同时保证的问题以及解决业务对时延和吞吐都有需求,但是侧重点不同的场景下对这些业务的保证问题。例如在线游戏、4k高清视频,虚拟现实(virtualreality,vr)这些需要高吞吐、低时延的同时保障,不同场景下传输的数据包对时延、吞吐的要求又有需求层次的不同,例如,在线游戏在需要高吞吐的同时,对时延的要求更高;而高清视频,对时延要求比较高的同时,吞吐要求更高,所以本发明实施例中网络设备能够区别对待这些业务,由前述背景技术对现有技术的说明克制,在有buffer存在的情况下,高吞吐和低时延不能同时保证。本发明实施例实现多队列情况下满足数据包对时延和吞吐率的要求。接下来进行详细说明,请参阅图1所示,本发明一个实施例提供的数据的传输方法,方法包括:

101、接收数据发送端发送的第一数据包。

在本发明实施例中,网络设备和数据发送端之间建立有通信链路,数据发送端有数据包需要发送给数据接收端时,数据发送端可以通过网络设备来实现数据包的转发,在实际应用中,网络设备具体可以为路由器等。接下来以数据发送端发送的某一个数据包的传输过程进行说明,为便于描述,将数据发送端发送的数据包定义为“第一数据包”。

在本发明实施例中,为了使不同业务类型的数据包在网络设备侧进行不同的转发处理,数据发送端根据第一数据包的业务类型确定是否在第一数据包中配置显式拥塞信号(explicitcongestionsignal,ecs),使得网络设备侧可以根据数据发送端的具体配置选择对应的队列来调度数据包,其中,业务类型是指数据包所属的业务类别,例如数据包可以属于高清视频业务、在线游戏业务、邮件传输业务等。举例说明如下,数据发送端为邮件服务器,邮件服务器发送的数据包为邮件业务,邮件业务对时延、吞吐率要求不高,可以在邮件服务器发送的第一数据包不携带显式拥塞信号。又如,数据发送端为在线游戏服务器,在线游戏服务器发送的数据包为游戏业务,游戏业务对时延、吞吐率要求高,在线服务器发送的第一数据包中需要携带显式拥塞信号,使得网络设备能够进行主动队列管理(activequeuemanagement,aqm),网络设备执行的主动队列管理是一种对队列进行主动管理的手段,是相对于传统的尾部丢弃(tail-drop)的队列管理提出来的,用于避免tcp的全局同步。其中,全局同步是指多个tcp流之间同时减小、增大发送速率的行为,详见后续内容中网络设备执行的主动队列管理过程的说明。

在本发明的一些实施例中,步骤101接收数据发送端发送的第一数据包之后,除了执行步骤102,本发明实施例提供的数据的传输方法还可以包括如下步骤:

a1、根据第一数据包的业务类型确定第一数据包进入用于传输携带有显式拥塞信号的数据包的队列,或者第一数据包进入用于传输未携带显式拥塞信号的数据包的队列进行调度,用于传输携带有显式拥塞信号的数据包的队列与用于传输未携带显式拥塞信号的数据包的队列对应于不同的优先级;

a2、在确定第一数据包进入用于传输携带有显式拥塞信号的数据包的队列的情况下,触发执行如下步骤102:根据第一数据包的业务类型确定第一数据包进入n个队列中的第一队列进行调度。

具体的,本发明实施例中,网络设备除了配置用于传输携带有显式拥塞信号的数据包的队列,还配置有用于传输未携带显式拥塞信号的数据包的队列,其中,用于传输未携带显式拥塞信号的数据包的队列也可以称为传统的tcp队列,在传统tcp队列中是没有携带显式拥塞信号。那么在执行步骤102之前,网络设备接收到第一数据包之后,还需要先执行步骤a1的判断,在确定第一数据包进入用于传输携带有显式拥塞信号的数据包的队列的情况下,触发执行如下步骤102。数据发送端可以在第一数据包中确定是否携带显式拥塞信号,网络设备通过检测第一数据包的业务类型确定在该第一数据包中是否携带有显式拥塞信号,例如数据发送端根据第一数据包的业务类型确定是否携带显式拥塞信号。

进一步的,在本发明的另一些实施例中,在前述执行步骤a1至a2的实现场景下,本发明实施例提供的数据的传输方法还可以包括如下步骤:

b1、在确定第一数据包进入用于传输未携带显式拥塞信号的数据包的队列的情况下,根据第一数据包的业务类型确定第一数据包进入m个队列中的第二队列进行调度,第二队列为m个队列中的一个队列,m个队列为用于传输未携带显式拥塞信号的数据包的队列,m为大于或等于1的自然数;

b2、在确定第一数据包进入第二队列的情况下,调度第二队列向数据接收端发送第一数据包。

其中,网络设备通过第一数据包中是否携带显式拥塞信号确定是否需要进行主动队列管理,若确定第一数据包进入用于传输未携带显式拥塞信号的数据包的队列,则执行步骤b1和步骤b2,网络设备无需对第一数据包进行主动队列管理,网络设备可以直接将第一数据包进行转发,而无需添加拥塞标记。因此本发明实施例提供的网络设备中同时配置有用于传输携带有显式拥塞信号的数据包的队列、用于传输未携带显式拥塞信号的数据包的队列,从而可以实现对数据包按照业务类型从多个队列中选取对应的队列进行数据包传输,从而满足数据发送端的多种业务需求,而不是只能按照唯一的队列进行调度。

102、根据第一数据包的业务类型确定第一数据包进入n个队列中的第一队列进行调度,第一队列为n个队列中的一个队列,n个队列为用于传输携带有显式拥塞信号的数据包的队列,n个队列分别对应于不同的优先级,优先级根据时延latency和吞吐率throughput确定。

其中,n为大于或等于2的自然数。

在本发明实施例中,网络设备侧配置有用于传输携带有显式拥塞信号的数据包的n个队列,这n个队列都是用于传输携带有显式拥塞信号的数据包,其中网络设备侧配置的用于传输携带有显式拥塞信号的数据包的队列有多个,以满足不同业务类型的数据包的传输需要。本发明实施例中,网络设备配置的n个队列虽然都是用于传输携带有显式拥塞信号,但是这n个队列分别对应于不同的优先级,其中,优先级可以根据时延latency和吞吐率throughput确定,例如不同的队列对时延的要求不相同,则这些队列具有不同的优先级,又如不同的队列对throughput要求不相同,那么就可以配置不同的优先级,又如,不同的队列对时延和throughput要求都不相同,那么就可以配置不同的优先级。

在本发明实施例中,网络设备接收到数据发送端发送的第一数据包之后,通过第一数据包的业务类型可以确定该第一数据包对时延以及吞吐率的要求,从而网络设备可以为该第一数据包选择n个队列中的哪个队列,为便于描述,将网络设备从n个队列中确定下来的用于传输第一数据包的队列定义为“第一队列”,则网络设备选择出的第一队列具有的优先级对应的时延和吞吐率能够适用于第一数据包的业务类型要求,从而网络设备可以确定将第一数据包送入第一队列进行调度。需要说明的是,第一数据包需要进入n个队列中的哪个队列取决于第一数据包的业务类型以及n个队列中各个队列的优先级之间的匹配关系。

在本发明的一些实施例中,除了执行的方法步骤之外,本发明实施例提供的数据的传输方法,还可以包括如下步骤:

c1、根据n个队列分别对应的优先级配置n个队列中每个队列的标记阈值,标记阈值与优先级呈负相关。

其中,本发明实施例中网络设备对n个队列中每个队列配置不同的标记阈值,从而不同的标记阈值可以触发在不同的队列已使用长度的情况下是否执行步骤103中的添加拥塞标记的方式,即不同的标记阈值可以触发在不同的队列已使用长度的情况下进行主动队列管理,并且本发明实施例中,标记阈值与优先级呈负相关,举例说明,第一队列的优先级越高,需要设置的标记阈值越小,那么第一队列的已使用长度很容易就超过较小的标记阈值,从而就会触发对第一队列的主动队列管理,这样第一队列就享受到了高的优先级,那么高的优先级必然对应于低时延和高吞吐率,此时网络设备就需要分配更多的传输资源来优先保证第一队列中的数据包转发。同样的,第一队列的优先级越低,需要设置的标记阈值越大,那么第一队列的已使用长度需要达到很大时才能超过较大的标记阈值,此时才会触发对第一队列的主动队列管理,这样第一队列就享受到了低的优先级,那么低的优先级必然对应于较大时延和低吞吐率。

在本发明的实施例中,网络设备为用于传输携带有显式拥塞信号的数据包的n个队列配置的不同标记阈值与队列的优先级呈负相关,在实际应用中具有多种配置方式,例如建立不同标记阈值与队列的优先级之间的映射表,通过查表的方式确定不同队列的标记阈值。进一步的,在本发明的另一些实施例中,在前述执行步骤c1的实现场景下,步骤c1根据n个队列分别对应的优先级配置n个队列中每个队列的标记阈值,包括:

c11、通过如下方式计算n个队列中的第i个队列的阈值ki:

其中,ki表示n个队列中的第i个队列标记的阈值大小,i为小于或等于n的自然数;c表示端口转发速率,rtt表示往返时延,λ表示n个队列中每个队列的最大使用长度比例,ωi表示第i个队列的优先级权重,∑ωj表示n个队列中所有队列对应的优先级权重之和。

具体的,网络设备可以为用于传输携带有显式拥塞信号的数据包的n个队列分配设置优先级权重,则每个队列的优先级权重都与n个队列中所有队列对应的优先级权重之和相处,可以得到每个队列的优先级权重比例,通过该优先级权重比例来调节不同队列的标记阈值。举例说明如下,ki是队列i分配得到的标记阈值,其值越小表明队列累计的使用长度越小,因而时延越小,ωi是队列i的权重,λ根据不同的拥塞控制算法是一个比例,λ是个参数,取值在0-1之间。例如以dctcp(datacentertcp)的拥塞算法为例,λ取值为0.17即可达到最大的吞吐率,整体取值在0.01的时候可获得94%的吞吐率,理论依据在于,数据发送端的拥塞控制算法越可扩展(scalable),达到最大的吞吐率需要占用的队列越少,而此时时延却可以降低100倍。所以在此情况下,只要保证ωi/∑ωj在1/10内即可保证高吞吐、低时延,同时不同的ki可获得高吞吐与低时延的不同组合。

在本发明的一些实施例中,除了执行的方法步骤之外,本发明实施例提供的数据的传输方法,还可以包括如下步骤:

d1、对n个队列按照时延的等级和吞吐率的等级进行分类;

d2、对于不同等级的时延和不同等级的吞吐率进行两两组合,得到时延与吞吐率组合,时延与吞吐率组合包括:不同等级的时延所分别对应的不同等级的吞吐率;

d3、将每个时延与吞吐率组合映射到n个队列中的不同队列上。

其中,本发明实施例中网络设备可以对用于传输携带有显式拥塞信号的数据包的n个队列按照时延的等级和吞吐率的等级进行分类,例如以在线游戏(on-linegame)为例,同时需要高吞吐(highthroughput)、超低时延(ultra-lowlatency);高清视频(high-definitionvideo)则需要超高吞吐(ultra-highthroughput)、低时延(lowlatency);其它传统的业务,比如协议报文、通话等则需要超低时延,对于吞吐的要求则没有这么高。对于不同等级的时延和不同等级的吞吐率进行两两组合,得到时延与吞吐率组合,时延与吞吐率组合包括:不同等级的时延所分别对应的不同等级的吞吐率,例如高吞吐与超低时延的组合,超高吞吐和低时延的组合等等,最后再将每个时延与吞吐率组合映射到n个队列中的不同队列上。

在本发明的一些实施例中,除了执行的方法步骤之外,本发明实施例提供的数据的传输方法,还可以包括如下步骤:

e1、对m个队列按照时延的等级和吞吐率的等级进行分类;

e2、对于不同等级的时延和不同等级的吞吐率进行两两组合,得到时延与吞吐率组合,时延与吞吐率组合包括:不同等级的时延所分别对应的不同等级的吞吐率;

e3、将每个时延与吞吐率组合映射到m个队列中的不同队列上。

其中,本发明实施例中网络设备可以对用于传输未携带显式拥塞信号的数据包的m个队列按照时延的等级和吞吐率的等级进行分类,例如以在线游戏为例,同时需要高吞吐、超低时延;高清视频则需要超高吞吐、低时延;其它传统的业务,比如协议报文、通话等则需要超低时延,对于吞吐的要求则没有这么高。对于不同等级的时延和不同等级的吞吐率进行两两组合,得到时延与吞吐率组合,时延与吞吐率组合包括:不同等级的时延所分别对应的不同等级的吞吐率,例如高吞吐与超低时延的组合,超高吞吐和低时延的组合等等,最后再将每个时延与吞吐率组合映射到m个队列中的不同队列上。

因此,本发明实施例中,网络设备中同时配置有用于传输携带有显式拥塞信号的数据包的队列、用于传输未携带显式拥塞信号的数据包的队列,并且用于传输携带有显式拥塞信号的数据包的队列、用于传输未携带显式拥塞信号的数据包的队列都可以为多个队列,针对多个队列都可以按照时延与吞吐率的要求进行映射,从而不同数据包进行不同的队列中都可以实现不同的时延和吞吐率要求。

具体的,在本发明的一些实施例中,步骤102根据第一数据包的业务类型确定第一数据包进入n个队列中的第一队列进行调度,包括:

f1、根据第一数据包的业务类型确定第一数据包传输所需要的队列的优先级;

f2、根据第一数据包传输所需要的队列的优先级从n个队列中选择优先级相匹配的第一队列。

其中,网络设备从n个队列中选择用于传输第一数据包的队列时,可以根据第一数据包的业务类型与队列的优先级进行匹配,在前述内容中针对不同队列的优先级设置有对应的时延和吞吐率,则通过业务类型查找到时延和吞吐率满足第一数据包要求的队列,则该队列就是匹配成功的第一队列,通过优先级的要求匹配出第一队列,从而第一数据包就可以进入该第一队列。

103、在确定第一数据包进入第一队列的情况下,当第一队列的已使用长度超过第一队列对应的标记阈值时,在第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包。

在本发明实施例中,若网络设备确定使用第一队列来传输第一数据包,则第一数据包可以进入到第一队列中,网络设备可以对第一队列的已使用长度进行统计,并与该第一队列配置的标记(mark)阈值进行比较,其中,第一队列的已使用长度是指第一队列中当前已经进入数据包的长度,标记阈值是指为第一队列配置的需要打标记的队列使用长度阈值,该标记阈值与队列具有的优先级有关,对于不同的队列可以配置对应的标记阈值。本发明实施例中通过给每个用于传输携带有显式拥塞信号的数据包的队列设置不同的标记阈值的方式,进行不同的带宽与时延优先级的分配,并进行不同优先级的调度。当第一队列的已使用长度超过第一队列对应的标记阈值时,说明此时第一队列中容纳的数据包数量已经超过该第一队列的拥塞容忍强度,此时需要在第一数据包中携带的显式拥塞信号上添加拥塞标记,使得数据接收端能够识别出该拥塞标记,为了便于说明,将第一数据包中携带的显式拥塞信号上添加拥塞标记定义为“第二数据包”,以区分与从数据发送端接收到的第一数据包,第一数据包携带的显式拥塞信号具体可以为显式拥塞通知(explicitcongestionnotification,ecn)。举例说明如下,网络设备在第一数据包的ip头部的ecn字段中打上ecn标记。

在本发明的一些实施例中,除了执行的方法步骤之外,本发明实施例提供的数据的传输方法,还可以包括如下步骤:

g1、在确定第一数据包进入第一队列的情况下,当第一队列的已使用长度没有超过第一队列对应的标记阈值时,按照第一队列对应的优先级调度第一队列向数据接收端发送第一数据包。

在本发明实施例中,第一数据包进入第一队列,网络设备可以对第一队列的已使用长度进行统计,并与该第一队列配置的标记(mark)阈值进行比较,当第一队列的已使用长度没有超过第一队列对应的标记阈值时,说明此时第一队列中容纳的数据包数量没有超过该第一队列的拥塞容忍强度,网络设备无需对第一数据包进行主动队列管理,网络设备可以直接将第一数据包进行转发,而无需添加拥塞标记。

104、按照第一队列对应的优先级调度第一队列向数据接收端发送第二数据包,以使数据接收端在接收到第二数据包之后向数据发送端发送携带拥塞标记的响应消息。

在本发明实施例中,当第一队列的已使用长度超过第一队列对应的标记阈值时,网络设备将第一数据包转换为第二数据包,第二数据包相对于第一数据包,在携带的显式拥塞信号上添加有拥塞标记,网络设备根据第一队列对应的优先级调度第一队列向数据接收端发送第二数据包,即网络设备根据第一队列对应的优先级给该第一队列分配传输资源,从而使用网络设备的转发端口将第一队列中的第二数据包转发给数据接收端,数据接收端在接收到第二数据包之后向数据发送端发送携带拥塞标记的响应消息。举例说明如下,网络设备在第一数据包的ip头部的ecn字段中打上ecn标记,数据接收端在接收的时候根据ip层的ecn信息在响应消息的tcp上的ecn也进行标记,然后将此信息通知给数据发送端。

在本发明实施例中,数据接收端在接收到第二数据包之后可以生成携带拥塞标记的响应消息,数据接收端将携带拥塞标记的响应消息发送给网络设备,网络设备再将携带拥塞标记的响应消息转发给数据发送端。数据发送端根据该响应消息中携带的拥塞标记进行拥塞算法控制,举例说明如下,数据发送端根据收到的数据包中ecn的比例进行窗口调节,具体的做法是每个往返时延(round-triptime,rtt)统计收到的数据包中打了ecn标签的数据包的个数,根据此比例对窗口做相应的调节,从而达到scalablethroughput的目的,避免了以前的tcp例如reno,盲目的根据丢包进行大比例进行降窗,导致吞吐率剧烈抖动的原因。其中,rtt表示从数据发送端发送数据包开始,到数据发送端收到来自数据接收端的确认总共经历的时延。

在本发明的一些实施例中,步骤104按照第一队列对应的优先级调度第一队列向数据接收端发送第二数据包,包括:

h1、根据第一队列对应的优先级获取第一队列对应的调度策略;

h2、根据获取到的调度策略将第一队列中的第一数据包发送给数据接收端。

其中,网络设备对用于传输携带有显式拥塞信号的数据包的n个队列分别设置不同的调度策略,在确定使用第一队列传输第一数据包时,根据第一队列对应的优先级获取第一队列对应的调度策略,然后根据获取到的调度策略将第一队列中的第一数据包发送给数据接收端。举例说明如下,网络设备对不同优先级队列的资源进行分配,以及对不同优先级的队列进行调度,例如采用绝对优先级(strictpriority,sp)与加权轮询(weightedroundrobin,wrr)配置给不同优先级的队列,对于最高时延优先级的队列使用sp进行优先转发,其它的队列根据其权重进行wrr的转发。

通过前述实施例对本发明的举例说明可知,首先接收数据发送端发送的第一数据包,然后根据第一数据包的业务类型确定第一数据包进入n个队列中的第一队列进行调度,第一队列为n个队列中的一个队列,n个队列为用于传输携带有显式拥塞信号的数据包的队列,n个队列分别对应于不同的优先级,优先级根据时延latency和吞吐率throughput确定,在确定第一数据包进入第一队列的情况下,当第一队列的已使用长度超过第一队列对应的标记阈值时,在第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包,最后按照第一队列对应的优先级调度第一队列向数据接收端发送第二数据包,以使数据接收端在接收到第二数据包之后向数据发送端发送携带拥塞标记的响应消息。本发明实施例中根据时延和吞吐率对用于传输携带有显式拥塞信号的数据包的n个队列进行了优先级划分,对于数据发送端发送的不同数据包可以业务类型选择对应优先级的队列。对于数据发送端发送的第一数据包,选取出第一队列用于传输添加有拥塞标记的第一数据包,该第一数据包按照第一队列的优先级进行调度后,数据接收端会向数据发送端发送携带拥塞标记的响应消息,从而本发明实施例中可以实现主动队列管理,实现多队列情况下满足数据包对时延和吞吐率的要求。通过使用基于显式拥塞信号进行拥塞控制减少拥塞,将其应用到多队列中去,并根据队列资源阈值的分配实现不同时延、带宽的组合。本发明通过将显式拥塞信号与多队列的主动队列管理相结合,在保证吞吐率的同时可以降低时延,从而为大带宽、低时延的业务在传输层提供了解决方案,有利于相关业务的推广和部署。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。

请参阅图2所示,图2为本发明实施例提供的数据包通过多队列调度的应用场景示意图。

在目前的传输网络中使用的tcp方案中,数据传输仍然以tcp为主,且经常是如下三种流量共存:

1、多打一(incast),多出现在计算节点的汇聚的时候,往往会导致端口流量的突发burst,造成丢包。

2、小流(shortmessage),主要以控制消息等为主,需要低时延。

3、大象流(largeflows),主要体现在数据的备份等场景中,需要高吞吐。

为了同时满足不同数据流对于网络的要求,经过本发明实施例前面的分析,由于buffer的存在高吞吐和低时延是无法同时满足的。本发明实施例中,通过网络设备端(例如路由器)和数据发送端的配合,使用ecn做为拥塞信号,配合随机早丢器(randomearlydetection,red)做主动队列管理,可以缓解incast导致的burst行为,同时获得较小的buffer使用,获得低时延;数据发送端通过数据包中ecn标记的比例做拥塞控制,窗口的变化更加的可扩展,因而可以获得较高的吞吐率。

本发明需要解决在网络带宽已定、链路(网络拓扑结构)已定的情况下,解决由于队列的存在导致latency和throughput难已同时保证的问题以及解决业务对时延和吞吐都有需求,但是侧重点不同的场景下对这些业务的保证问题。例如在线游戏、4k高清视频,虚拟现实这些需要高吞吐、低时延的同时保障,不同业务对时延、吞吐的要求又有需求层次的不同,线游戏在需要高吞吐的同时,对时延的要求更高;而高清视频,对时延要求比较低的同时,吞吐要求更高,所以网络需要区别对待这些业务,在有buffer存在的情况下,高吞吐和低时延不能同时保证。

在本发明实施例中,为了保证不同带宽、时延的组合,如图2所示,以两个数据发送端分别为server1和server2为例,网络设备中设置数据包分类器(classifier)和调度器(scheduler),将整个网络设备的队列分为用于传输携带有显式拥塞信号的数据包的队列、用于传输未携带显式拥塞信号的数据包的队列,用于传输携带有显式拥塞信号的数据包的队列也称为基于显式拥塞信号的队列,用于传输未携带显式拥塞信号的数据包的队列也称为传统的队列(即不支持ecn的队列),例如,网络设备共有n个队列,其中,k是队列长度的阈值,例如k1和k’是为区分两个基于显式拥塞信号的队列的不同标记阈值,n是总共队列的个数,n’是基于显式拥塞信号的队列的个数,n-n’是不显示ecn的队列的个数。本发明实施例中将基于显式拥塞信号(ecs)与基于mark的主动队列管理(aqm)应用于多个队列,并配合数据发送端进行可扩展的(scalable)拥塞控制,其中,传统的队列可以是不需要高带宽、低时延的队列。过给每个基于显示拥塞信号的队列设置不同的mark阈值的方式,进行不同的带宽与时延优先级的分配,并进行不同优先级的调度。本发明实施例中在网络设备的队列入口处,通过数据分类器将不同业务的数据包分配到不同的队列,从而保证业务的网络要求。

接下来对网络设备的功能进行举例说明,c是数据包分类器,用于区分不同的业务场景,对流量进行分类,经过分类之后进入到不同优先级队列中去。网络设备中的队列分为基于显式拥塞信号进行主动管理的队列以及传统方式进行管理的队列,例如taildrop或者red。其中基于显式拥塞信号进行管理的队列是通过对经过的数据包在超过一定队列长度之后进行数据包标记的方法进行管理的,每个队列通过分配不同的标记阈值k达到相应的效果。其中,标记阈值k的分配是解决问题的关键,本发明实施例中设计如下的分配算法:k的取值和队列最多能积压多大的深度有关,而这又和排队时延有关。其中,通过如下方式计算n个队列中的第i个队列的阈值ki:

其中,ki表示n个队列中的第i个队列标记的阈值大小,i为小于或等于n的自然数;c表示端口转发速率,rtt表示往返时延,λ表示n个队列中每个队列的最大使用长度比例,ωi表示第i个队列的优先级权重,∑ωj表示n个队列中所有队列对应的优先级权重之和。

ωi是队列i的权重,和优先级有关,同时不同的k可获得高吞吐、低时延的不同组合,在下面的实施例中以数据发送端采用具体的拥塞控制算法,以ecn作为拥塞信号,给出具体的说明。

s是调度器(scheduler),用于对不同优先级队列的资源进行分配,以及对不同优先级的队列进行调度,这里采用strictpriority与weightedroundrobin相结合的方法,对于最高时延优先级的队列使用sp进行优先转发,其它的队列根据其权重进行wrr的转发。

server端针对采用的不同的队里管理的方式采用不同的拥塞控制算法,例如对于基于显式拥塞信号进行管理的队列中的数据包使用的是scalabletcpcongestioncontrol,对于传统的队列使用classictcpcongestioncontrol。

本发明实施例中在ip层和tcp层使用ecn作为网络拥塞信号,在网络设备端根据队列的长度做主动队列管理(activequeuemanagement,aqm),这是一种进行主动队列管理的手段,相对于传统的尾部丢弃(tail-drop)的队列管理提出来的,用于避免tcp的全局同步。全局同步即多个tcp流之间同时减小、增大发送速率的行为。具体的做法是在队列超过一定的标记阈值k的时候,网络设备在网际协议(internetprotocol,ip)头部的ecn字段中打上ecn的标记,数据接收端在接收的时候根据ip层的ecn信息,将tcp的ecn也进行标记然后将此信息通知发送端。

本发明实施例中,数据发送端根据收到的数据包中ecn的比例进行窗口调节,具体的做法是每个往返时延(round-triptime,rtt)统计收到的数据包中打了ecn标签的数据包的个数,根据此比例对发送窗口做相应的调节,从而达到可扩展的吞吐(scalablethroughput)的目的,避免了现有技术的tcp例如reno,盲目的根据丢包进行大比例进行降窗,导致吞吐率剧烈抖动的原因。

如图3所示,图3为本发明实施例提供的服务器和终端之间传输数据包的流程示意图。在传输网络上的一个具体实施例中,将显式拥塞通知作为显式拥塞信号,同时数据发送端的scalabletcp使用基于ecn比例,即被打了ecn标记的数据包占总数据包的比例。整体的实施案例如下:

数据发送端有两个,分别为:server1和server2,数据发送端通过骨干网(广域网)接入到网络设备中,网络设备先对数据发送端发送的流标记与分类,然后选择使用ecn标记的lq1、lq2或lq3进行主动队列管理,或者选择lq4进行传统的队列管理。网络设备选择出使用哪个队列传输数据包之后,通过调度器将添加有拥塞标记的数据包发送给手机客户端(client),例如网络设备和手机客户端之间建立有tcp连接1,例如通过接入网(城域网)再连接无线网络(wifi)或者家庭网关(homegateway,hg)发送给手机客户端中的应用程序(app)。

其中,网络设备可以是宽带网络网关(broadbandnetworkgateway,bng)或宽带远程接入服务器(broadbandremoteaccessserver,bras)上,在路由器入口的位置对业务按照差分服务标志位(differentiatedservicescodepoint,dscp)与ecn的优先级进行流分类,并向<throughput,latency>队列的组合进行映射,例如可以配置四个队列,分别对应<l1q:低吞吐、超低时延>,<l2q:高吞吐、低时延>,<l3q:超高吞吐,一般时延>,<l4q:一般吞吐,高时延>。吞吐分为四类:低、一般、高、超高,时延分为:低、一般、高、超低。对于l1q、l2q、l3q,分别设置优先权权重为1、2、4,从而有标记阈值如下:k1=c*rtt*0.17*1/7,k2=c*rtt*0.17*2/7,k3=c*rtt*0.17*4/7,对于l4q,这里使用普通的red进行丢弃而不是采用标记拥塞信号的方法。同时,l4q的优先级权重为8,用于后面的队列调度。

本发明实施例中,调度器使用的是wrr的调度方式,即每个队列基于权重分配优先级和时隙,这样既可以保证差异化又可以保证公平性。对于client端,协议栈使能tcp/ip的ecn功能,根据收到的数据包ip头的ecn信息,将拥塞标记通过ack发送给server端。对于server端,使用scalabletcp,根据ecn标记的比例进行调控,在此实施例可以使用前述的拥塞控制算法,传统tcp使用cubic或者reno。

本发明实施例中,由于有了ecn的功能,使得拥塞的表现有了具体的承载方式,现有技术中的tcp对拥塞的感知完全是通过丢包的方式,即数据发送端直到发现丢包才开始降窗口,而此时的队列已经被占满,从而会造成整个tcp全局同步现象,导致这时候到来的incast流量同时被丢弃,且由于队列占满,其中排队的数据包要经过很长时间的排队时延才能被转发走,从而造成时延大、对burst的容忍差。而ecn对拥塞信号的表现使得头端可以即时、细粒度的感知网络的拥塞情况,从而提前并且细粒度的对窗口做调节,避免队列的拥塞,又有更多的空间来容忍burst。

本发明实施例中,数据发送端的窗口调节方法如下:

α←(1-g)α+gf,

其中,f表示当前rtt内标记了ecn的数据包占所有数据包的比例,对f进行滑动平均得到α,之后根据α计算拥塞窗口(congestionwindow,cwnd),用于tcp控制发送数据包量的参数以防止网络的拥塞。这样cwnd的变化和拥塞程度相关联,且控制更加的细粒度。又根据数据发送端的拥塞控制算法越scalable,用满带宽需要的设备buffer越少这一结论,本发明实施例中可以在获得较少buffer使用量的情况下获得较高的吞吐,相比于传统的tcp,本发明实施例的队列使用较小,是传统tcp的十分之一。本发明实施例中在仅使用1%的队列大小的时候仍然可以获得94%的吞吐率。从而可以说,本发明实施例在队列使用较小的情况下,可以获得较高的吞吐率。

本发明实施例中,通过显式拥塞信号与多队列的aqm相结合,在保证吞吐率的同时可以降低时延,从而为大带宽、低时延的业务在传输层提供了解决方案,有利于相关业务的推广和部署。从当前时延的组成来看,网络设备拥塞带来的毫秒级的排队时延是最急需解决的,本发明实施例在网络拓扑环境、硬件条件确定的情况下,可以解决针对buffer进行改进来获得不同吞吐、时延优先级组合,本发明实施例中通过使用基于显式拥塞信号进行拥塞控制减少拥塞,将其应用到路由器的多队列中去,并根据队列资源阈值的分配实现不同时延、带宽的组合。

本发明实施例中,针对不同业务进行主动队列管理,提出的低时延与高吞吐不同优先级组合的方法;将显示拥塞控制应用到多队列的网络设备中去,并和传统tcp混合使用;通过分配主动队列管理中的阈值来实现不同时延、吞吐组合的方法。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图4-a所示,本发明实施例提供的一种网络设备400,可以包括:接收模块401、队列确定模块402、标记模块403、发送模块404,其中,

接收模块401,用于接收数据发送端发送的第一数据包;

队列确定模块402,用于根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度,所述第一队列为所述n个队列中的一个队列,所述n个队列为用于传输携带有显式拥塞信号的数据包的队列,所述n个队列分别对应于不同的优先级,所述优先级根据时延latency和吞吐率throughput确定,所述n为大于或等于2的自然数;

标记模块403,用于在确定所述第一数据包进入所述第一队列的情况下,当所述第一队列的已使用长度超过所述第一队列对应的标记阈值时,在所述第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包;

发送模块404,用于按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第二数据包,以使所述数据接收端在接收到所述第二数据包之后向所述数据发送端发送携带所述拥塞标记的响应消息。

在本发明的一些实施例中,所述发送模块404,还用于在确定所述第一数据包进入所述第一队列的情况下,当所述第一队列的已使用长度没有超过所述第一队列对应的标记阈值时,按照所述第一队列对应的优先级调度所述第一队列向数据接收端发送所述第一数据包。

在本发明的一些实施例中,所述队列确定模块402,具体用于根据所述第一数据包的业务类型确定所述第一数据包传输所需要的队列的优先级;根据所述第一数据包传输所需要的队列的优先级从所述n个队列中选择优先级相匹配的第一队列。

在本发明的一些实施例中,所述队列确定模块402,还用于所述接收模块接收数据发送端发送的第一数据包之后,根据所述第一数据包的业务类型确定所述第一数据包进入用于传输携带有显式拥塞信号的数据包的队列,或者所述第一数据包进入用于传输未携带显式拥塞信号的数据包的队列进行调度,所述用于传输携带有显式拥塞信号的数据包的队列与所述用于传输未携带显式拥塞信号的数据包的队列对应于不同的优先级;在确定所述第一数据包进入所述用于传输携带有显式拥塞信号的数据包的队列的情况下,触发执行如下步骤:根据所述第一数据包的业务类型确定所述第一数据包进入n个队列中的第一队列进行调度。

进一步的,在本发明的一些实施例中,所述队列确定模块402,还用于在确定所述第一数据包进入所述用于传输未携带显式拥塞信号的数据包的队列的情况下,根据所述第一数据包的业务类型确定所述第一数据包进入m个队列中的第二队列进行调度,所述第二队列为所述m个队列中的一个队列,所述m个队列为用于传输未携带显式拥塞信号的数据包的队列,所述m为大于或等于1的自然数;

所述发送模块404,还用于在确定所述第一数据包进入所述第二队列的情况下,调度所述第二队列向数据接收端发送所述第一数据包。

在本发明的一些实施例中,请参阅图4-b所示,所述网络设备400还包括:标记阈值配置模块405,用于根据所述n个队列分别对应的优先级配置所述n个队列中每个队列的标记阈值,所述标记阈值与所述优先级呈负相关。

进一步的,在本发明的一些实施例中,所述标记阈值配置模块405,具体用于通过如下方式计算所述n个队列中的第i个队列的阈值ki:

其中,所述ki表示所述n个队列中的第i个队列标记的阈值大小,所述i为小于或等于n的自然数;所述c表示端口转发速率,所述rtt表示往返时延,所述λ表示所述n个队列中每个队列的最大使用长度比例,所述ωi表示第i个队列的优先级权重,所述∑ωj表示所述n个队列中所有队列对应的优先级权重之和。

在本发明的一些实施例中,请参阅图4-c所示,所述网络设备400还包括:优先级配置模块406,用于对所述n个队列按照所述时延的等级和所述吞吐率的等级进行分类;对于不同等级的所述时延和不同等级的所述吞吐率进行两两组合,得到时延与吞吐率组合,所述时延与吞吐率组合包括:不同等级的所述时延所分别对应的不同等级的所述吞吐率;将每个时延与吞吐率组合映射到所述n个队列中的不同队列上。

在本发明的一些实施例中,所述发送模块404,具体用于根据所述第一队列对应的优先级获取所述第一队列对应的调度策略;根据获取到的所述调度策略将所述第一队列中的所述第一数据包发送给数据接收端。

需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。

综上可知,首先接收数据发送端发送的第一数据包,然后根据第一数据包的业务类型确定第一数据包进入n个队列中的第一队列进行调度,第一队列为n个队列中的一个队列,n个队列为用于传输携带有显式拥塞信号的数据包的队列,n个队列分别对应于不同的优先级,优先级根据时延latency和吞吐率throughput确定,在确定第一数据包进入第一队列的情况下,当第一队列的已使用长度超过第一队列对应的标记阈值时,在第一数据包中携带的显式拥塞信号上添加拥塞标记,得到第二数据包,最后按照第一队列对应的优先级调度第一队列向数据接收端发送第二数据包,以使数据接收端在接收到第二数据包之后向数据发送端发送携带拥塞标记的响应消息。本发明实施例中根据时延和吞吐率对用于传输携带有显式拥塞信号的数据包的n个队列进行了优先级划分,对于数据发送端发送的不同数据包可以业务类型选择对应优先级的队列。对于数据发送端发送的第一数据包,选取出第一队列用于传输添加有拥塞标记的第一数据包,该第一数据包按照第一队列的优先级进行调度后,数据接收端会向数据发送端发送携带拥塞标记的响应消息,从而本发明实施例中可以实现主动队列管理,实现多队列情况下满足数据包对时延和吞吐率的要求。通过使用基于显式拥塞信号进行拥塞控制减少拥塞,将其应用到多队列中去,并根据队列资源阈值的分配实现不同时延、带宽的组合。本发明通过将显式拥塞信号与多队列的主动队列管理相结合,在保证吞吐率的同时可以降低时延,从而为大带宽、低时延的业务在传输层提供了解决方案,有利于相关业务的推广和部署。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。

接下来介绍本发明实施例提供的另一种网络设备,请参阅图5所示,网络设备500包括:

接收器501、发射器502、处理器503和存储器504(其中网络设备500中的处理器503的数量可以一个或多个,图5中以一个处理器为例)。在本发明的一些实施例中,接收器501、发射器502、处理器503和存储器504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。

存储器504可以包括只读存储器和随机存取存储器,并向处理器503提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器(英文全称:non-volatilerandomaccessmemory,英文缩写:nvram)。存储器504存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

处理器503控制的操作,处理器503还可以称为中央处理单元(英文全称:centralprocessingunit,英文简称:cpu)。具体的应用中,网络设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本发明实施例揭示的方法可以应用于处理器503中,或者由处理器503实现。处理器503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器503可以是通用处理器、数字信号处理器(英文全称:digitalsignalprocessing,英文缩写:dsp)、专用集成电路(英文全称:applicationspecificintegratedcircuit,英文缩写:asic)、现场可编程门阵列(英文全称:field-programmablegatearray,英文缩写:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器504,处理器503读取存储器504中的信息,结合其硬件完成上述方法的步骤。

接收器501可用于接收输入的数字或字符信息,以及产生与网络设备的相关设置以及功能控制有关的信号输入,发射器502可包括显示屏等显示设备,发射器502可用于通过外接接口输出数字或字符信息。

本发明实施例中,处理器503,用于执行前述的数据的传输方法,详见前述实施例的说明。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1