CDN含義與DNS的聯絡

1718553521發表於2023-03-28

一、CDN的含義


CDN也可以稱為內容分發網路。CDN利用了多地部署快取節點,再有中心智慧排程、分發這一手法來降低網路延遲,提高網站訪問速度。簡單來講CDN就是用來加速的,但跟我們的加速器不同,它是端對端的一個加速。主要目的在加快使用者訪問速度,減輕寬頻壓力。


打個比方,假設我們人在廣東,想要訪問一個源站在北京的網站,是不是就可能會出現訪問較慢的情況,但如果部署了CDN,在廣東就有快取節點,那使用者的訪問速度一下就上來了,是不是使用者留存率也高了,客戶轉化率也同步上升了。

二、如何理解DNS


我們平常上網訪問網站,我們的計算機是不能夠直接識別網站的域名的,需要依靠DNS伺服器把域名轉譯成ip地址,我們的計算機才能夠訪問我們的域名,這其中的環節比較複雜,DNS伺服器在裡面就是佔主要作用。


當我們向DNS伺服器發起域名解析請求時,DNS伺服器首先會檢測本地是否存在快取,如果有,則直接返回IP地址,如果沒有,則會以遞迴形式層層訪問直至IP返回。


例如,我們要訪問,首先我們會先向全球的根伺服器發起請求,詢問cn域名的地址,然後再向負責cn域名的名稱伺服器傳送請求,找到jiandun.cn,這樣層層遞迴,最終找到我們需要的IP地址。


三、CDN和DNS的區別


上面我們說到CDN實際是讓我們使用者能夠就近訪問這樣一個功能,但現在我們要解決的是如何才能知道使用者是就近訪問呢,這就需要DNS配合了。


我們在平常使用DNS服務時,可以根據使用者使用的遞迴伺服器進行簡單的定位,是哪個地方的遞迴伺服器,CDN系統就理應把他理解為這個地區的使用者。然後排程到該地區附近的快取節點。


但也會存在使用者實際IP跟遞迴伺服器並不一致,中間如果存在運營商中轉的情況,那麼這次分配將會是一次錯誤的排程。


四、HTTP排程


針對上面的問題我們還有一種排程方式——HTTP排程。


當我們的使用者訪問伺服器時,可以先分析使用者的IP地址,然後伺服器給使用者做一個302重定向,將離使用者最近的伺服器快取好,使用者再次訪問時就是最適合的節點了。


這種定位更準確,但因為中間存在了多一次請求跟返回,所以會比DNS排程延遲高一些。


實際運用我們是兩者同時利用起來,HTTP排程主要是來確定使用者定位的。


五、快取的兩種方式


大家可能很好奇,既然節點能夠快取資源,那麼節點的資源如何更新呢?


第一種方法是,伺服器主動請求,CDN節點被動接受。第二種是使用者發現請求的資源並不存在了,CDN節點主動放棄客戶請求,更新快取,相當於CDN節點被動快取。


第一種方法很容易出現404錯誤,所以大多CDN使用的都是第二種方法。


六、CDN工作流程


當使用者請求一個檔案時,CDN的工作過程如下:


1.DNS請求當地local DNS


2.當地local DNS遞迴地查詢伺服器的gslb


3.伺服器根據local DNS 分配最適合的節點,返回IP


4.使用者獲得最適合的接入IP,訪問最適合的節點。


5.如果該節點沒有使用者想要獲取的內容,則透過內部路由訪問上一節點,直到找到檔案或到達源站為止。


6.CDN節點快取該資料,下次請求該檔案可以直接返回。


瞭解了CDN與DNS的種種聯絡,相信大家對網站加速也有了初步認識,那麼我們運維人員在平時的維護工作中該如何選擇適合自己網站的CDN呢?像我們熟知的大廠阿里雲、cloud.tencent.com騰訊雲,這些對我們運維人員是否友好,如果預算不夠,是否應該嘗試一些劍盾雲、白山雲之類的中小廠呢?大家可以自行探索有好的CDN可以互相推薦使用。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69998889/viewspace-2942121/,如需轉載,請註明出處,否則將追究法律責任。

相關文章