網路信號是以光速傳播的,為什麼伺服器的地理位置還那麼重要?
經常看到一些網站為了使某地區的網路服務速度更快,而在該地架設伺服器,光速那麼快,這點距離應該影響不到的吧?
0. 首先網路信號不是以(真空中的)光速傳播的
1. TCP-3 海底光纜全長 13300 公里, 以光速傳播, 算上來回, 需要 100 毫秒左右
2. 這是純理想化的, 光纖中不是真空, 以比較理想的階躍型介質光纖為例, 單模傳輸時等效折射率按 1.5 (當然實際這個數值可以有優化), 不考慮色散, 那光速就是原來的 2/3, 延遲這下就到了 150 毫秒
3. 最後最重要的是經過多層路由器, 交換機, 還有不適合討論的政治內容 以及不適合討論的政治內容 以及 不適合討論的政治內容 (目前不知道 不適合討論的政治內容 的實體, 猜測是附在主幹線上, 多分布於東部), 轉發, 相當耗時.
4. 這樣, 考慮到實際中的複雜情況 (增加延遲), 和各種神奇的技術優化(減少延遲) 中美延遲極限值視地區可能在 150~200 ms 之間.
5. 玩遊戲的話, 以標準的流暢度而言, 60fps, 也就是一幀 16 ms, 這樣你和別人的差距可能就到了十幾甚至幾十幀.
6. 網頁的話, Google 的推薦是, 對於一般網頁, 完全不影響用戶體驗的載入速度是在 0.1s 也就是 100ms 內載入完, 載入不完的 js 等資源應在 body 後非同步載入.
7. 以我們現在訪問的 不適合討論的政治內容 為例, 原來在 linode, linode 其實在日本有節點, 但為了提升用戶體驗(笑), 不適合討論的政治內容 應該是搬遷到了天津的自建機房. 延遲很低.
然而並沒有什麼卵用.從美國到中國,一來一回就算是光速也要數百毫秒,如果是玩CS這種延遲敏感的fps遊戲,別人把你爆頭了你還要等半秒才能反應過來呢。。
如果你在X市市區道路無障礙不違章的情況下能到60KM/H,那是不是表示你在市區走上一小時,里程錶就剛好增加60公里呢?如果剛好碰上紅燈呢?你在馬路上碰到紅燈只需停車就可以,在路由器里如果車龍太長,直接把你連人帶車都扔了不要不服。。。
衡量網路質量的三個指標:帶寬、延遲、丟包率,缺一不可。題主問的是只考慮了延遲,延遲這東西,每過一個路由器就要增加一些,不僅僅是光速那麼簡單。把伺服器放近一點,不是為了地理上更近,而是為了路由上更近。同時更近的路由通常也有更好的帶寬和更好的丟包率。為啥恰好是地理上更近呢?因為路由器通常都是連接地理上更近的其他路由器,僅此而已。
全世界那麼多人同時上網,光一個 HTTP 就以光速來回發了五個車次,你算算這路大概得幾車道?
另外每個國家的國際出口就更窄了,差不多類似高速的出入口。奧,對了,所有出入境的數據包們還得一個一個通過 (DSB) 方濱興及其黨羽的安檢設備,接受全裸檢查哦!穿衣服脫衣服也費時間。
你下班堵在路上的時候,你聊天發送的數據包可能也正堵在你腳下的井蓋里。因為距離越遠中間經過的路由、交換機、防火牆什麼的就越多,轉發、拆包處理的次數就越多,遭遇阻塞什麼的可能性就越大,這些設備是延遲的主要原因。要是全世界的電腦都是全連接的話地理位置就不那麼重要了,到時候限制下載速度的就是硬碟和匯流排了。
單依延遲而論,除開路由,等設備轉發,還有傳輸設備對於信號的中繼或者傳輸。在長途傳輸時,光本身因為波粒二象性,是有光衰的。具體公式了參考光纖通信等教材。所以需要信號中繼轉發。傳輸設備對於路由器等設備來說相當於是一條條鐵路,信號相當於火車。但是對於數通設備來說是透明的,只提供傳輸通道而已。傳輸網的性能高低,也是一個影響因數。試想,我們從北京放一根光纜到紐約,假如這根光纜是一根完整的光纜,中間沒有放大設備來中繼,光信號已經不能完整的從北京到紐約了。(本來想好好回答這個問題,發現以前學到的知識忘了乾乾淨淨了←_←
時延主要產生於交換機轉發。計算機網路第一章應該會講。
1.線路可能會很長,比如半個赤道的長度就在10^7 m的數量級上。信息傳輸需要往返,甚至可能多次往返以確保信息無誤等,這時可能延遲會達到數百甚至上千ms。而上述是只走線纜的情況,如果有中繼設備(幾乎是肯定有的),延遲也會更高。對於延遲敏感度高的服務比如在線遊戲等無疑很致命。
2.線路太長增加線路問題發生的風險,對於一些不易維護的線路能不走就盡量不走。這時把伺服器直接放在目標服務區域能有效降低這一風險。是為了保證服務的穩定。
3.長距離通信時,所需要的帶寬越高、路程越遠,架設線路的投入越高。所以如果是想保證足夠的帶寬,將伺服器扔在目標地區也可以降低網路接入的費用。順便一提我的科幻設想:未來的人類利用蟲洞技術玩網遊,跨星系伺服器!正如現在的我們用超越NASA登月的計算能力發射小鳥去砸豬。
就算沒有轉發設備,那對於中國用戶來說,伺服器在美國和在中國大陸,那光速產生的延遲都是差別相當大的,更別說有轉發設備了。各種路由器交換機。。。更直接理解,在網線上,信號是串列傳輸的,你的包得排隊吧。分塊服務,能降低網路壓力,也減少包所需要通過的設備,當然距離也的確減小了
延遲只是網路狀況的一個指標.而且一般而言並不是重要的指標[我不玩遊戲ww
推薦閱讀:
※有哪些輕量級web伺服器?
※c語言編寫一個linux下的類似於qq聊天軟體的伺服器 ?
※長期開機的機器是怎麼會那麼耐用的?
※浪潮公司為什麼是從濟南發展起來的?
※使用Erlang實現http server是否更有優勢?