一种网络化的业务识别系统
2010-09-25徐家品
辛 静, 徐家品
(四川大学 电子信息学院,四川 成都 610064)
0 引言
NGN是基于IP的多业务网络,P2P业务[1-2]、流媒体等新业务的大量出现对下一代网络的流量模型和应用模式产生了很大的冲击[3]。在传统网络逐步向多业务网络演进的过程中,监管者、运营商以及最终用户都对网络的可管可控能力提出了差异化的要求,业务识别与控制技术营运而生。作为当前国内外研究的一项热点,业务识别与控制技术得到了广泛的关注、取得了迅猛的发展,并且在网络的各个层面产生了许多相对独立的用户控制、网络控制、业务控制技术[4]。
基于网络的业务识别技术并不是简单地只对数据链路层和网络层进行区分,而是以网络业务流为对象,将众多复杂的网络流按照应用层业务进行识别与分类,供后续的QoS进行处理。
目前业务流识别技术的一大限制是:识别能力范围只局限在单一设备上,所有要被识别的业务关键报文必须经过此设备,一旦报文没有经过或者丢失,则会造成识别不出或者误识别该业务流。所以未来的业务识别技术应该是基于网络形式、动态的识别,而不依赖于某一设备,不依赖于时间,也不依赖于具体的网络范围。
现在了解TCP/IP体系结构的基础上,提出了一种基于IP网络的网络化业务流识别系统模型,并进行了详细设计。
1 网络化业务识别系统
1.1 网络化的业务流识别系统模型
现提出的业务流识别系统模型如图1所示。为了节约成本,将业务识别节点分布于网络的边缘,在网络的边缘节点上实现基于网络化的业务识别系统。每个识别节点具有高效的业务流识别能力,能够独立地识别经过该节点的报文,识别率接近 100%。同时,如果要被识别的业务关键报文没有经过该识别节点或者丢失,那么该识别节点会向整个业务识别网络广播,请求其他识别节点协助识别。这样,该系统就实现了动态的识别,进一步提高了识别率。
图1 基于边缘节点的网络化业务识别系统
1.2 关键问题
要实现图1所示的系统需要重点考虑三个方面的要求。①每个识别节点上应该具有基于模型化的识别方法;②每个识别节点可以将该节点的识别信息实时发送到整个网络识别系统,同时不能使报文流量过大而造成网络拥塞;③各个识别节点间区分出识别信息的冗余度,快速高效地组合成该节点所需要的业务信息。
对于第一个要求,目前在业务流识别这一领域,主要有深度报文检测(DPI)和深度流行为检测(DFI)两大技术,同时也有一些业务流识别通用模型被提出并加以实现。在此基础上,设计出适合于图1所示的识别节点的模型化的识别方法。
对于第二个要求,识别节点之间信息的交互。主要设计思路是:如果某一识别节点上产生了无法识别的报文,则该识别节点会马上将该报文的相关信息向其他识别节点进行广播,请求其它识别节点协助识别该报文。其它识别节点在接收到请求后会查询是否有与该报文相关的信息,若有,则会响应该节点,向该节点发送相关报文。
对于最后一个要求,对识别信息的处理。该系统主要是将不能识别出的报文和接收到的从其它节点发送来的相关报文依据特征信息进行重组。然后再次进行识别。
1.3 识别节点
识别节点组成如图 2所示。识别处理模块是整个识别节点的核心,用来进行业务识别、区分识别信息冗余度、组合该节点所需业务信息等;通信模块用来发送请求、响应请求,发送该节点产生的识别信息,接收其他节点发送过来的识别信息,发送相关报文,接收相关报文。
图2 识别节点的结构
1.4 业务流识别处理
业务识别通过对业务流量从数据链路层到应用层的报文深度检查分析,依据协议类型、端口号、特征字符串和流量行为特征等参数,获取业务类型、业务状态、业务内容和用户行为等信息,并进行分类统计和存储。业务识别是一个相对复杂的过程,需要多个功能模块的协同工作,工作过程如图3所示,简要描述如下。
图3 业务流识别器
业务识别模块采用多通道识别处理,通过对流二元素(第一个元素:源端IP地址及端口号;第二个元素:目的端IP地址及端口号)的Hash算法,将网络流量均匀的分配到多个处理通道中。多处理通道并行执行网络流量的深度报文检查,获取网络流量的特征信息,并与业务识别特征库中的特征进行比对。将匹配结果送往业务识别模块,并标识特定网络流量。如果存在多个匹配结果,选取优先级较高的匹配结果进行标识。特定网络流量一经识别确定,该网络流量的后续连接将不再进行深度的报文检查,直接将其网络层和传输层信息与已知识别结果进行比对,提高执行效率。业务识别模块将网络流量的业务识别结果存储到识别结果存储模块中,为网络流量的统计分析提供依据。统计分析模块从识别结果存储模块中读取相关信息,并以曲线、饼图、柱状图或者文本的方式将识别结果信息显示,或以文件的形式输出[5]。
1.5 第二次识别
图3所示的业务流识别器中,还拥有一个比较核心的模块——二次识别模块,该模块提供二次识别机制。如果某一条业务流流经某业务识别模块后,被标记为“不能识别”,那么还有进行第二次识别的机会。一条被标记为“不能识别”的业务流,不会被马上送入结果存储模块中,而会被送入二次识别模块中。二次识别模块将该业务流的识别信息进行广播发送,请求系统的其他识别节点协助进行识别。其他识别节点在接收到该识别节点发送来的请求后,查询各自的业务识别结果,如果发现相关的业务流,那么就响应该节点。该节点在接收到响应后,准备就绪。其他识别节点在接收到就绪信号后将相关报文发送给该节点。该节点接收完所有相关报文以后,二次识别模块对原来的业务流和接收到的相关报文进行重组,重组后的业务报文被再次送入到业务识别模块进行业务识别。这样所有识别节点相互合作,完成业务的识别,确保最大限度地识别出业务流。
2 系统测试与结果分析
2.1 系统测试
网络化业务流识别系统在路由器上进行了实验,系统测试拓扑如图4所示。PC0、PC1和PC2分别位于不同的局域网内,通过路由器相连。业务识别系统由路由器 0、路由器1和路由器2组成,业务识别节点分布于各个路由器之上。
图4 系统测试示意图
2.2 实验结果与分析
PC0、PC1和PC2上采用ethereal软件抓包工具获取真实流量数据,与网络化业务流识别系统所识别出的报文统计数据进行比较。测试的协议类型包括 HTTP、FTP、RTP、BT,均使用任意端口号。以PC0和路由器0为例,识别结果统计数据如表1所示。
表1 基于IP网络的网络化业务流识别系统模型的测试结果
从实验结果可以看出:业务识别率达到了99%以上;识别业务特征的关键报文越少、控制交互过程越简洁,则识别率越接近 100%,符合网络中业务流的真实情况。充分说明网络化业务识别系统是正确的、完全可行的。
3 结语
通过对现有业务识别技术的研究,在了解TCP/IP体系结构的基础上,提出了一种基于IP网络的网络化业务流识别系统模型,并详细给出了其设计方案。论文的主要工作及创新点是:提出了网络化的业务识别系统模型,提出了第二次识别的思想,由多个业务识别节点相互合作,共同完成业务的识别,提高识别能力,实时性较好;给出了识别节点上的模型化识别方法,降低了系统复杂度,提高了识别效率。
基于网络化的业务识别系统还有以下两点需要进一步研究。一是业务识别方面,基于模型化的识别技术还有待深入研究,以实现对业务的更精确识别;二是系统应用方面,这种网络化业务流识别系统模型还需要与现有 IP网络设备逐步融合,考虑网络形式以确定识别节点的分布等。
[1] 王蕊.张顺颐.基于P2P的Skype与常规业务的流量分析和识别[J].通信技术,2007,40(05):42-45.
[2] 方铖.Iur接口实现中的业务类型识别技术[J].通信技术,2008,41(04):162-164.
[3] 刘伟彦,邹雪兰,钱琦.下一代网络中业务感知模型研究[J].中国新通信,2009(02):21-26.
[4] 马科,田辉,石友康.业务识别与控制技术及其测试评估[J].现代电信科技,2008(10):22-29.
[5] 李洋.网络流量尽在掌握[N].计算机世界,2009-01-19(028).