数据流调度系统以及数据流调度方法与流程

文档序号:11138506阅读:1161来源:国知局
数据流调度系统以及数据流调度方法与制造工艺

本发明属于路由器的业务流调度技术领域,尤其涉及一种基于报文识别的数据流调度系统以及数据流调度方法



背景技术:

对于拥塞管理,一般采用队列技术,使用一个队列算法对流量进行分类,之后用某种优先级别算法将这些流量发送出去。每种队列算法都是用以解决特定的网络流量问题,并对带宽资源的分配、延迟、抖动等有着十分重要的影响。目前在电信运营商各级网络设备均运用不同的业务调度系统,但对于“最后一公里”的家用路由器,目前常用的业务调度功能通常有以下几种方式:

a)利用二层技术或三层技术区分业务并调度。

b)设置固定终端(MAC或IP)地址,将通过其的业务流做强行调度。

c)针对不同应用,将不同端口(Port)的业务流做调度。

其中,二层技术主要以VLAN的优先级进行调度,三层技术主要以DSCP的优先级进行调度。不管是二层VLAN技术还是三层DSCP技术都需要手动配置规则,并将具体业务流分类调度。一旦配置,归属于同一类的业务流均按此规则调度,灵活性不佳。而基于固定终端地址的调度,则仅对目的地址为设置的终端地址做优先转发,无法对具体业务流做精确调度。

授权公告号CN 101616098 B,授权公告日2011年11月16日的发明专利,针对基于IP地址和端口号的ACL识别技术,在识别小型报文数据流并优先调度方面存在严重不足的情况,提出了一种TCP数据流的调度方法和设备。应用于包括至少一个终端设备、一个路由器和至少一个服务器的网络系统中,路由器根据报文的大小,将终端设备与服务器之间传输的TCP数据流中的报文分为多个类型。其中,第一类型的报文为网络系统中需要优选传输的报文,其他类型的报文的大小与第一类型的报文的大小的差距依次增大,路由器为终端设备与服务器之间传输的每条TCP数据流配置优先级参数。具体为路由器为终端设备与服务器之间进行双向传输的每条TCP数据流配置会话管理信息,会话管理信息包括TCP数据流的优先级参数和TCP数据流的转发信息。可以实现对上述类型划分之后的任意一种类型的报文的数据流进行优先调度。

在上述专利技术方案中,仅针对TCP数据流的报文长度对数据流的优先级参数进行动态调整,以实现对数据流的智能识别和调控。仅根据报文长度参数对数据流进行调度,而无法实现对具体的数据流做精确调度。



技术实现要素:

本发明提供了一种基于报文识别的智能调度系统以及数据流调度方法。本发明技术方案解决了现有路由器手工配置业务优先级,或仅能通过终端地址调度业务流,无法区分具体业务,调度结果不理想等问题。

为达到上述目的,本发明采取如下技术方案:

一种数据流调度系统,包括用于接收存储数据流的数据流接收模块、用于识别所述数据流的数据流识别模块、用于对所述数据流接收模块接收到的数据流进行调度的数据流调度模块、用于发送经所述数据流调度模块调度后的数据流的数据流发送模块;其特征在于:所述数据流识别模块用于对所述数据流进行数据流类型识别、数据流会话时间识别,所述业务调度模块根据所述数据流识别模块的识别结果对所述数据流接收模块接收到的数据流进行调度。

作为优选,数据流调试系统还包括用于存储所述数据流的多个具有不同发送优先级的存储队列,所述数据流接收模块根据其接受到的数据流的报文长度将所述数据流存储在其中一个所述存储队列中,所述数据流发送模块优先发送发送优先级较高的存储队列中的数据流。

作为优选,所述业务调度模块根据所述业务识别模块的识别结果,调整所述数据流的存储队列。

作为优选,所述存储队列包括第一存储队列、第二存储队列、第三存储队列;所述第一存储队列的发送优先级高于所述第二存储队列的发送优先级,所述第二存储队列的发送优先级高于所述第三存储队列的优先级;所述数据流接收模块将报文长度较长的数据流存储在所述第一存储队列中,所述数据流接收模块将报文长度较短的数据流存储在所述第二存储队列中,所述数据流接收模块将报文长度居中的数据流存储在所述第三存储队列中。

作为优选,数据流接收模块将报文长度大于1400字节的数据流存储在所述第一存储队列中,所述数据流接收模块将报文长度较小于120字节的数据流存储在所述第二存储队列中,所述数据流接收模块将报文长度大于等于120字节并且小于等1400字节的数据流存储在所述第三存储队列中。

作为优选,所述数据流识别模块识别所述数据流的数据流类型,所述数据流调度模块根据所述数据流识别模块的识别结果,将所述第一存储队列中,数据流类型为UDP的数据流,调度至所述第三存储队列。

作为优选,所述数据流识别模块识别所述数据流的数据流会话时间,所述数据流调度模块根据所述数据流识别模块的识别结果,将所述第一存储队列和所述第二存储队列中,数据流会话时间大于指定时间的数据流,调度至所述第三存储队列。

作为优选,所述数据流调度模块根据所述数据流识别模块的识别结果,将所述第一存储队列和所述第二存储队列中,数据流会话时间大于120秒的数据流,调度至所述第三存储队列。

作为优选,所述数据流接收模块设于WAN转发接口驱动模块中。

本法明还提供一种数据流调度方法,其包括如下步骤:

S01接收数据流,在WAN口接收需要转发的数据流;

S02存储数据流,根据所述数据流的报文长度,将所述数据流存储至存储队列中;

S03执行第一调度,根据所述数据流的数据流类型对所述数据流进行调度;

S04执行第二调度,根据所述数据流的数据流会话时间对所述数据流进行调度。

本发明基于报文识别对数据流进行智能调度,实现对具体业务识别并调度的功能。

附图说明

图1是互联网网络流量包长排名分析图。

图2是传输协议使用占比分析图。

图3是互联网网络流量端口分析图。

图4是HTTP业务数据流时间分析图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

优选实施例:

本实施例数据流调度系统,应用于路由器WAN转发接口驱动中,其包括如下模块:

存储模块,设置于路由器的WAN转发接口驱动中,用于存储数据流的;

数据流接收模块,用于接收存储数据流;

数据流识别模块,用于识别数据流;

数据流调度模块,用于对数据流接收模块接收到的数据流进行调度;

数据流发送模块,用于发送经数据流调度模块调度后的数据流。

更进一步,上述各模块的详细描述如下:

存储模块,包括单个具有不同发送优先级的存储队列:第一存储队列、第二存储队列和第三存储队列。其中,第一存储队列的优先级最高、第二存储队列的优先级其次、第三存储队列的优先级最低。

数据流接收模块,接收经在路由器的WAN转发接口驱动进入的数据流,并将接收到的数据流存储到存储模块中。数据流接收模块根据数据流的报文长度对数据流进行初步划分,根据数据流报文长度的不同,初步确定各数据流的发送优先级,并将其放入对应发送优先级的存储队列中。

数据流识别模块,用于对数据流进行数据流类型识别、数据流会话时间识别。

其中,数据流类型的识别主要包括数据流连接协议的识别,也可以进一步地包括数据流连接端口的识别,通过对数据流连接协议和端口的识别,可以对数据流对应的业务类型有一个初步的综合判断。

路由器的每个数据连接都会建立一个NAT会话表,记录这个连接的状态信息,包括连接的协议类型、源地址、源端口、目的地址、目的端口等信息,用来进行回复报文的NAT转换处理,通过对比路由器NAT会话表中协议类型以及目的端口可以迅速的识别数据流类型。

例如,浏览网页的数据流采用TCP协议,在80端口通信。从而,可以通过查询NAT会话表,将协议类型为TCP,目的端口号为80的数据流识别为浏览网页的数据流;而QQ的数据流采用UDP协议,在端口4000通信。因此,可以通过查询NAT会话表,将协议类型为UDP,目的端口号为4000的数据流识别为QQ的数据流。

数据流会话时间的识别主要是指判断数据流的会话时间。

业务调度模块,根据数据流识别模块的识别结果对数据流接收模块接收到的数据流进行调度。

首先,根据数据流识别模块对数据流的数据流类型识别结果对存储队列中的数据流进行第一调度;随后,再根据数据流识别模块对数据流的数据流会话时间识别结果对存储队列中的数据流进行第二调度。

数据流发送模块,按照发送优先级对应的先后顺序,发送存储模块的存储队列中的数据流。

存储队列一的发送优先级最高、存储队列二的发送优先级其次、存储队列三的发送优先级最低。数据流发送模块优先发送存储队列一中的数据流,最后发送存储队列三中的数据流。只要发送优先级高的存储队列中有数据流,数据流发送模块就会选择优先级高的存储队列中的数据流进行发送。

目前互联网数据流的报文长度主要以1400以上字节为主(如图1所示)。其中的web业务和下载业务,通常以报文长度在1400字节以上的数据流进行传输。而移动APP推送、社交软件、以及游戏业务,通常以报文长度在200字节以下的数据流进行传输。

目前互联网大量的业务均通过TCP短连接或者长连接的方式传输(如图2)。剩余的大部分业务也采用UDP方式传输。

目前互联网业务的常用端口的网络流量分析如图3所示。如,端口80是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,此为浏览网页服务默认的端口号。是浏览网页使用次数最多的协议,主要用于WWW(World Wide Web,万维网)传输信息的协议,通过该端口的网络流量较大。端口4662是电驴下载的TCP端口,通过该端口的网络流量也相对较大。

图4为HTTP业务的数据流分析,可以看出,大部分HTTP业务的数据流的回话时间都小于120秒的。

综上所述,本发明根据互联网上不同业务在数据流的报文长度、数据流类型(协议类型、对应端口)、以及会话时间的差异,对数据流进行划分调度。以实现对数据流的精确调度。

本发明基于报文识别的对数据流进行智能调度,实现对具体业务识别并调度的功能,无需预先对数据流进行分类,减少VLAN tag或者识别DSCP所需要的额外开销;其可根据报文识别达到精确调度业务的功能;应用于路由器WAN口转发接口驱动中,不影响系统内核调度。家用路由器所有的互联网数据收发均经过WAN口,在出入口处调度不会影响原有系统内核的业务调度。

本发明调度系统通过业务流特征识别、包长识别以及业务流记录时间等方法,达到自动调度的功能;适用范围广,可以应用复杂业务场景。

在路由器的WAN口转发接口驱动中新建三个存储队列:第一存储队列、第二存储队列和第三存储队列。其中,第一存储队列的发送优先级最高、第三存储队列的发送优先级最低。三个队列均为FIFO(First In First Out,先进先出)队列。接下来调度系统的工作步骤包括:

步骤S01,接收数据流。

数据流接收模块在路由器的WAN口接收到需要转发至互联网或者内网的数据流。

步骤S02,存储数据流。

数据流接收模块,根据数据流的报文长度,将在WAN口接收到的数据流存储至存储模块中:

报文长度大于1400字节的数据流存储在第一存储队列中;

报文长度较小于120字节的数据流存储在第二存储队列中;

报文长度大于等于120字节并且小于等1400字节的数据流存储在第三存储队列中。

报文长度大于1400字节的数据流,可以初步判断为互联网的web业务和下载业务。将它们存储在发送优先级最高的第一存储队列中,能够在第一时间被转发至目的互联网或者内网。报文长度小于120字节的数据流,初步判断为移动APP推送消息业务、社交软件业务、或者游戏业务等需要及时进行发送的数据流。将它们存储在发送优先级居中的第二存储队列中,当发送优先级最高的第一存储队列中的数据发送完毕以后,被转发至目的互联网或者内网。而报文长度介于120字节和1400之间的数据流,可以初步判断为流量居中,而及时性要求不高的业务。因此,将其放入发送优先级最低的第三存储队列,在发送优先级较高的第一存储队列和第二存储队列中的数据均发送完毕以后,被转发至目的互联网或者内网。

步骤S03,执行第一调度。

数据流调度模块,根据数据流识别模块对数据流类型的识别结果,对存储模块中的数据流进行第一次调度。

数据流识别模块查询路由器的NAT会话表,获取第一存储队列中数据流的协议号以及目的端口号,对第一存储队列中的数据流类型进行识别。第一存储队列中采用UDP协议的数据流,网络流量大同时采用UDP协议进行传输的业务,大多数情况下为及时性要求不高的下载业务。

因此,数据调度单元将第一存储队列中,数据流识别模块的识别结果为UDP协议类型的数据流调度至发送优先级较低的第三存储队列。在发送优先级较高的第一存储队列和第二存储队列中的数据均发送完毕以后,被转发至目的互联网或者内网。

步骤S04,执行第二调度。

数据流调度模块,根据数据流识别模块对数据流会话时间的识别结果,对存储模块中的数据流进行第二次调度。

数据流识别模块获取存储在发送优先级较高的第一存储队列和第二存储队列中的数据流的会话时间。会话时间大于120秒的数据流,基本上为互联网上及时性要求不高的下载业务。

因此,数据调度单元将第一存储队列中,数据流识别模块的识别结果为会话时间超过120秒的数据流调度至发送优先级最低的第三存储队列中。在发送优先级较高的第一存储队列和第二存储队列中的数据均发送完毕以后,被转发至目的互联网或者内网。

数据流发送模块按照发送优先级的高低,优先转发存储在第一存储队列中的数据流,当第一存储队列中的数据流处理完毕以后,转发存储在第二存储队列中的数据流,当第二存储队列中的数据流处理完毕以后,转发存储在第三存储队列中的数据流。

通过数据识别模块对三个不同优先级的存储队列中数据流进行识别,数据调度模块根据所述数据识别模块的识别结果,对存储在三个存储队列中的数据流进行精确调度。其中,第一调度的执行,将发送优先级相对较高的第一存储队列中的数据流,调度至发送优先级最低的第三存储队列中去。而第二调度的执行,将发送优先级相对较高的第一存储队列和第二存储队列中的数据流,调度至发送优先级最低的第三存储队列中。从而保证了发送优先级最高的第一存储队列中的数据流,不会因为调度的执行而增加。可以保持第一存储队列以及第二存储队列中的数据流队列不会太长,而使得发送优先级交底的存储队列中的数据等待了很长时间仍不能被转发。保证了对数据流的自动识别、灵活配置以及精确调度。因而本发明可以方便地应用于复杂业务环境下的家用路由器中。

本发明的技术优势体现在以下几个方面:

(1)无需预先对数据流进行分类,减少VLAN tag或者识别DSCP所需要的额外开销。

(2)可根据报文识别达到精确调度业务的功能。

(3)应用于路由器WAN口转发接口驱动中,不影响系统内核调度。家用路由器所有的互联网数据收发均经过WAN口,在出入口处调度不会影响原有系统内核的业务调度。

(4)本调度系统通过业务流特征识别、包长识别以及业务流记录时间等方法,达到自动调度的功能。

(5)适用范围广,可以应用复杂业务场景。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的保护范围。

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