早期的互联网应用大都建立在TCP/IP协议栈基础并采用客户端/服务器的模式,随着网络用户的增多,用户会明显感觉到访问速度的下降。P2P技术是对客户端/服务器模式的一种革命,它的核心思想是把仅由一台服务器存放的文件分割成多个文件块,并分散到多个客户端,客户端之间互为服务器,在下载的同时提供流量上传,用户在下载过程中不再访问服务器,而是从提供上传的客户端下载自己需要的文件部分。P2P解决了服务器的瓶颈问题,充分利用了网络带宽,极大地方便了互联网上信息共享。
BT是较具代表性的P2P软件,在全球有着广泛的应用。随着BT流量的增加,互联网运营商越来越感觉到带宽的压力,运营商纷纷开始对BT等P2P应用进行限制,甚至封杀。但从现实看运营商无法彻底封杀BT,故他们转而采用对BT进行流量限制的手段。从技术角度分析,要进行流量限制就必须准确识别出BT业务流;但由于BT不采用标准的传输层端口,并且BT软件为防止被探测而在新的演化版本中都可以由用户自己修改端口号,因此传统的基于端口的流识别技术面对BT可能会失效。本文从BT技术的原理分析出发,结合BT应用层标识给出一种BT业务流识别的方法,及其在烽火网络新一代路由设备平台R8006上的应用。
BT下载过程解析
传统的文件下载服务如FTP或者HTTP都有一个提供FTP或HTTP应用程序的服务器,该服务器存放用户需要的文件;一般用户作为客户端,使用FTP或HTTP客户端程序主动连接服务器,在获得授权后即可从服务器下载文件。这种典型的客户端/服务器模式对于文件的合法性、安全性可以很好的控制,但有致命的缺点,当有多个用户同时访问服务器时,由于服务器的性能因素、服务器连接广域网出口的带宽因素等,会导致用户的访问速度急速下降。另外,在客户端/服务器模式下用户主要使用网络的下行带宽,即从服务器到用户主机的带宽,而上行带宽即从用户主机到服务器的带宽利用率非常低,造成了带宽资源的浪费。在BT世界中,所有用户同时扮演客户端和服务器双重角色,当下载的时候,同时使用上行带宽将已经下载的文件部分传送到其他用户;BT同时应用多进程技术,可以从多个下载源也称为种子的用户主机上同时进行多个下载。因此,下载的用户越多,也即种子越多,从而下载的速度就越快。
BT应用中需要Web服务器和Tracker服务器。Web服务器只负责torrent文件的发布,Tracker服务器用于管理BT客户端的连接,两种服务器并不需要存放下载文件,因此不会在服务器和用户主机间产生下载流量;而用户之间则建立直接端到端的TCP连接,用于传输文件内容。
BT下载过程可以分为三个阶段:一是从Web服务器获取torrent文件阶段,二是从Tracker服务器下载种子列表以及反向连接验证阶段,三是BT客户端之间数据传输阶段。
较早阶段和普通的HTTP访问Web页面完全一样,没有明显的特征,但是有经验的网络管理员可以判断出哪些热门Web站点会发布torrent文件,从而在某些场合可以通过禁止这些Web站点的访问来禁止BT。
第二阶段一般也采用HTTP的形式进行,Tracker服务器使用的端口通常是TCP的81、82、6969、8000、8001、8080,Tracker通过HTTP的GET命令参数来接收信息,而响应给客户端的是Bencoded编码的消息,在HTTP请求的报文中携带了BT的特征数值User-Agent:BitTorrent,通过这些可以识别出BT客户端和Tracker服务器通信的数据流。BT下载过程的前两个阶段是下载的准备阶段,此过程中的数据流量较小,但信息很关键,禁止这些数据流的通信则意味着BT下载无法进行,因此通过这些数据包的特征识别出BT业务流在很多场合无法使用。
第三阶段是BT客户端之间的数据传输阶段,也是真正的下载阶段。在下载阶段BT客户端之间会端到端的建立连接,并且一直维持到一块数据的完成再拆除连接。早期的BT应用程序默认的使用TCP的传输端口6881~6889,这时可以简单的根据端口号来识别一个BT流。但较新的BT应用程序为了防止被探测而允许用户随意修改TCP的端口号,因而基于传输层端口号的识别方法不再有效。
BT流识别方法
但是,由于机制的优越性,P2P这种模式在现阶段难免会对传统的应用造成冲击,影响正常业务流量。
因此,一种合理的出发点是利用QoS机制,在保障正常业务的运行的情况下,允许用户使用P2P应用。
这种方式的难点较多,首先在于如何界定正常业务流量,如何规划带宽。
现阶段,语音、视频流量、企业用户的电子商务交易流量,以及宽带接入用户的Web流量、E-mail流量和即时通信流量都可以被列入正常业务,被划分不同的优先级。此后,运营商可以根据用户的使用情况和应用的发展情况,修改和优化QoS配置。
对于这种方式,从流量分析的角度来看,现有的MRTG和其他基于SNMP的流量检测手段已经很难满足要求。为此,聚生科技开发了实时带宽控制技术,这种技术直接分析数据包传输时所采用的通讯协议,并且直接拦截其协议特征码。由于各种P2P传输工具的协议特征码各不相同,从而可以具体分析出这种P2P工具是正常的业务传输所采用的(语音、电子商务交易流量),还是非正常业务需要所采用的(如BT下载电影、音乐),从而能够提供按照业务类型区分的实时流量报告,并加以控制。
以下是聚生科技的聚生网管软件对各种P2P下载的拦截图示。由于各个不同的P2P工具都有自己特定的协议特征码,而且这种协议特征码一般不会像端口那样会轻易变动,所以,只要识别了每个软件的协议特征码,就可以针对性的对各种P2P工具或者数据传输进行特定的控制。如下图所示:
图1 拦截各种娱乐类P2P工具
图2 拦截效果图
此外,由于聚生科技的聚生网管软件采用了虚拟网关技术,从而可以真正实现在局域网的任意一台电脑安装就可以控制整个局域网,不需要进行端口镜像、启用代理服务器或者通过hub进行旁路侦听,从而使得部署非常方便。这种虚拟网关技术由于直接对网络传输的数据包进行全面的拦截、过滤和分析,从而可以通过数据包传输大小的精确计算来控制局域网主机的上、下行流速(即带宽),从而可以严格限制各个主机的网络带宽,防止由于单个主机占用过大的带宽而影响局域网其他主机的正常的网络访问;不仅如此,聚生网管由于采用了控制P2P技术的优势来控制各种聊天工具,从而可以实现对任意聊天工具(如国内其他软件一般无法控制的QQ)进行完全的拦截,保证网络资源的合理、有效利用。
图3 限制带宽
图4 控制流量
图5 控制聊天
综上所述,国内网管软件虽然层出不穷,管理功能效能良莠不齐。但是真正能够从部署的便捷性、操作的简单性、以及功能的实用性来讲,聚生网管软件不失为一款性价比很好的选择,相信可以更好的为广大企事业单位服务。