《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 廣域網(wǎng)并行TCP加速系統(tǒng)的研究與實(shí)現(xiàn)
廣域網(wǎng)并行TCP加速系統(tǒng)的研究與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2013年第6期
高 雅1, 郭振華2
1. 洛陽(yáng)師范學(xué)院 物理與電子信息學(xué)院,河南 洛陽(yáng)471022; 2. 中南大學(xué) 信息科學(xué)與工程學(xué)院, 湖南 長(zhǎng)沙410083
摘要: 隨著互聯(lián)網(wǎng)業(yè)務(wù)的高速發(fā)展,廣域網(wǎng)在網(wǎng)絡(luò)響應(yīng)速度方面已經(jīng)越來(lái)越無(wú)法滿足用戶的需求。鑒于此,提出了一種基于并行TCP的廣域網(wǎng)加速方案,采用雙網(wǎng)關(guān)加速模式,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)并行TCP加速網(wǎng)關(guān)系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了會(huì)話接入控制管理以及會(huì)話數(shù)據(jù)截獲、處理、加速傳輸和流量控制。最后,通過(guò)對(duì)系統(tǒng)進(jìn)行了Web網(wǎng)頁(yè)訪問(wèn)測(cè)試和文件傳輸測(cè)試表明,該系統(tǒng)大大提高了廣域網(wǎng)的響應(yīng)速度,表現(xiàn)出很好的廣域網(wǎng)加速效果。
中圖分類號(hào): TP393
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)06-0096-04
Research and implementation of parallel TCP in acceleration system for WAN
Gao Ya1, Guo Zhenhua2
1. Luoyang Normal College, Luoyang 471022,China; 2. College of Information Science & Engineering, Central South University, Changsha 410083, China
Abstract: With the development of applications, current Internet has a challenge. In the paper, parallel TCP is proposed to address this problem in current network hierarchy. An acceleration gateway system is designed and implemented for WAN application in double-end acceleration mode. This system has the functions of access control of session, interception, processing and transmission of application data and flow control of session. Finally, the results of the tests indicate that this system reduces internet response time and improves transmission performance.
Key words : WAN acceleration; parallel TCP; gateway design

    網(wǎng)絡(luò)技術(shù)的發(fā)展給人們的工作和生活帶來(lái)了極大的便利,用戶數(shù)量與日俱增。電子商務(wù)、網(wǎng)絡(luò)游戲等業(yè)務(wù)對(duì)網(wǎng)絡(luò)的傳輸速度和數(shù)據(jù)處理速度提出了更高的要求。傳統(tǒng)TCP協(xié)議采用的加性增加和乘性減少的AIMD 窗口管理機(jī)制使其不能適應(yīng)高帶寬延時(shí)廣域網(wǎng)的發(fā)展[1]。在高帶寬延時(shí)網(wǎng)絡(luò)環(huán)境下,TCP流將會(huì)不斷抖動(dòng),造成路由器上的隊(duì)列長(zhǎng)度產(chǎn)生不穩(wěn)定性,TCP 的性能會(huì)隨著鏈路帶寬或延時(shí)的增加而逐漸降低[2]。針對(duì)這些問(wèn)題,很多學(xué)者對(duì)TCP的擁塞控制機(jī)制進(jìn)行了改進(jìn),例如:BIC TCP、CUBIC、FAST TCP等,這些協(xié)議通過(guò)改變TCP擁塞窗口的調(diào)整參數(shù)使之在當(dāng)今網(wǎng)絡(luò)中發(fā)揮更好的性能。但是,由Hamilton實(shí)驗(yàn)室搭建的測(cè)試床對(duì)上述TCP協(xié)議進(jìn)行測(cè)試的實(shí)驗(yàn)結(jié)果表明,除了H-TCP外,其他協(xié)議均存在很大的性能問(wèn)題,特別是RTT不公平性問(wèn)題[3]。與上述改進(jìn)TCP協(xié)議的研究方法不同,并行TCP是通過(guò)增加TCP連接的數(shù)目以及TCP流之間的協(xié)作來(lái)提高網(wǎng)絡(luò)傳輸性能的。

1 并行TCP加速系統(tǒng)的設(shè)計(jì)
    針對(duì)廣域網(wǎng)目前存在的帶寬、可靠性和延遲三方面存在的問(wèn)題,并行TCP廣域網(wǎng)加速系統(tǒng)設(shè)計(jì)采用雙網(wǎng)關(guān)模式,實(shí)現(xiàn)客戶端局域網(wǎng)中的用戶對(duì)服務(wù)器端局域網(wǎng)內(nèi)多種服務(wù)應(yīng)用的加速訪問(wèn)。加速系統(tǒng)主要由以下幾個(gè)模塊組成:系統(tǒng)配置和日志記錄、接入會(huì)話控制、應(yīng)用數(shù)據(jù)管理和網(wǎng)關(guān)間傳輸控制。
    (1) 系統(tǒng)配置和日志記錄
    系統(tǒng)配置提供給用戶靈活配置系統(tǒng)參數(shù)的功能,用戶可以針對(duì)不同的服務(wù)及其側(cè)重的優(yōu)化指標(biāo)進(jìn)行靈活的系統(tǒng)參數(shù)配置,實(shí)現(xiàn)更好的加速效果,例如并發(fā)流數(shù)目的設(shè)置、并發(fā)流的調(diào)度策略以及各種策略本身的參數(shù)等。
    (2) 接入會(huì)話控制
    接入會(huì)話控制實(shí)現(xiàn)了會(huì)話管理、會(huì)話同步控制和會(huì)話數(shù)據(jù)流量控制三個(gè)功能。
    根據(jù)需求,用戶可以訪問(wèn)對(duì)端局域網(wǎng)內(nèi)的多個(gè)服務(wù)應(yīng)用,系統(tǒng)將根據(jù)服務(wù)應(yīng)用的IP地址和端口對(duì)各種會(huì)話進(jìn)行分組管理。會(huì)話管理通過(guò)為接入會(huì)話設(shè)置的ID,實(shí)現(xiàn)對(duì)會(huì)話的快速定位和控制。
   由于采用雙網(wǎng)關(guān)加速設(shè)計(jì)模式,數(shù)據(jù)的傳輸由兩端網(wǎng)關(guān)接入會(huì)話和網(wǎng)間并行TCP隧道協(xié)同完成。服務(wù)器端會(huì)話在系統(tǒng)啟動(dòng)時(shí)已經(jīng)創(chuàng)建成功。在系統(tǒng)支持的接入會(huì)話負(fù)載允許時(shí),服務(wù)器端網(wǎng)關(guān)將為接入客戶端網(wǎng)關(guān)新會(huì)話分配一個(gè)“空閑”會(huì)話連接,與網(wǎng)間隧道共同組成一條數(shù)據(jù)鏈路,完成用戶與服務(wù)器之間的數(shù)據(jù)傳輸。
    (3) 應(yīng)用數(shù)據(jù)管理
    應(yīng)用數(shù)據(jù)管理主要負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)化轉(zhuǎn)發(fā)任務(wù),包括對(duì)會(huì)話數(shù)據(jù)分塊封裝、分配轉(zhuǎn)發(fā)控制和對(duì)網(wǎng)間數(shù)據(jù)進(jìn)行重組解析、分發(fā)控制。
        應(yīng)用數(shù)據(jù)管理通過(guò)對(duì)會(huì)話類型的判斷,分別完成對(duì)接入會(huì)話數(shù)據(jù)和網(wǎng)間隧道會(huì)話數(shù)據(jù)的不同處理操作。對(duì)于接入會(huì)話,系統(tǒng)根據(jù)接入會(huì)話的組標(biāo)識(shí)和會(huì)話號(hào)對(duì)其數(shù)據(jù)進(jìn)行分塊封裝,并按照數(shù)據(jù)分配策略分配給相應(yīng)的網(wǎng)間隧道會(huì)話。對(duì)于網(wǎng)間隧道會(huì)話,系統(tǒng)將對(duì)其數(shù)據(jù)進(jìn)行解析,根據(jù)解析得到的控制信息將其有效數(shù)據(jù)分發(fā)給相應(yīng)的接入會(huì)話。
    在低速網(wǎng)絡(luò)中,傳統(tǒng)TCP協(xié)議表現(xiàn)出良好公平性使得平均分配策略效率很高且簡(jiǎn)單易行,但是,隨著帶寬延時(shí)乘積增大,AIMD的窗口調(diào)整策略使傳統(tǒng)TCP在高帶寬延網(wǎng)絡(luò)中公平分享帶寬的調(diào)整時(shí)間過(guò)長(zhǎng),因此傳統(tǒng)TCP協(xié)議的公平性越來(lái)越差。最小緩存數(shù)據(jù)量?jī)?yōu)先分配策略解決了這問(wèn)題,根據(jù)緩存中排隊(duì)的數(shù)據(jù)量的多少,判斷TCP連接的發(fā)送能力,進(jìn)而為其分配相當(dāng)?shù)臄?shù)據(jù)。
    (4) 網(wǎng)關(guān)間傳輸控制
    網(wǎng)關(guān)間傳輸控制實(shí)現(xiàn)了網(wǎng)關(guān)間并行TCP隧道的管理,即隧道TCP會(huì)話的接入控制和隧道數(shù)據(jù)的傳輸。與會(huì)話管理中的會(huì)話接入控制相似,隧道TCP會(huì)話的接入控制是根據(jù)配置文件來(lái)配置的服務(wù)器端網(wǎng)關(guān)的IP地址和隧道偵聽(tīng)端口對(duì)隧道TCP會(huì)話進(jìn)行分組管理,形成并行TCP隧道。系統(tǒng)通過(guò)隧道標(biāo)識(shí)和隧道TCP會(huì)話標(biāo)識(shí)進(jìn)行定位,從而完成接入會(huì)話數(shù)據(jù)向隧道TCP會(huì)話的數(shù)據(jù)分配。隧道數(shù)據(jù)的傳輸交付socket完成。
2 并行TCP加速系統(tǒng)的實(shí)現(xiàn)
    根據(jù)設(shè)計(jì),系統(tǒng)實(shí)現(xiàn)了加速網(wǎng)關(guān)的兩種啟動(dòng)模式:服務(wù)器端網(wǎng)關(guān)模式和客戶端網(wǎng)關(guān)模式,具體的網(wǎng)關(guān)數(shù)據(jù)通信流程如圖1所示。

2.1 數(shù)據(jù)轉(zhuǎn)化轉(zhuǎn)發(fā)控制
    為了實(shí)現(xiàn)會(huì)話數(shù)據(jù)和網(wǎng)間數(shù)據(jù)的轉(zhuǎn)化轉(zhuǎn)發(fā),應(yīng)用數(shù)據(jù)管理定義了自己的網(wǎng)關(guān)間傳輸數(shù)據(jù)包封裝格式。數(shù)據(jù)包用于攜帶會(huì)話數(shù)據(jù);確認(rèn)包和同步包用于攜帶控制信息,分別應(yīng)用于會(huì)話流量控制和會(huì)話同步控制。
    數(shù)據(jù)轉(zhuǎn)發(fā)控制對(duì)會(huì)話數(shù)據(jù)的重組是在會(huì)話的發(fā)送緩存中完成的。會(huì)話的發(fā)送緩存是BlockContainer對(duì)象,是用STL容器中的映射表map實(shí)現(xiàn)的,BlockContainer對(duì)象以數(shù)據(jù)包序列號(hào)和指向數(shù)據(jù)包中有效數(shù)據(jù)的指針構(gòu)成映射。數(shù)據(jù)轉(zhuǎn)發(fā)控制完成對(duì)數(shù)據(jù)包的解析后,就可以在會(huì)話發(fā)送緩存BlockContainer對(duì)象中添加對(duì)應(yīng)表項(xiàng),這樣可以避免大量數(shù)據(jù)的轉(zhuǎn)儲(chǔ),如圖2所示。會(huì)話發(fā)送數(shù)據(jù)時(shí),則可順序讀取緩存BlockContainer中的表項(xiàng),如果返回指針?lè)强眨瑒t在對(duì)應(yīng)內(nèi)存地址取數(shù)據(jù)塊;如果是空指針,則說(shuō)明有數(shù)據(jù)包延遲,發(fā)送線程將會(huì)阻塞,等待該數(shù)據(jù)包到達(dá)激活該發(fā)送線程。

2.2 會(huì)話管理
    加速網(wǎng)關(guān)系統(tǒng)的實(shí)現(xiàn)有兩種會(huì)話類型,系統(tǒng)外接入會(huì)話和網(wǎng)間隧道中的TCP會(huì)話?;趕ocket編程中的主動(dòng)請(qǐng)求和偵聽(tīng)接收兩種建立連接的方式,系統(tǒng)分別對(duì)會(huì)話的客戶端和服務(wù)器端實(shí)現(xiàn)了不同的管理方式。
    客戶端管理分三個(gè)層次,如圖3所示,客戶端分組的特征字符串是所連接服務(wù)器的IP地址和端口,多個(gè)Client對(duì)象組成一個(gè)Client group,多個(gè)Client group隸屬于Client Manager對(duì)象進(jìn)行統(tǒng)一管理。

    Client Manager對(duì)象實(shí)現(xiàn)了針對(duì)服務(wù)應(yīng)用的Client Group管理,Client Group直接對(duì)屬于自己分組的Client對(duì)象進(jìn)行管理,以會(huì)話號(hào)LINK_ID為關(guān)鍵字建立映射map,map定義為<LINK_ID,TCPClient>,實(shí)現(xiàn)TCP Client的快速定位。Client Group對(duì)象完成組內(nèi)客戶端的查找、添加和刪除。 TCP Client對(duì)象實(shí)現(xiàn)了socket通信的基本功能,如發(fā)起連接、接收數(shù)據(jù)和發(fā)送數(shù)據(jù),數(shù)據(jù)的接收和發(fā)送采用獨(dú)立的線程操作,提高通信效率。
     服務(wù)器端管理的層次與客戶端管理是類似的,兩者區(qū)別是服務(wù)端管理TcpServer Manager的管理對(duì)象是TcpServer,是以其監(jiān)聽(tīng)的套接字和端口號(hào)為主鍵創(chuàng)建Map對(duì)象。TcpServer對(duì)象實(shí)現(xiàn)了端口監(jiān)聽(tīng)和接收新連接的操作,將接收新連接TcpClient對(duì)象添加到其成員類TCPGroup對(duì)象進(jìn)行管理。
2.3 會(huì)話同步控制
    系統(tǒng)實(shí)現(xiàn)中,每一個(gè)會(huì)話分組都維護(hù)了一個(gè)布爾型數(shù)組。數(shù)組位序就是待分配的會(huì)話號(hào)資源(LINK_ID)。數(shù)組布爾型元素的值在兩端網(wǎng)關(guān)上有著不同的意義,在客戶端網(wǎng)關(guān)上,它標(biāo)識(shí)其位序?qū)?yīng)會(huì)話的&ldquo;建立&rdquo;或&ldquo;斷開(kāi)&rdquo;;在服務(wù)器端網(wǎng)關(guān)上,它標(biāo)識(shí)的是其位序?qū)?yīng)會(huì)話的&ldquo;忙&rdquo;或&ldquo;空閑&rdquo;狀態(tài)。系統(tǒng)通過(guò)會(huì)話號(hào)實(shí)現(xiàn)了會(huì)話狀態(tài)位和會(huì)話的綁定,進(jìn)而通過(guò)對(duì)兩端網(wǎng)關(guān)設(shè)置相同的會(huì)話號(hào)資源實(shí)現(xiàn)兩端系統(tǒng)中的會(huì)話同步。
2.4 會(huì)話流量控制
    TCP滑動(dòng)窗口機(jī)制是通過(guò)控制發(fā)送窗口開(kāi)始和結(jié)束位置包序列號(hào)來(lái)實(shí)現(xiàn)的。與其不同,本系統(tǒng)采用了類似TCP滑動(dòng)窗口的流量控制機(jī)制,通過(guò)返回確認(rèn)信息進(jìn)行數(shù)據(jù)量統(tǒng)計(jì)來(lái)實(shí)現(xiàn)流量控制。
    根據(jù)用戶配置,系統(tǒng)分別為每個(gè)會(huì)話分組設(shè)定了一個(gè)發(fā)送窗口值SND_W和接收窗口值RCV_W,且保證SND_W不小于RCV_W。每個(gè)接入會(huì)話聲明了兩個(gè)變量snd_count和rcv_count,分別統(tǒng)計(jì)會(huì)話已轉(zhuǎn)發(fā)到網(wǎng)關(guān)但未被對(duì)端確認(rèn)的數(shù)據(jù)量和已從網(wǎng)關(guān)接收的數(shù)據(jù)量。整個(gè)流量控制過(guò)程由兩端會(huì)話的接收線程和發(fā)送線程協(xié)同完成。
3 系統(tǒng)測(cè)試分析
    系統(tǒng)測(cè)試是在實(shí)驗(yàn)室里搭建的測(cè)試床上進(jìn)行的,如圖4所示,網(wǎng)關(guān)主機(jī)配置Linux 2.6內(nèi)核,用WANem模擬廣域網(wǎng),用iperf來(lái)生成TCP背景流。在100 MB的瓶頸帶寬環(huán)境下,對(duì)系統(tǒng)進(jìn)行大文件傳輸測(cè)試和Web網(wǎng)頁(yè)訪問(wèn)測(cè)試。

 

 

    在部署加速網(wǎng)關(guān)前,在無(wú)背景流的網(wǎng)絡(luò)環(huán)境中,隨著網(wǎng)絡(luò)時(shí)延的增加,瓶頸鏈路的帶寬有效利用率逐漸下降,由10 ms時(shí)的25 Mb/s降低到100 ms時(shí)的5 Mb/s。可見(jiàn),網(wǎng)絡(luò)延時(shí)對(duì)瓶頸帶寬利用率的影響是很嚴(yán)重的,增加了背景流后的瓶頸鏈路的帶寬有效利用率更差。在部署加速網(wǎng)關(guān)系統(tǒng)之后,無(wú)論有無(wú)背景流,瓶頸鏈路帶寬的有效利用率明顯得到提高。特別是在有背景流的網(wǎng)絡(luò)環(huán)境中,瓶頸鏈路帶寬的有效利用率提高了14~23倍之多。這說(shuō)明了并行TCP傳輸在高帶寬長(zhǎng)時(shí)延的廣域網(wǎng)中具有更好的帶寬利用率。
3.2 Web網(wǎng)頁(yè)訪問(wèn)測(cè)試
      測(cè)試方案:廣域網(wǎng)瓶頸帶寬設(shè)置為100 MB,網(wǎng)絡(luò)延時(shí)設(shè)置為100 ms,分別在有無(wú)背景流網(wǎng)絡(luò)環(huán)境中,在啟用加速網(wǎng)關(guān)的前后,對(duì)Web訪問(wèn)的平均響應(yīng)時(shí)間進(jìn)行測(cè)試。下載網(wǎng)頁(yè)的大小為3 126 B。為了避免系統(tǒng)所帶來(lái)的隨機(jī)性,測(cè)試結(jié)果是多次測(cè)試結(jié)果的平均值,如圖6所示。在實(shí)驗(yàn)中,Web訪問(wèn)測(cè)試采用了LoadRunner測(cè)試工具,錄制了特定的測(cè)試腳本,實(shí)現(xiàn)了測(cè)試方案的可重復(fù)性,并對(duì)測(cè)試做出了準(zhǔn)確的結(jié)果分析。
    從圖6中可以看出,在部署加速網(wǎng)關(guān)之前,在添加背景流前后,網(wǎng)頁(yè)下載時(shí)間增長(zhǎng)200 ms左右,其他的細(xì)分分量都有相應(yīng)增加。這說(shuō)明了添加背景流對(duì)Web網(wǎng)頁(yè)訪問(wèn)的效率是有影響的。

    在無(wú)背景流的情況下,部署加速網(wǎng)關(guān)明顯減少了網(wǎng)頁(yè)下載時(shí)間,在其三個(gè)細(xì)分分量中,連接時(shí)間減少到幾乎為零,這是因?yàn)椴渴鸺铀倬W(wǎng)關(guān)前,連接時(shí)間是指客戶端經(jīng)過(guò)客戶端網(wǎng)關(guān)、路由器和服務(wù)器端網(wǎng)關(guān)與Web服務(wù)器建立連接花費(fèi)的時(shí)間,經(jīng)歷了模擬廣域網(wǎng)的網(wǎng)絡(luò)時(shí)延;部署加速網(wǎng)關(guān)后,連接時(shí)間是指客戶端與客戶端網(wǎng)關(guān)建立連接的時(shí)間,這個(gè)連接的建立過(guò)程是在局域網(wǎng)內(nèi)完成的,網(wǎng)關(guān)間的連接和服務(wù)器端網(wǎng)關(guān)與Web服務(wù)器的連接是在網(wǎng)關(guān)系統(tǒng)啟動(dòng)時(shí)建立好的,因此,從用戶角度看,大大節(jié)省了連接建立的時(shí)間。
     綜上所述,針對(duì)要解決的網(wǎng)絡(luò)應(yīng)用環(huán)境所存在的問(wèn)題,對(duì)于文件傳輸應(yīng)用,并行TCP加速系統(tǒng)提高了對(duì)廣域網(wǎng)瓶頸帶寬的利用率,提高了數(shù)據(jù)的傳輸性能;對(duì)于Web網(wǎng)頁(yè)訪問(wèn)應(yīng)用,并行TCP加速系統(tǒng)減少了網(wǎng)頁(yè)下載速度??梢?jiàn),該加速方案對(duì)這兩大互聯(lián)網(wǎng)應(yīng)用都具有很好的加速效果。
    針對(duì)目前網(wǎng)絡(luò)上普遍存在的廣域網(wǎng)瓶頸問(wèn)題,并行TCP加速網(wǎng)關(guān)系統(tǒng)提供了一個(gè)很好的解決方案。該系統(tǒng)已經(jīng)實(shí)現(xiàn)了會(huì)話接入的重定向、會(huì)話數(shù)據(jù)的截獲、分塊封裝、解封重組和數(shù)據(jù)的網(wǎng)關(guān)間的并行傳輸?shù)认到y(tǒng)功能。為了能應(yīng)用到實(shí)際網(wǎng)絡(luò)中,還需要從網(wǎng)關(guān)關(guān)聯(lián)控制方面進(jìn)行完善,該系統(tǒng)是一個(gè)分布式系統(tǒng),客戶端網(wǎng)關(guān)與服務(wù)器端網(wǎng)關(guān)之間需要實(shí)時(shí)的狀態(tài)信息交互,以應(yīng)對(duì)可能出現(xiàn)的網(wǎng)絡(luò)異常情況(如網(wǎng)絡(luò)的異常斷開(kāi)等),提高系統(tǒng)的健壯性。
參考文獻(xiàn)
[1] AKYILDIZ I F, WANG X, WANG W. Wireless mesh networks: a survey[J]. Computer Networks, 2005,47(4):445-487.
[2] 王建新,郭振華,盛羽.基于并行TCP技術(shù)的廣域網(wǎng)通信加速方法[P].CN201010528603.0.中南大學(xué),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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。