【赛迪网独家特稿】P2P(Peer-to-Peer)是一种用于文件交换的新技术,通过Internet允许建立分散的、动态的、匿名的逻辑网络。它允许个体的PC通过Internet共享文件。
随着P2P文件交换应用的普及,ISP在维持和增加宽带网的收益上也面临着新的挑战和机遇。
据有关资料统计,现有的网络中有超过70%的带宽被P2P通信占据着。P2P通信会导致异常的流量峰值,对网络资源造成意外的变形;所带来的网络拥塞、性能下降等问题,已影响到正常的网络应用,如WWW、Email等,缓慢的网页浏览和收发邮件速度更引起普通用户的不满。
识别P2P通信
若想控制P2P通信,就必须对P2P通信进行有效地识别,然而,许多P2P通信使用了不同的通信技术和协议,使用传统的技术来识别它们非常困难。
比如,许多P2P协议不使用固定的端口,而是动态地使用端口,包括使用一些知名服务的端口。KaZaA就是可以使用端口80(通常是http/web来使用)来通信的,从而穿透传统的基于IP和端口的防火墙和包过滤器。所以,通过简单的基于IP和端口的分类技术(分析IP包头、IP地址、端口号等)很难识别、跟踪或控制这类通信。
过去有一段时间,有人使用封锁6881~6889端口来阻断BT(BitTorrent),但这种做法现在早已失效——BT已不再使用固定的6881~6889端口来通信,而是动态地使用端口。
随着P2P应用的不断增长,更多的通信协议被使用;识别和分类P2P的技术必须快速、简单,以适应这种技术的变化。现在,识别P2P通信的方法是在应用层分析数据包,看是否有某个应用协议的特征码,然后确定通信的种类。应用层分析数据包的基本方法是,如果应用层数据包的头部有“220 ftp server ready”的特征串,可以确定是在使用ftp程序;如果有“HTTP/1.1 200 ok”的特征串,可以确定是在使用http传送数据。
每一个P2P通信在下载连接前要有一个包含其特征串的预连接。例如,KaZaA使用80端口传送数据,但在预连接时会有“GET/.hash=”的特征串;如果有“BitTorrent protocol”的特征串,可以确定是在使用BT。这是识别和分类P2P的基本方法,但具体实现时会稍有不同,这里不再过多叙述。
阻断P2P通信
可以使用专业厂家生产的P2P硬件控制设备,来阻断P2P通信或者控制每个用户P2P的流量,但昂贵的设备价格可能是无法接受的。下面介绍两种廉价的解决方案。
利用Cisco路由器的NBAR功能
NBAR(Network-Based Application Recognition)网络应用识别是一种动态的、能在四到七层识别应用的技术,配合PDLM(Packet Description Language Module)可以识别P2P通信,但要求IOS版本在12.x以上。
1
2
3
下一页>>