专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »p2p技术 » p2p流量识别与控制:网络应用 介绍并分析P2P流量识别和监测 »正文

p2p流量识别与控制:网络应用 介绍并分析P2P流量识别和监测

来源: 发布时间:星期四, 2008年12月18日 浏览:325次 评论:0
  随着P2P应用不断增多P2P流量所占网络总流量比重越来越大准确地识别出网络中P2P应用流量对网络规划设计、QoS保证等都有十分重要作用介绍了当前P2P流量识别研究现状综述了 4种典型P2P流量识别技术:端口识别法、应用层特征识别法、流量模式识别法以及连接模式识别分析了各个技术优缺点并对P2P流量识别发展趋势进行了些探讨

  关键词 P2P;流量识别;测量;加密;流量管理

  引言

  P2P (Peer to Peer)是近年来出现种新网络应用出现开启了网络边缘未使用资源当前随着硬件价格不断下降作为客户端PC机已经具有相当大处理能力和存储空间然而这些资源在大部分时间都是处于闲置状态比如在当前Internet中流行C/S配置模式中用户PC机仅仅是被作为个显示网页工具而P2P体系结构则可以使用这些PC机分担网络中心任务上百万个Internet用户组合得到处理能力将远远高于任何个中心服务器处理能力除此以外P2P体系结构还具有开放性、可扩展性强等特点所有这些使得P2P应用在短短几年时间有了飞速发展其体系结构也经历了由集中式服务器(Napster)到纯分散式文件共享系统(Gnutella)再到部分分散式结构(KazaA);由使用固定端口到使用动态端口进行数据传输;由使用独特端口到和其他应用合用端口(如使用Web应用80端口等);由明文传输到进行数据加密传输等变化过程

  研究表明尽管受版权等问题困扰当前P2P应用仍呈现快速增长趋势并且变得越来越隐蔽[3]P2P飞速发展方面丰富了网络中应用形式但另方面也带来了许多负面问题如:P2P文件共享过程中版权问题;P2P应用大量占用网络带宽问题;以及P2P流量模式对传统网络设计带来挑战等其中后者尤为网络设计、管理人员所关注我们知道在Web应用流量占网络流量主体时由于Web流量高度非对称性(用户链路下行流量要远远高于其上行流量)大部分用户接入方式如ADSL、Cable modem等都设计为下行带宽远高于上行带宽而在P2P应用中由于所有性能具有很大影响例如对于些ISP而言文件共享流量约占其总流量60%另外企业网络中大量出现P2P流也会极大地影响网络性能因此无论从ISP角度还是从企业网络管理人员角度都希望能够将P2P流量有效识别出来从而便于网络规划和管理对于个企业而言可以限定P2P流量不超过某个阈值从而能够为其他重要应用提供定程度上QoS保证;或者为了网络管理需要直接在内部将P2P流量过滤掉而对于ISP而言可以在此基础上对服务进行控制以及对用户进行管理等但是当前识别P2P个主要挑战就是以种可扩展方式识别出P2P流量同时不要求对所有分组进行深层分组检查(DPI, deep packet inspection)

  文章后面部分按照下述方式组织:第部分概述了P2P流量识别技术;第 2部分详细综述了当前几种常用P2P流量识别技术;第 3部分对P2P流量识别技术发展进行了展望;最后对全文进行了整理总结

  1 P2P流量识别技术概述

  为了控制网络P2P应用对带宽大量占用必须首先对P2P流量进行有效地监控它涉及到下面几个方面问题:流量采集、流量识别以及流量控制在其中流量采集和其他网络监测方式采用技术完全流量控制则取决区别网络管理策略由网络管理人员进行相应设置例如进行P2P流量限制或者完全过滤P2P流量等因此这里关键部分是流量识别操作根据实现思想区别可以将它分为多种类型如基于分组分析、基于流分析等其实现方式直接关系到整个监控系统实现效率以及系统可用性

  P2P应用从最初采用固定端口发展到使用可变端口甚至使用其他应用端口进行数据传输在传输具体内容方面也从使用明文传输发展到对传输数据进行加密处理因此对P2P流量进行识别技术也随的经历了相应变化过程本文中我们主要针对 4种典型识别思路方法进行讨论包括端口识别法、应用层特征识别法、流量模式识别法以及连接模式识别法对于这几种技术我们将在第 2节中进行详细讨论

  2 典型P2P流量识别技术

  2.1 端口识别法

  在P2P应用兴起早期大多数应用使用都是固定端口例如Gnutella使用6346-6347端口BitTorrent使用6881-6889端口等在这种情况下对其流量识别方式和识别普通应用分组方式完全相同:在需要监测网络中被动收集分组然后检查分组运输层首部信息如果端口号和某些特定端口号匹配则介绍说明该分组即为P2P流量分组可以按照预设动作对其进行处理这种识别思路方法最大优点就是简单易行它不需要进行复杂分组处理即可得出结论在P2P应用出现初期它显得十分简单有效但是随着P2P技术发展该思路方法逐渐变得不再适用因此后来又出现了些新技术方案

  2.2 应用层特征识别法

  和第代使用固定端口进行数据传输P2P应用区别当前许多P2P应用都能够通过使用随机端口来掩盖其存在有些甚至可以使用HTTP, SMTP等些协议使用熟知端口这增加了识别P2P流量难度:简单通过分析分组首部端口信息已经无法识别出这类应用存在

  但是每种应用分组中都携带有特定报文信息例如HTTP协议报文中会出现GET, PUT, POST等报文字样和的相类似在各种P2P应用协议中也具有类似信息因此人们提出了通过检查分组内部携带负载信息进行分组识别思路方法文献[2]提出了种利用应用层特征方式对P2P流量进行识别在[2]中作者首先对5种常见P2P协议(KaZaA, Gnutella, eDonkey, DirectConnect以及BitTorrent)特征进行了分析提取出其特征信息然后根据特征信息对收集到分组进行模式匹配操作从而判断出该分组是否属于某类P2P应用分组例如Gnutella连接建立报文具有下述格式

  GNUTELLA CONNECT/\n\n

  而应答报文格式如下

  GNUTELLA OK\n\n

  根据这些以及其他类似特征即可判定相应报文是否为P2P应用报文并由此确定某个流是否为P2P流

  [2]中实际测量结果表明在大多数情况下该思路方法能够以低于5%概率对分组进行识别

  和第种思路方法相比上述思路方法能够识别出使用可变端口P2P流量(这正是当前P2P应用发展个趋势)提高了其结果准确性例如在同样情况下用户数据特征识别 法识别出P2P流量是仅仅采用端口进行识别思路方法得到结果3倍[2]但是分析不难发现思路方法存在下述些问题:

  只能针对已知数据格式P2P应用进行识别这使得每出现种新P2P应用就需要修改上述实现因而造成其扩展性不好;

  对用户数据检查不符合Internet基本原则并且由于诸如法律、个人隐私等原因检查用户数据在许多情况下几乎是不可能;

  由于需要对分组内部数据进行全面检查分析使得其实现效率不是很高;

  随着技术发展些P2P应用开始以密文方式进行数据传输面对这种情况用户数据识别方式则完全是无能为力

  上述种种原因导致用户数据识别思路方法通用性十分有限而且随着P2P技术发展这种识别思路方法也会和通过固定端口进行识别思路方法相类似逐渐不适应实际需要因此有必要找到其他思路方法对P2P流进行较为精确识别

  分析端口识别法和应用层特征识别法可以发现尽管两者实现机理完全区别但是其基本思想均是基于P2P应用些外在特征并且这些外在特征是可以隐藏旦出现上述情况这些识别思路方法就不再适用而且上述两种思路方法只能识别已知P2P协议流量旦出现种新P2P应用必须修改上述识别思路方法才能对其进行识别这限制了它们应用范围因此为了能从根本上解决这些问题必须分析P2P应用和其他些诸如Web等应用根本区别然后利用这些本质特征对其进行识别下述两种思路方法就分别从P2P应用流量特征以及P2P网络连接模式特征着手对其进行了分析

  2.3 流量模式识别法

  这是在Caspian路由器中实现种功能该路由器记录经过它每条流信息因此可以实现基于流流量识别和控制功能种新方式对P2P流量进行识别和控制并且如前所述解决方案是基于P2P流内在特征避免了前面两种识别思路方法中些问题

  表1 几种比较常见IP服务流量特征

  服务 持续时间 平均速率 传输字节数

  HTTP 短 高 中-高

  VPN 长 低 高

  Games 长 低 高

  Streaming 长 中 高

  Telnet 长 低 中

  Fileshare / P2P 长 中-高 高

  上表1描述了几种区别应用对应流量特征[4]由此可以看出P2P应用特点是持续时间长、平均速率较高以及总传输字节数高这和文件传输如FTP等应用有些类似但是该类应用可以很方便通过端口号识别出来而且由于这些应用和用户交互性不如Web、视频等应用高因此出现误判导致对它们流量限制不会造成大问题

  另外根据流所包含字节数可以很容易将普通Web流量同P2P文件共享流量区分开

  可见通过分析区别应用流量模式可以实现识别P2P流量而且这思路方法不需要对分组内部用户数据进行检查因此不受数据是否加密限制扩大了其适用范围但是由于需要记录每条流信息这种思路方法对内存空间以及处理速度都提出了比较大要求这方面国内较为知名网管软件Software:聚生网管系统就是采用这种思路方法从而使得封堵P2P软件Software较其他网管软件Software有明显优势

  2.4 连接模式识别法

  [1]中提出了种在传输层识别P2P流量思路方法它仅仅统计用户分组首部信息而不涉及具体数据因此方面克服了前述思路方法对加密数据无法识别问题同时又不涉及用户具体数据符合Internet体系结构中端到端原则其基本思想是:基于观察源和目IP地址连接模式些模式是P2P所独有因此可以由此直接将P2P流量识别出来;另外些模式由P2P和其它少数应用所共有这时可以根据对应IP地址流历史以及其它特征来减少误判概率

  在这种思想具体实现中Thomas Karagiannis等给出了两种启发式思路方法:(1) 识别出那些同时使用TCP和UDP进行数据传输源-目IP地址对研究表明大约2/3P2P协议同时使用TCP和UDP协议而其他应用中同时使用两种协议仅仅包括NetBIOS、游戏、视频等少数应用[1]因此如果个源-目IP地址对同时使用TCP和UDP作为传输协议那么可以认为在这地址对的间流除些已知应用外(对于这些应用可以根据它们特征将其排除)很有可能就是P2P流可以将它们加入到候选P2P流队列中;(2) 基于监测{IP, 端口}对连接模式思路方法基本依据为:当个新主机A加入P2P系统后它将通过super peer广播其IP地址以及接受连接端口号port其他主机收到后利用这信息和主机A建立连接这样对端口port而言和其建立连接IP地址数目就等于和其建立连接区别端口数目(区别主机选择同端口和主机A建立连接可能性是很低完全可以忽略不计)而其他些应用如Web个主机通常使用多个端口并行接收对象这样建立连接IP地址数目将远小于端口数目但是另外些应用如mail、DNS等也具有类似属性因此使用这种思路方法在实际识别过程中需要将它们区分出来

  3 难点问题和研究路线

  由上文分析我们可以发现流量识别过程本质上就是根据流量或其中分组基本特性进行模式识别过程考虑区别特性可以设计出区别识别思路方法其实现性能以及算法通用性也会有很大区别

  当前P2P流量识别难点主要来自两个方面:(1) Internet链路带宽不断增长;(2) 数据加密、隐藏等技术在P2P中应用前者导致网络中单位时间内数据以及流数目增大给数据采集增加了困难而后者又使得传统端口、应用层特征等识别思路方法不再适用

  流量模式分析和连接模式分析两种思路方法尽管在定程度上避开了难点(2)带来问题但是它们分析思路方法又略显粗糙而且在这两种思路方法中各种特征及其在识别过程中对最终结果影响因子是由管理人员主观确定无法由根据识别过程中学习信息自动进行调整因此如何提取并有效利用P2P应用流量及连接特征仍是个有待研究问题在下研究中可以将模式识别和人工智能中些技术引入识别过程中综合运用小波变换、人工神经网络等技术对P2P流量特征进行发掘

  4 结束语

  当前网络中P2P应用数目不断增加流量也呈现逐渐增长趋势而且分布式、加密、匿名P2P应用越来越成为主流[3]在这种情况下为了满足服务质量、网络规划、计费和审计等基本要求必须对P2P流量进行有效识别和监测本文所描述几种典型P2P流量识别思路方法分别针对P2P流量区别方面特征对其进行了分析和识别但是随着P2P技术不断发展上述识别思路方法仍需要相应改进包括挖掘P2P流量深度特征在识别系统中引入智能学习功能等另外在未来网络发展过程中应当考虑在网络体系结构设计引入这种流量识别监测机制以便对网络中相关P2P流量进行实时、高效监控同时能够根据网络运行状况以及用户设定处理规则对其进行智能控制从而为网络管理人员提供个便利管理平台

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: