王躍輝, 魏 芳
(①上海交通大學,上海 200240;②上海貝爾股份有限公司,上海 201206)
近年來,隨著計算機寬帶網(wǎng)絡的不斷發(fā)展壯大,網(wǎng)民人數(shù)的不斷增加,互聯(lián)網(wǎng)產業(yè)中涌現(xiàn)出了種類繁多的網(wǎng)絡應用以滿足用戶的多方面的需求,如門戶、論壇、社交網(wǎng)絡(SNS,Social Network Service)社區(qū)、電子商務、點對點(P2P,Peer to Peer)下載、在線視頻、即時通信以及網(wǎng)絡游戲等。這些應用帶來了網(wǎng)絡流量的爆炸性增長,但同時由于不同種類的應用其流量特征差異巨大且增長迅速,因此也為網(wǎng)絡的運維管理帶來了新的挑戰(zhàn)。
網(wǎng)絡游戲是上述諸多網(wǎng)絡應用中,用戶黏性最強的應用之一,網(wǎng)游產業(yè)在當前的互聯(lián)網(wǎng)產業(yè)中占有很大的份額,根據(jù)CNNIC最新發(fā)布的《第 27 次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》[1],截止到2010年12月,我國的網(wǎng)游用戶達到了3.04億,用戶使用率達到66.5%,顯示出非常強的用戶黏性。
與其他類型的應用相比,網(wǎng)絡游戲的流量特征非常明顯,主要表現(xiàn)為:單個數(shù)據(jù)包小、數(shù)據(jù)傳輸頻繁、整體應用帶寬占用很小、實時性和穩(wěn)定性要求非常高等方面。由于現(xiàn)有條件下我國的網(wǎng)絡環(huán)境比較復雜,在一些網(wǎng)絡使用的高峰時段時有出現(xiàn)因為網(wǎng)絡質量不佳而產生的游戲卡殼、掉線等現(xiàn)象,影響到用戶玩網(wǎng)游時的體驗,嚴重時還引起用戶的投訴。為了保證網(wǎng)游用戶的使用體驗,非常有必要對這一類的應用做有針對性的網(wǎng)絡優(yōu)化設計。
如前所述,網(wǎng)絡游戲的數(shù)據(jù)對于傳輸?shù)膶崟r性和穩(wěn)定性要求很高,一般來說,對于包括大型多人在線角色扮演、即時戰(zhàn)略、在線競技/休閑等大型網(wǎng)游來說,數(shù)據(jù)包的延時需要保持在200 ms左右,丟包率接近0,才能支持用戶的流暢使用。從網(wǎng)絡的角度講,會導致用戶丟包和延遲增加的位置主要在從用戶到網(wǎng)游服務器的網(wǎng)路中,網(wǎng)絡資源相對有限的位置,比如網(wǎng)絡運營商(ISP, Internet Service Provider)的互聯(lián)互通的接口位置和從網(wǎng)絡邊緣接入到核心網(wǎng)的網(wǎng)絡匯聚位置等。目前,網(wǎng)游加速的解決方案多是從路由優(yōu)化或者網(wǎng)絡設備改造2個角度來入手。
以迅游為代表的游戲加速軟件提供商,主要采取前一種的方式對游戲進行加速。這類方案假設在同一運營商內部的網(wǎng)絡資源是很充裕的,但是跨ISP則會遇到瓶頸,因此需要針對這一問題進行路由優(yōu)化。用戶在使用時,需要首先在客戶端安裝加速軟件,游戲啟動后,加速軟件會將游戲產生的通信數(shù)據(jù)全部重新定向到部署在多線機房的加速服務節(jié)點,借此繞開大型運營商(電信骨干網(wǎng)(CTNET)、聯(lián)通骨干網(wǎng)(CUNET)、教育網(wǎng)等)的互聯(lián)互通接口,提升游戲數(shù)據(jù)傳輸?shù)馁|量,實現(xiàn)“跨網(wǎng)絡”的游戲加速,整個“加速”過程只需要選擇合適的數(shù)據(jù)中心(IDC,Internet Data Center)機房位置,不需要運營商支持。對于電信、聯(lián)通這類大型運營商來說,一方面絕大部分網(wǎng)游服務器都部署在他們的網(wǎng)絡中,另一方面他們的多線機房很多,容易部署加速節(jié)點,因此加速效果非常明顯。但是對于并不具備這些優(yōu)勢的中小型 ISP的用戶來說,這一方案則很難奏效。
以TP-link ER5110為代表的硬件產品[2]則著眼于通過網(wǎng)絡設備實現(xiàn)游戲加速功能:首先,通過端口、深度包檢測(DPI,Deep Packet Inspection)或者深度流檢測(DFI,Deep Flow Inspection)[3-4]等技術,實現(xiàn)對游戲數(shù)據(jù)的識別和判斷;然后通過優(yōu)先算法,實現(xiàn)對于疑似游戲數(shù)據(jù)包的“優(yōu)先”轉發(fā)。這一方案在使用時,用戶無需在客戶端做任何操作,所有數(shù)據(jù)由網(wǎng)絡設備判斷和引導。然而,這一方案仍然有其局限性:首先,網(wǎng)絡游戲更新速度非??欤ㄟ^硬件升級的方式進行游戲特征更新的方案操作起來相對較慢;其次,DPI或DFI識別不能做到100%的數(shù)據(jù)包識別,有可能導致部分數(shù)據(jù)包不能被加速;最后,這種處理方法要求檢測所有通過硬件設備的數(shù)據(jù)包,而其中游戲數(shù)據(jù)包可能只占了總數(shù)據(jù)量的5%,而使用DPI或者DFI會大量消耗硬件資源,導致系統(tǒng)容量很難大幅度增加。目前市面上的主流產品通常只能支持100 Mb/s量級的出口帶寬,多應用于網(wǎng)吧等較小規(guī)模的應用場景。
為了設計一種既經(jīng)濟又有效的針對中小ISP的游戲加速方案,為此,這里提出一種新的網(wǎng)絡架構,以實現(xiàn)通過較小的代價來對用戶的游戲加速數(shù)據(jù)進行優(yōu)化的效果。整個方案的網(wǎng)絡構架和數(shù)據(jù)流程如圖1所示。
圖1 游戲加速網(wǎng)絡拓撲
①在用戶的個人電腦上加裝游戲加速客戶端軟件,該軟件可以有效提取出用戶的個人通信數(shù)據(jù),將其重定向到中小運營商網(wǎng)內的一臺加速服務器上;
②加速服務器將用戶發(fā)過來的上行數(shù)據(jù)包的源IP地址換成加速服務器本地地址后,繼續(xù)向游戲服務器(在大運營商網(wǎng)絡中)轉發(fā)數(shù)據(jù)包;
③發(fā)往游戲服務器的數(shù)據(jù)包必須經(jīng)過小運營商和大運營商相連通的交換機,在該交換機上設置優(yōu)先轉發(fā)源IP和目的IP為加速服務器IP的數(shù)據(jù)包[5-6];
④由于大運營商網(wǎng)內的網(wǎng)絡資源充裕,則數(shù)據(jù)傳輸流程中沒有新的瓶頸,可以迅速轉發(fā)到游戲服務器中;
⑤從游戲服務器的角度來看,用戶是從小運營商的加速服務器發(fā)送數(shù)據(jù)包過來的,因此,游戲服務器的回包地址指向加速服務器;
⑥在經(jīng)過互聯(lián)互通的交換機時,交換機優(yōu)先轉發(fā)目的IP為加速服務器的數(shù)據(jù)包,數(shù)據(jù)可以以最快速度回到加速服務器;
⑦加速服務器將數(shù)據(jù)包返回用戶PC,并由PC上的加速軟件處理后,返回給網(wǎng)游主程序。
為了確認所提出的方案確實有效,在實驗室環(huán)境中設計了一個仿真實驗進行測試。為真實模擬現(xiàn)網(wǎng)中遇到的情況,測試需要滿足以下條件:
①有兩個相連通的網(wǎng)絡;
②兩個網(wǎng)絡連接處為帶寬瓶頸;
③可通過其他設備調節(jié)兩個網(wǎng)絡的連接處的帶寬使用率(從幾乎空閑到滿負荷);
④兩個網(wǎng)絡連接處的設備可以優(yōu)先傳送特定的IP數(shù)據(jù)包;
⑤用來模擬小運營商的網(wǎng)絡中,至少有一臺可以訪問互聯(lián)網(wǎng)的,且必須安裝window操作系統(tǒng)的PC,以測試真實的游戲加速效果(魔獸世界有專門開發(fā)的游戲延時測試工具,這里使用魔獸世界作為網(wǎng)游質量檢測工具)。
根據(jù)前述的實驗前提設計了測試環(huán)境。測試時用到的設備如表1中所列,測試環(huán)境中的網(wǎng)絡設備連接和網(wǎng)絡配置情況如圖2所示。
表1 測試設備列表
圖2 測試環(huán)境——網(wǎng)絡連接和網(wǎng)絡配置
如圖 2所示,測試環(huán)境分為 2個網(wǎng)段,分別為192.168.0.0/24和192.168.8.0/24:前者用來模擬小型ISP,安裝了魔獸世界客戶端的筆記本電腦和加速服務器,1臺流量產生服務器,三層交換機的 vlan121以及連接服務器的 eth0網(wǎng)卡都連接在這個網(wǎng)段;后者用來模擬大型ISP,包括三層交換機的vlan122、百兆路由器和另一臺流量產生服務器。由于百兆路由器和千兆交換機之間的連接為100 M,而千兆交換機內部的連接可以保持千兆,因此可以籍此模擬內部網(wǎng)絡資源充分而出口流量擁堵的情況。
如圖3所示,左右兩側的紅色服務器為流量產生服務器,通過服務器使用FreeBSD操作系統(tǒng),安裝web-polygraph[5]軟件。該軟件分為server端和client端,在server端可以隨機生成WEB頁面,并由client端訪問,以生成HTTP網(wǎng)絡流量。通過設置client端的并發(fā)session和每個WEB頁面的大小,可以精細調整兩臺服務器之間的流量大小??紤]到對于圖 2中的小ISP網(wǎng)絡用戶而言,絕大部分資源都在大ISP中,所以在本次測試中,以192.168.0.0/24網(wǎng)段的服務器為client端,以192.168.8.0/24網(wǎng)段的服務器為server端進行流量的模擬。
(1)使用web-polygraph軟件模擬互聯(lián)網(wǎng)訪問流量
測試時,首先單純啟動web-polygraph軟件模擬互聯(lián)網(wǎng)訪問流量。Web-polygraph軟件是一款http流量模擬仿真軟件,分為客戶端(client-side)和服務器端(server-side)2部分,詳細的配置和使用說明可以在參考文獻[7]中查詢。當 client和server都啟動后,在server端會按照配置好的頁面大小隨機生成訪問頁面,同時響應client發(fā)來的http請求,從而實現(xiàn)對http訪問的模擬。Client端的請求發(fā)生頻數(shù)是可以調節(jié)的,在本次測試中可以使用平均每秒目標請求數(shù)(MOPS,Mean Object Per Second)來表征每秒種發(fā)出的請求個數(shù)。由于在server端已經(jīng)配置好隨機生成的目標文件大小的分布,當網(wǎng)絡資源充分的前提下,可以籍此估算出實際的下行平均流量:
下行平均流量速率=平均每秒目標請求數(shù)×平均頁面大小。
在實際測試過程中保持平均頁面大小不變,改變 client端的平均每秒目標請求數(shù),同時通過FreeBSD自帶的命令監(jiān)控網(wǎng)卡上的網(wǎng)絡流量,獲得響應曲線如圖3所示。
圖3 平均每秒目標請求數(shù)和網(wǎng)卡流量之間的關系
如圖3所示,當網(wǎng)卡流量在70 Mb/s以下的時候(對應平均目標請求數(shù)在550以下時),網(wǎng)絡流量和平均每秒目標請求數(shù)直接保持了良好的線性關系(對這段數(shù)據(jù)的線性擬合結果表明,其線性相關度好于99%)。但是當請求繼續(xù)增加是,網(wǎng)卡上的流量不再線性增長,意味著此時網(wǎng)絡開始發(fā)生擁堵。
由此可知,通過在client端增加平均目標請求數(shù)的方式,確實可以人為模擬出網(wǎng)絡擁堵的測試條件。
(2)在流量擁堵的情況下ping包的延時變化
在通過web-polygraph模擬出網(wǎng)絡擁堵環(huán)境后,首先通過ping包的延時變化來觀察隨著網(wǎng)絡流量的增長,包傳輸?shù)难訒r變化情況。測試時保持如(1)中的平均頁面大小不變,改變平均每秒目標請求數(shù)大小,同時持續(xù)從 client服務器向server服務器發(fā)送ping包,記錄結果,并取500次的測試結果做平均,作為該平均目標請求數(shù)對應的ping包延時,得到如圖5的響應曲線。
從圖4中可以看出,隨之平均每秒目標請求數(shù)的增加,也即網(wǎng)絡流量的不斷增長,ping包的延時起初沒有顯著的變化,但是當流量開始趨向于占滿全部網(wǎng)絡資源的時候,ping包的延時有了顯著的增長,拐點發(fā)生的位置和圖4中所示的網(wǎng)絡資源趨于飽和的位置重疊,均為550到600之間。
由此可見,當網(wǎng)絡開始擁堵的時候,ping包的延時會有顯著的增加。網(wǎng)游的通訊數(shù)據(jù)過程比ping協(xié)議要復雜得多,當擁堵發(fā)生的時候,其通訊質量很可能會受到更大的影響。進一步的,對游戲通訊的數(shù)據(jù)受網(wǎng)絡擁堵環(huán)境的影響這個問題作了測試,同時也對于啟動游戲加速服務以后的游戲通訊質量改善情況做了測試。
圖4 ping包延時隨著平均每秒目標請求數(shù)變化的情況
(3)啟用加速服務和不啟用加速服務的游戲效果對比
為了量化測試游戲數(shù)據(jù)通訊的效果,這里采用經(jīng)典的魔獸世界網(wǎng)絡游戲的通訊測試工具來測試網(wǎng)游客戶端和游戲客戶端之間的通訊延時。測試選取工作日的上午 9:00-11:00,網(wǎng)游服務器相對空閑的時段進行。測試時盡量保持基本類似的網(wǎng)游動作,以避免通訊數(shù)據(jù)包之間的差異過大。
測試首先不開啟游戲加速服務,直接通過筆記本電腦接入192.168.8.0/24網(wǎng)段,打開魔獸游戲,登錄游戲服務器,一面改變web-polygraph的平均每秒目標請求數(shù),一面記錄魔獸世界的游戲通訊延時情況。
之后再開啟游戲加速服務,重新接入與之前相同的服務器,并做同樣的測試。如前所述,游戲加速服務分成2部分:
①使用自行編寫的游戲加速客戶端和服務器端軟件,在客戶端,通過在 Windows XP系統(tǒng)的 LSP(Layered Service Provider)層[8]直接對魔獸世界進程對外通訊數(shù)據(jù)的流入流出進行修改操作,將發(fā)出的數(shù)據(jù)包重定向到加速服務器端,同時接收加速服務器發(fā)出的數(shù)據(jù),并將其發(fā)給游戲進程;在服務器端,將發(fā)給網(wǎng)游服務器的數(shù)據(jù)包源IP修改為加速服務器自己的IP地址,同時將網(wǎng)游服務器返回的數(shù)據(jù)包發(fā)還給游戲加速客戶端軟件。
②在思科3750交換機和TP-link路由器上對于源地址和目標地址為游戲加速服務器地址的數(shù)據(jù)包均配置1 Mb/s的優(yōu)先帶寬保障,確保來自和發(fā)往游戲加速服務器的數(shù)據(jù)包會被優(yōu)先轉發(fā)。
測試得到的隨著平均每秒目標請求數(shù)的增加,游戲延時的變化情況如圖5所示。
從圖5中可以清楚看到,在不啟用游戲加速服務的前提下,當網(wǎng)絡接近擁堵的時候(平均每秒目標請求數(shù)550左右),游戲通訊延時突然迅速增加直至掉線,無法繼續(xù)使用;而當游戲加速啟動后,游戲的延時狀態(tài)穩(wěn)定在200 ms左右,這表明該游戲加速解決方案能夠在不增加瓶頸點網(wǎng)絡資源的情況下,保證網(wǎng)絡游戲的用戶即使在網(wǎng)絡出口擁堵的狀態(tài)下使用體驗也不會下降。
圖5 啟動和未啟動游戲加速情況下,隨著平均每秒目標請求數(shù)增加,魔獸世界網(wǎng)游通訊數(shù)據(jù)包的延時變化情況
文中首先提出了網(wǎng)絡條件對于用戶使用網(wǎng)游等對延時、丟包等QoS指標非常敏感的網(wǎng)絡應用體驗的影響,分析了當前主流的2種解決方案及這兩類方案在中小型網(wǎng)絡運營商網(wǎng)絡環(huán)境下的局限性;針對這一局限,提出一個新的網(wǎng)游加速解決方案,并通過模擬仿真實驗予以驗證。實驗表明該方案可以在不額外增加出口網(wǎng)絡資源的前提下,保證網(wǎng)游等網(wǎng)絡應用的用戶體驗。這一方案可以進一步擴展到其他類似的應用上,從而使得網(wǎng)絡使用效率大大提升。
[1]CNNIC報告.第27次中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告[EB/OL].(2011-01-09)[2011-02-26]. http://www.cnnic.net.cn/dtygg/dtgg/201101/P020110119 3289601922 87.pdf.
[2]TP-LINK產品白皮書.(2008-04-19)[2010-09-21]http://www.tplink.com.cn/pages/produ ct-list.asp?c=17.
[3]賽門鐵克技術報告.THOMAS Porter. The Perils of Deep Packet Inspection[EB/OL].(2010-10-19)[2011-03-04].http://www.syma ntec.com/connect/articles/perils-deep -packet-inspection
[4]楊萬安, 胡其華. 一種網(wǎng)絡數(shù)據(jù)包的有效分類方法[J]. 計算機應用與軟件, 2010, 2(02)118-121.
[5]羅章慶, 李玉宏, 李玲, 等.支持優(yōu)先級與公平策略的隊列工程[J].通信技術, 2010, 43(08)32-34.
[6]孫翔, 陳念偉. 傳統(tǒng)局域網(wǎng)的QoS 保障機制的分析與應用[J]. 通信技術, 2007, 40(08) 37-39.
[7]Web polygraph Project[EB/OL].(2010-10-14)[2011-01-06]http://www. web-polygraph.org/.
[8]WEI Hua, JIM Ohlund, BARRY Butterklee. Unraveling the Mysteries of Writing a Winsock 2 Layered Service Provider[EB/OL].(1999-05-01)[2011-03-02]http://www.microsoft.com/msj/0599/layeredservice/la yeredservice.aspx.