面向电力物联网的流量分类和转发方法及系统与流程

文档序号:14612675发布日期:2018-06-05 21:13阅读:543来源:国知局
面向电力物联网的流量分类和转发方法及系统与流程
本发明属于电力物联网中网络流量的管理领域,具体涉及一种高效、准确的面向电力物联网的流量分类和转发方法及系统。
背景技术
:随着物联网技术的发展,电力系统通过在电力生产、输送、消费、管理各环节,广泛部署具有一定感知能力、计算能力和执行能力的各种智能感知设备,采用基于IP的标准协议,组成了电力物联网系统。通过电力物联网,可实现信息安全可靠传输、协同处理、统一服务及应用集成,进而实现电网运行及企业管理全过程的全景全息感知、互联互通及无缝整合。在网络系统中,网络规模的增长往往伴随着网络流量的提升,而网络流量的有效管理涉及对网络流量的分类。而在电力物联网中,由于网络终端和网关的计算能力相对较弱,而且部分设备的能力有限,需要一种高效、准确的分类方法,对网络中的数据包进行快速分类和转发。技术实现要素:为解决上述现有技术存在的问题,本发明提供一种面向电力物联网的流量分类和转发方法,其可以对电力物联网中的数据包进行高效、准确的分类和转发。本发明采用如下的技术方案:面向电力物联网的流量分类和转发方法,包括:定义网络流量分类和转发规则的数据库为规则集合;对于规则集合中的匹配规则,进行预处理,将范围匹配都转化为前缀匹配;记数据包的包头所包含的字段为H[1],H[2],…,H[j],…,H[K],分别构建K组决策树Tree-1,Tree-2,…,Tree-j,…,Tree-K;当决策树建立完成后,采用以下步骤:1)对于任一数据包,记录最优规则Fopt=NULL,对应的最优代价Costopt=+∞,令j=1;2)若j<K,在Tree-j中查找字段H[j]对应的最长路径path-j;3)对于路径path-j上的每一个节点,若其对应的Tree-(j+1)不为空,则令j=j+1,递归执行步骤2-3;4)若j=K,查找H[k]对应的最长路径path-K;若path-K的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;返回Fopt,Costopt,执行Fopt对应的操作Act。作为上述技术方案的补充,所述的决策树仅包括基于目的地址的决策树和基于源地址的决策树。作为上述技术方案的补充,构建基于目的地址的决策树Tree-1的步骤如下:1)假设开始时,决策树仅有根节点为NULL;2)对于任意一条规则Fi及其目的地址的前缀匹配destprefixi,在当前树中对destprefixi进行查找;3)若查找到的最长路径恰好能描述destprefixi,则对下一条规则进行处理;4)若查找到的最长路径不能完全描述destprefixi,则在最长路径的叶节点上进行拓展,形成子树来描述destprefixi剩余的部分。作为上述技术方案的补充,当基于目的地址的决策树Tree-1建立完成后,按照类似的方法构建基于源地址的决策树Tree-2。作为上述技术方案的补充,令决策树Tree-1中的每个节点,都带有一个指向决策树Tree-2的指针,默认为NULL,构建基于源地址的决策树Tree-2的具体过程为:遍历所有规则,对于任一规则Fi,执行以下操作:1)按照Fi的目的地址前缀,在决策树Tree-1中进行查找,得到精确匹配Fi目的地址前缀的节点node;2)若节点node所指向的决策树Tree-2为NULL,则按照与构建基于目的地址的决策树Tree-1类似的方法,基于Fi的源地址构建决策树Tree-2,并令节点node的指针指向决策树Tree-2;3)若节点node所指向的决策树Tree-2为NULL,则在该决策树Tree-2中对Fi的源地址srcprefixi进行查找;若查找到的最长路径恰好能描述srcprefixi,则将该节点标记为Fi;否则构建新的子树使得最长路径能描述srcprefixi,将叶节点标记为Fi。作为上述技术方案的补充,当决策树建立完成后,对于任一数据包,包含dest和src,记录Fopt=NULL,Costopt=+∞,执行以下操作:1)在Tree-1中查找dest对应的最长路径path-1;2)对于路径path-1上的每一个节点,若其对应的Tree-2不为空,则分别执行以下操作3-4;3)在Tree-2中,查找到src对应的最长路径path-2;4)若path-2的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;5)返回Fopt、Costopt,执行Fopt对应的操作Act。本发明的另一目的是提供一种面向电力物联网的流量分类和转发系统,其包括:数据库定义单元:定义网络流量分类和转发规则的数据库为规则集合;预处理单元:对于规则集合中的匹配规则,进行预处理,将范围匹配都转化为前缀匹配;决策树构建单元:记数据包的包头所包含的字段为H[1],H[2],…,H[j],…,H[K],分别构建K组决策树Tree-1,Tree-2,…,Tree-j,…,Tree-K;判断及执行单元:当决策树建立完成后,采用以下步骤:1)对于任一数据包,记录最优规则Fopt=NULL,对应的最优代价Costopt=+∞,令j=1;2)若j<K,在Tree-j中查找字段H[j]对应的最长路径path-j;3)对于路径path-j上的每一个节点,若其对应的Tree-(j+1)不为空,则令j=j+1,递归执行步骤2)-3);4)若j=K,查找H[k]对应的最长路径path-K;若path-K的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;返回Fopt,Costopt,执行Fopt对应的操作Act。本发明具有以下有益效果:本发明的流量分类和转发方法及系统充分利用树状结构的存储优势和查找速度,适用于电力物联网系统的流量分类和转发,能解决节点能力弱而数据流量大的矛盾。附图说明图1为本发明实施例1表格1中规则1-3对应的目的地址决策树Tree-1图;图2为本发明实施例1表格1中规则1-4对应的目的地址决策树Tree-1图;图3为本发明实施例1表格1中规则1-7对应的目的地址决策树Tree-1图;图4为本发明实施例1根据规则1(F1)建立的决策树图;图5为本发明实施例1处理完所有规则后建立的决策树图。具体实施方式下面结合说明书附图和具体实施方式对本发明作进一步说明。本发明为一种面向电力物联网的流量分类和转发方法,其步骤如下:1.在电力物联网中部署流量分类协议模块。2.定义网络流量分类和转发规则的数据库为规则集合{F1,F2,…,FN}。3.对于规则集合中的匹配规则,进行预处理,将范围匹配都可以转化为前缀匹配。4.记数据包的包头所包含的字段为H[1],H[2],H[3],…H[K],分别构建K组决策树Tree-1,Tree-2,…,Tree-K。5.构建Tree-1的过程如6-9:6.假设开始时,决策树仅有根节点为NULL;7.对于任意一条规则Fi及Fi的第1个字段的前缀匹配prefixi,在当前树中对prefixi进行查找;8.若查找到的最长路径恰好能描述prefixi,则对下一条规则进行处理;9.若查找到的最长路径不能完全描述prefixi,则在最长路径的叶节点上进行拓展,形成子树来描述prefixi剩余的部分。10.构建Tree-2,…,Tree-K的过程如11-14:11.假设在建立Tree-j。遍历所有规则,对于任一规则Fi,执行以下操作:12.按照Fi的第j个字段的前缀prefixi,逐层中进行查找,得到精确匹配prefixi的节点node;13.若node所指向的Tree-j为NULL,则按照类似的方法,基于Fi的源地址构建决策树Tree-j,并令node的指针指向Tree-j;14.若node所指向的Tree-j不为NULL,则在该Tree-j中对Fi的前缀prefixi进行查找;若查找到的最长路径恰好能描述prefixi,则将该节点标记为Fi;否则构建新的子树使得最长路径能描述prefixi,将叶节点标记为Fi。15.对于数据包的分类和转发处理如16-20:16.对于任一数据包(H[1],H[2],…,H[K]),记录Fopt=NULL,Costopt=+∞,令j=1。17.若j<K,在Tree-j中查找字段H[j]对应的最长路径path-j;18.对于路径path-j上的每一个节点,若其对应的Tree-(j+1)不为空,则令j=j+1,递归执行17-19;19.若j=K,查找H[k]对应的最长路径path-K;若path-K的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;20.返回Fopt,Costopt,执行Fopt对应的Act。实施例1在电力物联网中,数据包的包头通常由K个字段组成,记作H[1],H[2],H[3],…H[K]。各个字段分别代表目的地址、源地址、目的端口号、源端口号、协议类型等等。例如,包头(192.168.1.2,192.168.3.5,UDP,10002,20002,UDP)代表该数据包是从源地址为192.168.3.5的设备发往地址为192.168.1.2的设备的UDP数据包,源端口为20002,目的端口为10002。电力物联网路由规则的数据库为规则集合{F1,F2,…,FN}。其中,每一个规则都是对数据包包头的全部K个或者部分字段的限定。限定的类型包括三种:精确匹配,前缀匹配和范围匹配。精确匹配可用于过滤特定的协议类型;前缀匹配可用于限定来源于同一子网的数据包;范围匹配常用于限定数据包的端口号范围。每一条规则Fi通常关联着一个操作Acti。该操作决定了对于满足规则的数据包该执行怎样的操作。有的情况下,满足规则的数据包被直接丢弃;有的情况下,满足规则的数据包被选择从特定的出口链接进行转发。例如,令Fi=(1010*,*,TCP,1024-1080,*),acti=BLOCK,则数据包(10101000111,10101000001,TCP,1030,1030)满足该规则,被阻止转发;而数据包(10101000111,10101000001,UDP,1030,1030)不满足该规则,被转发。由于一个数据包可能同时匹配数据库中的多个规则,为了保证执行操作的一致性,定义每个规则Fi都有一个代价Costi。分类转发协议的目标是寻找最小代价的规则来对数据包进行匹配。举例而言,假设在防火墙应用中规则集合为{F1=(10*,*,TCP,1000,*),Act1=ALLOW,F2=(10*,*,*,*),Act2=BLOCK}。数据包(1000001,1000002,TCP,1000,*)同时满足F1,F2,但是由于F1的优先级较高,数据包需要被转发。只需要令Cost1=1,Cost2=2,寻找最小代价的规则即等价于寻找防火墙规则列表中匹配的首条规则。对于规则集合中的匹配规则,需要首先进行预处理——任何一种类型的匹配都可以转化为前缀匹配。精确匹配可以视为前缀匹配的一种特例。而对于范围匹配而言,可以转化为多条前缀匹配规则。例如,对于16个比特位的端口号而言,范围是≤1023的端口集合可以表示为前缀000000*,而范围是>1023的规则集合可以表示为前缀000001*,00001*,0001*,001*,01*和1*。对于k个比特位的端口号,任意区间都可以描述为不超过2k条前缀匹配规则的组合。因此,可以将所有的规则匹配都转化为前缀匹配。接下来,构建基于决策树的规则集合。为直观说明问题,暂且假设规则Fi中仅包含对目的地址和源地址的限定,以表1中的规则集合为例。表格1规则集合样例规则目的地址源地址F10*10*F20*01*F30*1*F400*1*F500*11*F610*1*F7*00*首先,构建基于目的地址的决策树Tree-1。1.假设开始时,决策树仅有根节点为NULL;2.对于任意一条规则Fi及其目的地址的前缀匹配destprefixi,在当前树中对destprefixi进行查找;3.若查找到的最长路径恰好能描述destprefixi,则对下一条规则进行处理;4.若查找到的最长路径不能完全描述destprefixi,则在最长路径的叶节点上进行拓展,形成子树来描述destprefixi剩余的部分。以表1的数据为例,当处理完规则F1,F2,F3后,得到的子树见图1。当处理到规则F4时,由于当前查找出的最长路径为0*,不能完全描述F4的目的地址前缀00*,需扩展子树,由此得到图2的决策树。同理,处理完所有的规则后,得到的目的地址决策树如图3所示。构建基于源地址的决策树Tree-2。令Tree-1中的每个节点,都带有一个指向Tree-2的指针,默认为NULL。其具体过程为:1.遍历所有规则。对于任一规则Fi,执行以下操作:2.按照Fi的目的地址前缀,在Tree-1中进行查找,得到精确匹配Fi目的地址前缀的节点node;3.若node所指向的Tree-2为NULL,则按照类似的方法,基于Fi的源地址构建决策树Tree-2,并令node的指针指向Tree-2;4.若node所指向的Tree-2不为NULL,则在该Tree-2中对Fi的源地址srcprefixi进行查找;若查找到的最长路径恰好能描述srcprefixi,则将该节点标记为Fi;否则构建新的子树使得最长路径能描述srcprefixi,将叶节点标记为Fi。还是以表1中的规则集合为例,当构建完Tree-1后,按顺序重新扫描各个规则以建立Tree-2。当遇到F1时,由于Tree-1中代表F1的路径0*所指向的Tree-2为默认值NULL,则按上述过程建立其对应的Tree-2,得到图4。同理,当处理完所有规则后,得到的决策树如图5。当决策树建立完成后,1.对于任一数据包(dest,src,*),执行以下操作2-6;2.记录Fopt=NULL,Costopt=+∞;3.在Tree-1中查找dest对应的最长路径path-1;4.对于路径path-1上的每一个节点,若其对应的Tree-2不为空,则分别执行以下操作5-6;5.在Tree-2中,查找到src对应的最长路径path-2;6.若path-2的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;7.返回Fopt,Costopt,执行Fopt对应的Act。实施例2本实施例提供一种面向电力物联网的流量分类和转发系统,其包括:数据库定义单元:定义网络流量分类和转发规则的数据库为规则集合;预处理单元:对于规则集合中的匹配规则,进行预处理,将范围匹配都转化为前缀匹配;决策树构建单元:记数据包的包头所包含的字段为H[1],H[2],…,H[j],…,H[K],分别构建K组决策树Tree-1,Tree-2,…,Tree-j,…,Tree-K;判断及执行单元:当决策树建立完成后,采用以下步骤:1)对于任一数据包,记录最优规则Fopt=NULL,对应的最优代价Costopt=+∞,令j=1;2)若j<K,在Tree-j中查找字段H[j]对应的最长路径path-j;3)对于路径path-j上的每一个节点,若其对应的Tree-(j+1)不为空,则令j=j+1,递归执行步骤2)-3);4)若j=K,查找H[k]对应的最长路径path-K;若path-K的叶节点对应规则Fleaf对应的代价Costleaf小于当前最优的Costopt,则令Costopt=Costleaf,Fopt=Fleaf;返回Fopt,Costopt,执行Fopt对应的操作Act。应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1