文獻標識碼: A
文章編號: 0258-7998(2013)06-0096-04
網絡技術的發展給人們的工作和生活帶來了極大的便利,用戶數量與日俱增。電子商務、網絡游戲等業務對網絡的傳輸速度和數據處理速度提出了更高的要求。傳統TCP協議采用的加性增加和乘性減少的AIMD 窗口管理機制使其不能適應高帶寬延時廣域網的發展[1]。在高帶寬延時網絡環境下,TCP流將會不斷抖動,造成路由器上的隊列長度產生不穩定性,TCP 的性能會隨著鏈路帶寬或延時的增加而逐漸降低[2]。針對這些問題,很多學者對TCP的擁塞控制機制進行了改進,例如:BIC TCP、CUBIC、FAST TCP等,這些協議通過改變TCP擁塞窗口的調整參數使之在當今網絡中發揮更好的性能。但是,由Hamilton實驗室搭建的測試床對上述TCP協議進行測試的實驗結果表明,除了H-TCP外,其他協議均存在很大的性能問題,特別是RTT不公平性問題[3]。與上述改進TCP協議的研究方法不同,并行TCP是通過增加TCP連接的數目以及TCP流之間的協作來提高網絡傳輸性能的。
1 并行TCP加速系統的設計
針對廣域網目前存在的帶寬、可靠性和延遲三方面存在的問題,并行TCP廣域網加速系統設計采用雙網關模式,實現客戶端局域網中的用戶對服務器端局域網內多種服務應用的加速訪問。加速系統主要由以下幾個模塊組成:系統配置和日志記錄、接入會話控制、應用數據管理和網關間傳輸控制。
(1) 系統配置和日志記錄
系統配置提供給用戶靈活配置系統參數的功能,用戶可以針對不同的服務及其側重的優化指標進行靈活的系統參數配置,實現更好的加速效果,例如并發流數目的設置、并發流的調度策略以及各種策略本身的參數等。
(2) 接入會話控制
接入會話控制實現了會話管理、會話同步控制和會話數據流量控制三個功能。
根據需求,用戶可以訪問對端局域網內的多個服務應用,系統將根據服務應用的IP地址和端口對各種會話進行分組管理。會話管理通過為接入會話設置的ID,實現對會話的快速定位和控制。
由于采用雙網關加速設計模式,數據的傳輸由兩端網關接入會話和網間并行TCP隧道協同完成。服務器端會話在系統啟動時已經創建成功。在系統支持的接入會話負載允許時,服務器端網關將為接入客戶端網關新會話分配一個“空閑”會話連接,與網間隧道共同組成一條數據鏈路,完成用戶與服務器之間的數據傳輸。
(3) 應用數據管理
應用數據管理主要負責數據的轉化轉發任務,包括對會話數據分塊封裝、分配轉發控制和對網間數據進行重組解析、分發控制。
應用數據管理通過對會話類型的判斷,分別完成對接入會話數據和網間隧道會話數據的不同處理操作。對于接入會話,系統根據接入會話的組標識和會話號對其數據進行分塊封裝,并按照數據分配策略分配給相應的網間隧道會話。對于網間隧道會話,系統將對其數據進行解析,根據解析得到的控制信息將其有效數據分發給相應的接入會話。
在低速網絡中,傳統TCP協議表現出良好公平性使得平均分配策略效率很高且簡單易行,但是,隨著帶寬延時乘積增大,AIMD的窗口調整策略使傳統TCP在高帶寬延網絡中公平分享帶寬的調整時間過長,因此傳統TCP協議的公平性越來越差。最小緩存數據量優先分配策略解決了這問題,根據緩存中排隊的數據量的多少,判斷TCP連接的發送能力,進而為其分配相當的數據。
(4) 網關間傳輸控制
網關間傳輸控制實現了網關間并行TCP隧道的管理,即隧道TCP會話的接入控制和隧道數據的傳輸。與會話管理中的會話接入控制相似,隧道TCP會話的接入控制是根據配置文件來配置的服務器端網關的IP地址和隧道偵聽端口對隧道TCP會話進行分組管理,形成并行TCP隧道。系統通過隧道標識和隧道TCP會話標識進行定位,從而完成接入會話數據向隧道TCP會話的數據分配。隧道數據的傳輸交付socket完成。
2 并行TCP加速系統的實現
根據設計,系統實現了加速網關的兩種啟動模式:服務器端網關模式和客戶端網關模式,具體的網關數據通信流程如圖1所示。
2.1 數據轉化轉發控制
為了實現會話數據和網間數據的轉化轉發,應用數據管理定義了自己的網關間傳輸數據包封裝格式。數據包用于攜帶會話數據;確認包和同步包用于攜帶控制信息,分別應用于會話流量控制和會話同步控制。
數據轉發控制對會話數據的重組是在會話的發送緩存中完成的。會話的發送緩存是BlockContainer對象,是用STL容器中的映射表map實現的,BlockContainer對象以數據包序列號和指向數據包中有效數據的指針構成映射。數據轉發控制完成對數據包的解析后,就可以在會話發送緩存BlockContainer對象中添加對應表項,這樣可以避免大量數據的轉儲,如圖2所示。會話發送數據時,則可順序讀取緩存BlockContainer中的表項,如果返回指針非空,則在對應內存地址取數據塊;如果是空指針,則說明有數據包延遲,發送線程將會阻塞,等待該數據包到達激活該發送線程。
2.2 會話管理
加速網關系統的實現有兩種會話類型,系統外接入會話和網間隧道中的TCP會話?;趕ocket編程中的主動請求和偵聽接收兩種建立連接的方式,系統分別對會話的客戶端和服務器端實現了不同的管理方式。
客戶端管理分三個層次,如圖3所示,客戶端分組的特征字符串是所連接服務器的IP地址和端口,多個Client對象組成一個Client group,多個Client group隸屬于Client Manager對象進行統一管理。
Client Manager對象實現了針對服務應用的Client Group管理,Client Group直接對屬于自己分組的Client對象進行管理,以會話號LINK_ID為關鍵字建立映射map,map定義為<LINK_ID,TCPClient>,實現TCP Client的快速定位。Client Group對象完成組內客戶端的查找、添加和刪除。 TCP Client對象實現了socket通信的基本功能,如發起連接、接收數據和發送數據,數據的接收和發送采用獨立的線程操作,提高通信效率。
服務器端管理的層次與客戶端管理是類似的,兩者區別是服務端管理TcpServer Manager的管理對象是TcpServer,是以其監聽的套接字和端口號為主鍵創建Map對象。TcpServer對象實現了端口監聽和接收新連接的操作,將接收新連接TcpClient對象添加到其成員類TCPGroup對象進行管理。
2.3 會話同步控制
系統實現中,每一個會話分組都維護了一個布爾型數組。數組位序就是待分配的會話號資源(LINK_ID)。數組布爾型元素的值在兩端網關上有著不同的意義,在客戶端網關上,它標識其位序對應會話的“建立”或“斷開”;在服務器端網關上,它標識的是其位序對應會話的“忙”或“空閑”狀態。系統通過會話號實現了會話狀態位和會話的綁定,進而通過對兩端網關設置相同的會話號資源實現兩端系統中的會話同步。
2.4 會話流量控制
TCP滑動窗口機制是通過控制發送窗口開始和結束位置包序列號來實現的。與其不同,本系統采用了類似TCP滑動窗口的流量控制機制,通過返回確認信息進行數據量統計來實現流量控制。
根據用戶配置,系統分別為每個會話分組設定了一個發送窗口值SND_W和接收窗口值RCV_W,且保證SND_W不小于RCV_W。每個接入會話聲明了兩個變量snd_count和rcv_count,分別統計會話已轉發到網關但未被對端確認的數據量和已從網關接收的數據量。整個流量控制過程由兩端會話的接收線程和發送線程協同完成。
3 系統測試分析
系統測試是在實驗室里搭建的測試床上進行的,如圖4所示,網關主機配置Linux 2.6內核,用WANem模擬廣域網,用iperf來生成TCP背景流。在100 MB的瓶頸帶寬環境下,對系統進行大文件傳輸測試和Web網頁訪問測試。
在部署加速網關前,在無背景流的網絡環境中,隨著網絡時延的增加,瓶頸鏈路的帶寬有效利用率逐漸下降,由10 ms時的25 Mb/s降低到100 ms時的5 Mb/s??梢?,網絡延時對瓶頸帶寬利用率的影響是很嚴重的,增加了背景流后的瓶頸鏈路的帶寬有效利用率更差。在部署加速網關系統之后,無論有無背景流,瓶頸鏈路帶寬的有效利用率明顯得到提高。特別是在有背景流的網絡環境中,瓶頸鏈路帶寬的有效利用率提高了14~23倍之多。這說明了并行TCP傳輸在高帶寬長時延的廣域網中具有更好的帶寬利用率。
3.2 Web網頁訪問測試
測試方案:廣域網瓶頸帶寬設置為100 MB,網絡延時設置為100 ms,分別在有無背景流網絡環境中,在啟用加速網關的前后,對Web訪問的平均響應時間進行測試。下載網頁的大小為3 126 B。為了避免系統所帶來的隨機性,測試結果是多次測試結果的平均值,如圖6所示。在實驗中,Web訪問測試采用了LoadRunner測試工具,錄制了特定的測試腳本,實現了測試方案的可重復性,并對測試做出了準確的結果分析。
從圖6中可以看出,在部署加速網關之前,在添加背景流前后,網頁下載時間增長200 ms左右,其他的細分分量都有相應增加。這說明了添加背景流對Web網頁訪問的效率是有影響的。
在無背景流的情況下,部署加速網關明顯減少了網頁下載時間,在其三個細分分量中,連接時間減少到幾乎為零,這是因為部署加速網關前,連接時間是指客戶端經過客戶端網關、路由器和服務器端網關與Web服務器建立連接花費的時間,經歷了模擬廣域網的網絡時延;部署加速網關后,連接時間是指客戶端與客戶端網關建立連接的時間,這個連接的建立過程是在局域網內完成的,網關間的連接和服務器端網關與Web服務器的連接是在網關系統啟動時建立好的,因此,從用戶角度看,大大節省了連接建立的時間。
綜上所述,針對要解決的網絡應用環境所存在的問題,對于文件傳輸應用,并行TCP加速系統提高了對廣域網瓶頸帶寬的利用率,提高了數據的傳輸性能;對于Web網頁訪問應用,并行TCP加速系統減少了網頁下載速度。可見,該加速方案對這兩大互聯網應用都具有很好的加速效果。
針對目前網絡上普遍存在的廣域網瓶頸問題,并行TCP加速網關系統提供了一個很好的解決方案。該系統已經實現了會話接入的重定向、會話數據的截獲、分塊封裝、解封重組和數據的網關間的并行傳輸等系統功能。為了能應用到實際網絡中,還需要從網關關聯控制方面進行完善,該系統是一個分布式系統,客戶端網關與服務器端網關之間需要實時的狀態信息交互,以應對可能出現的網絡異常情況(如網絡的異常斷開等),提高系統的健壯性。
參考文獻
[1] AKYILDIZ I F, WANG X, WANG W. Wireless mesh networks: a survey[J]. Computer Networks, 2005,47(4):445-487.
[2] 王建新,郭振華,盛羽.基于并行TCP技術的廣域網通信加速方法[P].CN201010528603.0.中南大學,2011-02-16.
[3] IEEE Standard 802.16-2004.IEEE standard for local and metropolitan area networks-part 16: air interface for fixed broadband wireless access systems[z]. Oct. 2004.
[4] KATEVENIS M, SIDIRPPOUS S, COURCOUBETIS. Courcoubetis[J]. Weighted Round Robin Cell Multiplexing in a General Purpose ATM Switch Chip. IEEE J. Select. Areas Commun.,1991,9(10):1265-1279.