組播網絡構建:IGMP、PIM 原理及應用實踐

IP組播基礎

組播基本架構

組播IP地址

  • 一個組播IP地址并不是表示具體的某臺主機,而是一組主機的集合,主機聲明加入某組播組即標識自己需要接收目的地址為該組播地址的數據
  • IP組播常見模型分為ASM模型和SSM模型
  • ASM:成員接收任意源組播數據,主機僅需加入組播組,不關注數據源,適用于新聞公告發布等對數據源無要求的場景 。
  • SSM:成員指定接收特定源組播數據,需主機加入組時指定源地址,適用于視頻會議等需明確數據源的場景。

組播MAC地址

組播MAC地址與單播MAC地址的區別:

IANA規定,IPv4組播MAC地址的高24位為0x01005e,第25位固定為0。?

組播IP與MAC的映射?

  • 需要組播IP地址與組播MAC地址的自動映射。
  • MAC地址的低23bit為組播IP地址的低23bit

映射導致的問題

組播IP地址映射成組播MAC地址時,會導致32個組播IP地址對應一個組播MAC的問題。?

IGMP協議原理與配置(路由器與主機之間)?

  • IGMP(Internet Group Management Protocol)因特網組管理協議,是TCP/IP協議族中負責IP組播成員管理的協議,它用來在接收者和與其直接相鄰的組播路由器之間建立、維護組播組成員關系。
  • IGMP協議運行于主機與組播路由器之間
  • IGMP協議的作用:
    • 主機側:通過IGMP協議向路由器通告組成員關系
    • 路由器側:通過IGMP協議維護組成員關系。

IGMPv1的工作機制

  • 普遍組查詢與響應
  • 響應抑制機制。

IGMPv1成員加入

  • 主機申請加組。?

IGMPv1問題一:組成員離開

  • 靜默離開。?

IGMPv1問題二:查詢器選舉

  • 查詢器選舉依賴于組播路由協議?

IGMPv2的工作機制?

IGMPv2對IGMPv1的改進:組成員離開?

IGMPv2對IGMPv1的改進:查詢器選舉

  • 獨立的查詢器選舉機制。?

IGMPv1和IGMPv2報文比較?

SSM模型中的新需求

  • 只接收特定源發送的組播數據?

IGMPv3的工作機制?

IGMP各版本間的差異?

IGMP Snooping的工作機制?

  • 組播數據在二層被泛洪,造成:
    • 網絡資源浪費。
    • 存在安全隱患。
  • 使能IGMPSnooping機制后,查詢響應僅向路由器接口轉發

PIM協議原理與配置?(路由器和路由器之間)

PIM(Protocol IndependentMulticast)直接利用單播路由表的路由信息進行組播報文RPF檢查,創建組播路由表項,轉發組播報文。

PIM-DM的工作機制

  • 采用“推(Push)模式"轉發組播報文
  • PIM-DM的關鍵任務:
    • 建立SPT(Shortest Path Tree,最短路徑樹)
  • PIM-DM的工作機制:
    • 鄰居發現。
    • 擴散與剪枝。
    • 狀態刷新。
    • 嫁接。
    • 斷言。

PIM-DM鄰居發現

PIM-DM構建SPT?

  • 擴散過程。
  • RPF檢查。
  • 剪枝過程。

PIM-DM狀態刷新?

  • 周期性地刷新剪枝狀態。

PIM-DM Graft機制 (嫁接)

  • 新的組成員加入組播組后,快速得到組播報文。

PIM-DM? Assert機制 (斷言)

  • 避免重復組播報文

PIM-DM的局限性

  • PIM-DM適用于組播成員分布較為密集的園區網絡。
  • PIM-DM的局限性:
    • 在組播成員分布較為稀疏的網絡中,組播流量的周期性擴散會給網絡帶來較大負擔。?

PIM-SM的工作機制

PIM-SM基本概述

  • 使用“(Pull)模式"轉發組播報文
  • PIM-SM的關鍵任務:
    • 建立RPT(RendezvousPointTree,匯聚點樹也稱共享樹),
    • 建立SPT(Shortest Path Tree,最短路徑樹)。
  • 適用于組播成員分布較為稀疏的網絡環境。

匯聚點RP (Rendezvous Point)

  • 充當RPT樹的根節點。
  • 共享樹中的所有組播流量都經過RP轉發給接收者。
  • 所有PIM路由器都要知道RP的位置。

RPT及其建立過程

組播接收者側DR與組播源側DR?

SPT的建立過程?

  • SPT建好之后,組播報文沿SPT到達RP?

( * ,G)與(S,G)條目關系

PIM-SM的轉發樹?

SPT和RPT構成組播報文的轉發路徑,存在哪些問題?

Switchover機制?

與組播接收者相連的DR負責向RP發送單播join消息?,與組播源相連的DR負責向RP發送單播Register消息?

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

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

相關文章

Unity UGUI使用手冊

概述 UGUI(Unity Graphical User Interface) :Unity 圖像用戶界面 在游戲開發中,我們經常需要搭建一些圖形用戶界面。Unity內置的UGUI可以幫助開發者可視化地拼接界面,提高開發效率。UGUI提供不同樣式的UI組件,并且封裝了對應功能的API&am…

Python web程序在服務器上面部署詳細步驟

在服務器上部署Python web程序通常涉及以下步驟: 設置服務器環境: 選擇合適的服務器,如AWS EC2、DigitalOcean Droplet等。配置服務器操作系統,例如Ubuntu、CentOS等。安裝必要的軟件,如Python、pip、git等。 準備Python web程序…

條件生成對抗網絡(Conditional GAN, CGAN)原理及實現(pytorch版)

CGAN 原理及實現 一、CGAN 原理1.1 基本概念1.2 與傳統GAN的區別1.3 目標函數1.4 損失函數1.5 條件信息的融合方式1.6 與其他GAN變體的對比1.7 CGAN的應用1.8 改進與變體 二、CGAN 實現2.1 導包2.2 數據加載和處理2.3 構建生成器2.4 構建判別器2.5 訓練和保存模型2.6 繪制訓練損…

Go語言比較遞歸和循環執行效率

一、概念 1.遞歸 遞歸是指一個函數在其定義中直接或間接調用自身的編程方法 。簡單來說,就是函數自己調用自己。遞歸主要用于將復雜的問題分解為較小的、相同類型的子問題,通過不斷縮小問題的規模,直到遇到一個最簡單、最基礎的情況&#x…

keepalived高可用介紹

keepalived 是 Linux 一個輕量級的高可用解決方案,提供了心跳檢測和資源接管、檢測集群中的系統服務,在集群節點間轉移共享IP 地址的所有者等。 工作原理 keepalived 通過 VRRP(virtual router redundancy protocol)虛擬路由冗余…

數據分享:汽車測評數據

說明:如需數據可以直接到文章最后關注獲取。 1.數據背景 Car Evaluation汽車測評數據集是一個經典的機器學習數據集,最初由 Marko Bohanec 和 Blaz Zupan 創建,并在 1997 年發表于論文 "Classifier learning from examples: Common …

NLP簡介及其發展歷史

自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和計算機科學領域中的一個重要分支,致力于實現人與計算機之間自然、高效的語言交流。本文將介紹NLP的基本概念以及其發展歷史。 一、什么是自然語言處理&#xff1f…

HOOPS Visualize:跨平臺、高性能的三維圖形渲染技術解析

在當今數字化時代,三維可視化技術已成為眾多行業的核心競爭力。HOOPS Visualize作為一款功能強大的三維圖形渲染引擎,憑借其卓越的渲染能力、跨平臺支持、豐富的交互功能、高度定制化以及快速部署等特性,為開發人員提供了構建高質量、高性能3…

藍橋杯速成刷題清單(上)

一、1.排序 - 藍橋云課 &#xff08;快速排序&#xff09;算法代碼&#xff1a; #include <bits/stdc.h> using namespace std; const int N 5e5 10; int a[N];int main() {int n;cin >> n;for (int i 0; i < n; i) {cin >> a[i];}sort(a, a n);for …

Java面試黃金寶典44

1. 查看進程的運行堆棧信息命令 gstack gstack 是 Linux 系統下用于查看指定進程運行時堆棧信息的工具。當程序出現崩潰、死鎖或者性能瓶頸等問題時,借助 gstack 可以查看進程中各個線程的調用棧,從而輔助開發人員定位問題。 定義 gstack 本質上是一個封裝了底層 ptrace 系統…

嵌入式硬件篇---TOF陀螺儀SPI液晶屏

文章目錄 前言1. TOF傳感器&#xff08;Time of Flight&#xff09;原理STM32使用方法硬件連接SDASCLVCC\GND 軟件配置初始化I2C外設庫函數驅動&#xff1a;讀取數據 2. 陀螺儀&#xff08;如MPU6050&#xff09;原理STM32使用方法硬件連接SDA/SCLINTVCC/GND 軟件配置初始化I2C…

【scikit-learn基礎】--『預處理』之 正則化

數據的預處理是數據分析&#xff0c;或者機器學習訓練前的重要步驟。 通過數據預處理&#xff0c;可以 提高數據質量&#xff0c;處理數據的缺失值、異常值和重復值等問題&#xff0c;增加數據的準確性和可靠性整合不同數據&#xff0c;數據的來源和結構可能多種多樣&#xff…

LeetCode Hot100 刷題筆記(2)—— 子串、普通數組、矩陣

目錄 前言 一、子串 1. 和為 K 的子數組 2. 滑動窗口最大值 3. 最小覆蓋子串 二、普通數組 4. 最大子數組和 5. 合并區間 6. 輪轉數組 7. 除自身以外數組的乘積 8. 缺失的第一個正數 三、矩陣 9. 矩陣置零 10. 螺旋矩陣 11. 旋轉圖像 12. 搜索二維矩陣 II 前言 一、子串&#…

【Git 常用操作指令指南】

一、初始化與配置 1. 設置全局賬戶信息 git config --global user.name "用戶名" # 設置全局用戶名 git config --global user.email "郵箱" # 設置全局郵箱 --global 表示全局生效&#xff0c;若需針對單個倉庫配置&#xff0c;可省略該參數 2.…

教培行業創建自己品牌的重要意義——教育培訓小程序

在競爭激烈的教培行業&#xff0c;創建自身品牌意義重大。 擁有獨特品牌能顯著提升機構競爭力與辨識度。如今教培市場同質化嚴重&#xff0c;一個亮眼的品牌小程序可使機構從眾多競爭者中脫穎而出&#xff0c;讓學員和家長快速識別并記住。 品牌小程序有助于增強信任度和口碑。…

Docker 介紹 · 安裝詳細教程

為什么選擇 Docker&#xff1f; ? 環境一致性 – 告別“在我機器上能跑”的問題&#xff0c;確保開發、測試、生產環境一致。 ? 高效輕量 – 秒級啟動&#xff0c;資源占用遠低于傳統虛擬機。 ? 跨平臺支持 – 可在任何支持 Docker 的環境中運行&#xff0c;包括云服務器、…

GitHub 上開源一個小項目的完整指南

GitHub 上開源一個小項目的完整指南 &#x1f680; 第一步&#xff1a;準備你的項目 在開源之前&#xff0c;確保項目是可用且有一定結構的&#xff1a; ? 最低要求 項目文件清晰、結構合理&#xff08;比如&#xff1a;src/、README.md、LICENSE&#xff09;項目能在本地正…

React 第三十節 使用 useState 和 useEffect Hook實現購物車

不使用 redux 實現 購物車案例 使用 React 自帶的 useState 和 useEffect Hook 即可實現購物車 export default function ShoppingCar() {// 要結算的商品 總數 以及總價const [totalNum, setTotalNum] useState(0)const [totalPerice, setTotalPerice] useState(0)// 商品…

藍橋杯第十一屆省賽C++B組真題解析

藍橋杯第十一屆省賽CB組真題解析 八、回文日期https://www.lanqiao.cn/problems/348/learning 方法一&#xff1a;暴力枚舉所有的日期&#xff0c;記錄有多少個回文日期。 #include <bits/stdc.h> using namespace std; int month[13]{0,31,28,31,30,31,30,31,31,30,31…

Python和MicroPython的解釋器區別

Python和MicroPython的解釋器不是同一個&#xff0c;它們在設計目標、實現方式和運行環境上都有顯著的區別。以下是它們的主要區別&#xff1a; 1. 底層實現 Python解釋器&#xff08;CPython&#xff09;&#xff1a; Python的標準解釋器是CPython&#xff08;C語言實現的Pyt…