在美國上中國國內網站速度為什麼這麼慢?
首先,我在美國國內的帶寬足夠,每秒實測1-2mb。
搜索引擎的答案無非是兩種,一是說我國出口總帶寬有限,二是說因為牆的原因。第一點答案我感覺不靠譜,泱泱天朝,即便出口總帶寬再有限,刷個網頁不應該這麼慢吧。並且我也特地試過,在安了unblock youku插件的情況下,一旦優酷的視頻載入出來了,就算看高清緩衝速度也是蹭蹭的。(覺得優酷就算在國外設了伺服器應該也不會緩存國內的電視劇資源)而unblock youku的原理應該對速度並無本質影響吧?至於第二點我就不了解了。哪位大神能夠系統分析下造成這個現象的原因,哪幾個主要因素導致了在國外上國內網站速度慢?是否牆是主要因素,能影響多少速度,有人用VPN什麼的專門測試過嗎?謝謝大家的回答,目前為止,意見主要在於:1、信號在光纖里進行長距離傳播造成的百毫秒級延遲。
2、優酷視頻緩衝快是因為美國這邊ISP有緩存。3、路由等設備轉發處理時間等因素(根據不同協議處理方式不同)我遇到這個問題主要是有時候要點開一些CSDN的網頁,然後速度慘不忍睹。我ping了一下CSDN的主頁,200多毫秒,但是打開CSDN首頁,3分鐘過去了,還沒完全載入出來,用chrome查看網路連接,主要是卡在一些比如百度網盟廣告的js文件等地方,而且CSDN圖片伺服器也ping不通(域名解析沒問題)。那麼為了使這個問題下的答案更有營養,我想修改一下提問方式:1、域名解析在打開網頁慢這事兒中是否基本不負主要責任?2、如果是因為網路擁塞排隊等原因造成連接速度慢,考慮到國內用戶也在訪問相同的網站,外國之所以特別慢,那真正卡的地方主要在於國際出口嗎,這也是最初的問題,不知道誰有一些具體的數據和過往例子可以分享?3、國內網站伺服器處理網路請求時,會對不同的國家區域進行優先順序劃分嗎?4、到底牆會不會過濾國外訪問國內的請求,有過因為牆的原因訪問不了國內網站的案例嗎?5、用國內的VPN理論上能解決訪問不了國內網站的情況吧?現在有這麼蛋疼的從外往內翻的服務嗎,都是為了什麼呢?(當然不會因為CSDN去做這麼蛋疼的事情,自從可以擁抱大google以後,並且還有sof, sf, cp, git等眾多地方,完全不需要CSDN,我就是這麼問一句而已)
距離光速都不是問題,問題的關鍵是在伺服器加過濾了,美國的訪問很可能要通過比較長時間的地址識別,慢是必然的,如果國內的網站不是給美國用戶服務的,就沒有人對這種訪問做優化。
因為光速是有限的,所以美國訪問中國的網站怎麼樣也至少要有兩百毫秒延遲,這是假設對方伺服器處理性能無限大、網路性能無限好的情況。
那麼能否請問各位大神,為何有些美國的購物網站,明明經過辨識在大陸是可以開、沒有封鎖的,但卻要等將近10分鐘才能刷一個網頁首頁,但同樣的網頁到了香港不出幾秒鐘時間就刷出來了?
(24 901 km) / (3 * (10^8) (m / s)) = 83.0033333 milliseconds
地球週長 / 光速 ≈ 83 毫秒架設電纜不可能走直線,另外光纖波導中信號傳播速度不是光速,一般按照200000km/s計算,跨太平洋的傳播時延大概就在百毫秒量級,這還僅僅是傳播時延,加上其他的傳輸時延、處理時延、排隊時延,如果一次http請求展示的頁面對象多的話更是雪上加霜。而且這還不算DNS問IP的過程。你的帶寬僅僅是你到你ISP的帶寬,某個東西1-2Mb的下載速度只能說明你的ISP拿你想要的這個東西簡單,但是你的ISP到大陸這邊拿東西難啊!這種級聯的鏈路寬度取決的就是最短的管道寬度。至於為毛看優酷視頻很快,首先視頻走的是UDP,不用可靠數據傳輸沒有擁塞控制,傳錯一點沒關係,網頁是TCP就不行了。其次你的ISP有可能有Cache,可能有個和你共用同一個ISP的人可能和你同時追同一部劇。還有就是正常情況下看不了視頻和牆關係不大,這是優酷土豆為了防止版權糾紛強行封鎖國外IP,你用的插件其實也是一種VPN,不懂unblock youku的機制,也許是僅僅是流媒體內容的請求被封鎖IP,單純上個網頁還是能讓你上的。
我知道我寫這些文字你估計也不太一定看得懂,我只用Mac,所以在這裡給你一個Mac的解決方法。
步驟非常簡單,不要問為什麼,如果問為什麼的話估計寫一篇論文都不夠篇幅。
下面言歸正傳打開終端輸入/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
回車,叮咣一頓裝,當然,其實根本沒多大點兒東西
然後再輸入以下字元,裝一些其他控制項brew install wget
回車
brew install dnsmasq
回車,接著裝
然後找到文件/etc/dnsmasq.conf別問我怎麼找,如果玩UNIX系統這個也不知道就別折騰這些了打開這個文件,鍵入no-resolv
no-poll
server=8.8.8.8
server=8.8.4.4
server=/cn/114.114.114.114
我這裡只選擇了域名包含cn的網站
你可以根據根據自己的需要把解析慢的網站地址都加進去然後整個世界都清靜了……在美國訪問國內的網站除了高延遲外,應該就沒有什麼非人為問題了。我試過用非常垃圾的美國VPS下載百度雲上的文件,能有1.8MB/s。但是家裡電信寬頻下載VPS上的文件,用迅雷也才能維持12kb/s左右。
國際帶寬接入的上傳和下載速度是一致的,分別在不同的光纖中傳輸。而國內互聯網資源匱乏,大量資源遍布世界各地,還有大量的p2p請求佔用了大量的國際帶寬(cl-1024一類的)。但是大陸通往國外的帶寬卻一直空閑,上傳文件可以達到帶寬極限(校園網上傳不限速上傳資源到我的日本VPS速度可到100Mbps,網路使用率99%)。
圈內流傳移動寬頻國際線路走香港hkix,帶寬充足。但是這是有個前提的,那就是移動完全使用的內網地址,連接數限制導致p2p完全無法使用,只能瀏覽網頁看在線視頻。所以雖然國際帶寬是電信的四分之一,聯通的二分之一,卻是三家中國際線路最穩定的(網路抖動大,丟包很少)。模式相近的長寬以及其他二級寬頻商由於資本薄弱,沒有能力單獨接入國際線路,所以國際流量還是傳輸到了電信/聯通/移動網路中。
綜上所述可以得出結論:帶寬瓶頸是訪問國外網站速度緩慢的主要原因。而且就國內互聯網使用現狀來看,這種現象短期內不會解決。
因為使用了國外的DNS而且這些網站沒有境外的鏡像網上也有很多解決方法 比如這個使用國外 DNS 造成國內網站訪問慢的解決方法
我覺得最主要的問題就在DNS.國內運營商的主幹線路窄,所以電信訪問聯用伺服器慢,聯通訪問電信伺服器慢。所以國內很多網站要先判斷你是聯通還是電信然後再返回相應IP。但是你在國外訪問,國內DNS沒法判斷你是電信還是聯通,給你隨便分配伺服器,這就導致奇慢無比。試著用dnsmasq在本地搭建DNS緩存伺服器,規定哪個域名訪問哪個伺服器。
路由器跳數多了?
補充:再加上國外路由器里 國內的地址所在路由表裡的位置比較慢(因為不常用)?(路由器由於成本原因,最常用的地址在最快的緩存里,其他的在較慢位置)PS:不是特別專業所以加了問號,還請各路大神指正很多中國網站沒有在離美國近的地方做鏡像。有些網站做了就很快,比如http://www.sina.com.cn,在美國中部做了鏡像,ping一下延遲才10ms左右。
推薦閱讀:
※互聯網+ 到底怎麼來加?
※公司被收購後,被收購公司的員工一般會有什麼遭遇?
※我的這個裝飾(家裝)行業O2O方案靠譜么?
※如何看待烏鎮互聯網醫院?
※開發哥哥們喜歡什麼聖誕節禮物?