單一世界架構(gòu)初探(09)時(shí)間之軸

我們可以想象,在單一世界架構(gòu)中,肯定需要大量的服務(wù)器來支持,但反映在虛擬世界中,時(shí)間的流動(dòng)是唯一的。全部服務(wù)器的時(shí)間流動(dòng)就是整個(gè)世界的時(shí)間之軸,也就是時(shí)間之軸的流動(dòng)是整個(gè)世界的標(biāo)準(zhǔn)時(shí)間。

在實(shí)現(xiàn)中,單一世界顯然是由很多服務(wù)器構(gòu)成了,每個(gè)服務(wù)器之間必然存在時(shí)間差,這種時(shí)間差可能導(dǎo)致基于時(shí)間相關(guān)的行為發(fā)生混亂。比如P1/P2兩個(gè)玩家互 相攻擊,P1在T1時(shí)間作出攻擊行為,P2在T2時(shí)間作出攻擊行為,本來P1先擊中P2,并殺死P2,但由于時(shí)間差的緣故,T2反而小于T1,導(dǎo)致 P2的攻擊行為先于P1發(fā)生,最后,反而是P2先擊殺了P1。如果統(tǒng)一由時(shí)間之軸作為基準(zhǔn)的話,這種情況就不會(huì)發(fā)生。時(shí)間之軸規(guī)范世界所有事件的發(fā)生順 序,所以他的重要性不用贅述。

但是,在實(shí)際中,卻沒有那么嚴(yán)格。我們可以想象,影月谷和荊棘谷之間的時(shí)間順序并沒有什么關(guān)系,他們之間的時(shí)間粒度完全可以在比較粗的粒度上保持一致。而 靠的比較近的暴風(fēng)城和閃金鎮(zhèn)的世界時(shí)間誤差的精度要求就高點(diǎn)了。對(duì)精度要求最高的只有2個(gè)事情,1、發(fā)生關(guān)聯(lián)的時(shí)候,時(shí)間的順序關(guān)系才有作用;2、靠近分 區(qū)邊界的實(shí)體,這兩個(gè)比較好理解。發(fā)生關(guān)聯(lián)的兩個(gè)實(shí)體,關(guān)聯(lián)的發(fā)生順序?qū)λ麄兇嬖谟绊懀缟厦嫠枋龅膽?zhàn)斗場(chǎng)景。而靠近分區(qū)邊界的實(shí)體就容易發(fā)生關(guān)聯(lián)。如 果在一個(gè)分區(qū)內(nèi)部的2個(gè)實(shí)體,他們得到的都是一個(gè)服務(wù)器的時(shí)間,所以不會(huì)存在時(shí)間誤差。

我們考慮一個(gè)最高精度的情況,就像上面兩個(gè)玩家在分區(qū)邊界發(fā)生的攻擊行為。這時(shí)世界時(shí)間為T毫秒,A區(qū)為TA毫秒,B區(qū)為TB毫秒,網(wǎng)絡(luò)傳輸延時(shí)為D毫 秒。我們假設(shè)P1/P2作出攻擊行為的時(shí)間間隔很短,只有1毫秒左右,我們現(xiàn)在擔(dān)心的是,會(huì)因?yàn)椴煌瑓^(qū)之間時(shí)間差,以及網(wǎng)絡(luò)延時(shí),導(dǎo)致實(shí)際攻擊效果發(fā)生變 化。考察現(xiàn)有的NTP協(xié)議等技術(shù)手段,通常都只能達(dá)到毫秒級(jí)別,畢竟網(wǎng)絡(luò)延時(shí)擺在哪里,很難解決這種級(jí)別的誤差。高精度的時(shí)間協(xié)議PTP可以達(dá)到毫秒級(jí), 倒可以考慮,但他測(cè)量網(wǎng)絡(luò)延時(shí)的算法個(gè)人認(rèn)為有缺陷。PTP和NTP一樣,對(duì)網(wǎng)絡(luò)延時(shí)的差異做出了假設(shè)。

我認(rèn)為關(guān)于時(shí)間同步上,存在幾個(gè)確定因素:

1、在同一臺(tái)機(jī)器上,他的時(shí)間頻率精度是足夠的,比如每秒多少個(gè)時(shí)鐘周期。

2、AB兩臺(tái)機(jī)器之間時(shí)間差不會(huì)時(shí)間推移而改變,除非作出調(diào)整。這個(gè)可以根據(jù)因素1作出判斷。

從因素2我們知道W = T-TA 是個(gè)常量,當(dāng)T1發(fā)生報(bào)文并T2到達(dá)A區(qū),那么T2-T1==W + D,包含了網(wǎng)絡(luò)時(shí)延和時(shí)差。在NTP和PTP協(xié)議中,都對(duì)D作出了假設(shè),NTP假設(shè)D是一定,而PTP假設(shè)D是可測(cè)量。

我有兩個(gè)方案,事實(shí)上也是基于對(duì)延時(shí)的假設(shè),方案1:

1、假設(shè)在同一局域網(wǎng)內(nèi)每個(gè)客戶端接收到廣播的延時(shí)是一樣。這個(gè)可信度還是很高,在局域網(wǎng)內(nèi),誤差可以少于納秒級(jí)別。

2、在同一局域網(wǎng)內(nèi),存在一個(gè)時(shí)間服務(wù)器S,定時(shí)向整個(gè)局域網(wǎng)廣播當(dāng)前時(shí)間,精度可以達(dá)到納秒NS。

3、當(dāng)A分區(qū)向B分區(qū)發(fā)送關(guān)聯(lián)時(shí),將A區(qū)接收到S的廣播時(shí)間以及關(guān)聯(lián)發(fā)生的時(shí)間也發(fā)送給B。那么B分區(qū)根據(jù)自己接收到S的廣播時(shí)間,能容易推算出A/B兩分區(qū)之間的時(shí)間差。


第二套方案,比較復(fù)雜:

1、S/C都在同樣的本機(jī)時(shí)間點(diǎn)向?qū)Ψ綍r(shí)間報(bào)文,并記錄對(duì)方報(bào)文到達(dá)的時(shí)間。

2、S收到C的時(shí)間報(bào)文后,將本地收到的時(shí)間點(diǎn)封包發(fā)送給C。

3、C根據(jù)收到的報(bào)文推算和S的時(shí)間間隔。


這套方案同樣對(duì)網(wǎng)絡(luò)延時(shí)作出假定,認(rèn)為同時(shí)向?qū)Ψ桨l(fā)送報(bào)文的延時(shí)D1/D2,以及服務(wù)器S緊隨發(fā)送的報(bào)文的延時(shí)D3在發(fā)送時(shí)間越接近的情況下,他們的之間誤差就會(huì)越小。


盡管多個(gè)服務(wù)器之間的時(shí)間同步很重要,但很多情況下,卻無需借助精確的時(shí)間精度,而只需要知道他們發(fā)生的順序就可以了。R1生成的關(guān)聯(lián)A1,R2生成的關(guān)聯(lián)A2,這兩個(gè)關(guān)聯(lián)各自取了所在區(qū)A和B的時(shí)間戳。假設(shè)他們的精度要求為毫秒,而AB區(qū)之間的時(shí)間誤差為N毫秒,網(wǎng)絡(luò)時(shí) 延為M毫秒。當(dāng)A1/A2發(fā)生時(shí),他并不知道對(duì)方的時(shí)間戳,A1通過網(wǎng)絡(luò)傳輸?shù)竭_(dá)B區(qū),作用在R2上面,如果這時(shí)候R2發(fā)生擊退效果,實(shí)際上A2關(guān)聯(lián)并不 發(fā)生。如果A2實(shí)際發(fā)生,表示R2在被擊中的時(shí)候,就已經(jīng)發(fā)生攻擊行為。考察這個(gè)過程,一個(gè)很有趣的現(xiàn)象發(fā)生了。R1/R2之間的關(guān)聯(lián)實(shí)際和時(shí)間之軸沒有 關(guān)系。如果我們一定要在A1/A2打上時(shí)間之軸標(biāo)簽,并嚴(yán)格進(jìn)行排序,實(shí)際上,A1發(fā)生并作用在R2時(shí),我們并不知道A2的存在。


這篇是我寫得最郁悶的,我仔細(xì)研究各種關(guān)于時(shí)間同步的協(xié)議,盡管吹得天花亂墜,可是仔細(xì)研究起來,都做了許多假設(shè),很難讓人信服他們的精度數(shù)據(jù),只能從頭開始自己弄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,441評(píng)論 6 13
  • 古代雜交事件為慈鯛科魚類的適應(yīng)輻射提供動(dòng)力 Ancient hybridization fuels rapid c...
    智取鳥氨酸閱讀 4,937評(píng)論 0 5
  • 由于分區(qū)計(jì)算,所以相鄰區(qū)之間的沖突問題解決是很關(guān)鍵的,不論是靜態(tài)分區(qū),還是動(dòng)態(tài)分區(qū)。邊界沖突的核心是由于分區(qū)引起的...
    romandion閱讀 317評(píng)論 0 0
  • 在哪里錯(cuò)過 下篇:重逢 蘇顏?zhàn)咴谝粭l極其熟悉的小道上,轉(zhuǎn)個(gè)彎,抬頭,一片野生的梨樹林便映入眼簾。蘇顏知道,她又做夢(mèng)...
    柳青陵閱讀 412評(píng)論 4 5
  • 有次在聽一個(gè)節(jié)目,說一個(gè)孩子被父親管的特別嚴(yán)格,而且有時(shí)候還挨揍,因?yàn)楹⒆拥母赣H是退伍軍人。這語氣上感覺好像是一種...
    我叫在水一方閱讀 1,650評(píng)論 19 15

友情鏈接更多精彩內(nèi)容