CN101699802B - 一种海量数据分流方法 - Google Patents

一种海量数据分流方法 Download PDF

Info

Publication number
CN101699802B
CN101699802B CN2009102362839A CN200910236283A CN101699802B CN 101699802 B CN101699802 B CN 101699802B CN 2009102362839 A CN2009102362839 A CN 2009102362839A CN 200910236283 A CN200910236283 A CN 200910236283A CN 101699802 B CN101699802 B CN 101699802B
Authority
CN
China
Prior art keywords
clientip
output port
packet
unclientip
list item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009102362839A
Other languages
English (en)
Other versions
CN101699802A (zh
Inventor
周晗
张弛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruian Technology Co Ltd
Original Assignee
Beijing Ruian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ruian Technology Co Ltd filed Critical Beijing Ruian Technology Co Ltd
Priority to CN2009102362839A priority Critical patent/CN101699802B/zh
Publication of CN101699802A publication Critical patent/CN101699802A/zh
Application granted granted Critical
Publication of CN101699802B publication Critical patent/CN101699802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种海量数据分流方法,属于网络数据传输领域。该方法为:1)分别建立-ClientIP表和UnClientIP表;2)对接收到的数据包进行解码出IP对和端口信息;3)查询ClientIP表中是否有所解码出的IP,如果有则利用该IP在ClientIP表中对应的输出端口对该数据包进行转发;如果没有则查询UnClientIP表中是否含有该数据包的IP对,若有则按照UnClientIP表中对应的输出端口对该数据包进行转发;4)如果UnClientIP表中没有该数据包的IP对,则选择一输出端口对该数据包进行转发,同时在UnClientIP表中增加一表项。本发明具有高准确性、不破坏会话流的特点。

Description

一种海量数据分流方法
技术领域
本发明属于通讯网络的数据传输和协议解析领域,具体涉及一种海量数据分流方法,可以实现对骨干网上的海量信息进行高速分流和并行协议解析。
背景技术
在网络数据处理过程中经常出现的一些概念包括:
五元组:源IP地址,目的IP地址,源端口号,目的端口号,传输层协议;
IP对:源IP地址,目的IP地址;
流:突发的一系列相同源到相同目的的所有数据包的集合,主要通过五元组进行描述。
流的关联性:由于Voip、Video等业务的需要,及实时传输方式的动态改变,网络上的一次实际交互行为需要通过多个流来实现,那么为了实现同一次会话而产生的多个流便具有流关联性。
协议的承载性:在Voip、Video等业务的实际应用中,常将HTTP等协议作为其底层协议,这时便认为此作为底层协议的应用层协议具有承载性。
ClientIP:与服务器IP相对,表示普通上网用户的IP地址,由于这部分IP地址是固定分配的,所以数量相对固定;
目前,40Gb/s在骨干网上已进入实用阶段,100Gb/s即将到来。网络速度的快速提高对千兆网络数据流处理提出了新的挑战,流分类技术是千兆网络数据处理中的关键技术,在流量监测与审计、入侵检测等方面有着广泛的应用,也是解决目前网络检测中的Voip、Video、Radius等业务的先决条件,其性能常常成为影响整个网络数据处理的关键。但是网络数据流具有量大、特征条目多、协议具有承载性、流具有关联性等特点,为了能实现高效并行协议解析,一种性能突出、具有将流按其关联性分类能力、准确性高的流分类算法便成为当务之急。
传统的方法通常是利用包内的IP信息或五元组信息等网络层、传输层特征进行流分类,而且过多的将研究重心放在了分流速度、分流的自适应性及动态性上,很少对流的正确性给予足够的重视。而实际上随着Voip相关协议等多媒体协议的广泛应用,流关联性将会越来越重要,而由于流关联涉及到应用层协议,仅从网络层和传输层的特性来进行流量的处理必将导致大量相互关联的流被截断。又由于协议具有承载性的特点,导致大量协议被误判。这些问题最终将直接引发后续业务的性能下降:流量监测和审计的错误率的升高,和入侵检测的漏报率的升高。
发明内容
针对网络流量大、特征条目多、协议具有承载性、流具有关联性等新特点所带来的互联网监测技术难题,本发明提出了一种海量数据分流方法,该方法可以实现对骨干网上的海量信息进行高速分流和并行协议解析。本方案的基本思想是:由于具有流关联性的多个流具有ClientIP(客户端地址)相同的特点,所以可以将ClientIP作为数据分流的基本单位,这样能够屏蔽掉多流关联性的影响;而加入应用层协议的特征检测,从根本上解决了传统分流方案试图利用底层网络特征来解决应用层特征引起的流关联性问题,同时也避免了常用的分流算法因为承载协议而引起的应用层协议错判问题。
本发明的技术方案为:
一种海量数据分流方法,其步骤为:
1)分别建立一ClientIP表和UnClientIP表;所述ClientIP表用于维护客户端IP和输出端口的对应关系,所述UnClientIP表用于维护数据包IP对和输出端口的对应关系;
2)对接收到的数据包进行解码,获取数据包中的IP对和端口信息;
3)查询所述ClientIP表中是否含有上述解码得到的IP,如果有对应的IP,则利用该IP在所述ClientIP表中对应的输出端口对该数据包进行转发;
4)如果所述ClientIP表中没有IP对中的任一IP,则查询所述UnClientIP表中是否含有该数据包的IP对,若有则按照UnClientIP表中该表项对应的输出端口对该数据包进行转发;
5)如果所述UnClientIP表中没有该数据包的IP对,则选择一输出端口对该数据包进行转发,同时在所述UnClientIP表中增加一表项,记录该数据包的IP对和所选输出端口的对应关系。
进一步的,所述ClientIP表表项包括ClientIP和输出端口字段;所述UnClientIP表表项包括IP对和输出端口字段。
进一步的,所述方法中采用多级Hash或Hash表结合平衡二叉树的方法查询所述ClientIP表,实现对IP的快速查找。
进一步的,所述步骤3)中,对数据包进行转发的方法为:
1)如果所述ClientIP表中有IP对中的一个IP,则利用该IP在所述ClientIP表中对应的输出端口对该数据包进行转发;
2)如果所述ClientIP表中有IP对中的两个IP,则判断两个IP在所述ClientIP表中对应的输出端口是否相同,如果两输出端口相同则利用该输出端口对该数据包进行转发;如果两输出端口不同,则往每个端口均转发一份该数据包,并在该数据包上打上双ClientIP数据标志。
进一步的,所述步骤4)中,如果所述ClientIP表中没有IP对中的任一IP,则采用应用层协议的方向特征获得客户端IP,然后查询该IP在所述UnClientIP表中是否有相应的IP表项,若有,则删除该表项并在所述ClientIP表中添加新的表项,记录该IP及其在所述UnClientIP表中对应的输出端口;若无,则选择一输出端口对该数据包进行转发,同时在所述ClientIP表中增加一表项,记录客户端IP和所选输出端口的对应关系。
进一步的,所述选择的输出端口为负载最低的输出端口。
进一步的,所述方法中,通过应用层的协议特征来获得所述应用层协议的方向特征;所述协议特征包括服务器端口或协议的特征字段。
进一步的,所述方法中,通过在应用层起始位置找固定偏移,并利用应用层协议的方向特征与该偏移处字段进行字符串匹配的方式,得到应用层协议的方向特征。
进一步的,所述方法中,采用多模匹配算法进行所述字符串匹配。
本方案主要由以下七个模块组成(模块层次图参见附图1):
1.底层解码模块
底层解码模块主要进行数据包的网络层和传输层的解码,获取包的五元组信息(源IP地址,目标IP地址,源端口号,目的端口号,传输协议);由于解码过程相对固定,可以采用硬件来辅助实现。
2.ClientIP管理模块
主要负责维护ClientIP表,负责管理ClientIP和输出端口的对应关系,以实现对某特定IP的固定转发。
ClientIP表表项主要包括“ClientIP”和“输出端口”字段。ClientIP表为了实现对特定IP的快速查找,可以采用多级Hash或Hash表结合平衡二叉树的方式来实现。
当数据包为双ClientIP进行交互时,交给双ClientIP处理模块进行处理。
3.双ClientIP(客户端到客户端的数据)处理模块
主要负责当数据包为双ClientIP交互的特殊情况的处理,以确定包的转发端口。可以采取多种方法来实现双ClientIP包的后续处理,因为双ClientIP包的量很小,所以可以采取同时发送两份数据到两个输出端口的方式,也可以采取先缓冲再处理的方式。主要依据后续处理模块的不同来选择具体的处理方式。
4.ClientIP判断模块
主要负责通过应用层协议的方向特征来获得数据包中ClientIP,由于本分流算法的依据是ClientIP,所以获取ClientIP对于后续的包转发来说至关重要。
应用层协议的方向特征主要通过应用层的协议特征来获得,协议特征可以是服务器端口,也可以是协议的特征字段。比如:HTTP协议的GET特征字段表明该数据包的方向一定是从客户端到服务器端的,MSN协议的1863端口通常为MSN服务器端口等;
本方案主要采取在应用层起始位置找固定偏移,并利用应用层协议的方向特征与该偏移处字段进行字符串匹配的方式,实现方向特征的判断。待匹配的方向特征的实际种类与分流时需要考虑的应用层协议数相同,为了提高匹配速度,实现时使用多模匹配算法实现。
5.无ClientIP数据管理模块
主要负责无ClientIP的数据包,通过UnClientIP表对数据包IP地址进行管理,管理数据包IP对和输出端口的对应关系。
UnClientIP表的主要内容包括“IP对”和“输出端口”,可以采用HASH表来提高查询速度。
6.负载均衡模块
主要负责查询各输出端口的负载信息,实现整个分流的负载平衡,为数据转发模块提供实时的负载参数,即当前负载最低的输出端口号信息。负载均衡方法主要采取将数据包分发到负载最低的输出端口的原则。
7.数据转发模块
主要负责依据包转发端口的查找结果和负载均衡参数进行包的转发。
本发明的积极效果为:
本发明采用ClientIP作为分流的基本因素,有效的避免了流关联对分流正确性的影响和承载协议的影响。通过本发明技术可以高效准确的进行网络数据分流,与传统的网络数据分流方法相比,具有高准确性,不破坏会话流的特点。能够为后续审计、流量监控等业务提供高可靠性的数据流。
附图说明
图1为本发明模块层次图;
图2为本发明的网络数据分流逻辑图;
图3为本发明的网络数据分流的流程图;
图4为本发明的双ClientIP数据处理流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
参见附图2,是网络数据分流算法逻辑图,通过分流模块进行网络数据分流,在不破坏原始流顺序及相互关联性的前提下,将流均匀的转发到不同的输出端口,供后续各处理节点进行进一步的处理。
参见附图3,是分流算法的数据流程图,其包转发过程主要有以下步骤:
1)初始化操作:新建ClientIP表和UnClientIP表。转步骤2);
2)对新到达的网络包进行底层解码,以获取IP和端口信息。转步骤3);
3)利用解码出的IP对,调用ClientIP管理模块进行ClientIP查询,判断IP对中是否存在已经被转发过的IP地址,如果有一个IP地址被转发过,则依据该IP地址在ClientIP表中的输出端口信息进行转发,转步骤9);如果该IP对均在ClientIP表中查找到相应表项,则调用双ClientIP处理模块进行进一步的判断,以获得输出端口信息,并依据该输出端口进行包转发,转步骤9);如果IP对没有转发过,转步骤4);
4)调用ClientIP判断模块进行数据包的ClientIP判断,如果能获得ClientIP,转步骤5),如果不能判断出ClientIP,转步骤7);
5)调用无ClientIP数据管理模块,查看该IP是否在UnClientIP表中有相应的IP表项,若有,则删除该表项,并在ClientIP管理模块的ClientIP表中添加新的表项,并沿用该IP在UnClientIP表中输出端口,转步骤9);若无,转步骤6);
6)在ClientIP表中添加新的表项,并调用负载均衡模块,转发到负载最低的输出端口进行包转发,转步骤9);
7)调用无ClientIP数据管理模块,查询UnClientIP表中是否含有本数据包的IP对信息,若有,按照UnClientIP表中该表项对应的输出端口进行包转发,转步骤9);若无,转步骤8);
8)调用负载均衡模块查找当前负载最低的输出端口PortA,调用无ClientIP数据管理模块,依据本包的IP对和PortA新建UnClientIP表表项,并依据PortA进行包转发,转步骤9);
9)转发数据包,本包转发完毕,转步骤2);
参见附图4,双ClientIP数据处理流程图,这里主要采用将数据包分发到两个输出端口的方式进行说明,其包分类过程主要有以下步骤:
1)从ClientIP表中获取两个ClientIP对应的输出端口信息,如果两个端口相同,则转步骤3);否则转步骤2);
2)往每个端口均转发一份该数据包,并在转发的同时打上双ClientIP数据标志,转步骤3);
3)返回转发的输出端口信息给转发模块,供转发模块进行包转发,转步骤4);
4)后续处理节点收到数据包后,依据自身具体业务情况进行具体处理,不属于本分流方法的组成部分,对于没有双ClientIP的数据包,按照正常业务流程处理;对于有双ClientIP的数据包,由于双ClientIP的数据包的量非常少,所以多转发的一份数据包拷贝不会对整个分流系统的性能造成影响;后续处理节点也可以通过同步的方式来保证两份数据包只被处理一次,具体实现与后续处理节点具体的业务相关。

Claims (8)

1.一种海量数据分流方法,其步骤为:
1)分别建立一ClientIP表和UnClientIP表;所述ClientIP表用于维护客户端IP和输出端口的对应关系,所述UnClientIP表用于维护数据包IP对和输出端口的对应关系;
2)对接收到的数据包进行解码,获取数据包中的IP对和端口信息;
3)查询所述ClientIP表中是否含有上述解码得到的IP,如果有对应的IP,则利用该IP在所述ClientIP表中对应的输出端口对该数据包进行转发;
4)如果所述ClientIP表中没有IP对中的任一IP,则采用应用层协议的方向特征获得客户端IP,然后查询该IP在所述UnClientIP表中是否有相应的IP表项,若有,则删除该表项并在所述ClientIP表中添加新的表项,记录该IP及其在所述UnClientIP表中对应的输出端口;若无,则选择一输出端口对该数据包进行转发,同时在所述ClientIP表中增加一表项,记录客户端IP和所选输出端口的对应关系;如果不能获得客户端IP,则查询所述UnClientIP表中是否含有该数据包的IP对,若有则按照UnClientIP表中该表项对应的输出端口对该数据包进行转发;
5)如果所述UnClientIP表中没有该数据包的IP对,则选择一输出端口对该数据包进行转发,同时在所述UnClientIP表中增加一表项,记录该数据包的IP对和所选输出端口的对应关系。
2.如权利要求1所述的方法,其特征在于所述ClientIP表表项包括ClientIP和输出端口字段;所述UnClientIP表表项包括IP对和输出端口字段。
3.如权利要求1或2所述的方法,其特征在于采用多级Hash或Hash表结合平衡二叉树的方法查询所述ClientIP表,实现对IP的快速查找。
4.如权利要求3所述的方法,其特征在于所述步骤3)中,对数据包进行转发的方法为:
1)如果所述ClientIP表中有IP对中的一个IP,则利用该IP在所述ClientIP表中对应的输出端口对该数据包进行转发;
2)如果所述ClientIP表中有IP对中的两个IP,则判断两个IP在所述ClientIP表中对应的输出端口是否相同,如果两输出端口相同则利用该输出端口对该数据包进行转发;如果两输出端口不同,则往每个端口均转发一份该数据包,并在该数据包上打上双ClientIP数据标志。
5.如权利要求1所述的方法,其特征在于所述选择的输出端口为负载最低的输出端口。
6.如权利要求1所述的方法,其特征在于通过应用层的协议特征来获得所述应用层协议的方向特征;所述协议特征包括服务器端口或协议的特征字段。
7.如权利要求6所述的方法,其特征在于通过在应用层起始位置找固定偏移,并利用应用层协议的方向特征与该偏移处字段进行字符串匹配的方式,得到应用层协议的方向特征。
8.如权利要求7所述的方法,其特征在于采用多模匹配算法进行所述字符串匹配。
CN2009102362839A 2009-10-23 2009-10-23 一种海量数据分流方法 Active CN101699802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102362839A CN101699802B (zh) 2009-10-23 2009-10-23 一种海量数据分流方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102362839A CN101699802B (zh) 2009-10-23 2009-10-23 一种海量数据分流方法

Publications (2)

Publication Number Publication Date
CN101699802A CN101699802A (zh) 2010-04-28
CN101699802B true CN101699802B (zh) 2012-02-29

Family

ID=42148247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102362839A Active CN101699802B (zh) 2009-10-23 2009-10-23 一种海量数据分流方法

Country Status (1)

Country Link
CN (1) CN101699802B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546364B (zh) * 2010-12-22 2014-12-10 深圳市恒扬科技有限公司 网络数据分流方法及其装置
CN103051534B (zh) * 2012-11-20 2016-04-06 杭州迪普科技有限公司 一种报文处理方法及装置
CN105302885B (zh) * 2015-10-15 2019-12-06 北京锐安科技有限公司 一种全文数据的提取方法和装置
CN105787083A (zh) * 2016-03-02 2016-07-20 深圳市元征科技股份有限公司 数据处理方法及装置
CN107318132B (zh) * 2016-04-26 2019-12-06 上海大唐移动通信设备有限公司 一种采集系统中数据分发方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564547A (zh) * 2004-03-25 2005-01-12 上海复旦光华信息科技股份有限公司 保持连接特性的高速过滤分流方法
CN1595906A (zh) * 2003-12-17 2005-03-16 浪潮电子信息产业股份有限公司 集群网络的单一地址流量分发器
CN101335709A (zh) * 2008-08-07 2008-12-31 杭州华三通信技术有限公司 在流量分析服务器之间实现负载分担的方法和分流设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595906A (zh) * 2003-12-17 2005-03-16 浪潮电子信息产业股份有限公司 集群网络的单一地址流量分发器
CN1564547A (zh) * 2004-03-25 2005-01-12 上海复旦光华信息科技股份有限公司 保持连接特性的高速过滤分流方法
CN101335709A (zh) * 2008-08-07 2008-12-31 杭州华三通信技术有限公司 在流量分析服务器之间实现负载分担的方法和分流设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2007-221464A 2007.08.30

Also Published As

Publication number Publication date
CN101699802A (zh) 2010-04-28

Similar Documents

Publication Publication Date Title
US10650452B2 (en) Offload processing of data packets
US8547843B2 (en) System, method, and computer program product for controlling output port utilization
US8171146B2 (en) Utilization of media capabilities in a mixed environment
CN101699802B (zh) 一种海量数据分流方法
US8161192B2 (en) Intermediary system for interconnecting multiple IMS networks
US20140173018A1 (en) Content Based Traffic Engineering in Software Defined Information Centric Networks
CN101170512B (zh) 报文业务处理方法
CN103618678A (zh) 自适应多链路聚合的方法、装置及系统
CN101632273A (zh) 用于媒体网关处的源识别ip路由的方法、系统和计算机程序产品
CN102195875A (zh) 组合式硬件/软件转发机制和方法
CN106973013A (zh) 用于基于互联网协议的内容路由器的方法和装置
CN101622838A (zh) 用于在网络接口模块处存储通信会话信息的方法、系统和计算机程序产品
CN105556916B (zh) 网络流的信息统计方法和装置
CN110224929A (zh) 基于dpdk的链路聚合接口的数据包转发方法
CN101406008A (zh) 一种无线接入网关支持透明代理的方法、装置及系统
US20130286836A1 (en) Load balancing of network communications
CN100450037C (zh) 一种ip报文负载分担实现方法及装置
CN102075438A (zh) 单播数据帧传输方法及装置
US8914447B2 (en) System and method for feature based message routing in a dynamic modular system architecture
CN104221333A (zh) 用于促进多个网络中的通信会话的系统和方法
CN105099730A (zh) 终端设备、基于终端设备的网络流量统计方法及系统
CN101945047A (zh) 一种Diameter路由方法和系统
EP2832045A1 (en) Offload processing of data packets
US8082580B1 (en) Session layer pinhole management within a network security device
KR101384794B1 (ko) 메시지 라우팅 플랫폼

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for branching mass data

Effective date of registration: 20150723

Granted publication date: 20120229

Pledgee: China Co truction Bank Corp Beijing Zhongguancun branch

Pledgor: Rui-an Science and Technology Co., Ltd., Beijing

Registration number: 2014990000497

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20180327

Granted publication date: 20120229

Pledgee: China Co truction Bank Corp Beijing Zhongguancun branch

Pledgor: Rui-an Science and Technology Co., Ltd., Beijing

Registration number: 2014990000497

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for branching mass data

Effective date of registration: 20180627

Granted publication date: 20120229

Pledgee: China Co truction Bank Corp Beijing Zhongguancun branch

Pledgor: Rui-an Science and Technology Co., Ltd., Beijing

Registration number: 2018110000015

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210128

Granted publication date: 20120229

Pledgee: China Co. truction Bank Corp Beijing Zhongguancun branch

Pledgor: Run Technologies Co.,Ltd. Beijing

Registration number: 2018110000015