cdn是幹嘛的(什麼是CDN)

還記得多年以前用iPhone 4、iPhone 4S的時候有多少使用者抱怨過App Store下載速度太慢了的事情嗎?究其原因其實是當時蘋果在國內沒有全面的CDN覆蓋,那麼什麼是CDN呢?

CDN,全稱內容分發網路(ContentDeliveryNetwork),你可以簡單地將其理解成一個離你很近的、可以從上面獲取到完整的原始資料的伺服器,它會定期和擁有原始內容的伺服器進行同步,保證使用者可以從上面獲取到最新的內容。

那麼為什麼CDN可以大幅提高下載速度呢?

首先在一般情況下,CDN伺服器要比原始內容伺服器更靠近使用者端,在網路距離上面變短了,連線到CDN伺服器要比連線到原始伺服器輕鬆,並且連線質量更好,比如說原本我們要連線的內容伺服器在國外,因為出口頻寬有限等原因,我們的連線質量很差、下載速度很慢,這時如果在國內有一臺擁有同樣內容的伺服器,我們就可以連線到這臺位於國內的伺服器上面,以更快的速度獲取內容。

圖片來自於Cloudflare

其次CDN提高了整體的頻寬,比如原先100個人連線到一臺頻寬為10Gbps的伺服器上面進行下載,平均每個使用者只能分到0.1Gbps的頻寬,速度太慢了;而在使用CDN之後,原先一臺伺服器變成了多臺擁有相同內容的伺服器,使用者被分散到不同的伺服器上面去進行下載,平均每個使用者能夠分到的頻寬就會得到明顯的提高。

如果還不能夠理解什麼是CDN的話,這裡再用一個與網路無關的例子來說明:有兩家除了位置其他完全一致的全家,一家比你住所要近,另一家要遠,那麼你會選擇去哪一家?答案非常明顯,正常人都會跑去近的,而CDN伺服器就是離你近的那家全家。

隨著網際網路的發展,幾乎所有內容提供方,不管是做網站的還是做遊戲、軟體的,都會涉及到CDN技術,它可以有效提升我們上網衝浪的體驗,最明顯的可能就是我們現在去App Store更新應用再也不會喊卡了,因為蘋果在國內部署了非常全面的CDN。