北京华盖创新科技有限公司
第二代P2P应用采用的方法中还包括一些用于规避网络安全设备的“技巧”:
(1)端口跳跃:通过这种方法,P2P应用将不再使用一个固定的端口号,而是采用随机的或者是用户手工设定的协议端口号。
(2)常用端口号:一些P2P应用使用80端口——官方规定的HTTP协议端口,来避开防火墙的限制,获得对Internet的访问。这是一种很狡猾的做法,因为企业通常只开通特定的、常用的端口(如80端口)访问Internet;类似地,一些运营商还对80端口提供更优化的流量,因为这些流量被认为是来自HTTP访问Web的。
(3)HTTP隧道:在很多企业网络中,Internet的访问是通过HTTP带来完成,对于非HTTP应用或者未经过HTTP的应用将不能访问Internet。于是很多P2P应用将HTTP协议作为自己基本协议,这样就避开了这些限制,使得网管设备的限制失效。
(4)HTTP代理隧道:P2P客户端将要发给Web边缘的对等计算机的流量使用隧道技术进行封装,通过代理(如Socks代理)和一些第三方的隧道应用(如Socks2HTTP),使P2P流量看起来像是标准的代理流量,而这些流量通常是不被限制,从而达到避开限制的目的。
对于这些应用的识别和控制是非常困难的,除非借助应用层可视性检测工具,检查传输协议(如TCP协议)的载荷(Payload)部分,对不同的应用进行更精确的识别。
第3代P2P应用:
第3代P2P应用是一种介于集中式和分布式结构之间的混合折中结构。这一类型的网络使用“超级对等体”(超级节点)来充当中心服务器的角色,一方面维护网络的分布式结构,一方面保证良好的搜索点击率、网络速度和可伸缩性。超级对等体是从众多对等体中随机选择,甚至被选择的对等体自身对此也不会有所察觉。超级对等计算机向为数不多的一组对等计算机提供索引服务,同时超级对等体之间也彼此进行通信,文件传输在对等计算机之间直接传输。通过限制处理搜索的对等计算机的数量,同时也消除了使用固定、专用服务器带来的延迟,该类型的网络在提供很高的搜索性能的同时,也继承了分布式网络的特性。某些第三代P2P应用使用SSL协议(如HTTPS,是用于加密Web流量的协议)对流量进行加密保护。
第4代P2P应用:
P2P应用最新发展的一个趋势,典型代表有Skype、eMule 0.47c和BitComet 0.80。
6
北京华盖创新科技有限公司
这一代的P2P应用从技术上看,主要有两个特点:
(1) 通过增加无用随机数据和数据进行加密这两个手段使得协议流量特征模糊化 ,如最新版的eMule、BitComet等软件。
(2) 多协议并用(如迅雷,HTTP、FTP、专用协议并存),逃避监管。
日益复杂精巧的设计和开发,P2P新应用不断涌现,功能更强也更易使用,为了使P2P应用运行畅通,新一代P2P软件比上一代越来越智能,其中主要是P2P应用由于其独特的设计理念,在客户端软件中加入了大量对抗网络封堵、限制的技术手段,使得P2P流量管理检测难度水涨船高,同时需要不断升级协议特征库。P2P应用使人们对使用Internet的方式发生着革命性的改变,P2P应用的潮流不可阻挡,只能顺应潮流,采用有效处理策略。
2.4. 处理P2P策略
为了能够控制P2P应用,企业与网络运营商都各自尝试了不同的解决方案: 扩充带宽:
最简单显而易见的解决办法,就是扩带宽。
优点:增加带宽可以在短时间内缓解网络的拥塞状况,当P2P应用觉察到网络中有更多的可用带宽,网络带宽将会再次被P2P应用占据。
缺点:增加带宽和增加带宽的费用将是无底洞,这样做只是给P2P应用提供了更多可攫取的带宽资源。
禁止P2P:
全面禁止P2P应用将会是拥塞的网络恢复正常状态。
优点:企业可以禁止P2P的使用,提高员工的工作效率,而以往员工却花费时间和网络带宽进行娱乐性的网上冲浪。
缺点:ISP将会失去用户,因为很多用户就是为了不受流量限制才租用了运营商的线路。
限制,而不是禁止P2P:
使用能够识别第7层应用的流量管理解决方案,企业和运营商能够准确判别P2P应用并进行限制。
7
北京华盖创新科技有限公司
优点:可以通过多种控制策略进行,通过合理调配带宽资源,提高网络运行效率,如发生链路拥塞的情况下,减少分配给P2P应用的带宽或者降低P2P应用的优先级,保证同一服务级别的用户使用网络的公平性,将会大大改善网络响应速度质量。当对P2P应用流量进行限速管理之后,网络中的其他应用将变得很顺畅。
仅对上传进行约束:
对于ISP来说,这种约束能力显得更为关键,因为对于那些非线路租户使用其他租户的线路上传(而并不承担相关费用)的情况尤为关注。运营商显然不会考虑这些非线路租户进行线路的升级,这也就是为什么选择限制上传流量的原因。
优点:对上传流量进行限制并不会影响到下载流量。如某运营商对P2P应用的出向流量进行了限制,而这个方向的流量主要是由非线路租户产生,由于他们自己的线路租户的TCP确认信息并不会受到影响(尽管它们的方向也是向外发送),就可以继续享受无限制的下载服务。通过这项控制,该运营商用户的流量消耗得到了显著减少,成本大幅度下降,又保证了客户的满意度。
由于流量管理产品具有足够的灵活性,可以在不影响下载的前提下限制上传流量,从而使所有人都能获益:线路租户可以根据自己需要随意下载,运营商也得益于需要支付给骨干网络运营商的成本的大幅度下降。 缺点:无。
2.5. 如何检测网络中的P2P流量
为了能从应用中把P2P应用识别出来,网络可视性(Network Visibility)是至关重要。这种检测能力将了解到在当前的网络中运行着哪些P2P应用、哪些P2P应用正在吞噬网络中的宝贵资源、哪些用户占据了过多的网络资源从而造成了网络的拥塞。当检测和分离这些流量之后,就可以对P2P应用进行限制或者阻止、或者为其他的应用或用户分配和保证所需的带宽,或者把P2P应用的流量避开峰值时段,合理调配带宽使用,从而利用现有的带宽资源,最大限度地提高带宽的效率。
深层数据包检测(DPI):识别P2P应用的唯一可靠办法:
对P2P应用进行判定,需要借助复杂的第7层识别技术,使用各种方法来检测这些难以捉摸的应用。由于多数P2P应用软件都使用端口跳动技术或者盗用一些常用服
8
北京华盖创新科技有限公司
务的协议端口进行通信传输,所以通过对端口对它们进行识别显然是远远不够,传统的流量限速设备无能为力。因此,所有的数据包都必须到应用层面(Application Layer)上进行检查,即对传输协议如TCP协议的载荷(Payload)部分进行检查,以判断它们是否符合代表某种应用代码的样本特征,在很多情况下,对于某一种应用的识别需要检测它是否多个代码样本的特征。
基于会话的应用分类:
标准的协议头部(Header)字段如TCP/UDP的端口号字段在每一个数据包中都存在,而第7层的协议代码样本通常只能在一次协议会话的前几个数据包中存在,并进行会话标记的请求以标识本次会话中所有的数据包。当网络中产生了一个新的会话,如P2P应用会话,那么一个唯一的协议签名(Signature)就必须被找到并能够与已知的协议代码样本相匹配,如当使用第7层的分类方法对一个P2P应用进行了正确的识别,那么该会话中的后续数据包就能够被正确的判别为该P2P应用会话的数据流量。
有些情况下,一个P2P应用使用不止一个会话,这就需要流量管理系统能够从两个或多个会话中提取信息并进行关联以找到能够匹配的代码样本。
并非基于端口的分类:
P2P应用通常使用随机的端口号或者借助一些常用的端口号来进行传输,因此在进行P2P应用样本搜寻时,就不能做任何的假设,需要对网络中所有数据流进行第7层协议的探测,而不管它们是否使用了某个端口号。
每秒连接数:
不寻常的连接数量可能是在暗示着网络中P2P应用的使用,也可暗示着异常流量的存在,如病毒、蠕虫、有害程序等等。P2P是具有侵略性的应用,它可以在短时间内建立超负荷的连接,异常的连接数量在流量管理设备中可以设定告警机制,帮助网络管理员及时解决问题。
3. 流控技术解决方案
针对P2P应用的流量管理特点,检测、性能和系统稳定性这三个因素是至关重要。不能正确检测区别P2P流量,就不能进行管理控制。性能不能满足要求,没有足够的处理能力,造成网络延迟的增大,同样也是无效。
下面简要介绍一下流控设备检测与控制P2P系统所使用的独特的应用层识别技术,在此之前,我们先介绍一下目前在其它产品中常用的技术:
9
北京华盖创新科技有限公司
(1)基于数据包的无状态识别技术。这种技术一般是采取模式匹配的方式,对每个数据包进行模式匹配,并且不考虑数据包之间的逻辑关系,采取这种方式的系统的好处是实现简单,但是它的缺点也是很明显的,就是性能低下,易成为网络的瓶颈。
(2)基于连接的有状态识别技术。这种技术是一般的传统防火墙所采取的技术。在防火墙现有的状态表的基础之上,将连接所产生的所有数据包看作一个整体,如果其中某个或某些数据包符合指定的特征,那么认为这条连接就是符合该特征的连接。所以,如果该特征是BT通信,那么这条连接就是两个BT客户端或一个BT客户端和一个BT服务端在通信。
在运营商的网络环境里,由于节点一般都是网络交换节点,因此许许多多的P2P节点的通信都会通过运营商的交换网络,这些节点以十万,甚至百万计。如果采取基于连接的有状态识别技术,所能控制的P2P通信非常有限,这种技术只适合于小规模的网络,如中小企业网络。
流控设备采用“基于节点的有状态识别技术”可以避免上述问题。
一个典型的P2P是由许多节点构成的,每个节点都是一个服务器,这个节点可以同时为其它节点提供服务。基于节点的有状态识别技术的基本思想是从节点双方的通信过程中寻找特征数据,这些特征数据不限于某条特定的连接,如果特征匹配,那么系统将记录该节点,而不是某条连接。一旦该接点被识别出来,那么后续同该节点通信的数据无须重新验证,因此极大的提高了系统的性能。P2P应用中,客户端既是客户,又是服务器,在某端口上监听为其他客户提供服务,根据这一特性,将IP+服务端口在内存中定义一个二元组,称之为节点。
流控设备在基于节点的有状态识别技术的基础上向智能方面进一步发展,该技术可以从多条连接中自动根据某种统计规律来识别某些特征不明显或者被加密了的通信协议(如SkyPe),在保证性能的同时,提高了系统识别的准确性。这种技术针对P2P应用尤其有效。
此外,流控设备针对第4代P2P应用软件的变化,采用独有主动探测和服务伪装技术保证对P2P识别的准确性。流控设备采用独有的服务探测引擎可以识别第四代P2P应用,如emule 0.47c。服务伪装, 对于迅雷这样综合了P2P和HTTP,FTP等传输协议的应用,流控设备开发了独有的服务伪装引擎。
从技术角度看,P2P应用有如下几个特点:
(1)一个P2P节点(客户端程序,比如BitComet)通常与成百上千个客户端连接,
10