专利名称:一种实时监控p2p应用所消耗带宽的方法
技术领域:
本发明涉及一种实时监控P2P应用所消耗带宽的方法,适用于互联网接入服务领域。
背景技术:
互联网发展之初,应用传输数据的方式主要是客户机/服务器式客户机向服务器建立连接、发送请求;服务器根据请求返回数据。电子邮件、Web浏览等和用户日常相关的应用都采用传统的客户机/服务器方式工作。近来,P2P(Peerto Peer)的服务方式逐渐发展起来,它和传统的客户/服务器方式不同,有大量的数据在广泛分布的客户端之间传送,服务器直接传送给客户端的数据很少,因而可以同时支持超大规模的用户端数量。对于使用P2P应用的用户来说,由于P2P应用向大量的其他客户端建立了很多连接,抢占了传统应用的带宽,使其他应用如电子邮件、Web浏览的带宽受到很大影响。目前,P2P应用已经在互联网上迅速发展,对带宽的消耗和浪费很大,收发电子邮件和网页浏览的效果大不如前,影响了宽带网用户对网络的正常使用。而且由于P2P应用建立大量地址和端口广泛分布的连接,很难依靠在路由器上控制IP地址以及服务端口的方式,控制P2P应用对普通网络应用的影响。
发明内容
1、发明目的本发明的目的是通过实时分析互联网上的数据包,识别出各种P2P应用的数据,实时计算其占用的带宽,并对其流量按照适当的策略加以控制,减少对其他网络应用的影响,便于电信运营商更好地提高用户服务质量。
2、为实现上述目的,本发明所述的一种实时监控P2P应用所消耗带宽的方法,其特征是该方法包括以下步骤(1)利用分光器或网络设备的镜像功能或设备内部的数据拷贝功能导出原始数据,监测到流经某条通信链路上的所有IP分组。
在通信链路上进行分光或利用网络设备的镜象功能得到原始IP分组数据的好处,在于当系统硬件出现故障停机时,不会造成互联网数据传输中断。
(2)参照主流P2P应用的特征码或特征协议分析这些IP分组,识别出各种P2P应用并统计其消耗的带宽。
对于已知的主流P2P应用,本系统采用特征码和协议特征进行分析识别,例如BitTorrent P2P应用,包含有“BitTorrent”特征码字符串;OpenNap/NapsterP2P应用,其协议特征为(1-2字节是包长,从第3个字节开始)0x31(1byte),0x0000ca00(4bytes),0xc800,0xc900,0xcb00,0xcc00,0x0000,0xd600,0x0200,0x0300,0x0600,“SEND”,“GET”(3bytes)。系统中已有当前主流的P2P应用的特征库,并可以动态更新。对识别出的数据,按照网络会话的5元组<协议号,源IP地址,源端口,目的IP地址,目的端口>为网络会话加上标记,标识其所对应的P2P应用类别。如果一个网络会话属于某种P2P应用,则将该网络会话的所有IP分组的字节数,都记入这类P2P应用所传输的字节数。将这类P2P应用在一个较短的时间间隔内(例如5秒钟)所传输的字节数,除以时间间隔,就能计算出这类P2P应用实际所消耗的带宽。
为了更好地对P2P应用进行疏导,还可以计算出一组IP地址,使用某类P2P应用而消耗的实际网络带宽。参照Radius协议分析Radius IP分组,可以得到宽带帐号与IP地址的动态对应表(同一个宽带帐号每次连接到互联网时,可能会得到不同的IP地址),进而可以计算出一组或一个宽带用户,使用某类P2P应用而消耗的实际网络带宽。
(3)采用构造并发送TCP Reset或ICMP目的不可达数据包,或通过指示网络设备阻塞指定的网络会话的方法,抑制P2P应用消耗的带宽。
(A)对P2P应用的TCP连接,根据源、目的地址和端口,构造并发送两个TCP Reset的数据包一个Reset包表现为从P2P应用连接的源地址发往目的地址,另一个Reset包表现为从目的地址发往源地址,内容都是TCP Reset命令,令双方都关闭连接不再发送数据,例如可以向源地址发送如下TCP Reset命令如下IP包中协议类型TCP;TCP源端口号原始数据包中的目的端口号;TCP目的端口号原始数据包中的源端口号;
TCP序列号原始数据包中的确认号+1;TCP确认号原始数据包中的序列号;TCP标志RST位和ACK位置位。
向目的地址发送的Reset命令如下IP包中协议类型TCP;TCP源端口号原始数据包中的源端口号;TCP目的端口号原始数据包中的目的端口号;TCP序列号原始数据包中的序列号+数据长度;TCP确认号原始数据包中的确认号;TCP标志RST位和ACK位置位。
(B)对P2P应用的UDP会话,向UDP数据的发送端发出经过构造的ICMP目的不可达指示数据包,其中载有原始的UDP数据,通知发送端不再发送数据,例如可发送如下ICMP目的不可达指示如下IP包中协议类型ICMP;ICMP消息类型3(目的地址不可达);ICMP代码3(端口不可达);ICMP消息中的数据部分把原始数据的UDP包中的IP协议部分和UDP协议头以及截取开头的最多不超过520字节数据。
(C)上述(A)、(B)将构造出来的数据包,直接发送到互联网中,抑制相应的P2P应用流量。也可针对(2)已经打上P2P应用类别标记的网络会话,直接发送指令指示网络设备阻塞指定的网络会话的方法,抑制相应的P2P应用消耗的带宽,例如可发送如下指令给相关的网络设备<协议号,源IP地址,源端口,目的IP地址,目的端口,阻塞时长>。
(4)通过负反馈机制,动态调整对P2P应用的抑制程度,控制一组用户的P2P流量不超过预设的流量,或P2P流量占其总流量的百分比不超过预设的数值。
假设要将某类P2P应用P2PApp_1消耗的带宽,控制在B bps以内,步骤如下步骤一定时地按方法(2)计算得到P2PApp_1当前消耗的带宽,设为X bps;得到当前运行了P2PApp_1的5元组<协议号,源IP地址,源端口,目的IP地址,目的端口>的集合以及每个5元组所消耗的网络带宽。
步骤二如果X小于B,则回到步骤一。
步骤三如果X大于B,则利用上述(A)或(B)或(C)三种方法,干扰P2PApp_1会话中的一部分,回到步骤一。这部分被干扰的会话应从收集的5元组集合中选取。具体的选取策略可以是从5元组集合中随机选取一部分,使这一部分5元组的带宽之和等于或略大于(X-B)bps;也可以按照流量的大小对5元组集进行排序,优先选取流量高的5元组;或者按照预先设置的策略进行选取。
(5)随着互联网上P2P应用的不断丰富,对P2P应用特征码、特征协议的识别会越来越困难、特别是当P2P应用对数据进行加密之后,识别P2P应用将会消耗极多的计算资源。针对这种情况,本发明可根据用户建立的会话数量、流量、协议等行为特征,进行智能识别。
其实现方法如下(a)建立当前广泛使用的因特网应用协议的特征库,这样就能保证智能识别时不会把非P2P的关键应用识别为P2P应用。由于广泛使用的非P2P应用的协议都是公开的,因此能相当容易地识别出Web,email,ftp,telnet等应用。
(b)P2P应用一般与不同的机器之间建立了大量的会话连接,并进行大数据量、高速的数据传送。因此当一台机器与其它机器的连接数超过M个,且其数据传送量大于N bps,且持续时间大于T秒时,则可以将这些会话归类为P2P应用。其中M,N,T为可调参数。
(c)可以进一步的根据不同类型的P2P应用的不同特征来对P2P应用进行进一步细分。如P2P流媒体应用由于媒体源的编码速率一般是恒定的,因此P2P流媒体到一个播放节点的传送速率基本上是恒定的;而P2P文件下载一般会最大限度的利用可得到的带宽,因此下载速度一般会有较大的起伏。
对智能识别出的P2P应用,也能采用(4)对其带宽进行限制。
3、有益效果本发明与现有技术相比,其显著优点是互联网接入服务商采用本发明,可以掌握各种P2P应用的流量在本网络中所占比例,及时限制P2P应用所消耗的带宽,控制P2P应用对其他正常网络应用的影响,节省带宽资源、节约投资,更好地提高对用户的服务质量。
四
附图是应用系统具体实施方案示例图。
五具体实施例方式
本方案的具体系统,可采用如附图所示方案。互联网服务提供商构建的城域网/省域网通过路由器_2与INTERNET骨干的路由器_1相连接;Radius服务器通过路由器_3接入到城域网;计算机用户_A、用户_B、用户_C、用户_D连接在城域网上。
本方案利用分光或网络设备的镜像功能导出原始数据,可以监测到流经某条通信链路上的所有IP数据分组。在图中,本发明导出了路由器_1和路由器_2之间的IP数据分组,P2P应用分析及统计模块通过特征码或特征协议分析、或智能识别,实时识别出P2P应用并统计其消耗的带宽;此外本发明还导出了路由器_3与Radius服务器之间的IP数据分组,Radius协议分析模块参照Radius协议分析它,可以得到宽带帐号、IP地址二者之间的动态对应表。在判断出一组IP地址或一组用户的P2P应用所消耗的带宽之后,利用本发明前述的构造并发送TCP Reset或ICMP目的不可达数据包,或通过指示网络设备阻塞指定的网络会话的方法,抑制P2P应用消耗的带宽。
权利要求
1.一种实时监控P2P应用所消耗带宽的方法,其特征是该方法包括以下步骤(1)利用分光器或网络设备的镜像功能或设备内部的数据拷贝功能导出原始数据,监测到流经某条通信链路上的所有IP分组;(2)参照主流P2P应用的特征码或特征协议分析这些IP分组,识别出各种P2P应用并统计其消耗的带宽;(3)采用构造并发送TCP Reset或ICMP目的不可达数据包,或通过指示网络设备阻塞指定的网络会话的方法,抑制P2P应用消耗的带宽;(4)通过负反馈机制,动态调整对P2P应用的抑制程度,控制一组用户的P2P流量不超过预设的流量,或P2P流量占其总流量的百分比不超过预设的数值。
2.根据权利要求1所述的一种实时监控P2P应用所消耗带宽的方法,其特征是在步骤(2)中,可以根据用户建立的会话数量、流量、协议等行为特征,智能识别新的P2P应用以及加密的P2P应用。
全文摘要
本发明公开了一种实时监控P2P应用所消耗带宽的方法,该方法是导出原始数据,监测到流经某条通信链路上的所有IP分组;参照主流P2P应用的特征码或特征协议分析这些IP分组,识别出各种P2P应用并统计其消耗的带宽;采用构造并发送TCP Reset或ICMP目的不可达数据包,或通过指示网络设备阻塞指定的网络会话的方法,抑制P2P应用消耗的带宽;通过负反馈机制,动态调整对P2P应用的抑制程度,控制一组用户的P2P流量不超过预设数值,或P2P流量占其总流量的百分比不超过预设的数值。本发明的优点是可以掌握各种P2P应用的流量在本网络中所占比例,及时限制其所消耗的带宽,控制其对其他正常网络应用的影响。
文档编号H04L12/56GK1889475SQ20061004085
公开日2007年1月3日 申请日期2006年7月31日 优先权日2006年7月31日
发明者汪渝波, 赵振平, 皱畅根 申请人:南京信风软件有限公司