一种基于应用的流量控制方法及流量控制器的制作方法

文档序号:7898446阅读:373来源:国知局
专利名称:一种基于应用的流量控制方法及流量控制器的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种基于应用的流量控制方法及流量控制器。
技术背景
通用的设备流量控制技术当中,仅仅对各类应用做保证带宽和最大带宽的限制, 当没有其他应用流量时,最大利用剩余带宽,提高传输效率。对于大多数交互性比较少的应 用来说,这种策略基本能达到客户需求,做到对带宽管控的目的。
对于交互型的应用,由于其对延时的要求较高,即使通过现有的流量控制技术对 其进行保证带宽和最大带宽的限制,但由于其流量跑不起来,带宽还是被其他的非交互应 用给抢了,导致延迟增加,交互变慢。因此,现有的技术在带宽管控方面做得比较好,但延迟 保障是没有的,即使在流控里面可以保证包的一个最小时延例如200ms或500ms,但对于某 些特定的应用还是显得过长,尤其是交互的时候。
在现实的用户应用场景当中,某些应用包括交互阶段和非交互阶段,比如ftp应 用,当在ftp命令交互阶段,属于交互阶段,相信每个客户都希望ftp的命令交互能快一点, 保证交互的延迟尽量的短,而在文件下载时,它又属于非交互阶段,希望对其做带宽管控; 再比如http应用,打开页面时,浏览器和服务器之间需要交互获取网页对象,这时http应 用处于交互阶段,但在下载文件时,又属于非交互阶段。因此,特定应用的交互数据包在进 行流量处理时,若刚好处于其它应用流量需求比较大的情况下,则会得不到优先处理,导致 延时较长,那么用户会误以为应用访问不了或在一定的程度上考验用户的耐心。
现有的流量控制技术并不能够基于具体的应用或者应用所处的阶段进行流量控 制,而是要么对应用仅做带宽保证,要么对应用打上延迟敏感标记仅做延迟保证,都没有对 普通应用,交互型的特定应用或者既存在交互也存在非交互的应用的流量控制做细化地控 制处理,使得对于仅做了带宽保证的应用中的交互型数据包,即使做了带宽保证但由于流 量小还是被抢占了带宽,导致交互型数据包被延迟处理或被丢弃掉,而对于打上延迟敏感 标记仅做延迟保证的应用,其处于非交互阶段的正常型数据包会占用了交互型数据包的带 宽,导致交互型数据包被延迟处理或被丢弃掉,严重影响了用户的应用访问体验。发明内容
本发明实施例所要解决的技术问题在于,提供一种基于应用的流量控制方法及流 量控制器,通过细分流量控制规则结合队列优先服务机制,既可保证交互型数据包的带宽 又保证其能得到及时处理,并同时达到对非交互型数据包也做到带宽掌控的目的。
为了解决上述技术问题,本发明实施例提供了一种基于应用的流量控制方法,包 括当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括交互型数据包和 正常型数据包;当识别出所述数据包为交互型数据包时,根据预设的第一流量控制规则,对所述交互型数据包进行流量控制处理,并将流量控制处理后的交互型数据包存入高优先级存放队列 中;当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述正常 型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先级存放队列 中;按存放队列的优先权等级,依次输出相应存放队列中的数据包。
相应地,本发明实施例还提供了一种基于应用的流量控制器,包括识别模块,用于当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括 交互型数据包和正常型数据包;控制模块,用于当所述识别模块识别出所述数据包为交互型数据包时,根据预设的第 一流量控制规则,对所述交互型数据包进行流量控制处理,并将流量控制处理后的交互型 数据包存入高优先级存放队列中;当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述正常 型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先级存放队列 中;发送模块,用于按存放队列的优先权等级,依次输出相应存放队列中的数据包。
实施本发明实施例,具有如下有益效果通过将流量控制规则细分为第一流量控制规则和第二流量控制规则,分别对识别出 的交互型数据包和正常型数据进行相应的流量控制,保证交互型数据包的带宽和时延的要 求,同时也不会影响到非交互的正常型数据包的传输,提升了用户的应用访问体验。


图1是本发明的基于应用的流量控制器的第一实施例结构组成示意图; 图2是本发明的基于应用的流量控制器的第二实施例结构组成示意图;图3是本发明的基于应用的流量控制器的第三实施例结构组成示意图 图4是本发明的基于应用的流量控制方法的第一实施例流程示意图; 图5是本发明的基于应用的流量控制方法的第二实施例流程示意图; 图6是本发明的基于应用的流量控制方法的第三实施例流程示意图 图7是本发明的细分类别流量控制规则的规则树示意图; 图8是本发明的基于应用的流量控制方法中的存放队列示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
图1是本发明的基于应用的流量控制器的第一实施例结构组成示意图;该流量控 制器设置于驱动设备中,其包括识别模块1,用于当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括交互型数据包和正常型数据包。
具体的,当驱动设备接收到数据包时,所述流量控制器首先可查看该数据包对应 的连接跟踪信息中的类别标识来确定该数据包的类型,并确定是否为用户定义的特定应用 的数据包,若所述连接跟踪信息中并未设置类别标识,则可根据该数据包中包括的五元组 信息以及流量控制应用表,判断该数据包所对应的应用的类型,所述五元组信息包括源地 址信息、源端口信息、目的地址信息、目的端口信息,协议类型,然后判断该类型的应用是否 在特定应用交互型索引表中记录,从而判断该数据包是否为特定应用所对应的数据包,其 中,所述流量控制应用表和所述特定应用交互型索引表可以是由用户在应用层定义的,所 述流量控制应用表中包括五元组信息和与五元组信息呈一一对应关系的应用类型,所述特 定应用索引表包括一个或者多个用户设置的特定应用的应用类型。
另外,也可以通过提取数据包中的特征码,根据一个或者多个数据包的特征码识 别该数据包的类型,以及具体是否为特定应用的数据包。
当确定接收到的数据包并不是特定应用所对应的数据包时,确定该数据包为普通 应用的数据包;当确定接收到的数据包为特定应用所对应的数据包时,所述识别模块1可根据所述数 据包的长度,或者通过判断所述数据包中是否包括交互命令标志的方式,识别所述数据包 的类型,所述数据包的类型包括交互型数据包和正常型数据包,当识别出所述数据包为交 互型数据包时,确定该数据包对应的特定应用当前处于交互阶段,当识别出所述数据包为 正常型数据包时,确定该数据包为特定应用处于一般阶段如数据下载阶段的数据包。
控制模块2,用于当所述识别模块1识别出所述数据包为交互型数据包时,根据预 设的第一流量控制规则,对所述交互型数据包进行流量控制处理,并将流量控制处理后的 交互型数据包存入高优先级存放队列中;当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述正常 型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先级存放队列 中;发送模块3,用于按存放队列的优先权等级,依次输出相应存放队列中的数据包。所述 高优先级存放队列的优先权等级高于所述低优先级存放队列。
具体的,所述第一流量控制规则和所述第二流量控制规则是由用户预先设置后, 下发给驱动层中的所述控制模块2的,其中,所述第一流量控制规则包括对相应的一个或 者多个特定应用的交互型数据包的带宽控制和延时控制的流量控制,以对交互型数据包进 行带宽保证和延迟保证,例如,包括对ftp、http等特定应用的交互型数据包的带宽的大 小,上行时的带宽,下行时的带宽等;所述第二流量控制规则包括带宽控制,用于对特定应 用的正常型数据包以及普通应用的正常型数据包进行带宽控制,仅做带宽保证。
所述发送模块3优先处理输出高优先级存放队列中的交互型数据包,当高优先级 存放队列中的交互型数据包为空时,所述发送模块3处理输出所述低优先级存放队列中的 正常型数据包。由于交互型数据包中仅包括一些数据量较小的控制指令,所述发送模块3 很快就会处理输出完,处理完后即释放相应的带宽供所述发送模块3处理输出低优先级存 放队列中的普通应用的正常型数据包和/或特定应用中的非交互阶段的正常型数据包。
通过上述实施例的描述可知,本发明具有以下优点通过细分流量控制规则结合队列优先服务机制的方式即优先处理高优先权的存放队 列,对识别出的交互型数据包和正常型数据分别设置第一流量控制规则和第二流量控制规 则进行流量控制,并将数据包存储在相应优先权等级的存放队列中,保证交互型数据包的 带宽和时延的要求,同时也不会影响到非交互的正常型数据包的传输,提升了用户的应用 访问体验。
再请参见图2,是本发明的基于应用的流量控制器的第二实施例结构组成示意图, 本实施例中的流量控制器包括上述实施例中的识别模块1、控制模块2、发送模块3,进一步 的,如图2所示,该流量控制器还包括用户层控制模块4,监测模块5以及删除模块6,其 中,所述用户层控制模块4,用于获取预设的流量控制应用表,特定应用交互型索引表以及 包括特定应用的第一流量控制规则和第二流量控制规则的细分类别流量控制规则。
具体的,可通过向用户提供用户界面的方式,获取用户设置的流量控制应用表,特 定应用交互型索引表,其中,所述流量控制应用表的每项为应用的源地址范围和端口范围, 应用的目的地址范围和端口范围,协议类别+应用类型,并根据包括特定应用的第一流量 控制规则、第二流量控制规则和其他一些类别流量控制规则的细分类别流量控制规则,构 成控制规则树,所述第一流量控制规则包括各类交互型数据包对应的特定应用的应用类 别流量控制规则和其他类别流量控制规则,所述第二流量控制规则包括各类正常型数据 包对应的普通应用或者特定应用的应用类别流量控制规则和其他类别流量控制规则。
特定应用的交互型数据包根据所述第一流量控制规则中的特定应用的应用类别 流量控制规则进行流量控制,其处理输出的优先级最高,存入高优先级存放队列中;对于 在根据数据包中的特征码识别该数据包的应用类型的过程中,根据所述第一流量控制规则 中的其他类别流量控制规则对该数据包进行流量控制,其处理输出的优先级低于特定应用 的交互型数据包,存入第三优先级存放队列中;对于特定应用的正常型数据包和普通应用 的正常型数据包,根据第二流量控制规则中的相应应用的应用类别流量控制规则进行流量 控制,其处理输出的优先级低于未确定出是否为特定应用的交互型数据包的特定应用数据 包,存入低优先级存放队列中;而对于未能识别出是何种应用类型的数据包,根据第二流量 控制规则中的其他类别流量控制规则进行流量控制,其优先级最低,存入第四优先级存放 队列中。
将获取到的用户设置的所述预设的流量控制应用表,特定应用交互型索引表以及 控制规则树即细分类别流量控制规则下发给驱动层,以使所述识别模块1和所述控制模块 2进行数据包的识别以及流量控制规则的设置与处理操作。
监测模块5,用于当采用根据所述数据包中包括的五元组信息以及流量控制应用 表识别所述数据包所对应的应用的类型时,监测所述高优先级存放队列、所述低优先级存 放队列以及所述第四优先级存放队列中的数据包的个数;或者当采用从数据包中提取出的特征码的方式识别所述数据包所对应的应用的类型 时,监测所述高优先级存放队列、所述低优先级存放队列、所述第三优先级存放队列以及所 述第四优先级存放队列中的数据包的个数。
所述删除模块6,用于当所述监测模块5监测到相应存放队列的数据包的个数达 到预设的数量阈值时,根据对相应存放队列中的数据包设置的丢包优先系数以及预设的系数阈值,删除相应存放队列中的数据包,并使所述控制模块2停止向相应的存放队列存入 数据包。
具体的,可通过所述监测模块5对高优先级存放队列中的数据包的个数进行监 测,用户可预先设置相应的数据包数量阈值,当所述监测模块5监测到所述高优先级存放 队列中的数据包的个数达到用户预设的所述数量阈值时,则表明该队列即将发生拥塞,所 述删除模块6根据当前识别出的交互型数据包的丢包优先级,结合高优先级数据包入队而 低优先级数据包丢弃的方式,删除相应的低优先级数据包,并通知所述控制模块2停止向 高优先级存放队列中存入数据包,保证队列中的数据进行稳定处理和发送。低优先级存放 队列、第三优先级存放队列和第四优先级存放队列采用同样的执行策略。
例如,高优先级存放队列为无拥塞控制的流量包(如延迟敏感流量,交互型数据 包),所述高优先级存放队列中包括Pi、P2、 、Pk、 、!即包含Kl个丢包优先级,其中k 是优先系数,k=l (例如Pl)相对于最高的丢包优先级。当队列缓冲占有率超过了用户设置 的个数阈值Pk (KKKl)时,则仅有丢包优先级是从1到k-Ι的数据包被允许输入到高优 先级存放队列进行输出,而其他优先级的包则被丢弃,即在第Plri个交互型数据包之后识别 出的交互型数据包被丢弃。同样的,对于低优先级存放队列、第三优先级存放队列和第四优 先级存放队列执行同样的丢包策略。
当某一应用建立时,该应用对应的所有的数据包根据连接跟踪信息进行数据传 递,在本实施例中,当接收到数据包时,所述识别模块1判断所述数据包对应的连接跟踪信 息中是否包括类别标识,若存在,则可直接根据该类别标识,识别确定出该数据包所对应的 应用的类型以及是否为特定应用,以便于能够最终识别出该数据包是交互型数据包还是正 常型数据包;若不存在,则所述识别模块1首先可对该数据包的应用类型进行判断识别,并在识别 出所述数据包所对应的应用的类型后,判断在所述用户层控制模块下发的特定应用交互型 索引表中是否记录有识别出的所述类型,若判断结果为记录有识别出的所述类型,则确定 所述数据包所对应的应用为特定应用,否则,为普通应用,不论判断的结果是普通应用或是 特定应用,所述识别模块1均会在该数据包所对应的连接跟踪信息中设置类别标识,所述 类别标识的组合为是否为特定应用+应用类型,设置所述类别标识的作用在于一方面, 对于后续的与该数据包为同一应用的数据包,所述识别模块1能够直接根据连接跟踪信息 的类别标识,识别其所对应的应用的类型;另一方面可使得所述控制模块2能够根据所述 类别标识,采用与所述类别标识所指示的应用所对应的应用类别流量控制规则,对所述数 据包进行流量控制处理。
具体的,如图2所示,所述识别模块1可包括第一判断单元111,用于判断所述数据包所对应的应用是否为特定应用;具体的,所述 第一判断单元111在执行判断过程中,可通过以下子单元对接收到的数据包是否为特定应 用进行判断第一判断子单元,用于判断所述数据包所对应的连接跟踪信息中是否包括类别标识; 第一应用类型识别子单元,用于当所述第一判断子单元检测判断的结果为是时,根据 所述类别标识,识别所述数据包所对应的应用的类型,并确定出所述数据包的应用是否为 特定应用;或者,用于当所述第一判断子单元判断的结果为否时,根据所述数据包所包括的五元组信息和所述用户层控制模块下发的流量控制应用表,识别所述数据包的应用的类 型,并在识别出类型后,判断在所述特定应用交互型索引表中是否记录有识别出的所述类 型,若判断结果为记录有识别出的所述类型,则确定所述数据包所对应的应用为特定应用, 否则,为普通应用,同时根据判断结果,在所述数据包的连接跟踪信息中设置与识别出的所 述类型相对应的类别标识,其中,所述类别标识的格式为是否为特定应用+应用类型。具 体的,在传输过程中,各类应用的数据包中均包括一个五元组用于路由和过滤,所述五元组 包括应用的源地址和端口、应用的目的地址和端口、协议类型,所述流量控制应用表则包 括至少一个五元组信息以及与每一个五元组信息一一对应的应用类型。
第一识别单元112,用于当所述第一判断单元111的判断结果为否时,确定所述数 据包为普通应用的正常型数据包,当判断结果为是时,确定所述数据包为特定应用的数据 包;长度判断单元113,用于当所述第一识别单元112确定所述数据包为特定应用的数据 包,判断所述特定应用的数据包的长度是否小于预设的长度阈值;第二识别单元114,用于当所述长度判断单元113判断结果为所述特定应用的数据包 的长度小于预设的长度阈值时,则识别确定所述数据包为交互型数据包,在所述交互型数 据包中设置延时敏感标志,否则,识别确定所述数据包为正常型数据包。
具体的,所述第一识别单元112与所述控制模块2和所述长度判断单元113相连 接,当所述第一识别单元112确定出所述数据包为普通应用的正常型数据包时,与所述第 一识别单元112相连接的所述控制模块2便可根据所述细分类别流量控制规则中的第二流 量控制规则中的与所述正常型数据包的类别标志相对应的应用的应用类别流量控制规则, 对所述正常型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先 级存放队列中;当所述第一识别单元112确定出所述数据包为特定应用的数据包时,与所述第一识别 单元112相连接的所述长度判断单元113判断所述特定应用的数据包的长度是否小于预设 的长度阈值以便于所述第二识别单元114能够判断该数据包为特定应用对应的交互型数 据包还是特定应用的正常型数据包,其判断依据为交互型数据包的特点为长度较小,仅有 几十个字节甚至仅几个字节,根据该特点,所述长度判断单元113通过判断所述特定应用 的数据包的长度是否小于用户预设的长度阈值的方式进行判断,当所述长度判断单元113 的判断结果为所述特定应用的数据包的长度小于预设的长度阈值时,例如小于用户预设的 50个字节,所述第二识别单元114便可识别出所述数据包为交互型数据包,该数据包所对 应的应用处于交互阶段,同时,在所述交互型数据包中设置延时敏感标志;否则,识别出为 特定应用的正常型数据包,该数据包所对应的应用处于非交互阶段。
第二识别单元114也与所述控制模块2相连接,当所述第二识别单元114识别出 所述数据包为交互型数据包时,所述控制模块2根据所述细分类别流量控制规则中第一流 量控制规则的,与所述交互型数据包的类别标志相对应的特定应用的应用类别流量控制规 则,以及所述延时敏感标志,对所述交互型数据包进行包括带宽控制和延时控制的流量控 制处理,并将所述交互型数据包存入高优先级存放队列中;当第二识别单元114识别出所 述数据包为正常型数据包时,所述控制模块2根据所述细分类别流量控制规则中的第二流 量控制规则中的与所述正常型数据包的类别标志相对应的应用的相应类型应用类别流量控制规则,对所述正常型数据包进行流量控制处理,并将流量控制处理后的正常型数据包 存入低优先级存放队列中。
所述第一流量控制规则中包括与多种特定应用相对应的流量控制规则,每一特定 应用的交互型数据包的流量控制规则中均包括带宽保证和延迟保证。当所述第二识别单元 114识别出接收到的所述数据包为交互型数据包,所述控制模块2采用第一流量控制规则 中的,与所述交互型数据包对应的连接跟踪信息中的类别标识所指示的特定应用的应用类 别流量控制规则中定义的带宽的大小,上行时的带宽,下行时的带宽等流量控制规则,分配 给所述交互型数据包相应的带宽,并根据所述数据包中的延时敏感标志将所述交互型数据 包存入高优先级存放队列中优先处理输出保证时延较小的要求。
当所述第一识别单元112识别出接收到的数据包为普通应用的正常型数据包时, 或第二识别单元114识别出接收到的数据包为特定应用的正常型数据包时,所述控制模块 2根据所述普通应用或者特定应用的正常型数据包对应的连接跟踪信息设置的类别标识以 及预设的第二流量控制规则,仅对所述正常型数据包作带宽保证等流量控制,并将所述正 常型数据包存入低优先级存放队列中,当高优先级存放队列中的数据包为空时,再行处理 输出。对于所述第二流量控制规则中相应应用的应用类别流量控制规则,如CIFS应用类别 流量控制规则,这些控制规则都是在非交互阶段生效的。
进一步的,所述控制模块2还用于当所述第一判断单元111的第一应用类型识别 单元根据所述数据包中的五元组信息和所述用户层控制模块4下发的流量控制应用表未 能识别出所述数据包所对应的应用类型时,根据所述细分类别流量控制规则中第二流量控 制规则的其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入 第四优先级存放队列中,所述第四优先级存放队列的优先权等级低于所述低优先级存放队 列。
具体的,若所述第一应用类型识别子单元根据所述数据包所包括的五元组信息和 所述用户层控制模块下发的流量控制应用表,无法识别出该数据包所属的应用类型,则该 数据包可能为垃圾流量数据包,所述控制模块2根据所述细分类别流量控制规则中第二流 量控制规则的其他类别流量控制规则,将所述数据包存入第四优先级存放队列中。所述第 四优先级存放队列的优先权等级最低,即当所述高优先级存放队列的数据包处理并输出完 后,处理所述低优先级存放队列中的数据包,最后处理所述第四优先级存放队列中的数据 包。
再请参见图3,是本发明的基于应用的流量控制器的第三实施例结构组成示意图, 本实施例中的所述基于应用的流量控制器与图2所示实施例的不同之处在于进行数据包的类型识别时,若数据包所对应的连接跟踪信息中不包括类别标识时,所 述识别模块1通过提取接收到的数据包中的特征码,并对提取的特征码进行分析,识别出 所述数据包所对应的应用的类型,然后根据用户设置的特定应用交互型索引表判断该应用 类型的应用是否为用户设定的特定应用,并根据判断结果(不论为特定应用还是非特定应 用的普通应用),在该数据包所对应的连接跟踪信息中设置类别标识,所述类别标识的格式 为是否为特定应用+应用类型,以便对后续相同应用的数据包,能够根据连接跟踪信息直 接判断数据包是否为特定应用及其应用类型,使得所述控制模块2能够直接进行相应的流 量控制;若是特定应用,则该数据包为特定应用所对应的数据包,否则,为普通应用对应的正常 型数据包;当判断出该数据包为特定应用所对应的数据包时,通过判断该数据包中是否包 括交互命令标志的方式,判断该数据包是否为特定应用的交互型数据包,当包括交互命令 标志时,为交互型数据包,否则为特定应用的正常型数据包。
同时,在根据所述特征码识别所述数据包所对应的应用的类型的过程中,为了保 证该数据包能够及时的进行处理,可直接根据第一流量控制规则中特定应用的其他应用类 别流量控制规则对该数据包进行流量控制,并将其存入优先级低于高优先级存放队列,高 于低优先级存放队列的第三优先级存放队列中,优先于已经识别出为正常型数据包输出。
具体的,如图3所示,本实施例的所述基于应用的流量控制器中的识别模块1包 括第二判断单元121,用于判断所述数据包所对应的应用是否为特定应用;具体的,所述 第二判断单元121在执行判断过程中,可通过以下子单元对接收到的数据包是否为特定应 用进行判断第二判断子单元,用于判断所述数据包所对应的连接跟踪信息中是否包括类别标识; 第二应用类型识别子单元,用于当所述第二判断子单元判断结果为是时,根据所述类 别标识,识别所述数据包所对应的应用的类型,并确定出所述数据包的应用是否为特定应 用;提取子单元,用于当所述第二判断子单元判断结果为否时,提取数据包中的特征码; 第三应用类型识别子单元,用于根据所述提取子单元提取的特征码识别所述数据包所 对应的应用的类型,并在识别出所述数据包的应用的类型后,判断在所述特定应用交互型 索引表中是否记录有识别出的所述类型,若判断结果为记录有识别出的所述类型,则确定 所述数据包所对应的应用为特定应用,否则,为普通应用,同时根据判断结果,在所述数据 包的连接跟踪信息中设置与识别出的所述类型相对应的类别标识,其中,所述类别标识的 组合为是否为特定应用+应用类型;第三识别单元122,用于当所述第二判断单元121的判断结果为否时,确定所述数据包 为普通应用的正常型数据包,当判断结果为是时,确定所述数据包为特定应用所对应的数 据包;交互命令标志识别单元123,用于当所述第三识别单元122确定所述数据包为特定应 用所对应的数据包,判断所述特定应用的数据包中是否包括交互命令标志;第四识别单元124,用于当所述交互命令标志识别单元123的判断结果为所述特定应 用的数据包中包括交互命令标志时,则识别确定所述数据包为交互型数据包,并在所述交 互型数据包中设置延时敏感标志,否则,识别确定所述数据包为特定应用的正常型数据包。
具体的,所述第三识别单元122与所述控制模块2和所述交互命令标识识别单元 123相连接,当所述第三识别单元122确定出所述数据包为普通应用的正常型数据包时,与 所述第三识别单元122相连接的所述控制模块2便可根据所述细分类别流量控制规则中的 第二流量控制规则中的与所述正常型数据包的类别标志相对应的应用的相应类型应用类 别流量控制规则,对所述正常型数据包进行流量控制处理,并将流量控制处理后的正常型 数据包存入低优先级存放队列中;当所述第三识别单元122确定出所述数据包为特定应用的数据包时,与所述第三识别单元122相连接的所述交互命令标识识别单元123对所述数据包进行数据流解析判断,若 所述数据包中存在交互命令标志,所述第四识别单元124即可确定所述数据包为相应的特 定应用的交互型数据包,确定该特定应用处于交互阶段,并在所述交互型数据包中设置延 时敏感标志,否则可确定所述数据包为相应的特定应用的正常型数据包,确定该特定应用 处于非交互阶段;所述第四识别单元1 也与所述控制模块2相连接,当所述第四识别单元IM识别出 所述数据包为交互型数据包时,所述控制模块2根据所述细分类别流量控制规则中第一流 量控制规则中的与所述交互型数据包的类别标志相对应的特定应用的应用类别流量控制 规则,以及所述延时敏感标志,对所述交互型数据包进行包括带宽控制和延时控制的流量 控制处理,并将所述交互型数据包存入高优先级存放队列中;当第四识别单元1 识别出 所述数据包为正常型数据包时,所述控制模块2根据所述细分类别流量控制规则中的第二 流量控制规则中的与所述正常型数据包的类别标志相对应的应用的相应类型应用类别流 量控制规则,对所述正常型数据包进行流量控制处理,并将流量控制处理后的正常型数据 包存入低优先级存放队列中。
所述控制模块2还用于在所述第二判断单元121的第三应用类型识别子单元根据 特征码识别所述数据包所对应的应用的类型过程中,根据所述细分类别流量控制规则中第 一流量控制规则中的其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述 数据包存入第三优先级存放队列中,其中,所述第三优先级存放队列的优先权等级低于所 述高优先级存放队列,高于所述低优先级存放队列。在所述提取子单元从抓取到的若干个 数据包中提取特征码,并当所述第三应用类型识别单元还在识别数据包的应用是否为特定 应用的过程中,由于抓取的这些数据包基本上都是长度较小的小包,为了保证这些小包也 能够优先处理,根据特定应用的第一流量控制规则中的其它类别流量控制规则,对所述数 据包进行流量控制处理,并将所述数据包存入第三优先级存放队列中。
所述控制模块2还用于当所述第二判断单元121的第三应用类型识别子单元未能 根据提取的特征码识别出所述数据包所对应的应用的类型时,根据所述细分类别流量控制 规则中第二流量控制规则的其他类别流量控制规则,对所述数据包进行流量控制处理,并 将所述数据包存入第四优先级存放队列中,其中,所述第四优先级存放队列的优先权等级 低于所述低先级存放队列,所述第四优先级存放队列的优先权等级最低,即当所述高优先 级存放队列的数据包处理并输出完后,处理所述第三优先级存放队列中的数据包,再处理 所述低优先级存放队列中的数据包,最后处理第四优先级存放队列中的数据包。
当接收到的所述数据包所对应的连接跟踪信息中并不包括类别标识时,所述识别 模块1可以基于数据包的特征码来识别相应协议类型即识别是何种应用,这需要分析若干 个数据包,通过所述第二判断单元121的提取子单元提取数据包若干特征码,并对特征码 进行支持度和可行度等进行分析,例如对于Http应用,分析其建立连接后的前8个数据包, 可以提取 3 组特征码,例如“0D OA 53 65 72 76 65 72 3A 20 Server”、“4B 65 65 70 2D 41 6C 69 76 65 =Keep-Alive ”、“20 48 54 54 50 2F 31 2E 31 OD OA :ΗΤΤΡ/1· 1”等。对 三组特征码的支持度和可行度等进行分析,所述提取子单元可自动地将前两类字段排除, 选择支持度和可行度较高的第三组特征码。
所述第二判断单元121的第三应用类型识别子单元根据所述提取子单元选择提取的特征码,到驱动设备中存储的应用特征码内容库中,查找并判断是否存在与所述特征 码相同的应用类型,若没有查找到与所述提取子单元提取的特征码相对应的应用时,所述 第三应用类型识别单元可确定所述数据包对应的应用类型未知,则该数据包可能为垃圾流 量数据包,所述数据包由所述控制模块2根据所述细分类别流量控制规则中第二流量控制 规则的其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入第 四优先级存放队列中;当所述第三应用类型识别子单元查找到与所述提取子单元提取的特征码相对应的应 用时,确定接收到的所述数据包的应用类型,并在识别出所述数据包的应用的类型后,判断 在所述特定应用交互型索引表中是否记录有识别出的所述类型,根据判断结果,在该数据 包所对应的连接跟踪信息中设置类别标识,所述类别标识的格式为是否为特定应用+应 用类型,以便对后续相同应用的数据包,能够根据连接跟踪信息直接判断数据包是否为特 定应用及其应用类型,使得所述控制模块2能够直接进行相应的流量控制。
其中,所述应用特征码内容库可由用户手动设定,也可由所述驱动设备通过统计 大量的长度在几十个字节以内的小的数据包中的特征码的方式,得出所述应用特征码内容 库,该库可智能学习和更新。
更进一步的,请参见图7,是本发明的细分类别流量控制规则的规则树示意图,应 用层定义两种细分规则类别,第一流量控制规则类和第二流量控制规则类,并把它们的流 控规则下发给驱动层供所述流量控制器进行识别和流量控制。
流控规则指的是流控的指标,如保障速率,最大速率,优先级,其中的速率涉及到 上行数据流流控或下行数据流流控或双向数据流流控。类别标识是用于表明是哪种应用, 当所述流量控制器识别出应用类型后就可以根据这个类别标识找到符合的规则进行控制。
第一流量控制规则类的特点是优先级最高并且权重大,打上该类别的数据包将入 队于高优先级存放队列或第三优先级存放队列中。第二流量控制规则类的特点是适用于各 个应用的带宽保证,打上该类别的数据包将入队于低优先级存放队列和第四优先级存放队 列。如图所示,在线路根类下增加了第一流量控制规则根类,用于处理交互型数据包的规则 类,其优先级在同Level下最高,权重大,确保优于同Level下的其它规则类。第一流量控 制规则根类下增加了受其管理的各种应用类别规则类。这些规则类优先级小于等于根类优 先级,大于第二流量控制规则类。这样双重保证了交互型数据包走第一流量控制规则,能优 先于走第二流量控制规则的正常型数据包。
同时正常型数据包可以走第二流量控制规则,在第一流量控制规则根类下的其它 命令类别规则主要是为提供给在采用自动识别方式(根据数据包自身的特征码进行应用类 型识别的方式)由于需要分析若干包,而这些包基本都可以认为是交互包,这个规则就是给 这些包用,并同时给出一个第三优先级存放队列,优先于第二流量控制规则的低优先级存 放队列和第四优先级存放队列,但低于高优先级存放队列。在第二流量控制规则根类下提 供的其它应用类别规则主要是为提供给在无论采用第一种用户定义识别(根据数据包的五 元组信息和用户定义的特定应用交互型索引表进行类型识别以及是否为特定应用的判断 的方式)还是第二种自动识别方式若数据包未能识别出来则走这个规则,对应的队列是第 四优先级存放队列,优先级最低。
实施本发明实施例,具有以下优点通过细分流量控制规则 结合队列优先服务机制的方式即优先处理高优先权等级的存 放队列中的数据包,对识别出的交互型数据包和正常型数据分别设置第一流量控制规则和 第二流量控制规则进行流量控制,并将数据包存储在相应优先级的存放队列中,保证交互 型数据包的带宽和时延的要求,同时也不会影响到非交互的正常型数据包的传输,提升了 用户的应用访问体验。同时在特定应用的其它命令类别规则对自动识别阶段内未识别出是 否为交互型数据包的小包时,也能够保证优先处理特定应用的数据包,普通应用的其他命 令类别规则也保证对未能识别出应用类型的垃圾应用做最低级别的处理,保证这些未知的 应用不会占用带宽,进一步提高了用户的使用体验。下面对本发明的基于应用的流量控制方法进行详细描述。请参见图4,是本发明的基于应用的流量控制方法的第一实施例流程示意图,该方 法包括
S401 当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括交互型数 据包和正常型数据包;
具体的,当驱动设备接收到数据包时,驱动设备中的流量控制器首先可通过查看该数 据包对应的连接跟踪信息中的类别标识来确定该数据包的类型,并确定是否为用户定义的 特定应用的数据包,若所述连接跟踪信息中并未设置类别标识,则可根据该数据包中包括 的应用的源地址和端口、应用的目的地址和端口以及协议类型判断所属的应用类型,再通 过判断该类型是否在预设的特定应用交互型索引表中的方式,判断该数据包是否为特定应 用所对应的数据包。其中,所述特定应用交互型索引表是由用户在应用层定义的,包括一个 或者多个应用。也可以通过提取数据包中的特征码的应用自动识别方式,识别该数据包的 应用类型,并根据自动识别出来的应用类型同样去查找特定应用交互型索引表具体是否为 特定应用的数据包。当确定驱动设备接收到的数据包为特定应用所对应的数据包时,可根据所述数据 包的长度,或者通过判断所述数据包中是否包括交互命令标志的方式,识别所述数据包的 类型,其中,所述数据包的类型包括交互型数据包和正常型数据包。其中,当所述数据包为 交互型数据包时,表明对应的应用处于交互阶段,当为正常型数据包时,则表明对应的应用 处于非交互阶段。S402:当识别出所述数据包为交互型数据包时,根据预设的第一流量控制规则,对 所述交互型数据包进行流量控制处理,并将流量控制处理后的交互型数据包存入高优先级 存放队列中;
具体的,所述第一流量控制规则中包括与多种特定应用相对应的流量控制规则,每一 特定应用相对应的流量控制规则均包括带宽保证和延迟保证。当所述S401识别出接收到 的所述数据包为交互型数据包,所述S402根据设置的所述第一流量控制规则中包括的,与 所述交互型数据包的相对应的特定应用的流量控制规则中设置的带宽的大小,上行时的带 宽,下行时的带宽等流量控制规则,分配给所述交互型数据包相应的带宽,并根据延时敏感 标志将所述交互型数据包存入高优先级存放队列中优先处理输出保证时延较小的要求。S403 将所述交互型数据包存入高优先级存放队列中;
所述高优先级存放队列的优先级最高,将交互型数据包存入高优先级存放队列中可保 证交互型数据包能够优先进行处理输出从而保证其处理输出的延迟较小。
S404:当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对 所述正常型数据包进行流量控制处理;
S405 将流量控制处理后的正常型数据包存入低优先级存放队列中; 具体的,当所述S401识别出接收到的数据包为普通应用的正常型数据包时,所述S404 根据预设的第二流量控制规则仅对所述正常型数据包作带宽保证等流量控制,S405将所述 正常型数据包存入低优先级存放队列中,当高优先级存放队列中的数据包为空时,再行处 理输出。S406:按存放队列的优先权等级,依次输出相应存放队列中的数据包。具体的,所述S406优先处理输出高优先级存放队列中的交互型数据包。对于存入 低优先级存放队列中的正常型数据包,当高优先级存放队列中的交互型数据包为空时,所 述S406处理输出所述低优先级存放队列中的正常型数据包。由于交互型数据包中仅包括 一些数据量较小的控制指令仅有几十个字节甚至几个字节,所述S406很快就会处理输出 完,处理完后即释放相应的带宽以处理输出低优先级存放队列中的特定应用中的非交互阶 段的正常型数据包和/或普通应用的正常型数据包。通过上述实施例的描述可知,本发明具有以下优点
通过细分流量控制规则结合队列优先服务机制的方式,对识别出的交互型数据包和正 常型数据分别设置第一流量控制规则和第二流量控制规则进行流量控制,并将数据包存储 在相应优先级的存放队列中,保证交互型数据包的带宽和时延的要求,同时也不会影响到 非交互的正常型数据包的传输,提升了用户的应用访问体验。请参见图5,是本发明的基于应用的流量控制方法的第二实施例流程示意图,该方 法包括
S501 通过应用层向驱动层下发预设的流量控制应用表,特定应用交互型索引表以及 包括特定应用的第一流量控制规则和其他类别流量控制规则、普通应用的第二流量控制规 则和其他类别流量控制规则的细分类别流量控制规则;
具体的,可通过向用户提供用户界面的方式,获取用户设置的流量控制应用表,特定应 用交互型索引表,并根据包括特定应用的第一流量控制规则、第二流量控制规则以及其他 类别的流量控制规则的细分类别流量控制规则,构成控制规则树,所述第一流量控制规则 包括交互型数据包的特定应用的应用类别流量控制规则和其他类别流量控制规则,所述 第二流量控制规则包括正常型数据包所对应应用的应用类别流量控制规则和其他类别流 量控制规则。将获取到的所述预设的流量控制应用表,特定应用交互型索引表以及控制规 则树下发给驱动设备的驱动层,以进行后续的数据包识别和流量控制规则的设置。S502 判断所述数据包所对应的应用是否为特定应用;
具体的,在相应的应用建立时,会产生一个连接跟踪信息以便于进行端到端的相应数 据包的跟踪,因此在接收到数据包时,S502可判断所述数据包所对应的连接跟踪信息中是 否包括类别标识;若所述连接跟踪信息中包括类别标识,则根据所述类别标识,识别所述数 据包所对应的应用的类型;
若所述连接跟踪信息中不包括类别标识,则可根据数据包所包括的五元组信息和所述 流量控制应用表,识别所述数据包所对应的应用的类型,并在识别出类型后,判断在所述特 定应用交互型索引表中是否记录有识别出的所述类型,若判断结果为记录有识别出的所述类型,则确定所述数据包所对应的应用为特定应用,否则,为普通应用;
同时根据判断结果,在所述数据包的连接跟踪信息中设置与识别出的所述类型相对应 的类别标识,其中,所述类别标识的格式为是否为特定应用+应用类型,以便于S502再次 接收到使用同一连接跟踪信息的数据包时,能够直接根据类别标识。判断出该数据包所对 应的应用是否为特定应用及其应用类型。根据数据包所包括的五元组信息中的源地址信息和源端口信息、目的地址信息和 目的端口信息、协议类型以及所述流量控制应用表,识别出所述数据包所对应的应用的类 型;即通过在流量控制应用表中查找与所述数据包中包括的应用的源地址信息和端口信 息、应用的目的地址信息和端口信息以及协议类型对应的应用类型的方式来识别该 数据包 的应用的类型。在传输过程中,各类应用的数据包中均包括一个五元组用于路由和过滤,所述五 元组包括应用的源地址和端口、应用的目的地址和端口、协议类型,用户访问应用还涉及 到上行类别标识、下行类别标识、双向类别标识。应用层会下发流量控制应用表给驱动层, 以供所述S502进行应用类型的查找识别。表的每项规则为“应用的源地址范围和端口范 围,应用的目的地址范围和端口范围,协议类别+应用类型”的组合。对于所述特定应用交 互型索引表,用户可在应用层设定相应的应用为特定应用,并下发给驱动层,相应的驱动设 备根据用户设定的所述特定应用,设置并维护所述特定应用交互型索引表以供S503进行 数据包是否为特定应用的数据包的判断。表的每项组合为“应用类型+应用索引”。S503:当判断结果为是时,确定所述数据包为特定应用的数据包,进一步判断所述 特定应用的数据包的长度是否小于预设的长度阈值;
具体的,当所述S502判断的结果为在所述驱动设备维护的所述特定应用交互型索引 表中,记录有应用类型以及应用索引,所述S503便可确定出该数据包为用户定义的特定应 用的数据包,从而可进一步判断所述特定应用的数据包的长度是否小于预设的长度阈值。S504:当所述特定应用的数据包的长度小于预设的长度阈值时,则识别确定所述 数据包为交互型数据包,在所述交互型数据包中设置延时敏感标志;
具体的,交互型数据包的特点为长度较小,仅有几十字节甚至仅几个字节,根据该特 点,当所述S503确定该数据包所对应的应用为用户定义的特定应用的数据包时,进一步判 断该数据包的长度大小,所述S504根据判断结果即可确定是否为交互型数据包。当所述 S503的判断所述特定应用的数据包的长度小于预设的长度阈值时,所述S504便可识别出 所述数据包为交互型数据包,该特定应用处于交互阶段。同时在所述数据包中设置延时敏 感标识。S505:根据所述细分类别流量控制规则的第一流量控制规则中与所述交互型数据 包相对应的特定应用的应用类别流量控制规则,以及所述延时敏感标志,对所述交互型数 据包进行包括带宽控制和延时控制的流量控制;
具体的,根据S502同时可确定该数据包的应用的类型,具体根据连接跟踪信息中的类 别标识,或者根据五元组信息和流量控制应用表,均可识别出该数据包的类型。S506 将所述交互型数据包存入高优先级存放队列中;
具体的,S506根据该数据包的延时敏感标识将所述交互型数据包存入高优先权的存 放队列中优先处理输出以保证交互型数据包时延较小的要求。其中,所述第一流量控制规则中包括与多种特定应用相对应的流量控制规则,如CIFS应用类别流量控制规则、FTP应 用类别流量控制规则等,每一特定应用相对应的流量控制规则中均包括带宽保证和延迟保 证。S511 当判断结果为否时,确定所述数据包为普通应用的正常型数据包;
具体的,当该数据包的连接跟踪信息中的类别标识所指示的内容为该数据包为非特定 应用的数据包,或者设置的特定应用交互型索引表中并不包括根据所述数据包中的五元组 信息识别的该数据包应用的类型时,表明该数据包为普通应用的正常型数据包。S512:当所述特定应用的数据包的长度不小于预设的长度阈值时,识别出为特定 应用的正常型数据包;
具体的,交互型数据包一般仅有几十字节甚至几个字节,其长度较小,当数据包的长度 大于用户设置的长度阈值时,如数据包的长度为100字节,大于用户设置的50字节的长度 阈值,则可判断该数据包为特定应用中的正常型数据包,该特定应用处于非交互阶段。S513:根据所述细分类别流量控制规则的第二流量控制规则中与所述正常型数据 包所对应的应用的应用类别流量控制规则,对所述正常型数据包进行包括带宽控制的流量 控制;
具体的,根据S502同时可确定该数据包的应用的类型,具体根据连接跟踪信息中的类 别标识,或者根据五元组信息和流量控制应用表均可识别出该数据包的类型。对正常型数 据包的流量控制,仅采用保证带宽的流量控制即可,如设置一个较大的带宽,设置较大的上 行带宽、较大的下行带宽等。S514 将流量控制处理后的正常型数据包存入低优先级存放队列中;
另外,在具体实施中,若S502中根据数据包所包括的五元组信息中的源地址信息和源 端口信息、目的地址信息和目的端口信息,协议类型以及所述流量控制应用表,并未识别所 述数据包所对应的应用的应用类型时,根据细分类别流量控制规则第二流量控制规则中的 其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入第四优先 级存放队列中;
其中,所述第四优先级存放队列的优先权等级低于低优先级存放队列;执行本步骤的 目的在于,对于未能识别出应用类型的数据包时,可将该数据包视为垃圾流量数据包,直接 将该数据包存放到优先权最低的第四优先级存放队列中,以便控制这些未在用户定义的应 用范围内的垃圾应用流量不占用其它应用带宽。S510:按存放队列的优先权等级,依次输出相应存放队列中的数据包。具体的,当高优先级存放队列中的交互型数据包处理输出完后,再行处理低优先 级存放队列中的正常型数据包,最后处理所述第四优先级存放队列中的数据包,可保证交 互型数据包的延时较小的要求,同时由于交互型数据包长度较小,处理输出较快,处理完后 即可释放带宽给低优先级存放队列中的正常型数据包,也不会影响到用户的数据下载等体 验。另外,在本实施例的流量控制处理过程中,还可根据需要执行以下步骤 监测所述高优先级存放队列、所述低优先级存放队列以及所述第四优先级存放队列中
的数据包的个数;
当监测到相应存放队列的 数据包的个数达到预设的数量阈值时,根据对已识别出类型的数据包设置的丢包优先系数以及预设的系数阈值,删除相应存放队列中的数据包,并停 止向相应的存放队列存入数据包。执行上述步骤的目的在于当所述高优先级存放队列、所述低优先级存放队列发生 拥塞时,能够及时地丢弃新识别出的交互型数据包和/或正常型数据包。下面对丢包的步骤进行举例说明
参见图8,是本发明的基于应用的流量控制方法中的存放队列示意图,按优先等级从高 到低的包括高优先级存放队列、第三优先级存放队列、低优先级存放队列以及第四优先级 存放队列。其中,高优先级存放队列为无拥塞控制的流量包(如延迟敏感流量,交互型数据 包),所述高优先级存放队列中包括Pi、P2、 、Pk、 、PK1,即包含Kl个丢包优先级,其中k 是丢包优先系数,k=l (例如Pl)相对于最高的丢包优先级。当队列缓冲占有率超过了用户 设置的个数阈值Pk (l<k<Kl)时,此时的k即为系数阈值,仅有丢包优先级是从1到k-Ι的 数据包被允许输入到高优先级存放队列进行输出,而系数阈值k之后的其他优先级的包则 被丢弃,即在第Plri个交互型数据包之后识别出的交互型数据包被丢弃。同样的,对于低优 先级存放队列、第三优先级存放队列和第四优先级存放队列执行同样的丢包策略。请参见图6,是本发明的基于应用的流量控制方法的第三实施例流程示意图,该方 法包括
S601 通过应用层向驱动层下发预设的特定应用交互型索引表以及包括特定应用的第 一流量控制规则和其他类别流量控制规则、普通应用的第二流量控制规则和其他类别流量 控制规则的细分类别流量控制规则;在本实施例中,对数据包应用类别的识别是通过提取 特征码进行自动识别的方式,因此并不需要流量控制应用表。S602 判断所述数据包所对应的应用是否为特定应用;
具体的,在相应的应用建立时,会产生一个连接跟踪信息以便于进行端到端的相应数 据包的传递,因此在接收到数据包时,S602判断所述数据包所对应连接跟踪信息中是否包 括类别标识;若所述连接跟踪信息中包括类别标识,则根据所述类别标识,确定出所述数据 包的应用是否为特定应用;
若所述连接跟踪信息中不包括类别标识,则提取数据包中的特征码; 根据所述特征码识别所述数据包所对应的应用的类型,并在识别出所述数据包的应用 的类型后,判断在所述特定应用交互型索引表中是否记录有识别出的所述类型,若判断结 果为记录有识别出的所述类型,则确定所述数据包所对应的应用为特定应用,否则,为普通 应用,同时根据判断结果,在所述数据包的连接跟踪信息中设置与识别出的所述类型相对 应的类别标识,其中,所述类别标识的组合为是否为特定应用+应用类型;
其中,在根据所述特征码识别所述数据包所对应的应用的类型的识别过程中,根据所 述细分类别流量控制规则中第一流量控制规则中的其他类别流量控制规则,对所述数据包 进行流量控制处理,将所述数据包存入第三优先级存放队列中,所述第三优先级存放队列 的优先权等级低于所述高优先级存放队列,高于所述低优先级存放队列。 下面对在连接跟踪信息中不包括类别标识时,S602进行判断的过程进行说明。可提取若干个数据包的特征码,判断并选取至少一个为相应应用所对应的支持度 和可信度较高的特征码。可以基于应用的特征码来识别相应协议类型即识别是何种应用, 这需要分析若干个数据包,通过所述S602提取若干数据包中的特征码,并对特征码进行支持度和可行度等进行分析,例如对于Http应用,分析其建立连接后的前8个数据包,可以提 取 3 组特征码,例如“OD OA 53 65 72 76 65 72 3A 20 Server”、“4B 65 65 70 2D 41 6C 69 76 65 =Keep-Alive ”、“20 48 54 54 50 2F 31 2E 31 OD OA :ΗΤΤΡ/1· 1”等。对三组特 征码的支持度和可行度等进行分析,所述S602可自动地将前两类字段排除,选择支持度和 可行度较高的第三组特征码。所述S602根据选取的特征码,到驱动设备中存储的特定应用特征码内容库中,查 找并判断是否存在与所述特征码相匹配的应用类型,当所述查找到与选取的特征码相匹配 的应用时,所述S602即可判断出所述数据包所对应的应用的类型。其中,所述应用特征码 内容库可由用户手动设定,也可由所述驱动设备通过统计大量的长度在几十字节以内的小 的数据包中的特征码的方式,得出所述应用特征码内容库。判断出该数据包对应的应用的 类型后,S602判断在所述特定应用交互型索引表中是否记录有识别出的所述类型;当在所 述特定应用交互型索引表中记录有该数据包对应的应用时,则可确定所述数据包为特定应 用所对应的数据包,否则为普通应用所对应的数据包;
S603:当判断结果为是时,确定所述数据包为特定应用所对应的数据包,则进一步判断 所述特定应用的数据包中是否包括交互命令标志;
S604:当所述特定应用的数据包中包括交互命令标志时,则识别确定所述数据包为交 互型数据包,并在所述交互型数据包中设置延时敏感标志;
具体的,当根据S602的判断确定出所述数据包为特定应用的数据包时,所述S604对所 述数据包进行分析判断,若所述数据包中存在交互命令标志,所述S606即可确定识别出所 述数据包为相应的特定应用的交互型数据包,该特定应用处于交互阶段。S605:当识别出所述数据包为交互型数据包时,根据所述细分类别流量控制规则 的第一流量控制规则中与所述交互型数据包的相对应的特定应用的应用类别流量控制规 贝U,以及所述延时敏感标志,对所述交互型数据包进行包括带宽控制和延时控制的流量控 制;
具体的,根据所述S602同时可确定该数据包的应用的类型,具体根据连接跟踪信息中 的类别标识,或者根据特征码和应用特征码数据库均可识别出该数据包的类型。S606 将所述交互型数据包存入高优先级存放队列中;
S611 当判断结果为否时,确定所述数据包为普通应用的正常型数据包; 具体的,当该数据包的连接跟踪信息中的类别标识所指示的内容为该数据包为非特定 应用的数据包,或者设置的特定应用交互型索引表中并不包括根据所述数据包中的特征码 识别的该数据包应用的类型时,表明该数据包为普通应用的正常型数据包。S612:当所述特定应用的数据包中不包括交互命令标志时,识别出为特定应用的 正常型数据包;
具体的,若S603的判断结果为所述数据包中并不存在交互命令标志,则S612可确定该 数据包为特定应用的正常型数据包,该特定应用处于非交互阶段。 另外,由于需要对提取多个相应的数据包中的特征码进行识别、查找以及确认操 作,在S602根据特征码识别方式识别该数据包对应的应用的应用类型的过程中,由于该识 别需要对数据包中的特征码进行详细分析,在还未分析识别出该数据包的应用类型前,可 直接根据细分类别流量控制规则第一流量控制规则中的其它命令类别规则,对所述数据包进行包括带宽保证和延迟保证的流量控制处理,并将所述数据包存入第三优先级存放队列 中,其中,所述第三优先级存放队列的优先权等级低于所述高优先级存放队列,高于所述低 优先级存放队列。这么处理的目的在于,在识别过程中的这些包也能得到优先处理,因为这 些包基本上都是交互包,只是这些包还不知道其是否为交互型数据包,所以根据特定应用 的第一流量控制规则中相对应的其他类别流量控制规则进行流量控制。 S613:根据所述细分类别流量控制规则的第二流量控制规则中与所述正常型数据 包相对应的应用的应用类别流量控制规则,对所述正常型数据包进行包括带宽控制的流量 控制;
具体的,对正常型数据包的流量控制,仅采用保证带宽的流量控制即可,如设置一个较 大的带宽,设置较大的上行带宽、较大的下行带宽等。S614 将流量控制处理后的正常型数据包存入低优先级存放队列中;
另外,在具体实施中,若S602中根据提取的一个或者多个数据包中的特征码,并不能 识别出所述数据包所对应的应用的应用类型时,根据细分类别流量控制规则第二流量控制 规则中的其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入 第四优先级存放队列中;其中,所述第四优先级存放队列的优先权等级低于低优先级存放 队列;执行本步骤的目的在于,对于未能识别出应用类型的数据包时,可将该数据包视为垃 圾流量数据包,直接将该数据包存放到优先权最低的第四优先级存放队列中,以便控制这 些未在用户定义的应用范围内的垃圾应用流量不占用其它应用带宽。S610:按存放队列的优先权等级,依次输出相应存放队列中的数据包。具体的,当高优先级存放队列中的交互型数据包处理输出完后,再行处理低优先 级存放队列中的正常型数据包,可保证交互型数据包的延时较小的要求,同时由于交互型 数据包长度较小,处理输出较快,处理完后即可释放带宽给低优先级存放队列中的正常型 数据包,也不会影响到用户的数据下载等体验。另外,在本实施例的流量控制处理过程中,还可根据需要执行以下步骤 监测所述高优先级存放队列、第三优先级存放队列、所述低优先级存放队列以及所述
第四优先级存放队列中的数据包的个数;
当监测到相应存放队列的数据包的个数达到预设的数量阈值时,根据对已识别出类型 的数据包设置的丢包优先系数以及预设的系数阈值,删除相应存放队列中的数据包,并停 止向相应的存放队列存入数据包。执行上述步骤的目的在于当所述高优先级存放队列、所述第三优先级存放队列、 所述低优先级存放队列以及所述第四优先级存放队列发生拥塞时,能够及时地丢弃新识别 出的交互型数据包和/或正常型数据包。下面对丢包的步骤进行举例说明
高优先级存放队列为无拥塞控制的流量包(如延迟敏感流量,交互型数据包),所述高 优先级存放队列中包括Pi、P2> 、pk、 、Pki,即包含Kl个丢包优先级,其中k是优先系 数,k=l (例如Pl)相对于最高的丢包优先级。当队列缓冲占有率超过了用户设置的个数阈 值Pk (l<k<Kl)时,则仅有丢包优先级是从1到k-1的数据包被允许输入到高优先级存放 队列进行输出,而其他优先级的包则被丢弃,即在第Plri个交互型数据包之后识别出的交互 型数据包被丢弃。同样的,对于低优先级存放队列、第三优先级存放队列和第四优先级存放队列执行同样的丢包策略。
通过上述实施例的描述可知,本发明具有以下优点
通过细分流量控制规则结合队列优先服务机制的方式即优先处理高优先权等级的存 放队列中的数据包,对识别出的交互型数据包和正常型数据分别设置第一流量控制规则和 第二流量控制规则进行流量控制,并将数据包存储在相应优先级的存放队列中,保证交互 型数据包的带宽和时延的要求,同时也不会影响到非交互的正常型数据包的传输,提升了 用户的应用访问体验。同时普通应用的其他命令类别规则也保证对未能识别出应用类型的 垃圾应用做最低级别的处理,保证这些未知的应用不会占用带宽,进一步提高了用户的使 用体验。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范 围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种基于应用的流量控制方法,其特征在于,包括当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括交互型数据包和 正常型数据包;当识别出所述数据包为交互型数据包时,根据预设的第一流量控制规则,对所述交互 型数据包进行流量控制处理,并将流量控制处理后的交互型数据包存入高优先级存放队列 中;当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述正常 型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先级存放队列 中;按存放队列的优先权等级,依次输出相应存放队列中的数据包。
2.如权利要求1所述的方法,其特征在于,所述当接收到数据包时,识别所述数据包的 类型的步骤之前,还包括通过应用层向驱动层下发预设的流量控制应用表,特定应用交互型索引表以及包括第 一流量控制规则、第二流量控制规则的细分类别流量控制规则,所述第一流量控制规则包 括交互型数据包对应的特定应用的应用类别流量控制规则和其他类别流量控制规则,所 述第二流量控制规则包括正常型数据包对应的应用的应用类别流量控制规则和其他类别 流量控制规则。
3.如权利要求2所述的方法,其特征在于,所述当接收到数据包时,识别所述数据包的 类型的步骤,包括判断所述数据包所对应的应用是否为特定应用;当判断结果为否时,确定所述数据包为普通应用的正常型数据包,当判断结果为是时, 确定所述数据包为特定应用的数据包,进一步判断所述特定应用的数据包的长度是否小于 预设的长度阈值;当所述特定应用的数据包的长度小于预设的长度阈值时,则识别确定所述数据包为交 互型数据包,在所述交互型数据包中设置延时敏感标志,否则,识别确定所述数据包为正常 型数据包。
4.如权利要求3所述的方法,其特征在于,所述判断所述数据包所对应的应用是否为 特定应用的步骤包括判断所述数据包所对应的连接跟踪信息中是否包括类别标识;若所述连接跟踪信息中包括类别标识,则根据所述类别标识,识别所述数据包所对应 的应用的类型,并确定出所述数据包的应用是否为特定应用;若所述连接跟踪信息中不包括类别标识,根据数据包所包括的五元组信息和所述流 量控制应用表,识别所述数据包所对应的应用的类型,并在识别出类型后,判断在所述特定 应用交互型索引表中是否记录有识别出的所述类型,若判断结果为记录有识别出的所述类 型,则确定所述数据包所对应的应用为特定应用,否则,为普通应用,同时根据判断结果,在 所述数据包的连接跟踪信息中设置与识别出的所述类型相对应的类别标识;其中,所述类别标识的格式为是否为特定应用+应用类型。
5.如权利要求2所述的方法,其特征在于,所述当接收到数据包时,识别该数据包的类 型的步骤,包括判断所述数据包所对应的应用是否为特定应用;当判断结果为否时,确定所述数据包为普通应用的正常型数据包,当判断结果为是时, 确定所述数据包为特定应用所对应的数据包,则进一步判断所述特定应用的数据包中是否 包括交互命令标志;当所述特定应用的数据包中包括交互命令标志时,则识别确定所述数据包为交互型数 据包,并在所述交互型数据包中设置延时敏感标志,否则,识别确定所述数据包为特定应用 的正常型数据包。
6.如权利要求5所述的方法,其特征在于,所述判断所述数据包所对应的应用是否为 特定应用的步骤包括判断所述数据包所对应连接跟踪信息中是否包括类别标识;若所述连接跟踪信息中包括类别标识,则根据所述类别标识,识别所述数据包所对应 的应用的类型,并确定出所述数据包的应用是否为特定应用;若所述连接跟踪信息中不包括类别标识,则提取数据包中的特征码;根据所述特征码识别所述数据包所对应的应用的类型,并在识别出所述数据包的应用 的类型后,判断在所述特定应用交互型索引表中是否记录有识别出的所述类型,若判断结 果为记录有识别出的所述类型,则确定所述数据包所对应的应用为特定应用,否则,为普通 应用,同时根据判断结果,在所述数据包的连接跟踪信息中设置与识别出的所述类型相对 应的类别标识,其中,所述类别标识的组合为是否为特定应用+应用类型;其中,在根据所述特征码识别所述数据包所对应的应用的类型的识别过程中,根据所 述细分类别流量控制规则中第一流量控制规则中的其他类别流量控制规则,对所述数据包 进行流量控制处理,将所述数据包存入第三优先级存放队列中,所述第三优先级存放队列 的优先权等级低于所述高优先级存放队列,高于所述低优先级存放队列。
7.如权利要求4或6所述的方法,其特征在于,还包括当根据所述数据包中包括的五元组信息或者根据提取的特征码未能识别出所述数据 包所对应的应用的类型时,根据所述细分类别流量控制规则的第二流量控制规则中的其他 类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入第四优先级存 放队列中,其中,所述第四优先级存放队列的优先权等级低于所述低优先级存放队列。
8.如权利要求7所述的方法,其特征在于,还包括监测存放队列中的数据包的个数,其中当采用根据所述数据包中包括的五元组信息以 及流量控制应用表识别所述数据包所对应的应用的类型时,所述存放队列包括所述高优先 级存放队列、所述低优先级存放队列以及所述第四优先级存放队列,或者当采用从数据包 中提取出的特征码的方式识别所述数据包所对应的应用的类型时,所述存放队列包括所述 高优先级存放队列、所述低优先级存放队列、所述第三优先级存放队列以及所述第四优先 级存放队列;当监测到相应存放队列的数据包的个数达到预设的数量阈值时,根据对相应存放队列 中的数据包设置的丢包优先系数以及预设的系数阈值,删除相应存放队列中的数据包,并 停止向相应的存放队列存入数据包。
9.一种基于应用的流量控制器,其特征在于,包括识别模块,用于当接收到数据包时,识别所述数据包的类型,所述数据包的类型包括交互型数据包和正常型数据包;控制模块,用于当所述识别模块识别出所述数据包为交互型数据包时,根据预设的第 一流量控制规则,对所述交互型数据包进行流量控制处理,并将流量控制处理后的交互型 数据包存入高优先级存放队列中;当识别出所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述正常 型数据包进行流量控制处理,并将流量控制处理后的正常型数据包存入低优先级存放队列 中;发送模块,用于按存放队列的优先权等级,依次输出相应存放队列中的数据包。
10.如权利要求9所述的流量控制器,其特征在于,还包括用户层控制模块,用于获取预设的流量控制应用表,特定应用交互型索引表以及包括 特定应用的第一流量控制规则和第二流量控制规则的细分类别流量控制规则。
11.如权利要求10所述的流量控制器,其特征在于,所述识别模块包括 第一判断单元,用于判断所述数据包所对应的应用是否为特定应用;第一识别单元,用于当所述第一判断单元的判断结果为否时,确定所述数据包为普通 应用的正常型数据包,当判断结果为是时,确定所述数据包为特定应用的数据包;长度判断单元,用于当所述第一识别单元确定所述数据包为特定应用的数据包,判断 所述特定应用的数据包的长度是否小于预设的长度阈值;第二识别单元,用于当所述长度判断单元判断结果为所述特定应用的数据包的长度小 于预设的长度阈值时,则识别确定所述数据包为交互型数据包,在所述交互型数据包中设 置延时敏感标志,否则,识别确定所述数据包为正常型数据包。
12.如权利要求11所述的流量控制器,其特征在于,所述第一判断单元具体包括 第一判断子单元,用于判断所述数据包所对应的连接跟踪信息中是否包括类别标识; 第一应用类型识别子单元,用于当所述第一判断子单元检测判断的结果为是时,根据所述类别标识,识别所述数据包所对应的应用的类型,并确定出所述数据包的应用是否为 特定应用;或者,用于当所述第一判断子单元判断的结果为否时,根据所述数据包所包括的五元 组信息和所述用户层控制模块下发的流量控制应用表,识别所述数据包的应用的类型,并 在识别出类型后,判断在所述特定应用交互型索引表中是否记录有识别出的所述类型,若 判断结果为记录有识别出的所述类型,则确定所述数据包所对应的应用为特定应用,否则, 为普通应用,同时根据判断结果,在所述数据包的连接跟踪信息中设置与识别出的所述类 型相对应的类别标识,其中,所述类别标识的格式为是否为特定应用+应用类型。
13.如权利要求9所述的流量控制器,其特征在于,所述识别模块包括 第二判断单元,用于判断所述数据包所对应的应用是否为特定应用;第三识别单元,用于当所述第二判断单元的判断结果为否时,确定所述数据包为普通 应用的正常型数据包,当判断结果为是时,确定所述数据包为特定应用所对应的数据包;交互命令标志识别单元,用于当所述第三识别单元确定所述数据包为特定应用所对应 的数据包,判断所述特定应用的数据包中是否包括交互命令标志;第四识别单元,用于当所述交互命令标志识别单元的判断结果为所述特定应用的数据 包中包括交互命令标志时,则识别确定所述数据包为交互型数据包,并在所述交互型数据包中设置延时敏感标志,否则,识别确定所述数据包为特定应用的正常型数据包。
14.如权利要求13所述的流量控制器,其特征在于,所述第二判断单元具体包括第二判断子单元,用于判断所述数据包所对应的连接跟踪信息中是否包括类别标识;第二应用类型识别子单元,用于当所述第二判断子单元判断结果为是时,根据所述类 别标识,识别所述数据包所对应的应用的类型,并确定出所述数据包的应用是否为特定应 用;提取子单元,用于当所述第二判断子单元判断结果为否时,提取数据包中的特征码;第三应用类型识别子单元,用于根据所述提取子单元提取的特征码识别所述数据包所 对应的应用的类型,并在识别出所述数据包的应用的类型后,判断在所述特定应用交互型 索引表中是否记录有识别出的所述类型,若判断结果为记录有识别出的所述类型,则确定 所述数据包所对应的应用为特定应用,否则,为普通应用,同时根据判断结果,在所述数据 包的连接跟踪信息中设置与识别出的所述类型相对应的类别标识,其中,所述类别标识的 组合为是否为特定应用+应用类型;所述控制模块还用于在所述第三应用类型识别子单元根据特征码识别所述数据包所 对应的应用的类型过程中,根据所述细分类别流量控制规则中第一流量控制规则中的其他 类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包存入第三优先级存 放队列中,其中,所述第三优先级存放队列的优先权等级低于所述高优先级存放队列,高于 所述低优先级存放队列。
15.如权利要求12或14所述的流量控制器,其特征在于,所述控制模块还用于当所述第一应用类型识别子单元或所述第三应用类型识别子单 元未能识别出所述数据包所对应的应用类型时,根据所述细分类别流量控制规则中第二流 量控制规则的其他类别流量控制规则,对所述数据包进行流量控制处理,并将所述数据包 存入第四优先级存放队列中,其中,所述第四优先级存放队列的优先权等级低于所述低优 先级存放队列。
16.如权利要求15所述的流量控制器,其特征在于,还包括监测模块,用于当采用根据所述数据包中包括的五元组信息以及流量控制应用表识别 所述数据包所对应的应用的类型时,监测所述高优先级存放队列、所述低优先级存放队列 以及所述第四优先级存放队列中的数据包的个数;或者当采用从数据包中提取出的特征码的方式识别所述数据包所对应的应用的类型 时,监测所述高优先级存放队列、所述低优先级存放队列、所述第三优先级存放队列以及所 述第四优先级存放队列中的数据包的个数;删除模块,用于当所述监测模块监测到相应存放队列的数据包的个数达到预设的数量 阈值时,根据对相应存放队列中的数据包设置的丢包优先系数以及预设的系数阈值,删除 相应存放队列中的数据包,并使所述控制模块停止向相应的存放队列存入数据包。
全文摘要
本发明实施例公开了一种基于应用的流量控制方法及流量控制器,该方法包括识别接收到的数据包的类型;当数据包为交互型数据包时,根据预设的包括带宽控制和延时控制的第一流量控制规则,对所述数据包进行流量控制后存入高优先级存放队列中;当所述数据包为正常型数据包时,根据预设的第二流量控制规则,对所述数据包进行流量控制后存入低优先级存放队列中;按存放队列的优先权等级,依次输出数据包。本发明通过将流量控制规则细分为第一流量控制规则和第二流量控制规则,分别对识别出的交互型数据包和正常型数据进行流量控制,保证交互型数据包的带宽和时延的要求,同时也不会影响到非交互的正常型数据包的传输,提升了用户的应用访问体验。
文档编号H04L12/56GK102035748SQ201010618729
公开日2011年4月27日 申请日期2010年12月31日 优先权日2010年12月31日
发明者林钦松 申请人:深圳市深信服电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1