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傳輸工具的協議特征碼各不相同,從而
相關文章