魯旭濤,趙曉東,翟蓓蓓
(中北大學(xué)信息與通信工程學(xué)院,山西太原 030051)
在Internet上傳輸?shù)牧髁看蟛糠质荰CP(Transmission Control Protocol傳輸控制協(xié)議,TCP是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議)流量和UDP(User Datagram Protocol的簡稱,中文名是用戶數(shù)據(jù)包協(xié)議,是OSI參考模型中一種無連接的傳輸層協(xié)議)流量。通常所謂的關(guān)鍵任務(wù)應(yīng)用一般都采用TCP作為傳輸協(xié)議,因此保證TCP的傳輸性是保證關(guān)鍵任務(wù)服務(wù)質(zhì)量的重點(diǎn),提高TCP的傳輸性才能保證關(guān)鍵業(yè)務(wù)流量的傳輸?shù)姆€(wěn)定性。UDP是Internet中被廣泛采用的傳輸流媒體的協(xié)議。UDP協(xié)議最核心的問題是它沒有傳輸層的流量控制機(jī)制,而缺乏流量控制機(jī)制的UDP流量會(huì)導(dǎo)致網(wǎng)絡(luò)資源的不公平利用,同時(shí)影響TCP流量的性能。因此,必須對(duì)TCP和UDP流量進(jìn)行管理控制,以實(shí)現(xiàn)有效的帶寬利用。
目前,中國網(wǎng)通和中國電信正在積極地開展VoIP電話試點(diǎn)運(yùn)營業(yè)務(wù),同時(shí)也在采取各種措施規(guī)范P2P應(yīng)用。針對(duì)這一現(xiàn)狀,中太數(shù)據(jù)作為國內(nèi)資深的電信解決方案和產(chǎn)品提供商,率先推出了為國內(nèi)運(yùn)營商量身打造的智能流量控制系統(tǒng)—Bgate6030。結(jié)合中太數(shù)據(jù)完善的智能流量解決方案,該產(chǎn)品將有效地幫助運(yùn)營商從VoIP電話和P2P下載的困境中解脫出來,并嘗試創(chuàng)新的贏利點(diǎn),同時(shí)為電信用戶提供更加優(yōu)質(zhì)的服務(wù)。
流量控制器主要部署在企業(yè)內(nèi)網(wǎng)的邊緣,如圖1所示,網(wǎng)絡(luò)流量控制器部署在企業(yè)內(nèi)網(wǎng)和連接外網(wǎng)的路由器之間,對(duì)進(jìn)/出企業(yè)內(nèi)網(wǎng)的流量進(jìn)行控制。
圖1 流量控制器在網(wǎng)絡(luò)中部署的位置
網(wǎng)絡(luò)流量控制模型一般包括流量分類器、流量整形器、流量監(jiān)測(cè)器和隊(duì)列管理器等幾個(gè)部分。分類器的功能是按照不同的優(yōu)先級(jí)或者控制策略,把數(shù)據(jù)包注入到不同的隊(duì)列;整形器的功能是使數(shù)據(jù)包比較平穩(wěn)地注入網(wǎng)絡(luò),減少擁塞的發(fā)生,提高傳輸效率;監(jiān)測(cè)器是對(duì)網(wǎng)絡(luò)控制模塊實(shí)施效果進(jìn)行監(jiān)測(cè)分析,打印報(bào)表等;隊(duì)列管理器的功能主要是隊(duì)列緩存管理以及隊(duì)列調(diào)度管理,這些與業(yè)務(wù)的帶寬分配有關(guān)。
NS2(Network Simulator,version2)是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器,由UC Berkeley開發(fā)而成。它本身有一個(gè)虛擬時(shí)鐘,所有的仿真都是由離散事件驅(qū)動(dòng)的。目前,NS2可以用于仿真各種不同的IP網(wǎng),已經(jīng)實(shí)現(xiàn)了的一些仿真有:網(wǎng)絡(luò)傳輸協(xié)議,比如TCP和UDP;業(yè)務(wù)源流量產(chǎn)生器,比如FTO、Telnet、Web、CBR和 VBR;路由隊(duì)列管理機(jī)制,比如 Drog-Trail、RED和CBQ;路由算法,比如Dijkstra等。NS2也為進(jìn)行局域網(wǎng)的仿真而實(shí)現(xiàn)了多播以及一些MAC子層協(xié)議。NS2使用C++和Otcl作為開發(fā)語言。
除了網(wǎng)絡(luò)組件對(duì)象以外,NS的另一主要組件就是事件調(diào)度器。NS中的一個(gè)事件就是一個(gè)具有唯一ID的分組,這個(gè)分組內(nèi)包含調(diào)度時(shí)間以及指向該事件的對(duì)象的指針。事件調(diào)度器計(jì)算(Keep Track of)仿真時(shí)間,并且激活事件隊(duì)列中的當(dāng)前事件(主要是通過激活適當(dāng)?shù)木W(wǎng)絡(luò)組件),執(zhí)行一些相關(guān)的事件(通常都是那些發(fā)出事件的對(duì)象),網(wǎng)絡(luò)組件通過傳遞分組(Packet)來互相通信,但是這并不耗費(fèi)仿真時(shí)間。所有需要花費(fèi)仿真事件來處理分組的網(wǎng)絡(luò)組件(比如一個(gè)延時(shí)部件)都必須使用時(shí)間調(diào)度器。它先為這個(gè)分組發(fā)出一個(gè)事件,然后等待這個(gè)事件被調(diào)度回來之后,才能做下一步的處理工作。
當(dāng)某個(gè)仿真完成后,NS將會(huì)產(chǎn)生一個(gè)或多個(gè)基于文本的跟蹤文件。只要在Tcl腳本中加入一些簡單的語句,這些文件中就會(huì)包含詳細(xì)的跟蹤信息。這些數(shù)據(jù)可以用來下一步的分析處理,也可以使用NAM將整個(gè)仿真過程展現(xiàn)出來,它具有類似CD播放器的圖像界面(播放、快進(jìn)、倒帶、暫停等)和一個(gè)播放速率控制器。此外,它還能夠圖形化地展示諸如鏈路吞吐率以及分組丟失數(shù)之類的信息,盡管這些信息并不能用于準(zhǔn)確的仿真分析。
網(wǎng)絡(luò)流量控制涉及流量分類(Classification)、流量整形(Shaping)、流量監(jiān)測(cè)和統(tǒng)計(jì),以及隊(duì)列調(diào)度管理等方面,是一個(gè)比較大的范疇。本論文研究的重點(diǎn)是隊(duì)列調(diào)度管理以及流量整形,以下將對(duì)流量控制模塊中的隊(duì)列調(diào)度管理子模塊和流量整形子模塊的實(shí)現(xiàn)作詳細(xì)地闡述。所有的模塊都是基于NS2平臺(tái)實(shí)現(xiàn)的。
圖2 流量控制模塊的實(shí)現(xiàn)框架
本文采用的實(shí)驗(yàn)平臺(tái)是windows 2000+cygwin+ns 2.27。ns從2.26版本開始,就只能運(yùn)行在linux環(huán)境下或者模擬的linux環(huán)境下。簡單地說,cygwin在windows上提供了一個(gè)類似linux(Linux-like)的環(huán)境,可以讓使用者在windows上執(zhí)行l(wèi)inux的程序。嚴(yán)格地說,cygwin是模擬了GNU的環(huán)境,而不是linux的環(huán)境,借著cygwin的函數(shù)庫(library),在Win32 API環(huán)境上提供了類似linux般的API環(huán)境,利用cygwin,可以將linux上的程序移植到Windows,而不必做重大的修改,只需將原始碼拿來作configure與make就好了。同時(shí)可以使用常用的linux工具程序,如grep、sed、awk等。
表1ADWRR與DWRR端對(duì)端時(shí)延的比較
表2 ADWRR與DWRR傳輸時(shí)延抖動(dòng)的比較
表1表示的是在邊緣網(wǎng)關(guān)中分別應(yīng)用ADWRR調(diào)度算法和DWRR算法,多媒體流端對(duì)端平均時(shí)延的比較。表2表示的是在邊緣網(wǎng)關(guān)中分別應(yīng)用ADWRR調(diào)度算法和DWRR算法,多媒體流數(shù)據(jù)包平均傳輸時(shí)延抖動(dòng)jitter的比較。
由以上的實(shí)驗(yàn)以及實(shí)驗(yàn)結(jié)果圖表可以看出,采用 ADWRR算法可以使多媒體流的端對(duì)端傳輸時(shí)延以及傳輸時(shí)延抖動(dòng)jitter都有所改善。
隨著以IP為基礎(chǔ)的互聯(lián)網(wǎng)的飛速發(fā)展和網(wǎng)絡(luò)業(yè)務(wù)的極大豐富,互聯(lián)網(wǎng)己經(jīng)逐漸發(fā)展成為承載多種業(yè)務(wù)、服務(wù)多類用戶群體的全球性公共信息傳輸平臺(tái)。但是由于IP協(xié)議固有的無連接特性和傳統(tǒng)IP網(wǎng)絡(luò)盡力而為(Best-effort)的服務(wù)原則,傳統(tǒng)的互聯(lián)網(wǎng)無法向用戶提供有效的服務(wù)質(zhì)量(QoS)保障,也不能實(shí)現(xiàn)網(wǎng)絡(luò)資源的有效監(jiān)控和管理。
流量控制技術(shù)通過對(duì)企業(yè)內(nèi)網(wǎng)和Internet之間的進(jìn)/出流量進(jìn)行分類、調(diào)度、整形等手段來保證關(guān)鍵業(yè)務(wù)服務(wù)質(zhì)量,如改善實(shí)時(shí)業(yè)務(wù)的傳輸時(shí)延、時(shí)延抖動(dòng)等,避免網(wǎng)絡(luò)擁塞的出現(xiàn)。本文主要完成了以下工作:
(1)研究了支持區(qū)分服務(wù)的流量控制模型,重點(diǎn)討論了流量控制模型的隊(duì)列調(diào)度管理模塊和流量整形模塊常用的算法和策略,為后續(xù)改進(jìn)算法的提出以及流量控制器模塊的實(shí)現(xiàn)作基礎(chǔ)。
(2)在經(jīng)典的隊(duì)列調(diào)度算法DWRR算法基礎(chǔ)上作出改進(jìn),提出了ADWRR算法,該算法為每個(gè)隊(duì)列引入兩個(gè)參數(shù),分別是權(quán)值Wi、延遲指數(shù)(Delay Index)DIi。該算法解決了實(shí)時(shí)業(yè)務(wù)端對(duì)端時(shí)延以及時(shí)延抖動(dòng)的問題。
(3)在網(wǎng)絡(luò)仿真工具NS2所提供的網(wǎng)絡(luò)組件的基礎(chǔ)上,應(yīng)用ADWRR算法,設(shè)計(jì)并實(shí)現(xiàn)了流量控制器的隊(duì)列調(diào)度管理模塊和流量整形模塊,進(jìn)行仿真實(shí)驗(yàn)并分析仿真結(jié)果。
[1]郭長金.基于網(wǎng)絡(luò)流量控制策略的研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007(30):170-171,174.
[2]Netfilter core team.Netfilter[EB/OL],http://www.Netfilter.org,2008-12-29.
[3].現(xiàn)代電信科技,2006(3).
[4]高益,黃俊偉.網(wǎng)絡(luò)流量控制的分析與設(shè)計(jì)[J].北京電子科技學(xué)院學(xué)報(bào),2008(2):68-69.
[5]Lan K C,Heidemann J.A Measurement Study of Correlations of Internet Flow Characteristics[J].Computer Networks,2006,5(1):46-62.
[6]ISC.Internet Domain Survey[EB/OL].2005-8/2006-4.
[7]Huan-yun wei,Shih-Chiang Tsao,Ying-Dar Lin.Assessing and Improving TCP Rate Shaping over Edge Gateways[J].IEEE TRANSACTIONS ON COMPUTERS,2004,53(3).
[8]Bert Hubert.Linux的高級(jí)路由和流量控制HOWTO中文版[M].北京:人民郵電出版社,2005.