在美國上中國國內網站速度為什麼這麼慢?

首先,我在美國國內的帶寬足夠,每秒實測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方案靠譜么?
如何看待烏鎮互聯網醫院?
開發哥哥們喜歡什麼聖誕節禮物?

TAG:中國互聯網 | 互聯網 |