一种端口队列调度方法、装置、网络控制器及存储介质与流程

文档序号:18543160发布日期:2019-08-27 21:25阅读:229来源:国知局
一种端口队列调度方法、装置、网络控制器及存储介质与流程

本公开涉及网络技术领域,特别是涉及一种端口队列调度方法、装置、网络控制器及存储介质。



背景技术:

随着网络技术的不断发展,用户对于网络的服务质量要求越来越高,为了保证网络能够提供稳定的服务质量,根据业务类型的不同,将各业务报文分担到路由设备不同的端口队列进行传输。

当业务发生变化时,当前的端口队列可能不足以承载业务报文,需要对端口队列上承载的业务报文进行流量调度。目前,流量调度技术主要是基于业务报文的流量调度技术,需要将业务报文逐条的调度到其他端口队列进行传输,该过程中需要不断记录、更新传输每一条业务报文的端口队列的信息,流量调度的工作量大、效率低。



技术实现要素:

本公开实施例的目的在于提供一种端口队列调度方法、装置、网络控制器及存储介质,以提高流量调度的效率。具体技术方案如下:

第一方面,本公开实施例提供了一种端口队列调度方法,应用于网络控制器,所述方法包括:

获取第一端口队列所承载的各业务报文的业务流信息;

根据所述各业务报文的业务流信息,确定所述第一端口队列的队列传输参数;

判断所述队列传输参数是否超过预设阈值;

若超过,则按照预设调度策略,将所述第一端口队列所承载的各业务报文调度至第二端口队列,所述第二端口队列为所述网络控制器控制下的路由设备上传输质量优于所述第一端口队列的端口队列。

第二方面,本公开实施例提供了一种端口队列调度装置,应用于网络控制器,所述装置包括:

获取模块,用于获取第一端口队列所承载的各业务报文的业务流信息;

确定模块,用于根据所述各业务报文的业务流信息,确定所述第一端口队列的队列传输参数;

判断模块,用于判断所述队列传输参数是否超过预设阈值;

调度模块,用于若所述判断模块的判断结果为所述队列传输参数超过预设阈值,则按照预设调度策略,将所述第一端口队列所承载的各业务报文调度至第二端口队列,所述第二端口队列为所述网络控制器控制下的路由设备上传输质量优于所述第一端口队列的端口队列。

第三方面,本公开实施例提供了一种网络控制器,包括处理器和存储介质,其中,

所述存储介质,用于存放计算机程序;

所述处理器,用于执行所述存储介质上所存放的计算机程序时,实现本公开实施例第一方面所提供的端口队列调度方法。

第四方面,本公开实施例提供了一种存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例第一方面所提供的端口队列调度方法。

本公开实施例提供的一种端口队列调度方法、装置、网络控制器及存储介质,获取第一端口队列所承载的各业务报文的业务流信息,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数,判断队列传输参数是否超过预设阈值,若超过,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列是网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。通过获取第一端口队列所承载的各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数,进而获得第一端口队列的业务报文传输情况,如果队列传输参数超过预设阈值,则说明第一端口队列不足以承载当前需承载的各业务报文,则将第一端口队列承载的各业务报文整体调度到传输质量更优的第二端口队列,实现了基于端口队列的流量调度,提高了流量调度的效率。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例的端口队列调度方法的流程示意图;

图2为本公开实施例的网络传输示意图;

图3为本公开实施例的端口队列调度后的网络传输示意图;

图4为本公开实施例的端口队列调度装置的结构示意图;

图5为本公开实施例的网络控制器的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

为了提高流量调度的效率,本公开实施例提供了一种端口队列调度方法、装置、网络控制器及存储介质。下面,首先对本公开实施例所提供的端口队列调度方法进行介绍。

本公开实施例所提供的端口队列调度方法的执行主体可以为网络控制器,例如sdn(softwaredefinednetwork,软件定义网络)控制器,实现本公开实施例所提供的端口队列调度方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种。

如图1所示,本公开实施例所提供的一种端口队列调度方法,可以包括如下步骤:

s101,获取第一端口队列所承载的各业务报文的业务流信息。

第一端口队列为网络中任一路由设备的端口队列,网络控制器需要实时监控各路由设备的端口队列,由于端口队列的业务变化可以直接体现在端口队列承载的各业务报文的业务流信息上,因此,网络控制器需要从端口队列获取到端口队列承载的各业务报文的业务流信息。具体的,网络控制器可以周期性地获取第一端口队列所承载的各业务报文的业务流信息。业务流量信息是指业务报文在端口队列中传输时所产生的业务流的相关数据信息,例如业务流量大小、丢包率、时延等。

在搭建网络时,首先需要对网络进行基础配置,配置过程可以是人为配置,也可以是在网络控制器上预先存储配置策略,由网络控制器进行网络配置。网络配置主要包括ip(internetprotocol,互联网协议)地址规划、路由互通配置、网络管理配置等。在完成网络配置之后,可以由网络控制器进行业务报文传输设置,具体的,业务报文传输设置的步骤可以包括:

第一步,获取各业务报文的业务类型、各业务报文对应的源设备信息以及目的设备信息。

第二步,根据各业务报文的业务类型,对各业务报文进行分组,并确定分别承载每个分组中各业务报文的运营商链路的链路信息。

第三步,针对任一分组,根据该分组中各业务报文的源设备信息和目的设备信息及运营商链路的链路信息,建立该分组对应的隧道。

在对网络完成配置后,需要通过网络控制器定义业务报文的传输策略,网络控制器根据各业务报文的业务类型,对各业务报文进行分组,可以将业务类型相同或者相近的业务报文划分为同一组,并且为每个分组分配承载该分组中各业务报文的运营商链路和端口队列,例如,对于重要性高、带宽要求低的业务报文(如语音、生产等业务报文),可以分配高质量的运营商链路进行承载,并且分配相应的端口队列进行qos(qualityofservice,服务质量)保障;对于重要性低、带宽要求高的业务报文(如办公等业务报文),可以分配链路质量相对较差的运营商链路进行承载,并且分配相应的端口队列进行qos保障。

在目前的网络内设备间报文传输方式中,常用的传输技术为隧道技术,使用隧道传递的业务报文可以是不同协议的业务报文。隧道协议将其它协议的业务报文重新封装然后通过隧道发送。新的报文头提供隧道转发信息,以便通过网络传递被封装的负载数据。针对任一分组,网络控制器根据该分组中各业务报文的源设备信息和目的设备信息及运营商链路的链路信息,可以建立该分组对应的隧道,其中,源设备信息为业务报文接入的源设备的设备信息,目的设备信息为业务报文所要到达的目的设备的设备信息。建立隧道的过程实际就是路径规划的过程,根据分配的运营商链路的链路信息和源设备信息、目的设备信息,可以利用最短路径规划、最优传输路径规划等策略进行隧道路径的计算,并且一个分组对应一个隧道,同一个分组中的业务报文可以通过同一个隧道进行传输。

在本公开实施例的一个具体实现方式中,由于当前的流量调度主要是在单域中实现的,因此,将需进行调度的路由设备部署于同一个as(autonomoussystem,自治系统)域中,网络控制器为sdn控制器,由sdn控制器管理路由设备所形成的网络范围称为sdn管理域。每台路由设备在基础网络部署基础上部署2套loopback(环回)接口,一套loopback接口用于建立隧道,另一套loopback接口用于建立标签转发表,两套loopback接口的建立能够保证传输路径不会出现环路。隧道技术可以采用sr(segmentrouting,段路由)隧道技术,设置每个路由设备都支持sr特性,所建立的隧道包括sr默认隧道和调度隧道,其中,sr默认隧道传输业务报文的优先级较低,调度隧道传输业务报文的优先级较高,实现同一个队列中,不同优先级业务报文的均衡传输。

s102,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数。

在获取到第一端口队列中各业务报文的业务流信息后,业务流信息为第一端口队列传输业务报文产生的相关数据信息,根据各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数。队列传输参数是指端口队列在传输业务报文时,与传输性能相关的属性参数,例如队列带宽占用率、队列传输质量等等。

可选的,业务流信息可以包括业务流带宽值,队列传输参数可以包括队列带宽占用率。

相应的,在执行s102之前,本公开实施例所提供的端口队列调度方法还可以执行:获取预先分配的第一端口队列的预设带宽值。

s102具体可以通过如下步骤实现:根据各业务报文的业务流带宽值,计算各业务报文的业务流带宽值之和;计算业务流带宽值之和与预设带宽值的比值,确定第一端口队列的队列带宽占用率。

业务流带宽值是指一定时间内传输的业务报文的数据量,业务流带宽值作为端口队列的各业务报文的基本数据信息,能够反映占用端口队列带宽的情况。业务流带宽值的累积值越大,占用端口队列的带宽越大,如果超出一定的值,则会使得端口队列无法承载业务报文。针对一个端口队列,根据实际需求预先分配有相应的预设带宽值,则可以累积各业务报文的业务流带宽值之和,并计算业务流带宽值之和与预设带宽值的比值,该比值即为第一端口队列的带宽占用率。

可选的,业务流信息可以包括丢包率和/或时延,队列传输参数可以包括队列传输质量。

相应的,s101具体可以通过如下步骤实现:利用网络质量分析技术,统计第一端口队列所承载的各业务报文的丢包率和/或时延。

s102具体可以通过如下步骤实现:根据丢包率和/或时延,确定第一端口队列的队列传输质量。

网络质量分析技术为对网络通信质量进行探测、分析的一种技术,利用网络质量分析技术,可以统计出业务报文的丢包率、时延、网络抖动等网络通信质量相关的业务流信息。一种常用的网络质量分析技术为nqa(networkqualityanalyzer,网络质量分析)技术,nqa技术通过发送测试报文,对网络性能或服务质量进行分析,提供网络通信质量相关的业务流信息。

在得到各业务报文的丢包率和/或时延后,丢包率越高则队列传输质量越差,同理,时延越大则队列传输质量越差,相应的,可以设置例如优、良、中、差等档次的队列传输质量,并且设置相应的阈值,可以基于丢包率和/或时延,确定出第一端口队列的队列传输质量。上述队列传输质量只是举例说明,不作为队列传输质量设置的限定,队列传输质量还可以设置为数值,数值越小则表示队列传输质量越优,数值越大则表示队列传输质量越差。

在本公开实施例的另一个实施方式中,可以同时获取到各业务报文的业务流带宽值和丢包率、时延,同时对队列带宽占用率和队列传输质量进行计算,当队列带宽占用率超过带宽占用率阈值或者队列传输质量超过质量阈值时,则进行队列调度。

本公开实施例的网络控制器还可以提供一个运维管理界面,提供向用户呈现带宽占用率、丢包率、时延等业务流信息的可视化界面,用户可以直观的看到端口队列的业务报文传输情况。

s103,判断队列传输参数是否超过预设阈值。

在得到队列传输参数后,可以将队列传输参数与预设阈值进行比较,例如,如果队列传输参数为队列带宽占用率,相应的预设阈值为带宽占用率阈值,可以将队列带宽占用率和带宽占用率阈值进行比较,如果队列带宽占用率小于带宽占用率阈值,则说明第一端口队列还可以承载各业务报文,如果队列带宽占用率大于带宽占用率阈值,则说明第一端口队列无法承载各业务报文。再例如,如果队列传输参数为队列传输质量,相应的预设阈值为质量阈值,可以将队列传输质量和质量阈值进行比较,如果队列传输质量小于质量阈值,则说明第一端口队列还可以承载各业务报文,如果队列传输质量大于质量阈值,则说明第一端口队列无法承载各业务报文。

s104,若队列传输参数超过预设阈值,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列为网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。

如果队列传输参数超过预设阈值,说明第一端口队列无法承载各业务报文,则需要进行流量调度,可以按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列。第二端口队列的传输质量更优于第一端口队列。预设调度策略即为选择其他的哪一个端口队列作为第二端口队列,承载第一端口队列调度来的各业务报文,各业务报文的调度过程,可以是直接将第一端口队列所承载的各业务报文整体地从第一端口队列调度到第二端口队列。

网络控制器控制器的各路由设备之间具有连接关系,不同的路由设备组成不同的运营商线路,第二端口队列可以是第一端口队列所属路由设备上传输质量更优的一个端口队列,也可以是另一条运营商链路的路由设备上传输质量比第一端口队列更优的一个端口队列。传输质量可以由端口队列的带宽值、传输速率、时延等参数决定。

可选的,第一端口队列为第一运营商链路上路由设备的端口队列,第二端口队列为第二运营商链路上路由设备的端口队列,第二端口队列与第一端口队列对应。

在一些行业中,用户的业务通过多运营商链路进行承载,用户在实际购买运营商广域网链路带宽时存在差异,对于网络建设成熟、链路信号稳定、链路质量高的运营商购买低带宽链路,对于新建网络、链路质量相对较差的运营商购买更高带宽链路,并将自身业务报文根据重要性程度分别承载在不同运营商链路上。如果第一运营商链路上路由设备的端口队列的队列传输参数超过预设阈值,第一运营商链路带宽不足导致继续通过第一运营商链路这一部分业务报文不能满足用户实际需求,需要将第一运营商链路上路由设备的端口队列的各业务报文调度至第二运营商链路上的端口队列,由于要求对于同一类型的业务报文需要提供相同的qos保障,因此在不同运营商链路上路由设备的端口队列具有对应关系,且第二端口队列的传输质量优于第一端口队列。

如图2所示,客户端210访问服务器220某些业务,正常情况下这些业务的业务报文承载在运营商链路230上,并通过路由设备240的队列1进行qos保障,sdn控制器250对路由设备进行管理,当sdn控制器250通过业务流信息获取、队列传输参数计算等,检测到路由设备240的队列1的队列传输参数超过预设阈值(队列带宽占用率超过预设阈值),则执行队列调度,队列调度后的网络传输示意图如图3所示。

这些业务报文承载到运营商链路260上,并通过路由设备270的队列1进行qos保障,保证业务的正常访问。

应用本公开实施例,获取第一端口队列所承载的各业务报文的业务流信息,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数,判断队列传输参数是否超过预设阈值,若超过,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列是网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。通过获取第一端口队列所承载的各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数,进而获得第一端口队列的业务报文传输情况,如果队列传输参数超过预设阈值,则说明第一端口队列不足以承载当前需承载的各业务报文,则将第一端口队列承载的各业务报文整体调度到传输质量更优的第二端口队列,实现了基于端口队列的流量调度,提高了流量调度的效率。

相应于上述方法实施例,本公开实施例提供了一种端口队列调度装置,应用于网络控制器,如图4所示,该端口队列调度装置可以包括:

获取模块410,用于获取第一端口队列所承载的各业务报文的业务流信息;

确定模块420,用于根据所述各业务报文的业务流信息,确定所述第一端口队列的队列传输参数;

判断模块430,用于判断所述队列传输参数是否超过预设阈值;

调度模块440,用于若所述判断模块的判断结果为所述队列传输参数超过预设阈值,则按照预设调度策略,将所述第一端口队列所承载的各业务报文调度至第二端口队列,所述第二端口队列为所述网络控制器控制下的路由设备上传输质量优于所述第一端口队列的端口队列。

可选的,所述第一端口队列可以为第一运营商链路上路由设备的端口队列;所述第二端口队列可以为第二运营商链路上路由设备的端口队列,所述第二端口队列与所述第一端口队列对应。

可选的,所述获取模块410,还可以用于获取所述各业务报文的业务类型、所述各业务报文对应的源设备信息以及目的设备信息;

所述装置还可以包括:

分组模块,用于根据所述各业务报文的业务类型,对所述各业务报文进行分组,并确定分别承载每个分组中各业务报文的运营商链路的链路信息;

隧道建立模块,用于针对任一分组,根据所述任一分组中各业务报文的源设备信息和目的设备信息及运营商链路的链路信息,建立所述任一分组对应的隧道。

可选的,所述业务流信息可以包括业务流带宽值;所述队列传输参数可以包括队列带宽占用率;

所述获取模块410,还可以用于获取预先分配的所述第一端口队列的预设带宽值;

所述确定模块420,具体可以用于:

根据所述各业务报文的业务流带宽值,计算所述各业务报文的业务流带宽值之和;

计算所述业务流带宽值之和与所述预设带宽值的比值,确定所述第一端口队列的队列带宽占用率。

可选的,所述业务流信息可以包括丢包率和/或时延;所述队列传输参数可以包括队列传输质量;

所述获取模块410,具体可以用于:

利用网络质量分析技术,统计第一端口队列所承载的各业务报文的丢包率和/或时延;

所述确定模块420,具体可以用于:

根据所述丢包率和/或所述时延,确定所述第一端口队列的队列传输质量。

应用本公开实施例,获取第一端口队列所承载的各业务报文的业务流信息,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数,判断队列传输参数是否超过预设阈值,若超过,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列是网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。通过获取第一端口队列所承载的各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数,进而获得第一端口队列的业务报文传输情况,如果队列传输参数超过预设阈值,则说明第一端口队列不足以承载当前需承载的各业务报文,则将第一端口队列承载的各业务报文整体调度到传输质量更优的第二端口队列,实现了基于端口队列的流量调度,提高了流量调度的效率。

本公开实施例还提供了一种网络控制器,如图5所示,包括处理器501和存储介质502,其中,

所述存储介质502,用于存放计算机程序;

所述处理器501,用于执行所述存储介质502上所存放的计算机程序时,实现本公开实施例所提供的端口队列调度方法。

上述存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储介质还可以是至少一个位于远离上述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本实施例中,上述处理器通过读取存储介质中存储的计算机程序,并通过运行计算机程序,能够实现:获取第一端口队列所承载的各业务报文的业务流信息,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数,判断队列传输参数是否超过预设阈值,若超过,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列是网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。通过获取第一端口队列所承载的各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数,进而获得第一端口队列的业务报文传输情况,如果队列传输参数超过预设阈值,则说明第一端口队列不足以承载当前需承载的各业务报文,则将第一端口队列承载的各业务报文整体调度到传输质量更优的第二端口队列,实现了基于端口队列的流量调度,提高了流量调度的效率。

另外,本公开实施例还提供了一种存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例所提供的端口队列调度方法。

本实施例中,存储介质存储有在运行时执行本公开实施例所提供的端口队列调度方法的计算机程序,因此能够实现:获取第一端口队列所承载的各业务报文的业务流信息,根据各业务报文的业务流信息,确定第一端口队列的队列传输参数,判断队列传输参数是否超过预设阈值,若超过,则按照预设调度策略,将第一端口队列所承载的各业务报文调度至第二端口队列,其中,第二端口队列是网络控制器控制下的路由设备上传输质量优于第一端口队列的端口队列。通过获取第一端口队列所承载的各业务报文的业务流信息,可以确定出第一端口队列的队列传输参数,进而获得第一端口队列的业务报文传输情况,如果队列传输参数超过预设阈值,则说明第一端口队列不足以承载当前需承载的各业务报文,则将第一端口队列承载的各业务报文整体调度到传输质量更优的第二端口队列,实现了基于端口队列的流量调度,提高了流量调度的效率。

对于网络控制器以及存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络控制器以及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。

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