基于嵌入式的P2P流量监控系统的设计及实现

2012-11-30 03:18李志纯
计算机工程与设计 2012年4期
关键词:队列数据包端口

李 卫,李志纯,高 强

(1.北京航空航天大学 电子信息工程学院,北京100191;2.中科华核电技术研究院有限公司,广东深圳518000)

0 引 言

据统计,近年来P2P应用的流量白天占带宽总流量的60%,晚上则高达90%[1]。P2P应用的泛滥,使得网络环境急剧恶化,网络服务质量大大下降[2]。总而言之,P2P技术在互联网上的普及和发展,已成为网络资源的最大消耗者,并影响了Web、E-mail、FTP等互联网传统业务的正常运行,成为网络的主要负担[3]。

在P2P应用的早期阶段,P2P协议使用特定的TCP或UDP端口,如BitTorrent协议使用6881-6889端口,eMule使用4662端口,Gnutella协议使用6346-6348端口等[4]。端口识别法效率高、快速、实现简单[5]。然而随着各种应用软件的发展,端口特点由固定端口特性逐渐发展成动态端口和伪装端口[6],端口跳变等技术的使用加大了识别、跟踪、控制的难度,造成误报和漏报率高等问题[7]。因而基于端口识别的流量检测技术无法满足准确识别P2P业务流量的需求;其次,在流量监控系统中常采用直路串接的方式控制网络中数据流量[8],直路串接控制技术把流量监控系统安装在流量传输的必经之路上,如路由器上,从而实现对网络流量的控制,但由于流经网络监控系统的数据流量都需要经过系统处理后才转发,容易带来处理延时从而降低网络服务的质量[9]。因此,采用直路串接控制技术容易引起处理瓶颈和单点故障的问题[10];最后,P2P协议的多样性造成了系统对某部分P2P流量无法统计和控制的问题[11]。

针对上述问题,本文设计了一种P2P流量监控系统。该监控系统以ARM+Linux为控制核心,采用端口识别、深层数据包检测相结合的流量识别技术来检测网络中的P2P流量数据,然后通过旁路控制的方式阻断P2P流量数据。具体有以下特点:

(1)采用深层数据包检测技术 (DPI)对数据包应用层协议进行解析匹配以发现P2P应用。DPI能够检测数据包的有效负载并且能够提取出内容级别的信息,因而识别的准确性很高。DPI是通过对数据包应用层协议的检测解析发现P2P应用。DPI可以帮助对网络流量内部奥秘的检测和对网络资源的控制,可以分辨出具体用户具体应用的数据流,从而可以对用户的应用部署QoS、安全等其他策略[12]。

(2)使用旁路干扰控制技术切断连接,达到流量控制的目的。同时避免了对原有网络的性能造成大的影响。

(3)系统具有可扩展性。系统的存储模块保存P2P业务的识别策略,当用户通过人机交互接口选择需要监控的P2P业务后,相应的业务标志被分别添加到业务识别器的识别业务队列和业务控制器的控制业务队列,系统设计了50个P2P业务的队列预留空间。其中队列相应位对应的P2P业务已经提前设置。系统运行时,通过判定队列相应位的标志决定是否对该业务进行监控。当新的P2P业务需要监控时,只需将该P2P业务的识别策略文件写入存储模块,同时在人机交互接口上提供选择窗口而无需对系统的整体框架做修改。

(4)采用ARM处理器作为监控系统的核心。嵌入式系统以体积小、功能多、性能强等优点,近几年来发展很快,已成为控制领域中研究的新热点;而且随着嵌入式CPU功能的增强和价格的下降,为嵌入式系统的广泛应用提供了可能性。

1 系统的网络架构

图1为P2P流量监控系统的网络架构。图1描述了局域网的常用网络架构,局域网内的客户机与外网通信时,网络数据均需要通过路由器进行转发。P2P流量监控系统包括监控平台和人机交互平台两部分。监控平台通过网线连接路由器的镜像端口,网络中所有的数据流经过路由器时都会被镜像到网线上,监控平台采集网络数据进行识别;同时监控平台接收人机交互平台传递的人机指令,构造伪装报文对网络中的流量进行控制。人机交互平台通过USB接口接收监控平台统计的网络数据参数并在人机交互界面显示;用户也可以通过操作人机交互界面实现对系统的控制。

2 系统设计及实现

2.1 系统开发平台

图1 P2P流量监控系统的网络架构

系统的硬件开发平台是基于Samsung S3C6410处理器的OK6410。该处理器基于ARM1176JZF-S内核,主频达到533/667MHz。开发平台具有的硬件资源还包括:256M字节DDR内存,2GByte Nand Flash,8倍于同类开发板所采用的256MNAND;4个串口,包括1个五线RS 232电平串口 (DB9母座)和3个三线TTL电平串口 (20pin 2.0mm间距插头座);1个100M网口,采用DM9000,带连接和传输指示灯 ;1个USB HOST插口,支持USB1.1协议,可插鼠标、U盘等;1个USB Slave接口,支持USB2.0协议,使用 Mini-USB插座,可与PC连接;1个JTAG接口,使用10*2插针连接器等。嵌入式操作系统的内核版本为Linux2.6.28;交叉编译环境链:4.2.2-eabi。

实物图如图2所示。接口示意图如图3所示。其中USB 2.0Slave接口与PC的USB2.0HOST相连,二者之间传输的数据包括需要在人机交互界面上显示的数据包参数和用户对系统的操作指令;以太网接口RJ45与路由器镜像端口连接;RS232串口与宿主机串口连接进行交叉开发;JTAG用于在线仿真调试;SDRAM为程序运行提供空间;NAND FLASH保存数据,包括P2P业务的识别策略文件,操作系统等。

图2 产品实物

图3 系统接口

2.2 系统软件设计及实现

如图4所示,系统的软件部分主要包括数据采集解析器、业务识别器、业务控制器、业务管理器、存储模块和人机交互模块。

图4 系统软件框架

(1)数据采集解析器主要负责网络中数据包的捕获和对数据包网络层协议和传输层协议首部的解析。网络抓包的实现借助网络数据包的捕获函数包libpcap。当接收到系统停止采集数据的指令时,模块停止向结构体RawDataStru赋值。RawDataStru的成员包括五元组、时间戳、数据包序列号、负载首地址、数据包、字节数、序列号、确认号。

(2)业务识别器根据接收到的P2P业务识别策略,对P2P业务进行识别。识别分为3个步骤:比较HASH表中的可疑 (IP,PORT)对、端口识别、DPI识别。当检测数据流时,系统识别器首先查询HASH表,如果HASH中存在匹配该数据流的元素,则直接判断该数据流为P2P业务流量,否则继续识别。端口识别子模块用于检测数据流的源端口或目的端口是否为P2P业务常用端口。DPI识别子模块通过获取数据包负载的首地址,并依据与对应P2P业务的特征串相匹配原则,在应用层对业务数据进行识别。HASH表用来存储可疑的 (IP,PORT)对。在业务识别的过程中,对HASH表进行初始化,插入,查询操作。识别策略队列标志需要执行识别策略的P2P业务类型,当队列相应位为 “1”时,表示该业务需要被识别,相应位为“0”时,表示该业务不需要被识别。在业务识别器检测数据流量之前,都会判断识别策略队列的相应位从而选择需要监控的P2P业务。业务识别器将识别后的数据参数通过结构体MirrorDataStru传递给业务管理器,MirrorDataStru结构体的成员包括五元组、时间戳、数据包序列号、字节数数、序列号、确认号、P2P业务类型、流数。

(3)业务控制器根据接收到的P2P业务类型及数据包的参数 (五元组,序列号,确认号)构造RST包来切断TCP连接,从而达到流量控制的目的。控制业务队列用于标志需要控制的P2P业务类型。业务控制器接收到需要控制的P2P业务类型时,首先会判断该P2P业务类型在控制业务队列的对应位是否置位,如果置位则对该P2P业务进行控制,否则不予处理。

(4)业务管理模块是系统的核心模块,主要实现各种信息的统计与调度。一方面它接收来自业务识别器的数据包参数结构体MirrorDataStru,参数统计后分别传递给业务控制器和人机交互模块;另一方面它接收来自人机交互模块的指令,分别对业务识别器、业务控制器和数据采集解析模块进行操作。该模块的程序流程如图5所示。

(5)人机交互模块主要为用户和系统交互数据提供接口。图6中的P2P业务监控窗口方便用户选择需要检测和控制的P2P业务的类型。图形右边显示网络中数据包的各种参数信息。业务管理器通过dispdatastru结构体将需要显示的信息传递给人机交互模块,参数包括:五元组、数据包序列号、时间戳、数据包字节数、P2P业务速率、P2P业务类型、流数。人机交互模块通过infofromdisp结构体将控制信息发送给业务管理器,参数包括消息类型、操作P2P业务的数量、P2P业务识别标志序列、P2P业务控制标志序列。

3 系统性能分析

本文选取两种最常用的P2P文件下载软件比特彗星(BitTorrent)和电驴 (eMule)对系统进行测试。系统测试的参数有误判率、漏判率和限速误差。具体定义如下[14-15]:

误判率 (FN):误判为P2P业务的流数/实际的P2P业务流数;?

漏判率 (FP):|实际的P2P业务流数—统计的P2P业务连接数|/实际的P2P业务流数;

限速误差:|限速后P2P业务的流量带宽 — 理论带宽|/限速前P2P业务的流量带宽。

首先测试系统对比特彗星的监控效果,多次测量后统计的平均结果如表1所示。

然后将电驴的识别策略加入到存储模块,在人机交互界面上同时选择对比特彗星和电驴进行监控。多次测量后统计的平均结果如表2所示。

表1 BitTorrent测量结果

表2 BitTorrent、eMule测量结果

由表1和表2的统计数据可以看出:本系统对P2P业务的识别效果好,控制效果良好,并且系统具有良好的可扩展性。对eMule业务的限速误差>10%的主要原因是eMule客户端间建立TCP连接后,部分数据用UDP传输,该部分P2P流量的数据无法控制。

4 结束语

本文中设计并实现了一个基于嵌入式的P2P流量监控系统。该嵌入式系统采用DPI的检测技术和旁路干扰控制技术。通过对常用P2P业务比特彗星和电驴流量的检测和控制,可以得知:该监控系统对P2P业务的识别率高,可以有效避免单点监控系统的性能瓶颈,并具有良好的扩展性。本系统只能够实现对具有特定通信特征字并且未加密的P2P流量进行监控,因此对未知协议和加密的P2P流量的识别算法研究是下一步工作的重点。

[1]WANG Changqing.P2Ptechnology on telecommunications network operator’s influence and the countermeasure analysis [J].Science & Technology Information,2008,23 (32):255-256(in Chinese).[王长青.P2P技术对电信网络运营商的影响及对策分析 [J].科技信息,2008,23 (32):255-256.]

[2]HU Lixin.Analysis of P2Ptraffic monitoring technology [J].Science & Technology Information,2007,22 (9):97-98(in Chinese).[扈立新.P2P流量监控技术分析 [J].科技信息,2007,22 (9):97-98.]

[3]ZHANG Chunhong,QIU Xiaofeng.P2Ptechnology comprehensive analytical[M].Beijing:The People’s Posts and Telecommunications Press,2010:209-210 (in Chinese).[张春红,裘晓峰.P2P技术全面解析 [M].北京:人民邮电出版社,2010:209-210.]

[4]GAI Ling.The research and application of monitoring technology on internet traffic[J].Telecommunications Science,2010,26 (11):4-5(in Chinese).[盖玲.互联网流量监控疏堵技术的研究与应用 [J].电信科学,2010,26 (11):4-5.]

[5]CAO Xianggang.The research of P2Papplication traffic identification and control[D].Beijing:Master Thesis of BeijingJiaotong University,2010:15-16 (in Chinese).[曹 香 港.P2P应用流量的识别与控制研究 [D].北京:北京交通大学硕士毕业论文,2010:15-16.]

[6]LI Binbin.The P2Papplications analysis and control based on flow characteristics [D].Beijing:Master Thesis of Beijing Jiaotong University,2010:25-26 (in Chinese).[李彬彬.基于流量特征的P2P应用分析与控制 [D].北京:北京交通大学硕士毕业论文,2010:25-26.]

[7]CHEN Haijun,ANG Sichun,YE hun.P2Ptraffic control methods and research based on LINUX kernel [J].Computer Engineering and Design,2007,28 (16):3912-3914 (in Chinese).[陈海军,王四春,叶晖.Linux内核扩展模块的P2P流量控制方法与研究 [J].计算机工程与设计,2007,28(16):3912-3914.]

[8]FAN Pengyi, WAN Hun,XU Zhouli.IPTV application recognition based on payload [J].Information Security,2009,25 (4):49-50 (in Chinese).[樊鹏翼,王晖,徐周李.基于payload特征的P2PIPTV应用识别 [J].信息安全,2009,25 (4):49-50.]

[9]LIU Qiang.P2Ptraffic identification and control technology'research and realize[D].Beijing:Master Thesis of Beijing University of Post and Telecommunication,2007:54-55 (in Chinese).[刘强.P2P流量监控技术研究与实现 [D].北京:北京邮电大学硕士学位论文,2007:54-55.]

[10]TANG Hao.The research and implementation of the P2P traffic control system [D].Wuhan:Master Thesis of The Huazhong University of Science and Technology,2007:23-24(in Chinese).[汤昊.P2P流量控制系统的研究与实现 [D].武汉:华中科技大学硕士学位论文,2007:23-24.]

[11]Volker Hilt,Ivica Rimac,Marco Tomsu,et al.Survey on research on the application-layer traffic optimization (ALTO)problem [J].IETF Application-Layer Traffic Optimization WG,2008,24 (12):8-9.

[12]Aggarwal V,Feldmann A,Scheidler C.Can ISPs and P2P systems co-operate for improved performance [J].ACM SIGCOMM Computer Communication Review,2007,37 (3):29-40.

[13]Kiesel S,Popkin L,Previdi S,et al.Application-layer traffic optimization (ALTO)requirements [J].IETF ALTO Wording Group,2009,16 (8):10-12.

[14]ZHOU Lijuan,LI Zhitang,HAO Tu.Proposition and provement of a TCP feature of P2Ptraffic-an example of BitTorrent and emule[C].Second International Conference on Communications and Networking in China,2007:61-62.

[15]WANG Jinsong,WANG Zhengxu,LIU Tao.Modeling distributed multi-granularity P2Ptraffic identifying and controlling system[C].International Conference on Networks Security Wireless Communications and Trusted Computing,2009:484-487.

猜你喜欢
队列数据包端口
一种端口故障的解决方案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
SmartSniff
端口阻塞与优先级
丰田加速驶入自动驾驶队列
8端口IO-Link参考设计套件加快开发速度
卫星三端口DC-DC变换器技术综述
视觉注意的数据包优先级排序策略研究