計算機網絡應用層(5)-- P2P文件分發視頻流和內容分發網

?💓個人主頁: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 公司所采用。邀請做客設計通常產生較低的維護和管理開銷,可能以對端用戶的較高時延和較低吞吐量為代價。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77916.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

十二種存儲器綜合對比——《器件手冊--存儲器》

存儲器 名稱 特點 用途 EEPROM 可電擦除可編程只讀存儲器,支持按字節擦除和寫入操作,具有非易失性,斷電后數據不丟失。 常用于存儲少量需要頻繁更新的數據,如設備配置參數、用戶設置等。 NOR FLASH 支持按字節隨機訪問&…

第十六屆藍橋杯 2025 C/C++組 旗幟

目錄 題目: 題目描述: 題目鏈接: 思路: 思路詳解: 代碼: 代碼詳解: 題目: 題目描述: 題目鏈接: P12340 [藍橋杯 2025 省 AB/Python B 第二場] 旗幟 -…

比亞迪再獲國際雙獎 以“技術為王”書寫中國汽車出海新篇章

近日,全球汽車行業權威獎項“2025世界汽車大獎”(World Car Awards)在紐約國際車展舉行頒獎典禮,比亞迪海鷗(BYD SEAGULL/BYD DOLPHIN MINI)摘得“2025世界城市車(World Urban Car)”…

人工智能數學基礎(五):概率論

概率論是人工智能中處理不確定性的核心工具,它為機器學習、數據科學和統計分析提供了理論基礎。本文將深入淺出地介紹概率論的重要概念,并結合 Python 實例,幫助讀者更好地理解和應用這些知識。資源綁定附上完整資源供讀者參考學習&#xff0…

MCP協議:自然語言與結構化數據的雙向橋梁 ——基于JSON-RPC 2.0的標準化實踐

MCP協議:自然語言與結構化數據的雙向橋梁 ——基于JSON-RPC 2.0的標準化實踐 一、MCP的本質:標準化共識的協議框架 MCP(Model Context Protocol)是Anthropic于2024年提出的開放通信協議,其核心價值在于建立自然語言…

vue+django農產品價格預測和推薦可視化系統[帶知識圖譜]

文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站,有好處! ?編號:D010 vue django 前后端分離架構搭建的系統帶有推薦算法、價格預測、可視化、知識圖譜數據從爬蟲獲取可以更新到最…

verilog_testbench技巧

forever語句 forever begin state; end 一直執行state repeat(n) begin state; end 執行state,n次 force語句對雙向端口進行輸入賦值。 與wait 是邊沿觸發,wait是電平觸發 仿真控制語句與系統任務描述 $stop停止仿真…

實時時鐘(RTC)從原理到實戰

1. RTC技術深度解析 1.1 RTC核心概念 實時時鐘(Real-Time Clock,RTC)是嵌入式系統中獨立于主處理器的特殊計時電路,其核心功能在于提供持續可靠的時間基準。與CPU時鐘不同,RTC具有以下關鍵特性: 獨立供電…

pyspark將hive數據寫入Excel文件中

不多解釋直接上代碼,少python包的自己直接下載 #!/usr/bin/env python # -*- encoding: utf-8 -*- from pyspark.sql import SparkSession import pandas as pd import os# 初始化 SparkSession 并啟用 Hive 支持 spark SparkSession.builder \.appName("sel…

Stack--Queue 棧和隊列

一、Stack--棧 1.1 什么是棧? 堆棧是一種容器適配器,專門設計用于在 LIFO 上下文(后進先出)中運行,其中元素僅從容器的一端插入和提取。 第一個模版參數T:元素的類型;第二個模版參數Container…

用Python做有趣的AI項目1:用 TensorFlow 實現圖像分類(識別貓、狗、汽車等)

項目目標 通過構建卷積神經網絡(CNN),讓模型學會識別圖片中是什么物體。我們將使用 CIFAR-10 數據集,它包含 10 類:飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、船和卡車。 🛠? 開發環境與依賴 安裝依賴&…

3D可視化編輯器模版

體驗地址:http://mute.turntip.cn 整個搭建平臺核心模塊包含如下幾個部分: 3D場景渲染 組件拖拽系統 元素編輯功能 狀態管理 歷史記錄與撤銷/重做 技術棧 前端框架與庫 React 18 用于構建用戶界面的JavaScript庫 Next.js 14 React框架,提供服…

“連接世界的橋梁:深入理解計算機網絡應用層”

一、引言 當你瀏覽網頁、發送郵件、聊天或觀看視頻時,這一切都離不開計算機網絡中的應用層(Application Layer)。 應用層是網絡協議棧的最頂層,直接為用戶的各種應用程序提供服務。它為用戶進程之間建立通信橋梁,屏蔽了…

JavaScript 代碼搜索框

1. 概述與需求分析 功能&#xff1a;在網頁中實時搜索用戶代碼、關鍵字&#xff1b;展示匹配行、文件名&#xff1b;支持高亮、正則、模糊匹配。非功能&#xff1a;大文件集&#xff08;幾十萬行&#xff09;、高并發、響應 <100ms&#xff1b;支持增量索引和熱更新。 2. …

【運維】Ubuntu apt 更新失敗?Temporary failure resolving ‘cn.archive.ubuntu.com‘ 問題

Ubuntu apt 更新失敗&#xff1f;Temporary failure resolving ‘cn.archive.ubuntu.com’ 問題 在使用 Ubuntu 時&#xff0c;你是否遇到過這樣一個煩人的錯誤&#xff1a; Temporary failure resolving ‘cn.archive.ubuntu.com’ 如果你也踩坑了&#xff0c;別慌&#xff0…

Uniapp:showLoading(等待加載)

目錄 一、出現場景二、效果展示三、具體使用一、出現場景 在項目的開發中,我們經常會請求后臺接口返回數據,但是每一個接口返回數據的時間不一致,有的快,有的慢,這個時候如果不加一個遮罩層,接口返回慢的時候,非常影響用戶體驗 二、效果展示 三、具體使用 顯示加載框…

【11408學習記錄】英語書信通知寫作模板大全:5個高分句式+使用場景解析,速存每日一句拆解練習!

書信/通知寫作錦囊妙句 英語寫作——19個錦囊妙句妙句9妙句10妙句11妙句12妙句13 每日一句詞匯第一步&#xff1a;找謂語第二步&#xff1a;斷句第三步&#xff1a;簡化讓步狀語從句限定性同位語從句主句 英語 寫作——19個錦囊妙句 妙句9 故宮在中國人民中很受歡迎/評價很高…

Unity 粒子同步,FishNet

Github的工程 同步畫面 使用FishNet插件同步&#xff0c;可使用這個選項來克隆第二個項目進行測試

【hadoop】案例:MapReduce批量寫入HBase

1.需求分析 我們仍然以美國各個氣象站每年的氣溫數據集為例&#xff0c;現在要求使用MapReduce讀取該數據集&#xff0c;然后批量寫入HBase數據庫&#xff0c;最后利用HBase shell根據行鍵即席查詢氣溫數據。 2.數據集準備 數據集的文件名為temperature.log&#xff0c;里面包含…

【linux網絡】網絡基礎概念

1. 初始協議 1.1 OSI 七層模型 OSI&#xff08;Open System Interconnection&#xff0c;開放系統互連&#xff09;七層網絡模型稱為開放式系統互聯參考模型&#xff0c;是一個邏輯上的定義和規范&#xff1b; 把網絡從邏輯上分為了 7 層. 每一層都有相關、相對應的物理設備&a…