張?jiān)讫?/p>
(東北石油大學(xué) 163318)
網(wǎng)絡(luò)延遲是指數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中傳輸過程所消耗的時(shí)間,是衡量數(shù)據(jù)實(shí)時(shí)性的重要指標(biāo)。網(wǎng)絡(luò)延遲對(duì)于遠(yuǎn)程控制、視頻會(huì)話等即時(shí)性較強(qiáng)的應(yīng)用具有重要的意義,直接影響到網(wǎng)絡(luò)服務(wù)的質(zhì)量。因特網(wǎng)的設(shè)計(jì)初衷是為了滿足資源的共享,注重信息傳遞的準(zhǔn)確性和傳送的信息量,而非信息傳遞的實(shí)時(shí)性,因此并不能保證遠(yuǎn)程控制系統(tǒng)中運(yùn)動(dòng)信息的實(shí)時(shí)傳遞。對(duì)于網(wǎng)絡(luò)電子競(jìng)技,網(wǎng)絡(luò)延遲的大小直接影響到游戲體驗(yàn)和玩家的競(jìng)技水平,是一項(xiàng)硬性指標(biāo)。一般來說,30ms 以下的延遲可以得到順暢的游戲體驗(yàn),而50ms 以上的延遲在對(duì)抗性網(wǎng)絡(luò)游戲中就會(huì)對(duì)玩家的發(fā)揮產(chǎn)生影響,100ms 以上的網(wǎng)絡(luò)延遲會(huì)發(fā)生丟包等現(xiàn)象,使得游戲無法順利進(jìn)行。
對(duì)于特定的網(wǎng)絡(luò)游戲,使用ping 命令能夠測(cè)量本地主機(jī)與服務(wù)器之間的延遲狀況,只需在dos 條件下輸入命令和服務(wù)器IP 地址即可。但是網(wǎng)絡(luò)延遲具有很強(qiáng)的隨機(jī)性,這與網(wǎng)絡(luò)延遲形成原因的隨機(jī)特點(diǎn)有關(guān)。短時(shí)間的突發(fā)性大延遲會(huì)對(duì)玩家的游戲產(chǎn)生較大的影響,因而ping 命令所得的延遲量不足以衡量電子競(jìng)技過程中的延遲條件。同時(shí),由于特定操作所產(chǎn)生的數(shù)據(jù)包大小的不一致,不用操作所帶來的延遲往往不同,具有一定的規(guī)律性。
目前實(shí)際應(yīng)用中因特網(wǎng)的通信標(biāo)準(zhǔn)基于TCP/IP 協(xié)議,基于TCP/IP 體系結(jié)構(gòu)進(jìn)行信息通信的原理如圖1 所示,這是一種典型的分組交換系統(tǒng)。在這樣一個(gè)系統(tǒng)中,數(shù)據(jù)包通過選路從本地主機(jī)到達(dá)遠(yuǎn)程主機(jī),選路是指選擇一條用于發(fā)送分組路徑的過程,路由器則是做出這一選擇的網(wǎng)絡(luò)設(shè)備。
圖一 TCP/IP 傳輸示意圖
根據(jù)網(wǎng)絡(luò)通信原理,TCP/IP 協(xié)議網(wǎng)絡(luò)的延時(shí)大致包含以下幾個(gè)成分
(l)本地主機(jī)數(shù)據(jù)處理延時(shí)。當(dāng)應(yīng)用程序向協(xié)議軟件傳遞數(shù)據(jù)信元時(shí),協(xié)議軟件將由應(yīng)用層至網(wǎng)絡(luò)層逐層地對(duì)數(shù)據(jù)進(jìn)行封裝處理,而后進(jìn)行發(fā)送。
(2)物理線路上信號(hào)傳輸延時(shí)。這里的物理線路是指連接網(wǎng)絡(luò)設(shè)備的線纜,如雙絞線、光纖等。數(shù)據(jù)信號(hào)在物理線路上以接近光速的速度傳輸,這一延時(shí)與整體延時(shí)相比不在一個(gè)數(shù)量級(jí)上,因此通信節(jié)點(diǎn)之間的地理距離并不是決定延時(shí)大小的主要因素。
(3)中間路由器數(shù)據(jù)處理延時(shí)。網(wǎng)絡(luò)有其自身的拓?fù)浣Y(jié)構(gòu),在網(wǎng)絡(luò)上,除物理線路外,還有作為網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)的路由器。路由器需要將收到的數(shù)據(jù)流解釋至網(wǎng)絡(luò)層以選擇下一跳的目的地址。選路過程中多個(gè)中間路由器數(shù)據(jù)處理延時(shí)是網(wǎng)絡(luò)延時(shí)的主要組成部分。
網(wǎng)絡(luò)延遲在一定程度上體現(xiàn)出一種隨時(shí)間的穩(wěn)定性,這是由數(shù)據(jù)包傳輸方式所決定的,即路由的相對(duì)穩(wěn)定。因特網(wǎng)是采用動(dòng)態(tài)路由機(jī)制來傳輸數(shù)據(jù)業(yè)務(wù)的,但這種動(dòng)態(tài)并不等于隨機(jī)路由,只有當(dāng)互連網(wǎng)的情況發(fā)生嚴(yán)重變化時(shí),例如路由失效、嚴(yán)重?fù)砣?,轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的路由路徑才會(huì)改變。對(duì)因特網(wǎng)路由行為的研究表明通信雙方或多方在會(huì)話期間路由很少改變,大部分的數(shù)據(jù)流沿同一條物理路徑傳輸。
目前的多個(gè)路由協(xié)議中路由跳躍次數(shù)是選擇路由的重要參考指標(biāo),往往作為制定路由的首要因素。所以在動(dòng)態(tài)路由條件下,連接兩個(gè)IP 之間的路由往往是跳躍次數(shù)較少的路徑,并且在一段時(shí)間內(nèi)保持這一路徑而不改變。有相關(guān)研究指出在一天時(shí)間內(nèi)對(duì)特定IP 進(jìn)行跟蹤所捕獲的路由路徑是基本穩(wěn)定的。
對(duì)于網(wǎng)絡(luò)延遲的不確定性,合理的解釋是由負(fù)載的不確定性變化所導(dǎo)致目前基于TCP/IP 協(xié)議的因特網(wǎng)在網(wǎng)絡(luò)接口層普遍采用隨機(jī)競(jìng)爭(zhēng)類的媒體訪問控制協(xié)議,多個(gè)通信節(jié)點(diǎn)共享通信信道資源。而網(wǎng)上的數(shù)據(jù)傳輸有一種突發(fā)性的特點(diǎn),由于共享帶寬的原因,當(dāng)網(wǎng)絡(luò)中的數(shù)據(jù)流量突然增大時(shí),將造成其經(jīng)過的路由器的負(fù)載增大,從而等待路由器進(jìn)行處理的數(shù)據(jù)增多,這樣數(shù)據(jù)排隊(duì)等待處理的時(shí)間增長(zhǎng),使得數(shù)據(jù)報(bào)的延時(shí)增大,即造成總延遲的增大,另外,當(dāng)路由器的負(fù)載超過其處理能力時(shí),將對(duì)隨后到達(dá)的數(shù)據(jù)包進(jìn)行丟棄處理,這樣對(duì)以TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)包來講,將造成數(shù)據(jù)報(bào)的重發(fā)以及發(fā)送主機(jī)TCP 滑動(dòng)窗口的減小,這些最終都將造成數(shù)據(jù)報(bào)延時(shí)的瞬間增大。這是延時(shí)不確定性產(chǎn)生的主要原因。
網(wǎng)絡(luò)的時(shí)延及其不確定性將對(duì)電子競(jìng)技產(chǎn)生相當(dāng)大的影響。當(dāng)存在較大延時(shí)時(shí),玩家操作不能實(shí)時(shí)地傳遞給服務(wù)器,操作所產(chǎn)生的效果也不能實(shí)時(shí)地反饋給目標(biāo)玩家,從而使整個(gè)服務(wù)器的穩(wěn)定性和即時(shí)性變差,嚴(yán)重地還會(huì)引服務(wù)器的不穩(wěn)定,并且由于延時(shí)的不確定性使信息傳遞的連續(xù)性遭到破壞,造成了諸如卡ping 等情況,這是所有網(wǎng)游所需要極力避免的問題。為了能夠更好地對(duì)延時(shí)進(jìn)行控制,就需要對(duì)其特點(diǎn)進(jìn)行分析,預(yù)測(cè)其產(chǎn)生機(jī)制,希望能夠?qū)σ蛱鼐W(wǎng)的延時(shí)特性進(jìn)行仿真以建立有效的實(shí)驗(yàn)系統(tǒng)。因此,有必要對(duì)延時(shí)及其不確定性產(chǎn)生的原因進(jìn)行分析并探究其規(guī)律所在。
本文通過運(yùn)行電子競(jìng)技網(wǎng)游“勝利之日”(day of defeat)的效果來研究延遲的特性。為了使效果明顯,故特別選擇了具有50ms 以上延遲的服務(wù)器,以便與觀察效果。研究方法是通過內(nèi)置的游戲錄像功能,將游戲的過程捕捉下來。兩臺(tái)計(jì)算機(jī)同時(shí)連接同一個(gè)服務(wù)器進(jìn)行游戲,通過一臺(tái)電腦執(zhí)行特定的操作并從另一臺(tái)電腦中觀察得到的反饋效果,以幀為單位計(jì)算兩者之間的時(shí)間差,得到實(shí)際游戲體驗(yàn)中的延遲特性。
在實(shí)際測(cè)試中,對(duì)于不同的操作,延遲的大小也存在些許區(qū)別,大致有以下幾種情況
(1) 跑動(dòng)和跳躍,所產(chǎn)生的延遲較小,且較穩(wěn)定,在約100fps 下大約產(chǎn)生10-12 幀的時(shí)間差,換算延遲約55ms 左右。個(gè)別時(shí)間段產(chǎn)生突發(fā)的20 幀以上的延時(shí),即100ms 左右,高延時(shí)時(shí)間呈數(shù)秒鐘的小段分布,但是整體所占比重很少,推測(cè)為常規(guī)的路由延時(shí)。
(2) 開火射擊,產(chǎn)生延遲稍多,約12-13 幀,計(jì)60ms 左右。值得注意的是開火射擊存在兩種情況。第一種是目標(biāo)未命中,通過考察射擊目標(biāo)物體上的子彈痕跡出現(xiàn)時(shí)間得到射擊延遲,這種情況下延遲與跑動(dòng)跳躍情況相差不多,約1 幀左右。第二種情況是命中的玩家目標(biāo),延遲有所增長(zhǎng)且波動(dòng)較大,合理的解釋是服務(wù)器需要對(duì)射擊效果進(jìn)行一定的反應(yīng),包括被擊中玩家狀態(tài)數(shù)值的變更、死亡的判定、以及產(chǎn)生特定的動(dòng)畫效果等。
(3) 切換武器,產(chǎn)生延遲大致與跑動(dòng)跳躍相當(dāng),延遲穩(wěn)定,也存在突發(fā)的高延遲時(shí)間。
(4) 使用地圖場(chǎng)景互動(dòng)物品或射擊可破壞物。這類操作的延遲明顯較大,約18-20 幀左右,計(jì)90ms。這是由于服務(wù)器需要產(chǎn)生復(fù)雜動(dòng)畫效果所帶來的延遲。
圖2 不同操作下的延時(shí)分布
綜合以上的情況大致能獲得如下的判斷:電子競(jìng)技網(wǎng)游中,對(duì)于簡(jiǎn)單操作其延遲量穩(wěn)定,雖時(shí)間的波動(dòng)較小,具有較好的即時(shí)性。這種情況下的延時(shí)其主要成分應(yīng)是路由數(shù)據(jù)的處理延時(shí),而路由的相對(duì)穩(wěn)定使得延遲大小也隨之穩(wěn)定,使得玩家獲得良好的游戲體檢。對(duì)于一些玩家間的互動(dòng)操作,由于涉及到游戲人物數(shù)據(jù)的修改,需要進(jìn)過服務(wù)器進(jìn)行一定的處理,延遲稍高。而對(duì)于影響整個(gè)服務(wù)器的全局性操作,服務(wù)器需要消耗一定時(shí)間進(jìn)行響應(yīng),遠(yuǎn)程主機(jī)數(shù)據(jù)處理延時(shí)由次要地位上升至主要地位,延時(shí)大幅增大,且這種延時(shí)的暫時(shí)增大同樣會(huì)波及到未進(jìn)行操作的玩家,甚至其他臨近服務(wù)器的玩家,造成延遲短暫大幅上升的假象。游戲中也存在一定的路由延時(shí),所占比重較小,影響力有限。
由以上可得,在因特網(wǎng)信息的傳遞過程中將產(chǎn)生一定的延時(shí),延時(shí)具有相對(duì)的穩(wěn)定性和一定時(shí)不確定性,這將影響電子競(jìng)技玩家的水平發(fā)揮和游戲體驗(yàn)。分析指出在大多數(shù)情況下,網(wǎng)絡(luò)延時(shí)的分布情況主要決定于數(shù)據(jù)所經(jīng)過的跳數(shù)以及在每一跳上所花費(fèi)的時(shí)間,而個(gè)別情況下服務(wù)器的處理延時(shí)也會(huì)產(chǎn)生可觀的效果,網(wǎng)絡(luò)上所經(jīng)過的路由器的負(fù)載也產(chǎn)生一定的不確定性。
總之,在電子競(jìng)技中看似隨機(jī)的數(shù)據(jù)延時(shí)背后,有著一定的規(guī)律可循。這些為電子競(jìng)技行業(yè)的發(fā)展提供一定幫助,也為互聯(lián)網(wǎng)數(shù)據(jù)傳輸?shù)陌l(fā)展提供一定的參考。
[1]任長(zhǎng)清;王曉峰;陳之龍;馬樹元;吳平東基于TCP/IP 網(wǎng)絡(luò)的遠(yuǎn)程控制系統(tǒng)的研究[J]2001
[2]修震,吳平東,黃杰,陳之龍,基于因特網(wǎng)的遠(yuǎn)程控制中網(wǎng)絡(luò)延時(shí)特性分析[J],計(jì)算機(jī)工程與應(yīng)用,2004,40(3),129-131
[3]劉桂波,宋清昆,李巖,基于Internet 的遠(yuǎn)程控制中網(wǎng)絡(luò)延時(shí)的探討[J]-黑龍江工程學(xué)院學(xué)報(bào)(自然科學(xué)版)2006,20(2)
[4]王宏偉,楊雨,張智華,網(wǎng)絡(luò)時(shí)延預(yù)測(cè)研究[J]-電腦知識(shí)與技術(shù) 2011(10)