?💓個人主頁:mooridy
💓專欄地址:《計算機網絡:自頂向下方法》 大綱式閱讀筆記_mooridy的博客-CSDN博客💓本博客內容為《計算機網絡:自頂向下方法》第二章應用層第五、六節知識梳理
關注我🌹,和我一起學習更多計算機的知識~
🔝🔝🔝
?
目錄
P2P 文件分發
P2P 體系與客戶 - 服務器體系對比
BitTorrent
BitTorrent 最重要的機制:
兩個問題?
請求哪些塊?
響應哪個請求?
視頻流和內容分發網
Internet Video
HTTP 流 和 DASH
HTTP 流
動態適應性流 (Dynamic Adaptive Streaming over HTTP, DASH)
內容分發網 (Content Distribution Network, CDN)
P2P 文件分發
P2P 體系與客戶 - 服務器體系對比
P2P 體系結構最小分發時間總是小于客戶 - 服務器體系結構。
BitTorrent
到 2016 年止,最為流行的 P2P 文件分發協議是 BitTorrent。
- 洪流 (torrent):參與一個特定文件分發的所有對等方的集合。
- 在一個洪流中的對等方彼此下載等長度的文件塊 (chunk),典型的長度為 256KB。
- 當一個對等方首次加入一個洪流時,他沒有塊。隨著時間流逝,它累積了越來越多的塊。當它下載塊時,也為其它對等方上載了多個塊。一旦某個對等方獲得了整個文件,他也許會自私地離開,也許會無私地留在洪流中向其它對等方上載塊。
BitTorrent 最重要的機制:
- 每個洪流具有一個基礎設施節點,稱為追蹤器 (tracker)。當一個對等方加入某個洪流時,它向追蹤器注冊自己,并周期性地通知追蹤器它仍在該洪流中。
- 當一個新的對等方 A 加入洪流時,追蹤器會隨機地從參與對等方的集合中選擇對等方的一個子集,并將這些對等方的 IP 地址發送給 A。
- A 試圖與該 IP 地址列表上所有的對等方創建并行的 TCP 連接。我們稱所有與 A 創建 TCP 連接的對等方為鄰近對等方,鄰近對等方會隨著時間而變化。
- 任意時刻,每個對等方將具有該文件的塊的子集,并且不同對等方具有不同的子集。A 周期性地詢問每個鄰近對等方它們所具有的塊列表。有了這些信息,A 將對當前還沒有的塊發出請求。
兩個問題?
請求哪些塊?
最稀缺優先 (rarest first):針對她沒有的塊,最稀缺塊是指那些在她鄰居中副本數量最少的塊,她會優先請求那些最稀缺塊。目的是均衡每個塊在洪流中的副本數量。
響應哪個請求?
對換算法:A 根據當前能夠以最高速率向她提供數據的鄰居,給出其優先權。以最高速率流入的 4 個鄰居,被稱為疏通 (unchoked)。每過 30 秒,她要隨機選擇另一個鄰居 B,并向其發送塊。因為 A 正在向 B 發送數據,她可能成為 B 前 4 位上載者之一。這樣,B 將開始向 A 發送數據,如果 B 發送速率夠高,B 也將成為 A 的前 4 位上載者。換而言之,每過 30 秒 A 將隨機地選擇一名新的對換伴侶,并與其對換。如果這兩個對等方都滿足彼此,它們將對方放入前 4 位列表中,并繼續與對方對換,直到它們發現更好的伴侶為止。
視頻流和內容分發網
Internet Video
- 視頻的一個重要特征是它能夠被壓縮,因此可以用比特率來衡量視頻質量。
- 比特率越高,圖像質量越好。
HTTP 流 和 DASH
HTTP 流
- 在 HTTP 流中,視頻只是存儲在 HTTP 服務器中的一個普通文件,有特定的 URL。用戶通過 HTTP 請求獲取視頻文件,視頻的字節被收集在客戶應用緩存中。一旦該緩存中的字節數量超過預先設定的門限,用戶應用程序就開始播放。同時,應用程序周期性地從緩存中抓取幀,解壓并展現。
- HTTP 流有一個嚴重缺陷:所有客戶收到相同編碼的視頻。(單一畫質)
動態適應性流 (Dynamic Adaptive Streaming over HTTP, DASH)
- DASH 功能:在 DASH 中,視頻編碼為幾個不同版本,其中每個版本具有不同的比特率。客戶動態地請求來自不同版本且長度為幾秒地視頻段數據塊。
- DASH 實現:HTTP 服務器上會有一個告示文件 (manifest file),為每個版本提供一個 URL 及其比特率。客戶先請求告示文件,然后再通過 HTTP GET 請求報文中指定 URL 和字節范圍,一次選擇一個塊。在下載的同時,用戶也測量接收帶寬并運行一個速率決定算法來選擇下次請求的塊。
內容分發網 (Content Distribution Network, CDN)
是一個構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。(說簡單點,CDN 就是緩存。)
- CDN 可以是專用 CDN,即由內容提供商自己所擁有;也可以是第三方 CDN。
- CDN 通常采用兩種不同的服務器安置原則:
- 深入 (Enter Deep):該原則通過在全球的接入 ISP 中部署服務器集群來深入到 ISP 的接入網中。但因為這種高分布式設計,維護和管理集群成為一大問題。其目標是靠近端用戶,通過減少端用戶和 CDN 集群之間(內容從這里收到)鏈路和路由器的數量,從而改善了用戶感受的時延和吞吐量。
- 邀請做客 (Bring Home):通過在少量關鍵位置建造大集群,以此邀請 ISP 來做客。被許多 CDN 公司所采用。邀請做客設計通常產生較低的維護和管理開銷,可能以對端用戶的較高時延和較低吞吐量為代價。