专利名称:基于流分类的分组流量控制系统及控制方法
技术领域:
本发明属于数据通信领域,涉及对数据分组流量控制方法,可用于需要对不同特征的数据分组提供不同的流量控制的分组通信环境中。
背景技术:
随着hternet的飞速发展,人们对网络的需求日益多样化,传统的单一形式的尽力而为Best Effort服务已经不能满足多元化的网络需求,网络提供商迫切需要为不同的网络服务提供不同级别的服务质量QoS。现在最常用的做法是提取数据分组中的优先级域,以此来决定提供服务的级别。但是,随着新业务的涌现如控制访问列表、差分服务、策略路由等,迫切需要对数据分组进行更精确的划分,标记每个数据分组所属的业务类,以此来决定它们应该接受哪种类型的服务。衡量QoS的标准有很多,例如带宽、丢包率以及抖动控制和延迟等。其中,决定抖动控制和延迟的关键因素即为流量控制。因为如果允许某个节点通过的流量越大,那么数据分组通过此节点的传输时延和抖动就会越小,相应服务质量就会越高。因此,为不同特征的数据分组提供不同的流量能够更好的满足网络服务精细化的需求。数据分组特征域有很多,例如媒体接入控制源MAC地址、目的MAC地址、网络互联协议源IP地址目的IP地址、传输控制协议TCP域等。根据对数据分组分类时涉及特征域的多少,流分类可分为单域流分类和多域流分类。传统的流分类要么没有将流分类的结果和流量控制相关联,要么只是简单地提取分组的优先级然后做流量控制,因而都不能解决为不同特征的数据分组提供准确的流量控制。
发明内容
本发明的目的在于针对上述已有技术的不足,提供一种基于流分类的分组流量控制系统及控制方法,通过提取多层数据分组层的特征域,实现对不同特征的数据分组提供不同的流量控制。本发明的技术方案是这样实行的— .本发明基于流分类的分组流量控制系统,包括字段表模块用于设置从分组头部中提取的w个字段,所述字段是指数据分组不同层次头部中的地址、服务等级和协议号,w是一个大于或者等于1正整数;规则表模块,用于设置对数据分组进行分类的η条规则,每一条规则包含m个条款和一个流控标签,其中条款由字段、操作和数值组成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控标签指示当从数据分组中提取的每个字段的数值均和条款中规定的数值相同时,应该进行的流控类型,流控标签的个数为q,q是一个根据分组流控类型的多少而设定的大于或等于1的正整数;令牌桶参数表模块,用于存放令牌桶的参数,由q个表项组成,每个表项存放两个令牌桶参数每次向流控令牌桶中注入令牌的个数N以及令牌桶中令牌个数的上限M,每个令牌代表的字节数,根据实际需求进行设定,一个令牌代表一个字节,N是依据令牌桶流量的大小而设置的大于或者等于1的正整数,M是依据令牌桶突发时间的长短而设置的大于或者等于N的正整数;流控参数表模块,用于存放流控的参数,由q个表项组成,每个表项有两个流控参数流控启动的标志位F和当前流控令牌桶中令牌的个数A,初始化时这两个参数均置为零,并且在流控过程中这两个参数是不断更新的,F有0和1两种状态,0表示关闭流控,1表示启动流控,A是一个小于或者等于M的非负整数;输入缓存器模块用于缓存通信节点从外部网络中接收的数据分组,缓存器的大小和数目根据网络中实际交换的分组大小和需求设定;匹配模块根据字段表中设置的关键字段从输入缓存器中提取数据分组头部中的相应的关键字段,从规则表中的第一条规则开始进行匹配,即检查提取的关键字段是否符合该规则中所有的条款,如果符合,则匹配结束,否则再进行下一条规则匹配,直到关键字段与一条规则中所有的条款都符合为止,并给出匹配规则携带的流控标签,如果关键字段和任何规则中的条款都不符合,则人为地设置一个流控标签;流控模块采用基于帧长的令牌桶流控算法对数据分组进行流量控制,包含流控决策子模块和流控参数表循环更新子模块;流控决策子模块以流控标签为索引查找流控参数表,取出流控参数表对应表项中的流控参数F和A,首先判断F标志位是否为1,如果为1,则表示已经启动令牌桶的流控功能;反之,尚未启动令牌桶流控功能,不对数据分组进行流控,直接给出流控成功标识;再判断A是否大于数据分组消耗的令牌个数p,如果大于,给出流控成功标识,并将令牌桶中令牌的数目将减少P ;反之,给出流控失败标识,P等于数据分组的字节数,是一个正整数;流控参数表循环更新子模块依次循环更新流控参数表的第1个表项到第q个表项取出流控参数表和令牌桶参数表中第1个表项中的四个参数F、A、N和M,并进行判断,若M为零,则将F置为零;反之,再判断F是否为零,如果F为零,将F更新为1,同时将A的大小设置为M ;如果F不为零,判断A加N是否大于M,如果大于M,将A的数值更新为M ;否则,将A的数值更新为A加N ;接下来依次更新后面个各表项,直到第q个表项更新完毕后,然后再从第1个表项开始重新依次重新更新这q个表项,更新过程循环进行。二 .本发明基于流分类的分组流量控制方法,包括如下步骤(1)根据用户的需求,配置通信节点中的字段表、规则表、令牌桶参数表和流控参数表,该字段表,包括t个字段,字段是指数据分组不同层次头部中的地址、服务等级和协议号,t是一个大于或者等于1正整数;该规则表,存放有η条规则,每一条规则包含m个条款和一个流控标签,其中条款由字段、操作和数值组成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控标签指示当从数据分组中提取的每个字段的数值均和条款中规定的数值相同时,应该进行的流控类型,流控标签的个数为q,q是一个根据分组流控类型的多少而设定的大于或等于1的正整数;该令牌桶参数表,由q个表项组成,每个表项存放令牌桶的两个参数每次向流控令牌桶中注入令牌的个数N以及令牌桶中令牌个数的上限M,每个令牌代表的字节数,根据实际需求进行设定,一个令牌代表一个字节,N是依据令牌桶流量的大小而设置的大于或者等于1的正整数,M是依据令牌桶突发时间的长短而设置的大于或者等于N的正整数;该流控参数表,由q个表项组成,每个表项有两个流控参数流控启动的标志位F和当前流控令牌桶中令牌的个数A,初始化时这两个参数均置为零,并且在流控过程中这两个参数是不断更新的,F有0和1两种状态,0表示关闭流控,1表示启动流控,A是一个小于或者等于M的非负整数;(2)通信节点从外部网络中接收数据分组并将其存入输入缓存器中,该输入缓存器的大小和数目根据网络中实际交换的分组大小和需求设定;(3)根据字段表中设置的关键字段从输入缓存器中提取数据分组头部中的相应的关键字段,从规则表中的第一条规则开始进行匹配,即检查提取的关键字段是否符合该规则中所有的条款,如果符合,则匹配结束,否则再进行下一条规则匹配,直到关键字段与一条规则中所有的条款都符合为止,并给出匹配规则携带的流控标签,如果关键字段和任何规则中的条款都不符合,则人为地设置一个流控标签;(4)采用基于帧长的令牌桶流控算法对数据分组进行流量控制(4a)以流控标签为索引查找流控参数表,取出流控参数表对应表项中的流控参数,即流控启动的标志位F和令牌桶中令牌的个数A ;(4b)判断F标志位是否为1,如果为1,则表示已经启动令牌桶的流控功能;否则,令牌桶流控功能尚未启动,不对数据分组进行流控,直接给出流控成功标识;(4c)判断令牌桶中令牌的个数A是否大于数据分组需要消耗的令牌个数P,如果大于,则允许该分组通过流控,并给出流控成功标识,令牌桶中令牌的数目将减少P个;否则,给出流控失败标识,P等于数据分组的字节数,是一个正整数;(4d)依次循环更新流控参数表的第1个表项到第q个表项4dl)更新流控参数表的第1个表项即取出流控参数表和令牌桶参数表第1个表项中的四个参数F、A、N和M,并进行如下操作首先判断M是否为零,若M为零,则将F置为零;反之,再判断F是否为零,如果F为零,将F更新为1,同时将A的大小设置为M ;如果F不为零,判断A加N是否大于M,如果大于M,将A的数值更新为M ;否则,将A的数值更新为AWN;4d2)从第2个表项到第q个表项循环执行4dl ;4d3)重复执行步骤4dl和4d2。本发明将流分类技术和流控技术相结合,能够对不同类的数据分组分别进行流量控制的;同时由于本发明中的字段表和规则表的是可配置的,因此对数据分组的分类既可以精细化也可以粗略化,可根据实际应用进行设定;此外由于本发明中令牌桶参数表的每一个表项代表一种流量控制,因此通过设置令牌桶参数表可以实现对流分类分离出来的每一种数据分组分别提供不同的流量控制,这样不仅可以使各类数据分组的之间流量互不干扰,而且也能够将流量的大小控制的更加准确。
图1为本发明的系统结构图2为本发明的流程图。
具体实施例方式为使本发明目的、技术方案以及优点更加清楚明白,以下参照附图并举实例,对本发明进行近一步地详细说明。参照图1,本发明提供的基于流分类的分组流量控制系统,包括字段表模块、规则表模块、令牌桶参数表模块、流控参数表模块、输入缓存器模块、匹配模块、流控决策子模块和流控参数表循环更新子模块。其中字段表模块用于设置从分组头部中提取的t个字段,该字段是指数据分组不同层次头部中的地址、服务等级和协议号,这里t是一个大于或者等于1正整数;规则表模块,用于设置对数据分组进行分类的η条规则,每一条规则包含m个条款和一个流控标签,其中条款由字段、操作和数值组成,操作包括大于、小于、等于、不等于、大于等于、小于等于,一条规则包含一个或者多个条款,规则所表述的是一种条件和结果的关系,即如果数据分组符合规则中的所有条款,则执行该规则中的动作,流控标签即为规则中的动作,流控标签指示当从数据分组中提取的每个字段的数值均和条款中规定的数值相同时,应该进行的流控类型,流控标签的个数为q,q是一个根据分组流控类型的多少而设定的大于或等于1的正整数;令牌桶参数表模块,用于存放令牌桶的参数,由q个表项组成,每个表项存放有每次令牌桶中增加的令牌个数N及令牌桶中令牌数目的上限值M这两个令牌桶参数,该令牌以恒定的速率放入桶中,每个令牌允许数据源发送d比特的数据,每发送一个数据分组就要从令牌桶中删除与数据分组大小相同的令牌数,如果没有足够的令牌发送数据分组,数据分组或者等待直到有足够的令牌,或者直接被抛弃掉,本发明中每个令牌代表的比特数,根据实际需求进行设定,本发明举例中设定一个令牌代表一个字节,一个字节等于8个比特,令牌个数N是依据分配给令牌桶流量的大小而设置的大于或者等于1的正整数,M是依据允许令牌桶突发时间的长短而设置的大于或者等于N的正整数,令牌桶参数表的一个表项存放一个令牌桶的参数,因此令牌桶参数表根据表项确定,即有多少个表项,就有多少个令牌桶;流控参数表模块,用于存放流控的参数,由q个表项组成,每个表项存放流控启动的标志位F和当前流控令牌桶中令牌的个数A两个参数,初始化时这两个参数均置为零,并且在流控过程中这两个参数是不断更新的,标志位F有0和1两种状态,0表示关闭流控,1表示启动流控,A是一个小于或者等于M的非负整数,流控参数表每个表项记录的是该表项对应的令牌桶当前的工作状态,流控参数表和令牌桶参数表表项个数相同;输入缓存器模块用于缓存通信节点从外部网络中接收的数据分组,缓存器的大小和数目根据网络中实际交换的分组大小和需求设定;匹配模块根据字段表中设置的关键字段从输入缓存器中提取数据分组头部中的相应的关键字段,从规则表中的第一条规则开始进行匹配,即检查提取的关键字段是否符合该规则中所有的条款,如果符合,则匹配结束,否则再进行下一条规则匹配,直到关键字段与一条规则中所有的条款都符合为止,并给出匹配规则携带的流控标签,如果关键字段和任何规则中的条款都不符合,则人为地设置一个流控标签,本发明对规则表中的规则按照顺序依次进行匹配,这是一种较为简单的方法,但是匹配方法并不仅仅局限于本发明提供的此种方法,也可以采用其他的方法;流控模块采用基于帧长的令牌桶流控算法对数据分组进行流量控制,它包含流控决策子模块和流控参数表循环更新子模块,其中流控决策子模块以流控标签为索引查找流控参数表,取出流控参数表对应表项中的流控参数F和A,首先判断F标志位是否为1,如果为1,则表示已经启动令牌桶的流控功能;反之,尚未启动令牌桶流控功能,不对数据分组进行流控,直接给出流控成功标识;再判断A是否大于数据分组消耗的令牌个数P,如果大于,给出流控成功标识,并将令牌桶中令牌的数目将减少P ;反之,给出流控失败标识,P等于数据分组的字节数,是一个正整数;流控参数表循环更新子模块依次循环更新流控参数表的第1个表项到第q个表项取出流控参数表和令牌桶参数表中第1个表项中的四个参数F、A、N和M,并进行判断,若M为零,则将F置为零;反之,再判断F是否为零,如果F为零,将F更新为1,同时将A的大小设置为M ;如果F不为零,判断A加N是否大于M,如果大于M,将A的数值更新为M ;否则,将A的数值更新为A加N ;接下来依次更新后面个各表项,直到第q个表项更新完毕后,然后再从第1个表项开始重新依次重新更新这q个表项,更新过程循环进行。参照图2,本发明提供的基于流分类的分组流量控制方法,包括如下步骤步骤1 配置通信节点中的字段表、规则表、令牌桶参数表和流控参数表。字段表,包含源MAC地址和目的MAC地址两个字段;规则表,包含4条规则规则1为当条款1源MAC地址=100成立时,流控标签=
1;规则2为当条款1源MAC地址=600和条款2目的MAC地址=300同时成立时,流控标签=2 ;规则3为当条款1源MAC地址=600和条款2目的MAC地址=500同时成立时,流控标签=3 ;规则4为当条款1源MAC地址=600成立,流控标签=1 ;令牌桶参数表,如表1所示,它包含4个表项表项1中N = 500、M = 2000,表项
2中 N = 1000、M = 5000,表项 3 中 N = 0、M = 0,表项 4 中 N = 400、M = 3000 ;表 1 令表1牌桶参数表
权利要求
1.一种基于流分类的分组流量控制系统,包括字段表模块用于设置从分组头部中提取的w个字段,所述字段是指数据分组不同层次头部中的地址、服务等级和协议号,w是一个大于或者等于1正整数;规则表模块,用于设置对数据分组进行分类的η条规则,每一条规则包含m个条款和一个流控标签,其中条款由字段、操作和数值组成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控标签指示当从数据分组中提取的每个字段的数值均和条款中规定的数值相同时,应该进行的流控类型,流控标签的个数为q,q是一个根据分组流控类型的多少而设定的大于或等于1的正整数;令牌桶容量参数表模块,用于存放令牌桶的参数,由q个表项组成,每个表项存放两个令牌桶参数每次向流控令牌桶中注入令牌的个数N以及令牌桶中令牌个数的上限M,每个令牌代表的字节数,根据实际需求进行设定,一个令牌代表一个字节,N是依据令牌桶流量的大小而设置的大于或者等于1的正整数,M是依据令牌桶突发时间的长短而设置的大于或者等于N的正整数;流控参数表模块,用于存放流控的参数,由q个表项组成,每个表项有两个流控参数流控启动的标志位F和当前流控令牌桶中令牌的个数A,初始化时这两个参数均置为零,并且在流控过程中这两个参数是不断更新的,F有0和1两种状态,0表示关闭流控,1表示启动流控,A是一个小于或者等于M的非负整数;输入缓存器模块用于缓存通信节点从外部网络中接收的数据分组,缓存器的大小和数目根据网络中实际交换的分组大小和需求设定;匹配模块根据字段表中设置的关键字段从输入缓存器中提取数据分组头部中的相应的关键字段,从规则表中的第一条规则开始进行匹配,即检查提取的关键字段是否符合该规则中所有的条款,如果符合,则匹配结束,否则再进行下一条规则匹配,直到关键字段与一条规则中所有的条款都符合为止,并给出匹配规则携带的流控标签,如果关键字段和任何规则中的条款都不符合,则人为地设置一个流控标签;流控模块采用基于帧长的令牌桶流控算法对数据分组进行流量控制,包含流控决策子模块和流控参数表循环更新子模块,所述流控决策子模块以流控标签为索引查找流控参数表,取出流控参数表对应表项中的流控参数F和A,首先判断F标志位是否为1,如果为1,则表示已经启动令牌桶的流控功能;反之,尚未启动令牌桶流控功能,不对数据分组进行流控,直接给出流控成功标识;再判断A是否大于数据分组消耗的令牌个数p,如果大于,给出流控成功标识,并将令牌桶中令牌的数目将减少P ;反之,给出流控失败标识,P等于数据分组的字节数,是一个正整数;所述流控参数表循环更新子模块依次循环更新流控参数表的第1个表项到第q个表项取出流控参数表和令牌桶容量参数表中第1个表项中的四个参数F、A、N和M,并进行判断,若M为零,则将F置为零;反之,再判断F是否为零,如果F为零,将F更新为1,同时将A的大小设置为M ;如果F不为零,判断A加N是否大于M,如果大于M,将A的数值更新为M ;否则,将A的数值更新为A加N ;接下来依次更新后面个各表项,直到第q个表项更新完毕后,然后再从第1个表项开始重新依次重新更新这q个表项,更新过程循环进行。
2.一种基于流分类的分组流量控制方法,包括如下步骤(1)根据用户的需求,配置通信节点中的字段表、规则表、令牌桶容量参数表和流控参数表,该字段表,包括t个字段,字段是指数据分组不同层次头部中的地址、服务等级和协议号,t是一个大于或者等于1正整数;该规则表,存放有η条规则,每一条规则包含m个条款和一个流控标签,其中条款由字段、操作和数值组成,操作包括大于、小于、等于、不等于、大于等于、小于等于;流控标签指示当从数据分组中提取的每个字段的数值均和条款中规定的数值相同时,应该进行的流控类型,流控标签的个数为q,q是一个根据分组流控类型的多少而设定的大于或等于1的正整数;该令牌桶容量参数表,由q个表项组成,每个表项存放令牌桶的两个参数每次向流控令牌桶中注入令牌的个数N以及令牌桶中令牌个数的上限M,每个令牌代表的字节数,根据实际需求进行设定,一个令牌代表一个字节,N是依据令牌桶流量的大小而设置的大于或者等于1的正整数,M是依据令牌桶突发时间的长短而设置的大于或者等于N的正整数;该流控参数表,由q个表项组成,每个表项有两个流控参数流控启动的标志位F和当前流控令牌桶中令牌的个数A,初始化时这两个参数均置为零,并且在流控过程中这两个参数是不断更新的,F有0和1两种状态,0表示关闭流控,1表示启动流控,A是一个小于或者等于M的非负整数;(2)通信节点从外部网络中接收数据分组并将其存入输入缓存器中,该输入缓存器的大小和数目根据网络中实际交换的分组大小和需求设定;(3)根据字段表中设置的关键字段从输入缓存器中提取数据分组头部中的相应的关键字段,从规则表中的第一条规则开始进行匹配,即检查提取的关键字段是否符合该规则中所有的条款,如果符合,则匹配结束,否则再进行下一条规则匹配,直到关键字段与一条规则中所有的条款都符合为止,并给出匹配规则携带的流控标签,如果关键字段和任何规则中的条款都不符合,则人为地设置一个流控标签;(4)采用基于帧长的令牌桶流控算法对数据分组进行流量控制(4a)以流控标签为索引查找流控参数表,取出流控参数表对应表项中的流控参数,即流控启动的标志位F和令牌桶中令牌的个数A ;(4b)判断F标志位是否为1,如果为1,则表示已经启动令牌桶的流控功能;否则,令牌桶流控功能尚未启动,不对数据分组进行流控,直接给出流控成功标识;(4c)判断令牌桶中令牌的个数A是否大于数据分组需要消耗的令牌个数p,如果大于,则允许该分组通过流控,并给出流控成功标识,令牌桶中令牌的数目将减少P个;否则,给出流控失败标识,P等于数据分组的字节数,是一个正整数;(4d)依次循环更新流控参数表的第1个表项到第q个表项4dl)更新流控参数表的第1个表项即取出流控参数表和令牌桶容量参数表第1个表项中的四个参数F、A、N和M,并进行如下操作首先判断M是否为零,若M为零,则将F置为零;反之,再判断F是否为零,如果F为零,将F更新为1,同时将A的大小设置为M ;如果F不为零,判断A加N是否大于M,如果大于M,将A的数值更新为M ;否则,将A的数值更新为A力口 N ;4d2)从第2个表项到第q个表项循环执行4dl ;4d3)重复执行步骤4dl和4d2。
全文摘要
本发明公开了一种基于流分类的分组流量控制系统及控制方法,主要解决对不同的特征的数据分组提供不同的流量控制的问题。该系统包括字段表、规则表、流控参数表、令牌桶参数表、输入缓存器模块、匹配模块和流控模块。该方法包括首先配置规则表、字段表、流控参数表和令牌桶参数表,从网络中接收数据分组并将其存入输入缓存器中,从数据分组头部提取字段表的中设置的字段,并查找规则表,与规则表中的规则进行匹配,匹配完毕后,给出流控标签,以流控标签为索引取出相应的流控参数,再对数据分组进行流量控制。本发明具有对流量控制精细的优点,可用于需要对不同特征的数据分组提供不同的流量控制的通信环境中。
文档编号H04L12/56GK102387082SQ201110381758
公开日2012年3月21日 申请日期2011年11月25日 优先权日2011年11月25日
发明者刘焕峰, 史琰, 姚明旿, 孙汉汶, 张冰, 张奭, 潘伟涛, 赵伟伟, 邱智亮, 鲍民权 申请人:西安电子科技大学