使用四层的端口号掩码对数据流分类的方法

文档序号:7929205阅读:1534来源:国知局
专利名称:使用四层的端口号掩码对数据流分类的方法
技术领域
本发明属于数据通信技术领域,特别涉及对数据流进行分类的方法。
背景技术
数据通信网络中将流经某点的一组数据报文归纳为一个数据流。而根据什么规则确定这一类数据报文是一个特定数据流,那一类数据报文是另外一个特定的数据流,就要用到流分类的概念了。在数据通信领域中经常需要对数据流进行分类,以便为其他应用提供(如数据过滤、服务质量、策略路由等)支持。
现有的数据流分类方法主要是根据数据报文中本身所含的一些信息进行。如单独或综合使用2层(数据链路层)、3层(网络层)、4层(传输层)信息。使用的4层信息主要是4层的端口号信息,而在已有的根据4层端口号信息进行流分类的实现方案中,主要使用以下几种分类方式1、和指定端口号相等例如设定TCP(传输控制协议,Transfer ControlProtocol)源端口号等于56的数据流是一类,其他的数据流为一类。
2、大于指定端口号例如设定TCP源端口号大于56的数据流是一类,其他的数据流为一类。
3、小于指定端口号例如设定TCP源端口号小于56的数据流是一类,其他的数据流为一类。
4、在指定的两个端口号之间例如设定TCP源端口号大于56,而且小于80的数据流是一类,其他的数据流为一类。
5、和指定端口号不相等例如设定TCP源端口号不等于56的数据流是一类,其他的数据流为一类。
现有的这5种方法都是根据端口号的数值进行分类的,而也正是这一点会带来一些应用上的下述问题图1为一个需要进行流分类的服务系统示意图。假设在图1中,设备A负责将各种进入这个服务系统的应用数据流,根据4层的目的端口号分发到服务器A1和A2进行处理,并且要求A1和A2处理的数据量大致相等。根据上述已有的5种方法,这样作是不容易的。因为在当前的IP网络中,无论是TCP还是UDP(用户数据报协议,User Datagram Protocol)它们的各个公认服务的端口号都被规定为小于1024,而端口号的实际可分配范围是在0至65535之间。这种端口号的不平均分配,使得实际数据流也无法根据端口号的数值大小平均出现。
当然可以对进入这个服务系统的数据流进行统计,再根据统计分析找到可以根据端口号数值进行分类的方法,但这样作实现方法复杂。

发明内容
本发明的目的是为克服已有技术的不足之处,提出一种使用四层的端口号掩码值进行对数据流分类的方法,用户可以根据4层的端口号中的信息,对数据流进行分类,具有方法简单,能在此基础上实现负载均衡等其他应用的优点。
本发明提出的提出一种使用四层的端口号掩码进行对数据流分类的方法,包括以下步骤1)预先设定一个四层端口号掩码值A和一个四层端口号值B;2)用端口号掩码值A和端口号值B进行相与操作,得出一个比较值C;3)用需要进行分类的数据报文D中的4层端口号值,和预先设定的端口号掩码值A进行相与操作,得出一个中间过程值E;4)如果E和C相等,则将数据报文D归为符合条件的一类,否则将其归为不符号条件的一类;
所说的第2)步和第3)步的顺序可以互换。
本发明所说的端口号值B可采用由2进制的形式表示的16个比特的值;所说的掩码值A可由从所说的16个比特的值中任意取一个或一个以上的比特值组成。
所说的数据报文D中的4层端口号值可采用由2进制的形式表示的16个比特的值。
本发明所述方法的原理说明如下在数据处理中处理的数据都是以2进制的形式表示的,而端口号可以表示为2个字节,即16个比特的表示方式。如TCP中的FTP(文件传送协议,File Transfer Protocol)服务的端口号是21,用2进制表示为0000000000010101(用十六进制表示为0x0015)。
因为在二进制中的每一位数字只有0或1这两种可能,所以可以假定各种数据报文的端口信息中最低位比特(0比特)出现0和1的概率是相等的(当然也可以认为端口号1比特或其它任意位比特出现0和1的概率相等)。这样就可以把端口号0比特为1的分为一类,端口号0比特为0的分为另一类,因此在解决图1的问题中就可以方便的得出两类数据量大致相等的数据流了。这种方法就是根据4层端口号掩码进行流分类。
本发明的特点1)本发明提出了一种新的利用4层端口号信息进行数据流分类的方法,并且在解决负载均衡等应用时使得操作方法更简单,理论更容易理解。
2)本发明不光可以根据某一比特位掩码后的数值进行分类,而且可以根据某几个比特位掩码后的数值进行分类,且不要求这几个比特位连续,丰富了数据流分类时的可选操作。


图1为一个需要进行数据流分类的服务系统示意图。
图2为本发明方法的流程框图。
具体实施例方式
本发明提出的提出一种使用四层的端口号掩码进行对数据流分类的方法结合附图及其实施例详细说明如下本发明的方法如图2所示,包括以下步骤1)预先设定一个四层端口号掩码值A和一个四层端口号值B;2)用端口号掩码值A和端口号值B进行相与操作,得出一个比较值C;3)用需要进行分类的数据报文D中的4层端口号值,和预先设定的端口号掩码值A进行相与操作,得出一个中间过程值E;4)如果E和C相等,则将数据报文D归为符合条件的一类,否则将其归为不符号条件的一类;上述的第2)步和第3)步的顺序可以互换。
实施例1,其实现步骤如下1)先设定端口掩码值A=0x0001(十六进制),端口设定值B=0x0000(十六进制)。
2)用A和B相与得出比较值C=0x0000(十六进制)。
3)此时有一个报文D(假定D中的相应四层端口号为十六进制的0x0017)需要进行流分类,用D(0x0017)和A(0x0001)相与得出中间过程值E=0x0001(十六进制)。
4)由于E(0x0001)不等于C(0x0000),所以将报文D归为不符合条件的一类。
3′)另外一个报文F(假定F中的相应四层端口号为十六进制的0x0038)需要进行流分类。用F(0x0038)和A(0x0001)相与得出中间过程值E=0x0000。
4′)由于E(0x0000)等于C(0x0000),所以可以将报文F归为符合条件的一类。
实施例2、其实现步骤如下1)预先设定端口掩码值A=0x000D(十六进制,用二进制表示则是0000000000001101,掩码不连续),端口设定值B=0x000B(十六进制)。
2)用A和B相与得出比较值C=0x0009(十六进制)。
3)此时有一个报文D(假定D中的相应四层端口号为十六进制的0x0017)需要进行流分类。用D和A相与得出中间过程值E=0x0005(十六进制)。
4)由于E(0x0005)不等于C(0x0009),所以将报文D归为不符合条件的一类。
3′)另外一个报文F(假定F中的相应四层端口号为十六进制的0x001B)需要进行流分类,用0x001B和A相与得出中间过程值E=0x000B。
4′)由于E(0x000B)等于C(0x000B),所以将报文F归为符合条件的一类。
权利要求
1.一种使用四层的端口号掩码进行对数据流分类的方法,包括以下步骤1)预先设定一个四层端口号掩码值A和一个四层端口号值B;2)用端口号掩码值A和端口号值B进行相与操作,得出一个比较值C;3)用需要进行分类的数据报文D中的4层端口号值,和预先设定的端口号掩码值A进行相与操作,得出一个中间过程值E;4)如果E和C相等,则将数据报文D归为符合条件的一类,否则将其归为不符号条件的一类;所说的第2)步和第3)步的顺序可以互换。
2.如权利要求1所述的使用四层的端口号掩码进行对数据流分类的方法,其特征在于,所说的端口值B可采用由2进制的形式表示的16个比特值。
3.如权利要求2所述的使用四层的端口号掩码进行对数据流分类的方法,其特征在于,所说的掩码值A可由从所说的16个比特的值中任意取一个或一个以上的比特值组成。
4.如权利要求1所述的使用四层的端口号掩码进行对数据流分类的方法,其特征在于,所说的数据报文D中的4层端口号值可采用由2进制的形式表示的16个比特的值。
全文摘要
本发明属于数据通信技术领域,涉及一种使用四层的端口号掩码进行对数据流分类的方法,包括预先设定一个端口号掩码值A和一个端口号值B;用端口号掩码值A和端口号值B进行相与操作,得出一个比较值C;用需要进行分类的数据报文D中的4层端口号值,和预先设定的端口号掩码值A进行相与操作,得出一个中间过程值E;如果E和C相等,则将数据报文D归为符合条件的一类,否则将其归为不符号条件的一类;本发明具有方法简单,能在此基础上实现负载均衡等其他应用的优点。
文档编号H04L29/00GK1482774SQ0214231
公开日2004年3月17日 申请日期2002年9月13日 优先权日2002年9月13日
发明者唐湜, 唐 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1