一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据流接纳方法、装置及系统、计算机可读存储介质与流程

2021-11-09 20:35:00 来源:中国专利 TAG:


1.本技术涉及网络技术领域,特别涉及一种数据流接纳方法、装置及系统、计算机可读存储介质。


背景技术:

2.接纳控制(admission control,ac)是无线资源管理(radio resource management,rrm)的重要组成部分,是一种通过限制进入网络的业务量来减少网络拥塞、保证服务质量和网络资源利用率的重要机制。在接纳控制系统中,通常由接纳控制器负责对用户设备(user equipment,ue)的接入请求进行判决,决定是否接纳ue请求接入的数据流(以下简称:待接入数据流)进入网络。
3.目前,接纳控制器在接收到ue发送的接入请求后,首先基于该接入请求确定待接入数据流的需求带宽,然后通过比较待接入数据流的需求带宽以及网络剩余带宽,确定是否接纳该待接入数据流进入网络。
4.但是,由于待接入数据流的需求带宽的获取难度以及网络剩余带宽的实时检测难度均较高,接纳控制器无法保证获取的待接入数据流的需求带宽以及网络剩余带宽的可靠性,因此目前接纳控制器对数据流进行接纳控制的可靠性较低。另外,由于接纳控制器通常需要采用深度包检测(deep packet inspection,dpi)算法等复杂度较高的算法确定待接入数据流的需求带宽,因此接纳控制器的计算开销较大。


技术实现要素:

5.本技术提供了一种数据流接纳方法、装置及系统、计算机可读存储介质,可以解决目前接纳控制器对数据流进行接纳控制的可靠性较低以及计算开销较大的问题。
6.第一方面,提供了一种数据流接纳方法。该方法包括:控制设备获取该控制设备所管理的网络中的网络设备的设备状态信息,该设备状态信息中包括网络设备中的第一出端口队列的队列状态信息。控制设备根据第一出端口队列的队列状态信息,确定是否接纳目标数据流进入网络。其中,网络设备位于目标数据流在该网络中的转发路径上,该第一出端口队列用于转发该目标数据流。
7.本技术中,控制设备根据网络设备中出端口队列的队列状态信息确定是否接纳新的数据流进入网络,无需预测新的数据流的需求带宽以及检测网络剩余带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。
8.可选地,第一出端口队列的队列状态信息用于指示第一出端口队列是否满载。
9.本技术中,控制设备可以根据队列状态信息确定该出端口队列是否满载,进而确定是否接纳该新的数据流。当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列满载时,控制设备确定不接纳该新的数据流,当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列不满载时,控制设备确定接纳该新的数据流,进而可以准确地实现对数据流的接纳控制。
10.可选地,第一出端口队列的队列状态信息基于该第一出端口队列对应的ecn阈值以及该第一出端口队列的队列深度信息确定,该ecn阈值为网络设备为第一出端口队列中的数据包设置ecn标记的门限值。
11.本技术中,由于出端口队列的队列状态信息基于对应的ecn水线确定,即网络设备支持ecn机制,网络中能够自行调整发送端的发包速率,因此控制设备无需检测各个网络设备的剩余带宽,当网络中接入新的数据流时,该新的数据流的发送端可以在有限的剩余带宽下逐步地非丢包的试探带宽,如果不能满足其需求带宽,该发送端的发送窗口也会被压制到剩余带宽的允许范围内,而无需控制设备调整新的数据流的发包速率,进一步节约了控制设备的处理资源。
12.可选地,控制设备根据第一出端口队列的队列状态信息,确定是否接纳目标数据流进入网络的实现过程,包括:当第一出端口队列满载时,控制设备确定不接纳目标数据流进入网络。也即是,当位于目标数据流的转发路径上的任一网络设备中用于转发该目标数据流的出端口队列满载时,控制设备确定不接纳该目标数据流进入网络。
13.可选地,控制设备根据第一出端口队列的队列状态信息,确定是否接纳目标数据流进入网络的实现过程,包括:当第一出端口队列不满载时,控制设备确定接纳目标数据流进入网络;或者,当第一出端口队列不满载,且位于转发路径上其他网络设备中的第二出端口队列不满载时,控制设备确定接纳目标数据流进入网络,第二出端口队列用于转发目标数据流,也即是,当位于目标数据流的转发路径上的所有网络设备中用于转发该目标数据流的出端口队列均不满载时,控制设备确定接纳该目标数据流进入网络。
14.可选地,第一出端口队列的优先级与目标数据流的优先级相匹配。
15.第一种实现方式中,控制设备获取控制设备所管理的网络中的网络设备的设备状态信息的实现过程,包括:控制设备周期性地接收网络设备发送的设备状态信息。
16.在本实现方式中,控制设备可以周期性地接收到该控制设备所管理的网络中的网络设备发送的设备状态信息,当有新的数据流欲接入网络时,控制设备在确定该新的数据流的转发路径后,可以根据自身存储的各个网络设备的设备状态信息,及时确定是否接纳该新的数据流进入网络,控制设备判断是否接纳数据流进入网络的效率和实时性较高。
17.第二种实现方式中,控制设备在确定网络设备位于转发路径上之后,向网络设备发送设备状态信息获取指令;则控制设备获取控制设备所管理的网络中的网络设备的设备状态信息的实现过程,包括:控制设备接收网络设备基于设备状态信息获取指令发送的设备状态信息。
18.在本实现方式中,控制设备先获取目标数据流在网络中的转发路径,然后向位于该转发路径上的网络设备发送设备信息获取指令,以获取位于该转发路径上的网络设备的设备状态信息。由于网络设备无需周期性地主动向控制设备发送设备状态信息,而是在接收到控制设备发送的设备状态信息获取指令后再向控制设备发送设备状态信息,可以节约网络设备与控制设备之间的传输资源。
19.第二方面,提供了一种数据流接纳方法。该方法包括:网络设备向管理该网络设备所在网络的控制设备发送设备状态信息,该设备状态信息中包括网络设备中的第一出端口队列的队列状态信息,该第一出端口队列的队列状态信息用于控制设备确定是否接纳目标数据流进入网络。其中,网络设备位于目标数据流在网络中的转发路径上,第一出端口队列
用于转发目标数据流。
20.可选地,第一出端口队列的队列状态信息用于指示第一出端口队列是否满载。
21.可选地,网络设备还可以获取第一出端口队列对应的ecn阈值以及第一出端口队列的队列深度信息,该ecn阈值为网络设备为第一出端口队列中的数据包设置ecn标记的门限值。网络设备根据ecn阈值以及第一出端口队列的队列深度信息,确定第一出端口队列是否满载。
22.可选地,网络设备获取第一出端口队列对应的ecn阈值以及第一出端口队列的队列深度信息的实现过程,包括:网络设备获取第一出端口队列在目标时间段内对应的ecn阈值,以及第一出端口队列在目标时间段内不同时刻的多个队列深度值。则网络设备根据ecn阈值以及第一出端口队列的队列深度信息,确定第一出端口队列是否满载的实现过程,包括:当第一出端口队列在目标时间段内不同时刻的多个队列深度值与第一出端口队列在目标时间段内对应的ecn阈值满足目标满载条件时,网络设备确定第一出端口队列在目标时间段内满载。
23.可选地,目标时间段的时长等于目标数据流在所述网络中的n个rtt,n为大于1的整数。
24.可选地,目标满载条件包括以下一个或多个:多个队列深度值中每个队列深度值与ecn阈值的绝对差值小于第一阈值;多个队列深度值与ecn阈值的绝对差值的平均值小于第二阈值;多个队列深度值中每个队列深度值与ecn阈值的方差值小于第三阈值;多个队列深度值与ecn阈值的方差值的平均值小于第四阈值。也即是,当出端口队列在目标时间段内的队列深度在ecn阈值附近振荡时,说明该出端口队列在目标时间段内满载。
25.第三方面,提供了一种数据流接纳装置,用于控制设备。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
26.第四方面,提供了一种数据流接纳装置,用于网络设备。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第二方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
27.第五方面,提供了一种控制设备,包括:处理器和存储器;
28.所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
29.所述处理器,用于调用所述计算机程序,实现如第一方面任一所述的数据流接纳方法。
30.第六方面,提供了一种网络设备,包括:处理器和存储器;
31.所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
32.所述处理器,用于调用所述计算机程序,实现如第二方面任一所述的数据流接纳方法。
33.第七方面,提供了一种数据流接纳系统,包括:控制设备和网络设备,所述控制设备包括如第三方面所述的数据流接纳装置或为如第五方面所述的控制设备,所述网络设备包括如第四方面所述的数据流接纳装置或为如第六方面所述的网络设备。
34.第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被计算机设备的处理器执行时,实现如第一方面及其各实施方式或第二方面及其各实施方式任一所述的数据流接纳方法。
35.第九方面,提供了一种芯片,芯片包括可编程逻辑电路和/或程序指令,当芯片运行时,实现如第一方面及其各实施方式或第二方面及其各实施方式任一所述的数据流接纳方法。
36.本技术提供的技术方案带来的有益效果至少包括:
37.本技术中,控制设备根据网络设备中出端口队列的队列状态信息确定是否接纳新的数据流进入网络,无需预测新的数据流的需求带宽以及检测网络剩余带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。另外,控制设备可以根据队列状态信息确定该出端口队列是否满载,进而确定是否接纳该新的数据流。当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列满载时,控制设备确定不接纳该新的数据流,当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列不满载时,控制设备确定接纳该新的数据流,进而可以准确地实现对数据流的接纳控制。由于出端口队列的队列状态信息基于对应的ecn水线确定,即网络设备支持ecn机制,网络中能够自行调整发送端的发包速率,因此控制设备无需检测各个网络设备的剩余带宽,当网络中接入新的数据流时,该新的数据流的发送端可以在有限的剩余带宽下逐步地非丢包的试探带宽,如果不能满足其需求带宽,该发送端的发送窗口也会被压制到剩余带宽的允许范围内,而无需控制设备调整新的数据流的发包速率,进一步节约了控制设备的处理资源。
附图说明
38.图1是本技术实施例提供的一种数据流接纳系统的结构示意图;
39.图2是本技术实施例提供的一种网络设备的结构示意图;
40.图3是本技术实施例提供的一种数据流接纳方法的流程示意图;
41.图4是本技术实施例提供的出端口队列的队列深度在多个周期内的变化示意图;
42.图5是本技术实施例提供的一种用于承载设备状态信息的报文格式示意图;
43.图6是本技术实施例提供的一种数据流接纳装置的结构示意图;
44.图7是本技术实施例提供的另一种数据流接纳装置的结构示意图;
45.图8是本技术实施例提供的又一种数据流接纳装置的结构示意图;
46.图9是本技术实施例提供的再一种数据流接纳装置的结构示意图;
47.图10是本技术实施例提供的一种数据流接纳装置的框图。
具体实施方式
48.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
49.图1是本技术实施例提供的一种数据流接纳系统的结构示意图。如图1所示,该系统包括:控制设备101以及控制设备101所管理的网络中的网络设备102a-102c(统称为网络设备102)。控制设备101所管理的网络即通信网络。图1中网络设备的数量仅用作示意,不作
为对本技术实施例提供的通信网络的限制。该通信网络可以是数据中心网络(data center network,dcn)、城域网络、广域网络、软件定义广域网(software defined wide area network,sd-wan)、园区网络、虚拟局域网(virtual local area network,vlan)或虚拟扩展局域网(virtual extensible local area network,vxlan)等,本技术实施例对通信网络的类型不做限定。
50.控制设备101与网络设备102之间通过有线网络或无线网络连接。控制设备101用于管理和控制网络设备102。例如在本技术实施例中,控制设备101用于管理网络设备102上转发的数据流。控制设备101可以是网络控制器,网络管理设备,网关或其它具有控制能力的设备。控制设备101可以是一台或多台设备。例如,控制设备101可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。网络设备102可以是交换机或路由器等。通信网络中的发送端和接收端之间通过网络设备102转发数据包实现通信。网络设备102中包括一个或多个出端口队列,该出端口队列用于缓存通信网络中的发送端向接收端发送的数据包。
51.本技术实施例提供的通信网络基于显式拥塞通知(explicit congestion notification,ecn)机制进行拥塞控制。在本技术实施例提供的通信网络中,发送端和接收端之间支持采用传输控制协议(transmission control protocol,tcp)机制进行数据传输,网络设备支持ecn标记机制。可选地,图2是本技术实施例提供的一种网络设备的结构示意图。如图2所示,该网络设备包括:网络处理器(network processor,np)、数据包编辑器(packet editor,pe)、出端口队列(output buffer,ob)和流量管理器(traffic manager,tm)。网络处理器用于向数据包编辑器发送使能ecn的指令;从流量管理器的寄存器中读取队列缓存信息和队列出包速率;计算出端口队列的ecn阈值,该ecn阈值为网络设备为出端口队列中的数据包设置ecn标记的门限值,该ecn阈值也可称为ecn水线;和/或,修改出数据包的字段,等等。数据包编辑器用于向流量管理器发送使能ecn的指令。出端口队列用于缓存数据包。流量管理器用于从出端口队列获取并存储队列缓存信息和队列出包速率;根据网络处理器计算得到的ecn阈值,修改寄存器中的ecn阈值;和/或,根据ecn阈值和队列缓存信息修改数据包的互联网协议(internet protocol,ip)头部的ecn字段。其中,图2中网络设备的各个部件之间的连线的箭头指向表示信息可传递方向。
52.可选地,通信网络基于ecn机制进行拥塞控制的过程包括以下步骤a-f:
53.在步骤a中,发送端向网络设备发送数据包。
54.在请求评论(request for comments,rfc)3168中描述,数据包的ip头部的服务类型(type of service,tos)字段中的第7和8比特的保留位被定义为ecn字段,ecn字段具有4个取值。ecn字段取值为00,表示该数据包不支持ecn功能;ecn字段取值为01或10,表示该数据包支持ecn功能;ecn字段取值为11,表示该数据包在传输过程中发生拥塞。对于ip头部中ecn字段的不同取值的含义和解释具体可参考rfc3168,本技术实施例在此不再赘述。
55.可选地,发送端使能数据中心tcp(data center tcp,dctcp)功能。则发送端发送的数据包的ip头部中的ecn字段的值置为01或10。或者,发送端也可以不使能dctcp功能,则发送端发送的数据包的ip头部中的ecn字段的值置为00。网络设备在接收到该数据包后,由网络设备中的网络处理器将该数据包的ip头部中的ecn字段的值修改为01或10。本技术实施例以发送端使能dctcp功能为例进行说明。
56.网络设备接收到数据包后,根据用于转发该数据包的出端口队列的队列长度进行主动队列管理(active queue management,aqm),具体实现方式参考下述步骤b至步骤c:
57.在步骤b中,网络设备检测第一出端口队列的队列深度是否超出对应的ecn阈值。
58.该第一出端口队列为网络设备中用于转发接收到的数据包的出端口队列。出端口队列的队列深度用于表示该出端口队列中缓存的数据包的总字节数。出端口队列的队列深度越大,表示出端口队列被占用的内存越大。数据包的传输时延与出端口队列的队列深度正相关,也即是,出端口队列的队列深度越大,数据包的传输时延越长。
59.可选地,网络设备中的每个出端口队列均配置有ecn阈值。不同出端口队列对应的ecn阈值可以相同,也可以不同。
60.本技术实施例中,网络设备中的出端口队列对应的ecn阈值可以是静态配置的。或者,网络设备中的出端口队列对应的ecn阈值也可以动态调整。例如,出端口队列对应的ecn阈值可以周期性地调整,该出端口队列在下一周期对应的ecn阈值,由该出端口队列在上一周期内的队列深度变化信息、队列出包速率、端口带宽和/或ecn包占比等确定。本技术实施例对动态调整出端口队列对应的ecn阈值的方式不做限定。
61.在步骤c中,当第一出端口队列的队列深度超出对应的ecn阈值时,网络设备为数据包设置ecn标记,并将设置有ecn标记的数据包缓存至第一出端口队列中。
62.网络设备为数据包设置ecn标记,即网络设备将数据包的ip头部中的ecn字段的值置为11。
63.可选地,当第一出端口队列的队列深度未超出对应的ecn阈值时,网络设备将接收到的数据包缓存至第一出端口队列中,即网络设备不改变数据包的ip头部中的ecn字段的值。
64.在步骤d中,网络设备向接收端发送第一出端口队列中的数据包。
65.在步骤e中,当接收端接收到设置有ecn标记的数据包时,接收端向发送端反馈拥塞信息。
66.该拥塞信息用于通知发送端该数据包在传输过程中发生了拥塞。该拥塞信息可以承载于tcp报文中。例如,当tcp报文的tcp头部中的ecn响应(ecn-echo,ece)字段置为1时,表示该tcp报文中携带有拥塞信息。可选地,接收端可以采用确认字符(acknowledge character,ack)报文向发送端反馈拥塞信息。当接收端接收到ip头部中的ecn字段的值为11的数据包时,可以将该数据包对应的ack报文的tcp头部中的ece字段置为1,然后向发送端发送该ack报文。
67.在步骤f中,发送端根据接收端反馈的拥塞信息,调整后续数据包的发送速率。
68.发送端发送数据包的速率(简称:发包速率)由发送窗口的大小决定,该发包速率与发送窗口的大小正相关。其中,发送窗口也可称为拥塞窗口(congestion window,cwnd)。
69.可选地,当发送端使能dctcp功能,发送端可以根据接收端反馈的拥塞信息,周期性地调节发送窗口的大小。发送端可以在数据包对应的每个往返时间(round trip time,rtt)内,根据上个rtt内的数据包的拥塞程度,调节下个rtt的发送窗口的大小。例如,网络设备在第n 1个rtt内的发送窗口的大小cwnd[n 1]与在第n个rtt内的发送窗口的大小cwnd[n]可以满足以下公式:
[0070]
cwnd[n 1]=cwnd[n]*(1-a[n 1]/2),n为正整数。
[0071]
其中,a为调窗参数,a[n 1]=(1-g)*a[n] g*f[n]。f[n]表示网络设备在第n个rtt内接收到tcp头部中的ece字段置为1的ack报文占接收到的总的ack报文的数量比例。g为加权平均因子,用于评估拥塞概率,g的取值范围可以为[0,1],通常取值为1/16。
[0072]
可选地,当发送端不使能dctcp功能,可以由位于发送端和网络设备之间的接入点(access point,ap)劫持接收端发送的ack报文,并根据接收到的ack报文的数量以及ece字段置为1的ack报文的占比等信息,周期性地调节发送端的发送窗口的大小,并将调节后的发送窗口的大小发送给发送端,供发送端使用。ap调节发送端的发送窗口的大小的方式可参考上述发送端调节发送窗口的大小的方式,本技术实施例在此不再赘述。
[0073]
发送端根据接收端反馈的拥塞信息对发送窗口的大小进行调整之后,再向接收端发送数据包时,可以将数据包的tcp头部中的拥塞窗口减小(congestion window reduced,cwr)字段的值置为1,以通知接收端发送窗口已减小。
[0074]
图3是本技术实施例提供的一种数据流接纳方法的流程示意图。该方法可以应用于如图1所示的数据流接纳系统中。如图3所示,该方法包括:
[0075]
步骤301、控制设备获取该控制设备所管理的网络中的网络设备的设备状态信息,该设备状态信息中包括该网络设备中的第一出端口队列的队列状态信息。
[0076]
其中,该网络设备位于目标数据流在该控制设备所管理的网络中的转发路径上。可选地,该网络设备可以是该转发路径上的任一网络设备。第一出端口队列用于转发该目标数据流,即第一出端口队列为该网络设备中用于转发该目标数据流的出端口队列。目标数据流为待接入网络的数据流。
[0077]
可选地,第一出端口队列的优先级与目标数据流的优先级相匹配。本技术实施例中,控制设备可以先获取目标数据流在该控制设备所管理的网络中的转发路径,再获取位于该转发路径上的网络设备的设备状态信息,并确定该网络设备中优先级与目标数据流的优先级相匹配的第一出端口队列。以下对控制设备获取目标数据流在网络中的转发路径、控制设备确定优先级与目标数据流的优先级相匹配的出端口队列以及控制设备获取位于转发路径上的网络设备的设备状态信息的实现过程分别进行说明。
[0078]
第一,控制设备获取目标数据流在网络中的转发路径。
[0079]
可选地,控制设备接收针对目标数据流的接入请求,该接入请求中包括目标数据流的标识。然后控制设备根据该目标数据流的标识确定该目标数据流在网络中的转发路径。目标数据流的标识可以是该目标数据流的五元组信息,具体包括目标数据流的源ip地址、目的ip地址、源端口、目的端口和传输层协议。本技术实施例提供的网络采用的传输层协议为tcp。
[0080]
目标数据流在网络中的转发路径上包括一个或多个网络设备。控制设备根据目标数据流的标识可以确定该目标数据流的转发路径以及该目标数据流在位于该转发路径上的各个网络设备上的出端口。目标数据流在网络设备上的出端口,即网络设备中用于发送该目标数据流的端口,该出端口可以是上行端口或下行端口。
[0081]
示例地,目标数据流在网络中的转发路径为:网络设备a

网络设备b

网络设备c。
[0082]
第二,控制设备确定优先级与目标数据流的优先级相匹配的出端口队列。
[0083]
网络设备具有一个或多个端口,每个端口对应一条传输链路。一条传输链路上通
常能够创建8个虚拟通道,每个虚拟通道对应一个优先级,任意一个虚拟通道都允许被单独暂停或重启,同时不影响其它虚拟通道传输数据流。相应地,网络设备的一个端口可以对应8个优先级的出端口队列,该8个优先级的出端口队列与该端口对应的8个虚拟通道一一对应,每个出端口队列用于在对应的虚拟通道上转发对应优先级的数据流。
[0084]
可选地,控制设备接收到的针对目标数据流的接入请求中还包括目标数据流的优先级信息,该优先级信息可以是目标数据流对应的差分服务代码点(differentiated services code point,dscp)的编码值或vlan优先级;控制设备根据目标数据流的优先级信息确定该目标数据流对应的出端口队列的优先级。
[0085]
示例地,网络设备中与目标数据流的优先级相匹配的出端口队列的优先级为i,目标数据流在网络设备a上的出端口为r1,在网络设备b上的出端口为r2,在网络设备c上的出端口为r3,则目标数据流在网络中依次经过网络设备a中出端口r1上的第i个出端口队列,网络设备b中出端口r2上的第i个出端口队列,网络设备c中出端口r3上的第i个出端口队列。该目标数据流在网络中经过的出端口队列路径可以表示为:(网络设备a,r1-i)

(网络设备b,r2-i)

(网络设备c,r3-i)。
[0086]
第三,控制设备获取位于转发路径上的网络设备的设备状态信息。可选地,本技术实施例提供了以下两种实现方式。
[0087]
在第一种实现方式中,控制设备周期性地接收该控制设备所管理的网络中的网络设备发送的设备状态信息。也即是,网络设备周期性地向控制设备发送该网络设备的设备状态信息。可选地,网络设备的设备状态信息包括该网络设备中各个出端口队列的队列状态信息。
[0088]
对网络设备中的每个出端口队列,网络设备可以获取该出端口队列对应的ecn阈值以及该出端口队列的队列深度信息,然后根据该对应的ecn阈值以及该出端口队列的队列深度信息,确定该出端口队列是否满载。可选地,具体实现方式如下:
[0089]
网络设备获取出端口队列在目标时间段内对应的ecn阈值,以及该出端口队列在目标时间段内不同时刻的多个队列深度值。当该出端口队列在目标时间段内不同时刻的多个队列深度值与该出端口队列在目标时间段内对应的ecn阈值满足目标满载条件时,网络设备确定该出端口队列在目标时间段内满载;反之,网络设备确定该出端口队列在目标时间段内不满载。进一步网络设备可以得到用于指示该出端口队列是否满载的队列状态信息。
[0090]
可选地,目标满载条件包括以下一个或多个:出端口队列在目标时间段内的每个队列深度值与ecn阈值的绝对差值小于第一阈值;出端口队列在目标时间段内的多个队列深度值与ecn阈值的绝对差值的平均值小于第二阈值;出端口队列在目标时间段内的每个队列深度值与ecn阈值的方差值小于第三阈值;出端口队列在目标时间段内的多个队列深度值与ecn阈值的方差值的平均值小于第四阈值。也即是,当出端口队列在目标时间段内的队列深度在ecn阈值附近振荡时,说明该出端口队列在目标时间段内满载。具体可以采用3sigma等方式判断出端口队列在目标时间段内的队列深度是否在ecn阈值附近振荡。
[0091]
示例地,出端口队列对应的ecn阈值是静态配置的。该ecn阈值的大小可以为:c*rtt*λ。其中,c是该出端口队列对应的虚拟通道的传输带宽,rtt是预估在该出端口队列转发的数据流在网络中的rtt,λ可以取值为1/7。
[0092]
可选地,目标时间段的时长等于目标数据流在网络中的n个rtt,n为大于1的整数。
[0093]
网络设备周期性地向控制设备发送该网络设备的设备状态信息。一个周期的时长可以等于目标时间段的时长。示例地,图4是本技术实施例提供的出端口队列的队列深度在多个周期内的变化示意图。其中,横坐标表示时间,纵坐标表示出端口队列的队列深度。如图4所示,该出端口队列在第一个周期内的队列深度不在ecn阈值附近振荡,表示该出端口队列在第一个周期内不满载;该出端口队列在第二个周期和第三个周期内的队列深度在ecn阈值附近振荡,表示该出端口队列在第二个周期和第三个周期内均满载。
[0094]
示例地,图5是本技术实施例提供的一种用于承载设备状态信息的报文格式示意图。如图5所示,该报文中包括设备标识、队列标识和队列状态信息。设备标识可以是网络设备的媒体访问控制(media access control,mac)地址;队列标识包括出端口队列所在端口的端口号以及队列优先级;队列状态信息可以采用数字、字符或字母等表示,例如队列状态信息可以用0和1表示,0表示该出端口队列不满载,1表示该出端口队列满载。
[0095]
可选地,网络设备在每个发送周期内,可以向控制设备发送各个出端口队列的队列状态信息,或者,也可以仅向控制设备发送满载状态发生变化的出端口队列的队列状态信息,本技术实施例对此不做限定。
[0096]
在本实现方式中,控制设备可以周期性地接收到该控制设备所管理的网络中的网络设备发送的设备状态信息,当有新的数据流欲接入网络时,控制设备在确定该新的数据流的转发路径后,可以根据自身存储的各个网络设备的设备状态信息,及时确定是否接纳该新的数据流进入网络,控制设备判断是否接纳数据流进入网络的效率和实时性较高。
[0097]
在第二种实现方式中,控制设备向该网络设备发送设备状态信息获取指令。控制设备接收该网络设备基于该设备状态信息获取指令发送的设备状态信息。
[0098]
可选地,网络设备获取自身设备状态信息的过程可参考上述第一种实现方式,本技术实施例在此不再赘述。在本实现方式中,控制设备先获取目标数据流在网络中的转发路径,然后向位于该转发路径上的网络设备发送设备信息获取指令,以获取位于该转发路径上的网络设备的设备状态信息。由于网络设备无需周期性地主动向控制设备发送设备状态信息,而是在接收到控制设备发送的设备状态信息获取指令后再向控制设备发送设备状态信息,可以节约网络设备与控制设备之间的传输资源。
[0099]
本技术实施例中,网络设备根据出端口队列在目标时间段内的队列深度值与ecn阈值的大小关系,可以较为准确地确定该出端口队列在目标时间段内是否满载,进而保证控制设备对判断是否接纳数据流进入网络的准确性。
[0100]
步骤302、控制设备根据该第一出端口队列的队列状态信息,确定是否接纳目标数据流进入网络。
[0101]
可选地,当第一出端口队列满载时,控制设备确定不接纳目标数据流进入网络。也即是,当位于目标数据流的转发路径上的任一网络设备中用于转发该目标数据流的出端口队列满载时,控制设备确定不接纳该目标数据流进入网络。
[0102]
可选地,当第一出端口队列不满载时,控制设备确定接纳目标数据流进入网络。或者,当第一出端口队列不满载,且位于转发路径上其他网络设备中的第二出端口队列不满载时,控制设备确定接纳目标数据流进入网络,该第二出端口队列用于转发目标数据流。也即是,当位于目标数据流的转发路径上的所有网络设备中用于转发该目标数据流的出端口
队列均不满载时,控制设备确定接纳该目标数据流进入网络。
[0103]
综上所述,在本技术实施例提供的数据流接纳方法中,当有新的数据流欲接入网络时,控制设备可以获取位于该新的数据流的转发路径上网络设备的设备状态信息,由于设备状态信息中包括网络设备中用于转发该新的数据流的出端口队列的队列状态信息,控制设备可以根据队列状态信息确定该出端口队列是否满载,进而确定是否接纳该新的数据流。当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列满载时,控制设备确定不接纳该新的数据流,当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列不满载时,控制设备确定接纳该新的数据流,进而可以实现对数据流的接纳控制。由于出端口队列的队列状态信息基于对应的ecn水线确定,即网络设备支持ecn机制,网络中能够自行调整发送端的发包速率,因此控制设备无需预测新的数据流的需求带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。另外,由于本技术实施例提供的网络采用ecn机制进行拥塞控制,因此控制设备也无需检测各个网络设备的剩余带宽,当网络中接入新的数据流时,该新的数据流的发送端可以在有限的剩余带宽下逐步地非丢包的试探带宽,如果不能满足其需求带宽,该发送端的发送窗口也会被压制到剩余带宽的允许范围内,而无需控制设备调整新的数据流的发包速率,进一步节约了控制设备的处理资源。
[0104]
图6是本技术实施例提供的一种数据流接纳装置的结构示意图。该装置可以用于如图1所示的数据流接纳系统中的控制设备101。如图6所示,该装置60包括:
[0105]
获取模块601,用于获取控制设备所管理的网络中的网络设备的设备状态信息,该设备状态信息中包括网络设备中的第一出端口队列的队列状态信息。
[0106]
确定模块602,用于根据第一出端口队列的队列状态信息,确定是否接纳目标数据流进入网络。
[0107]
其中,网络设备位于目标数据流在网络中的转发路径上,第一出端口队列用于转发目标数据流。
[0108]
综上所述,在本技术实施例提供的数据流接纳装置中,通过确定模块根据网络设备中出端口队列的队列状态信息确定是否接纳新的数据流进入网络,无需预测新的数据流的需求带宽以及检测网络剩余带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。
[0109]
可选地,第一出端口队列的队列状态信息用于指示第一出端口队列是否满载。
[0110]
可选地,第一出端口队列的队列状态信息基于第一出端口队列对应的ecn阈值以及第一出端口队列的队列深度信息确定,ecn阈值为网络设备为第一出端口队列中的数据包设置ecn标记的门限值。
[0111]
可选地,确定模块602,用于:当第一出端口队列满载时,控制设备确定不接纳目标数据流进入网络。
[0112]
可选地,确定模块602,用于:当第一出端口队列不满载时,控制设备确定接纳目标数据流进入网络;或者,当第一出端口队列不满载,且位于转发路径上其他网络设备中的第二出端口队列不满载时,控制设备确定接纳目标数据流进入网络,第二出端口队列用于转发目标数据流。
[0113]
可选地,第一出端口队列的优先级与目标数据流的优先级相匹配。
[0114]
可选地,获取模块601,用于:周期性地接收网络设备发送的设备状态信息。
[0115]
可选地,如图7所示,装置60还包括发送模块603。该发送模块603,用于:在确定网络设备位于转发路径上之后,向网络设备发送设备状态信息获取指令;获取模块601,用于接收网络设备基于设备状态信息获取指令发送的设备状态信息。
[0116]
综上所述,在本技术实施例提供的数据流接纳装置中,控制设备通过确定模块根据网络设备中出端口队列的队列状态信息确定是否接纳新的数据流进入网络,无需预测新的数据流的需求带宽以及检测网络剩余带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。另外,控制设备可以根据队列状态信息确定该出端口队列是否满载,进而确定是否接纳该新的数据流。当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列满载时,控制设备确定不接纳该新的数据流,当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列不满载时,控制设备确定接纳该新的数据流,进而可以准确地实现对数据流的接纳控制。由于出端口队列的队列状态信息基于对应的ecn水线确定,即网络设备支持ecn机制,网络中能够自行调整发送端的发包速率,因此控制设备无需检测各个网络设备的剩余带宽,当网络中接入新的数据流时,该新的数据流的发送端可以在有限的剩余带宽下逐步地非丢包的试探带宽,如果不能满足其需求带宽,该发送端的发送窗口也会被压制到剩余带宽的允许范围内,而无需控制设备调整新的数据流的发包速率,进一步节约了控制设备的处理资源。
[0117]
图8是本技术实施例提供的又一种数据流接纳装置的结构示意图。该装置可以用于如图1所示的数据流接纳系统中的网络设备102。如图8所示,该装置80包括:
[0118]
发送模块801,用于向管理网络设备所在网络的控制设备发送设备状态信息,该设备状态信息中包括网络设备中的第一出端口队列的队列状态信息,该第一出端口队列的队列状态信息用于控制设备确定是否接纳目标数据流进入网络。
[0119]
其中,网络设备位于目标数据流在网络中的转发路径上,第一出端口队列用于转发目标数据流。
[0120]
可选地,第一出端口队列的队列状态信息用于指示第一出端口队列是否满载。
[0121]
可选地,如图9所示,装置80还包括:
[0122]
获取模块802,用于获取第一出端口队列对应的ecn阈值以及第一出端口队列的队列深度信息,ecn阈值为网络设备为第一出端口队列中的数据包设置ecn标记的门限值;确定模块803,用于根据ecn阈值以及第一出端口队列的队列深度信息,确定第一出端口队列是否满载。
[0123]
可选地,获取模块802,用于:获取第一出端口队列在目标时间段内对应的ecn阈值,以及第一出端口队列在目标时间段内不同时刻的多个队列深度值;确定模块803,用于:当第一出端口队列在目标时间段内不同时刻的多个队列深度值与第一出端口队列在目标时间段内对应的ecn阈值满足目标满载条件时,确定第一出端口队列在目标时间段内满载。
[0124]
可选地,目标时间段的时长等于目标数据流在网络中的n个rtt,n为大于1的整数。
[0125]
可选地,目标满载条件包括以下一个或多个:
[0126]
多个队列深度值中每个队列深度值与ecn阈值的绝对差值小于第一阈值;多个队列深度值与ecn阈值的绝对差值的平均值小于第二阈值;多个队列深度值中每个队列深度值与ecn阈值的方差值小于第三阈值;多个队列深度值与ecn阈值的方差值的平均值小于第
四阈值。
[0127]
综上所述,在本技术实施例提供的数据流接纳装置中,控制设备根据网络设备中出端口队列的队列状态信息确定是否接纳新的数据流进入网络,无需预测新的数据流的需求带宽以及检测网络剩余带宽,节约了控制设备的计算开销,同时可以保证控制设备对数据流进行接纳控制的可靠性。另外,控制设备可以根据队列状态信息确定该出端口队列是否满载,进而确定是否接纳该新的数据流。当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列满载时,控制设备确定不接纳该新的数据流,当位于转发路径上的网络设备中用于转发该新的数据流的出端口队列不满载时,控制设备确定接纳该新的数据流,进而可以准确地实现对数据流的接纳控制。由于出端口队列的队列状态信息基于对应的ecn水线确定,即网络设备支持ecn机制,网络中能够自行调整发送端的发包速率,因此控制设备无需检测各个网络设备的剩余带宽,当网络中接入新的数据流时,该新的数据流的发送端可以在有限的剩余带宽下逐步地非丢包的试探带宽,如果不能满足其需求带宽,该发送端的发送窗口也会被压制到剩余带宽的允许范围内,而无需控制设备调整新的数据流的发包速率,进一步节约了控制设备的处理资源。
[0128]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0129]
本技术实施例提供了一种控制设备,包括:处理器和存储器;
[0130]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0131]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中控制设备执行的动作。
[0132]
本技术实施例提供了一种网络设备,包括:处理器和存储器;
[0133]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0134]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中网络设备执行的动作。
[0135]
示例地,图10是本技术实施例提供的一种数据流接纳装置的框图。该数据流接纳装置可以是控制设备或网络设备。如图10所示,数据流接纳装置100包括:处理器1001和存储器1002。
[0136]
存储器1002,用于存储计算机程序,所述计算机程序包括程序指令;
[0137]
处理器1001,用于调用所述计算机程序,实现上述方法实施例中控制设备或网络设备执行的动作。
[0138]
可选地,该数据流接纳装置100还包括通信总线1003和通信接口1004。
[0139]
其中,处理器1001包括一个或者一个以上处理核心,处理器1001通过运行计算机程序,执行各种功能应用以及数据处理。
[0140]
存储器1002可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(real time executive,rtx)、linux、unix、windows或os x之类的操作系统。
[0141]
通信接口1004可以为多个,通信接口1004用于与其它设备进行通信。例如在本技术实施例中,当该数据流接纳装置100为网络设备时,通信接口1004可以用于向控制设备发送设备状态信息。
[0142]
存储器1002与通信接口1004分别通过通信总线1003与处理器1001连接。
[0143]
本技术实施例还提供了一种数据流接纳系统,包括:控制设备和网络设备,所述控制设备包括如图6、图7或图10所示的数据流接纳装置,所述网络设备包括如图8、图9或图10所示的数据流接纳装置。
[0144]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被计算机设备的处理器执行时,实现上述方法实施例中控制设备或网络设备执行的动作。
[0145]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0146]
在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0147]
本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0148]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献