單一世界架構初探(09)時間之軸

我們可以想象查排,在單一世界架構中凳枝,肯定需要大量的服務器來支持,但反映在虛擬世界中跋核,時間的流動是唯一的岖瑰。全部服務器的時間流動就是整個世界的時間之軸叛买,也就是時間之軸的流動是整個世界的標準時間。

在實現(xiàn)中蹋订,單一世界顯然是由很多服務器構成了聪全,每個服務器之間必然存在時間差,這種時間差可能導致基于時間相關的行為發(fā)生混亂辅辩。比如P1/P2兩個玩家互 相攻擊难礼,P1在T1時間作出攻擊行為,P2在T2時間作出攻擊行為玫锋,本來P1先擊中P2蛾茉,并殺死P2,但由于時間差的緣故撩鹿,T2反而小于T1谦炬,導致 P2的攻擊行為先于P1發(fā)生,最后节沦,反而是P2先擊殺了P1键思。如果統(tǒng)一由時間之軸作為基準的話,這種情況就不會發(fā)生甫贯。時間之軸規(guī)范世界所有事件的發(fā)生順 序吼鳞,所以他的重要性不用贅述。

但是叫搁,在實際中赔桌,卻沒有那么嚴格。我們可以想象渴逻,影月谷和荊棘谷之間的時間順序并沒有什么關系疾党,他們之間的時間粒度完全可以在比較粗的粒度上保持一致。而 靠的比較近的暴風城和閃金鎮(zhèn)的世界時間誤差的精度要求就高點了惨奕。對精度要求最高的只有2個事情雪位,1、發(fā)生關聯(lián)的時候梨撞,時間的順序關系才有作用雹洗;2、靠近分 區(qū)邊界的實體聋袋,這兩個比較好理解队伟。發(fā)生關聯(lián)的兩個實體,關聯(lián)的發(fā)生順序對他們存在影響幽勒,如上面所描述的戰(zhàn)斗場景嗜侮。而靠近分區(qū)邊界的實體就容易發(fā)生關聯(lián)。如 果在一個分區(qū)內部的2個實體,他們得到的都是一個服務器的時間锈颗,所以不會存在時間誤差顷霹。

我們考慮一個最高精度的情況,就像上面兩個玩家在分區(qū)邊界發(fā)生的攻擊行為击吱。這時世界時間為T毫秒淋淀,A區(qū)為TA毫秒,B區(qū)為TB毫秒覆醇,網(wǎng)絡傳輸延時為D毫 秒朵纷。我們假設P1/P2作出攻擊行為的時間間隔很短,只有1毫秒左右永脓,我們現(xiàn)在擔心的是袍辞,會因為不同區(qū)之間時間差,以及網(wǎng)絡延時常摧,導致實際攻擊效果發(fā)生變 化搅吁。考察現(xiàn)有的NTP協(xié)議等技術手段落午,通常都只能達到毫秒級別谎懦,畢竟網(wǎng)絡延時擺在哪里,很難解決這種級別的誤差溃斋。高精度的時間協(xié)議PTP可以達到毫秒級界拦, 倒可以考慮,但他測量網(wǎng)絡延時的算法個人認為有缺陷盐类。PTP和NTP一樣寞奸,對網(wǎng)絡延時的差異做出了假設。

我認為關于時間同步上在跳,存在幾個確定因素:

1、在同一臺機器上隐岛,他的時間頻率精度是足夠的猫妙,比如每秒多少個時鐘周期。

2聚凹、AB兩臺機器之間時間差不會時間推移而改變割坠,除非作出調整。這個可以根據(jù)因素1作出判斷妒牙。

從因素2我們知道W = T-TA 是個常量彼哼,當T1發(fā)生報文并T2到達A區(qū),那么T2-T1==W + D湘今,包含了網(wǎng)絡時延和時差敢朱。在NTP和PTP協(xié)議中,都對D作出了假設,NTP假設D是一定拴签,而PTP假設D是可測量孝常。

我有兩個方案,事實上也是基于對延時的假設蚓哩,方案1:

1构灸、假設在同一局域網(wǎng)內每個客戶端接收到廣播的延時是一樣。這個可信度還是很高岸梨,在局域網(wǎng)內喜颁,誤差可以少于納秒級別。

2曹阔、在同一局域網(wǎng)內洛巢,存在一個時間服務器S,定時向整個局域網(wǎng)廣播當前時間次兆,精度可以達到納秒NS稿茉。

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


第二套方案渺蒿,比較復雜:

1、S/C都在同樣的本機時間點向對方時間報文彪薛,并記錄對方報文到達的時間茂装。

2、S收到C的時間報文后善延,將本地收到的時間點封包發(fā)送給C少态。

3、C根據(jù)收到的報文推算和S的時間間隔易遣。


這套方案同樣對網(wǎng)絡延時作出假定彼妻,認為同時向對方發(fā)送報文的延時D1/D2,以及服務器S緊隨發(fā)送的報文的延時D3在發(fā)送時間越接近的情況下豆茫,他們的之間誤差就會越小侨歉。


盡管多個服務器之間的時間同步很重要,但很多情況下揩魂,卻無需借助精確的時間精度幽邓,而只需要知道他們發(fā)生的順序就可以了。R1生成的關聯(lián)A1火脉,R2生成的關聯(lián)A2牵舵,這兩個關聯(lián)各自取了所在區(qū)A和B的時間戳柒啤。假設他們的精度要求為毫秒,而AB區(qū)之間的時間誤差為N毫秒棋枕,網(wǎng)絡時 延為M毫秒白修。當A1/A2發(fā)生時,他并不知道對方的時間戳重斑,A1通過網(wǎng)絡傳輸?shù)竭_B區(qū)兵睛,作用在R2上面,如果這時候R2發(fā)生擊退效果窥浪,實際上A2關聯(lián)并不 發(fā)生祖很。如果A2實際發(fā)生,表示R2在被擊中的時候漾脂,就已經發(fā)生攻擊行為假颇。考察這個過程骨稿,一個很有趣的現(xiàn)象發(fā)生了笨鸡。R1/R2之間的關聯(lián)實際和時間之軸沒有 關系。如果我們一定要在A1/A2打上時間之軸標簽坦冠,并嚴格進行排序形耗,實際上,A1發(fā)生并作用在R2時辙浑,我們并不知道A2的存在激涤。


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

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末梦抢,一起剝皮案震驚了整個濱河市般贼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奥吩,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕊梧,死亡現(xiàn)場離奇詭異霞赫,居然都是意外死亡,警方通過查閱死者的電腦和手機肥矢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門端衰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叠洗,“玉大人,你說我怎么就攤上這事旅东∶鹨郑” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵抵代,是天一觀的道長腾节。 經常有香客問我,道長荤牍,這世上最難降的妖魔是什么案腺? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮康吵,結果婚禮上劈榨,老公的妹妹穿的比我還像新娘。我一直安慰自己晦嵌,他們只是感情好同辣,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惭载,像睡著了一般旱函。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棕兼,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天陡舅,我揣著相機與錄音,去河邊找鬼伴挚。 笑死靶衍,一個胖子當著我的面吹牛,可吹牛的內容都是我干的茎芋。 我是一名探鬼主播颅眶,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼田弥!你這毒婦竟也來了涛酗?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤偷厦,失蹤者是張志新(化名)和其女友劉穎商叹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體只泼,經...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡剖笙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了请唱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥咪。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡过蹂,死狀恐怖,靈堂內的尸體忽然破棺而出聚至,到底是詐尸還是另有隱情酷勺,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布扳躬,位于F島的核電站脆诉,受9級特大地震影響,放射性物質發(fā)生泄漏坦报。R本人自食惡果不足惜库说,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片择。 院中可真熱鬧潜的,春花似錦、人聲如沸字管。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘲叔。三九已至亡呵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硫戈,已是汗流浹背锰什。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丁逝,地道東北人汁胆。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像霜幼,于是被迫代替她去往敵國和親嫩码。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內容