百兆光纖玩遊戲卡成狗,不是手機不好,不是路由器不行,原因在這
最近和平精英上線了,王者榮耀也開啟一波新賽季,又掀起一波玩遊戲潮,有些小夥伴就反饋遊戲非常的卡,明明家裡用的是百兆光纖,並且近千元的路由器,,為什麼玩遊戲就卡成幻燈片呢?今天我們就從原理出發來解釋下,為什麼百兆的光纖,玩遊戲會卡。
基礎
首先,我們先排除自身的原因,例如手機/電腦的配置不行,或者家裡的路由器不穩定,或者離路由器的距離太遠或中間有太多障礙物,導致信號不穩定。很多人,即便是買了幾千元的手機,高級路由器,為什麼還會覺得玩遊戲特別卡呢,這要從計算機網路的遊戲的原理開始說起。
原理
首先我們應該理解網路遊戲當中的原理,我們會在自己的手機上進行一定的操作,手機的遊戲軟體會把這些操作打包成數據包,然後發給伺服器,伺服器確認這些數據包是正常的之後(不是外掛),再進行處理,處理完之後又發出指令,其他跟這個人一起遊戲的人收到數據後,就知道了你做了什麼事情。
例如我們在自己的手機上放了一次大招,這個時候會同步給伺服器,我們稱之為指令A,伺服器校驗了數據正確,這個玩家的確有大招,CD正常之類的數據,然後將這個數據包同步給其他人,告訴他們我放出了大招,朝哪個方向,哪個位置,其他人的手機接收到指令後,就能看到你放出大招了。
所以,從你的手機上發出數據給到伺服器接收,再到伺服器把數據發給你,我們稱之為延遲,很明顯,理論上,延遲越小,玩遊戲越流暢。延遲太大,可能你這邊做了某個操作,要很久才能收到,所以對玩遊戲的人來說,就會覺得很卡。
帶寬是雙向的
上述的例子說明了,玩遊戲的時候,你既要給伺服器發數據,又要接受伺服器的數據,也就是說,網路是雙向的。通常我們說寬頻的大小,都是下行帶寬,而上行帶寬常常被一筆帶過。所以,你看到的你們家是百兆寬頻,可能上行速度卻只有幾十kb/s,這就變成了一條腿走路,是跑不快的。
帶寬關係大么
那麼,這個延遲跟帶寬有什麼關係呢?答案是沒必然聯繫。我們可以理解為我們的手機跟伺服器之間有一條高速公路,限速100,實際上,網路傳輸的速度接近光速。有一輛車載重1噸,另外一輛車載重100噸,假設都能開到極限速度,那麼從你的手機出發,到重新回到你的手機,耗時是一樣的,如果你要運輸的貨物就幾百斤,那麼兩台車都是一樣的。在這裡,1噸100噸就是帶寬,也就是你每次要運輸到伺服器的數據小於這個數量,那麼多大的帶寬都是沒用的。一般來說,我們玩網路遊戲,1M的帶寬就綽綽有餘了,真正決定網路卡不卡的是延遲。也就是上述例子中,從深圳到上海一個來回的時間。
為什麼有延遲?
一切的科技都離不開物理規律,數據在光纖中的傳播速度接近光的速度,也就是30萬公里每秒,從中國的最南端到最北端,最快一個來回也要幾十毫秒。事實上,我們與伺服器的延遲會比計算的延遲大,為什麼呢?
網路並不是直達的高速公路
網路並不是簡單的點到點的告訴公路,而是由非常多的節點組成,節點與節點錯綜複雜,可能你從深圳發一個請求給上海,可能要先去北京,再從北京到杭州,再從杭州去上海,可能真實的距離會是深圳到上海的好幾倍。大運營商的網路節點,一般都比較多,不需要走太多遠路。
網路並不是一路暢通的
就像高速公路也會堵車一樣,網路也不可能是一路暢通的,有時候遇到了網路堵塞,那麼就需要排隊,這種情況在不同運營商網路之間更加明顯。俗話說得好,世界上最遙遠的距離,是我找到了你,而你是電信,我是聯通。相同運營商裡面,網路往往是比較發達的,但是不同運營商之間,交換的線路往往比較有限,可以想像,在兩條平行的高速公路中間,有一些泥濘的小路,如果你要從一個高速公路到另外一條路上,就要走這些泥濘的小路,這些路又小又不好走,所以常常需要排隊如長龍。這就像極了一個沙漏,儘管兩端非常大,但是中間的路徑太小,造成延遲非常的高。
服務機也是有壓力的
我們常常看到伺服器壓力大,讓我們去別的伺服器玩,因為伺服器並不是簡單地轉發數據,需要檢驗,鑒權,計算等等。所以,如果伺服器壓力太大,往往也需要排隊。
總結
綜上所述,造成玩遊戲卡的原因是非常多的,那麼怎麼加快速度呢。
- 減少物理距離,搬到伺服器近一點的地方打遊戲,我們常常看到上海的主播延遲會低一點,就是因為大部分主流的伺服器都在上海。
- 選擇大型一點的服務商,跟伺服器盡量在同一個運營商,減少在一些關鍵交換線路的成本。另外,要了解上行跟下行的帶寬,避免一隻腳走路。
今天的介紹我們就講到這裡,如果你有興趣,歡迎關注我,除了分享演算法相關的,最近主要會講一些redis的原理與應用。近期還準備了一些AI相關的知識,整理後會和大家繼續分享。大家的支持是我繼續嘮嗑的動力。同名公眾號(沙茶敏碎碎念)