cdn是一種提高使用者訪問速度的技術。解決網路擁塞問題。
在一次網路請求中,cdn究竟做了哪些事?
在瀏覽器中輸入乙個**,dns伺服器會將網域名稱的解析權交給cname指向的cdn專用的dns伺服器,接著專用的dns伺服器返回cdn負載均衡集群的ip位址。
負載均衡裝置根據設定好的策略來選擇相應的cdn快取伺服器,並返回ip位址。最後客戶端對快取伺服器發起請求,快取伺服器響應使用者請求,返回相應內容。
如果這台伺服器沒有命中,那麼它將會請求它的上一級快取伺服器。直到追溯至源站伺服器,將內容拉至本地。
前端效能優化:
減少http請求
使用cdn
壓縮檔案
如果沒有cdn,假如蘇州使用者訪問某一**,而這個**的伺服器在北京。通常認為,使用者距離伺服器越遠,中間間隔的節點越多,網路延時越嚴重。
使用ping命令會發現,rtt(往返時延)是35ms,於是我們使用https協議,https協議建立連線需要七次握手,建立連線的時候已經使用了100ms。
現在,我們在南京也設立了一台伺服器,此時的rtt縮短為8ms,https建立連線的時間也縮短為30ms。
***的服務商也在做類似的事情,首先,服務商會在很多城市設立機房。
現在,當蘇州使用者訪問**的時候,使用者電腦的作業系統會先向dns伺服器查詢網域名稱所對應的ip,dns伺服器接收到查詢請求之後,可以獲取到請求者粗略的物理位置,就會返回所有伺服器中,距離使用者最近的cdn節點伺服器的ip,例如南京機房的ip。這樣使用者開啟網頁的速度就變快了。
現在,請求到達了cdn南京節點的伺服器,我們通常不會直接操作cdn節點來直接管理檔案,cdn更像是乙個檔案快取系統,如果cdn中有使用者訪問的檔案快取,則直接使用快取檔案並返回。否則,試圖獲取最新資料,建立快取,然後再返回。
但是,涉及到快取就一定要考慮快取更新的問題,現在cdn節點上的檔案過期時間還沒到,而因為某些原因,我們更新了源伺服器上的檔案。
請求過來,cdn返回的是過期檔案,為了解決這一問題,大多***運營服務商都會支援清除所有節點上符合特定規則的快取,節點上的快取檔案被清除後,當有新的請求進來,這時cdn節點伺服器又會去載入新的檔案,快取更新成功。
除了減少響應時間外,cdn還能減少源伺服器的請求壓力。
當使用者訪問量很高的時候,如果沒有cdn,那所有的請求都會直接打到源伺服器上,增加了伺服器自身的寬頻壓力。
有了cdn之後,靜態資源的請求壓力被cdn分擔,所以到源伺服器上的壓力就會小很多。
借用阿里雲官網的例子,來簡單介紹cdn的工作原理。假設通過cdn加速的網域名稱為www.a.com,接入cdn網路,開始使用加速服務後,當終端使用者(北京)發起http請求時,處理流程如下:當終端使用者(北京)向www.a.com下的指定資源發起請求時,首先向ldns(本地dns)發起網域名稱解析請求。ldns檢查快取中是否有www.a.com的ip位址記錄。如果有,則直接返回給終端使用者;如果沒有,則向授權dns查詢。當授權dns解析www.a.com時,返回網域名稱cname www.a.tbcdn.com對應ip位址。網域名稱解析請求傳送至阿里雲dns排程系統,並為請求分配最佳節點ip位址。ldns獲取dns返回的解析ip位址。使用者獲取解析ip位址。使用者向獲取的ip位址發起對該資源的訪問請求。如果該ip位址對應的節點已快取該資源,則會將資料直接返回給使用者,例如,圖中步驟7和8,請求結束。如果該ip位址對應的節點未快取該資源,則節點向源站發起對該資源的請求。獲取資源後,結合使用者自定義配置的快取策略,將資源快取至節點,例如,圖中的北京節點,並返回給使用者,請求結束。從這個例子可以了解到:(1)cdn的加速資源是跟網域名稱繫結的。(2)通過網域名稱訪問資源,首先是通過dns分查詢離使用者最近的cdn節點(邊緣伺服器)的ip(3)通過ip訪問實際資源時,如果cdn上並沒有快取資源,則會到源站請求資源,並快取到cdn節點上,這樣,使用者下一次訪問時,該cdn節點就會有對應資源的快取了。
CDN 內容分發網路
一 何為cdn?cdn的全稱是content delivery network,即內容分發網路。其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快 更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠實時地...
CDN內容分發網路
cdn的全稱是content delivery network,即內容分發網路。其基本思路是盡可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快 更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧型虛擬網路,cdn系統能夠實時地根據網路流量和各...
內容分發網路(CDN)
cdn 的全稱是 content delivery network 也就是內容分發網路。目的是從技術上來提高使用者訪問 的響應速度,解決internet網路擁塞狀況,是使用者訪問不至於受限於網路寬頻小,使用者訪問量大 應用網點分布不均等問題的影響。原理 在現有的internet中增加一層新的網路架構...