自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文帶你弄懂 CDN 的技術(shù)原理!

網(wǎng)絡(luò) 通信技術(shù)
網(wǎng)站服務(wù)器通過公網(wǎng)出口,再通過長途骨干網(wǎng),最后通過用戶的寬帶廣貓到達用戶所在的局域網(wǎng),最終才到達用戶電腦的瀏覽器。

大家好,我是樹哥!

對于 CDN 這個東西,相信大家都有耳聞,感覺既陌生但又熟悉。最近深入了解了一下 CDN,這才發(fā)現(xiàn)原來它如此重要!今天就跟大家分享下關(guān)于 CDN 的那些事兒。

瀏覽器的網(wǎng)絡(luò)請求

要理解 CDN 這件事情,我們就得先理解瀏覽器發(fā)出一個請求的過程是怎樣的,其整體過程如下圖所示。

圖片

瀏覽器網(wǎng)絡(luò)請求過程

  • 用戶在瀏覽器中輸入要訪問的網(wǎng)址域名。
  • 瀏覽器向本地 DNS 服務(wù)器請求對域名的解析。
  • 如果本地 DNS 服務(wù)器有域名的解析結(jié)果,那么直接響應(yīng)用戶請求,返回該域名對應(yīng)的 IP 地址。
  • 如果本地 DNS 服務(wù)器沒有域名的解析結(jié)果,那么則會遞歸地向 DNS 系統(tǒng)請求解析,隨后將該結(jié)果返回給用戶。
  • 瀏覽器得到域名解析結(jié)果后,其實也就是域名對應(yīng)的 IP 地址。
  • 隨后瀏覽器向服務(wù)器請求內(nèi)容。
  • 服務(wù)器將用戶請求內(nèi)容返回給瀏覽器。

通過這么復(fù)雜的步驟,用戶就可以看到頁面內(nèi)容了。但實際上,在第 6、7 這兩步的時候,其中間也經(jīng)過了非常復(fù)雜的過程。為了更清晰地表述,我們可以將這個過程分為 3 個主要節(jié)點,如下圖所示。

圖片

服務(wù)器數(shù)據(jù)傳輸過程

網(wǎng)站服務(wù)器通過公網(wǎng)出口,再通過長途骨干網(wǎng),最后通過用戶的寬帶廣貓到達用戶所在的局域網(wǎng),最終才到達用戶電腦的瀏覽器。

其中長途骨干網(wǎng)的傳輸是最為耗時的,它需要經(jīng)過網(wǎng)站服務(wù)器所在的機房、骨干網(wǎng)、用戶所在城域網(wǎng)、用戶所在接入網(wǎng)等,其物理傳輸距離非常遙遠。 

在這種情況下,如果傳輸?shù)臄?shù)據(jù)非常多,訪問的用戶特別大,那么就會出現(xiàn)很長的延時,影響用戶體驗。同時,每請求一次數(shù)據(jù)都需要經(jīng)過漫長的數(shù)據(jù)傳輸,對于長途骨干網(wǎng)來說,都是一次負擔(dān)。

剛剛說的這個場景,很形象的一個例子是春節(jié)搶票的場景。當(dāng)我們春節(jié)搶票時,我們都會登陸 12306 網(wǎng)站,網(wǎng)站上肯定有不少圖片資源。這時候可能同時會有 1 個億的人,同時去請求一張一模一樣的圖片。

這時候如果我們都按照上面的過程去請求一次圖片數(shù)據(jù),那么將會產(chǎn)生 1 億次的網(wǎng)絡(luò)數(shù)據(jù)傳輸,這對于我們整個國家的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施是個災(zāi)難??!

但事實情況是:12306 貌似也沒有掛掉呀!

那么他們是如何解決這個問題呢?答案就是:CDN!

什么是 CDN ?

其實 CDN 就是內(nèi)容分發(fā)網(wǎng)絡(luò)的意思,其英文全稱為 Content Delivery Network。簡單地說,CDN 可以提前把數(shù)據(jù)存在離用戶最近的數(shù)據(jù)節(jié)點,從而避免長途跋涉經(jīng)過長途骨干網(wǎng),最終達到減少骨干網(wǎng)負擔(dān)、提高訪問速度的目的。 

按照我們上面的場景,如果沒有 CDN 的話,每次請求都需要從網(wǎng)站服務(wù)器經(jīng)過公網(wǎng)出口、長途骨干網(wǎng)、用戶接入局域網(wǎng),最終到達瀏覽器。但是當(dāng)有了 CDN 之后,可能就變成了下面這樣:

圖片

CDN 緩存服務(wù)器

瀏覽器請求圖片數(shù)據(jù)時,會先去 CDN 緩存服務(wù)器獲取。如果獲取到數(shù)據(jù),那么就直接返回。否則才會經(jīng)過長途骨干網(wǎng),最終到達網(wǎng)站服務(wù)器獲取圖片數(shù)據(jù)。那么只要我們提前在 CDN 緩存服務(wù)器上傳圖片,那么我們就可以極大地減少網(wǎng)絡(luò)流量,同時減少網(wǎng)絡(luò)延遲。

從上圖我們可能會覺得:這不就是在長途骨干網(wǎng)和用戶局域網(wǎng)中間,加了一個服務(wù)器嘛。但事實上可并不是這樣,CDN 其實還縮短了請求數(shù)據(jù)的距離。

我們知道用戶所處的位置可能是全國各地,為了盡可能地減少網(wǎng)絡(luò)傳輸?shù)难訒r,一般都會在離用戶較近的地方設(shè)置 CDN 緩存服務(wù)器,例如:在華南、華北、華東、西南設(shè)置一個主 CDN 服務(wù)器,這樣各個地區(qū)的用戶就可以直接請求對應(yīng)的 CDN 服務(wù)器,而不需要來回跑大半個中國,極大地提高了效率!

因此,當(dāng)我們說內(nèi)容分發(fā)網(wǎng)絡(luò)的時候,腦海里應(yīng)該有如下這樣一張圖片:遍布全國各地的 CDN 緩存服務(wù)器,組成了我們的內(nèi)容分發(fā)網(wǎng)絡(luò)。每次用戶請求都會到離他最近的 CDN 服務(wù)器請求數(shù)據(jù),從而極大地提高訪問速度。

CDN 工作原理

到了這里,相信大家都知道 CDN 是什么了。但實際上 CDN 是如何與 DNS 結(jié)合起來的,這里面還是有點復(fù)雜的。加入了 CDN 之后,瀏覽器的網(wǎng)絡(luò)請求就變成如下圖所示的情況。

圖片

CDN 基本工作過程

  • 瀏覽器發(fā)起圖片 URL 請求,經(jīng)過本地 DNS 解析,會將域名解析權(quán)交給域名 CNAME 指向的 CDN 專用 DNS 服務(wù)器。
  • CDN 的 DNS 服務(wù)器將 CDN 的全局負載均衡設(shè)備 IP 地址返回給瀏覽器。
  • 瀏覽器向 CDN 全局負載均衡設(shè)備發(fā)起 URL 請求。
  • CDN 全局負載均衡設(shè)備根據(jù)用戶 IP 地址,以及用戶請求的 URL,選擇一臺用戶所屬區(qū)域的區(qū)域負載均衡設(shè)備,向其發(fā)起請求。
  • 區(qū)域負載均衡設(shè)備會為用戶選擇最合適的 CDN 緩存服務(wù)器(考慮的依據(jù)包括:服務(wù)器負載情況,距離用戶的距離等),并返回給全局負載均衡設(shè)備。
  • 全局負載均衡設(shè)備將選中的 CDN 緩存服務(wù)器 IP 地址返回給用戶。
  • 用戶向 CDN 緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,最終將用戶所需要偶的內(nèi)容返回給瀏覽器。

使用 CDN 服務(wù)的網(wǎng)站,只需要將域名解析權(quán)交給 CDN 服務(wù)商,接著將需要分發(fā)的內(nèi)容上傳到 CDN,就可以實現(xiàn)內(nèi)容加速了!

總結(jié)

這么看下來,其實 CDN 內(nèi)容分發(fā)網(wǎng)絡(luò),本質(zhì)上就是一大堆遍布在全球各個角落的緩存服務(wù)器。通過與 DNS 的配合,找到最靠近用戶的一臺 CDN 緩存服務(wù)器,然后把數(shù)據(jù)快速地分發(fā)給用戶。

通過 CDN 技術(shù),我們不僅減少了對于整體骨干網(wǎng)的流量負擔(dān),還提高了用戶的體驗,真是一舉兩得??!

責(zé)任編輯:武曉燕 來源: 樹哥聊編程
相關(guān)推薦

2023-04-04 08:01:47

2023-03-30 08:52:40

DartFlutter

2023-03-27 17:58:34

MySQL加鎖間隙鎖

2023-09-18 08:02:45

CSS布局屬性

2023-10-26 16:27:50

前端 WebCSS開發(fā)

2023-12-12 07:31:51

Executors工具開發(fā)者

2022-09-05 09:25:53

KubernetesService

2021-06-02 05:43:36

比特幣虛擬貨幣區(qū)塊鏈

2024-10-16 10:11:52

2022-09-09 10:00:13

KubernetesConfigMap

2018-10-22 12:50:20

CDN網(wǎng)絡(luò)內(nèi)容發(fā)布網(wǎng)絡(luò)

2023-03-06 21:29:41

mmap技術(shù)操作系統(tǒng)

2022-08-09 09:10:43

Kubernetes容器

2023-11-28 09:31:55

MySQL算法

2019-01-07 12:40:19

2022-05-11 07:38:45

SpringWebFlux

2024-05-09 10:11:30

2022-09-01 08:01:56

Pythongunicorn

2020-03-18 13:40:03

Spring事數(shù)據(jù)庫代碼

2022-12-20 07:39:46

點贊
收藏

51CTO技術(shù)棧公眾號