廣播和多播路由選擇

廣播和多播路由選擇

寫在前面:這裏是小王成長日誌,一名在校大學生,想在學習之餘將自己的學習筆記分享出來,記錄自己的成長軌跡,幫助可能需要的人。歡迎關注與留言。

這是系列博客 計算機網絡-自頂向下 中的其中一篇,更多博文請訪問專欄 計算機網絡 ,如有錯誤還請各位大佬指正。

0. 廣播和多播是啥子

考慮在網絡中兩臺主機之間的互相通信

廣播:廣播是指在IP子網內廣播數據包,所有在子網內部的主機都將受到這些數據包。廣播意味着網絡向子網每一個主機都投遞一份數據包,不論這些主機是否樂於接收該數據包。所以廣播的使用範圍非常小,只在本地子網內有效,通過路由器和交換機網絡設備控制廣播傳輸。

多播:也叫組播,組播在發送者和每一接收者之間實現點對點網絡連接。如果一臺發送者同時給多個的接收者傳輸相同的數據,也只需複製一份的相同數據包。它提高了數據傳送效率,減少了骨幹網絡出現擁塞的可能性。

1. 廣播路由選擇算法

1.1 最簡單的的發送方式: 向每個目的地發送一個副本

  • 效率低,每個發送的副本都將通過開頭那段鏈路傳輸
  • 每個目的地的地址都必須被髮送方知曉,不太可能

1.2 更有效的方式

  • 源節點僅向第一跳發送副本,然後由第一跳向第二跳發送副本,以此類推

1.3 無控制洪泛

  • 實現廣播的最顯而易見的技術

  • 源節點向所有鄰居發送副本,鄰居接收到後向除了源節點外的所有鄰居轉發副本

  • 出現的問題

    • 廣播風暴:如果節點圖是有環的就可能導致副本無限循環

1.4 受控洪泛: 解決廣播風暴的方法

  • 避免廣播風暴的關鍵是每個結點明智地選擇何時洪泛分組,何時不洪泛分組(

  • 解決方法

    • 序號控制洪泛( sequence- number- controlled flo。由19)

      • 源結點將其地址(或其他唯一的標識符)以及廣播序號 (broadcast sequence number) 放入廣播分組,再向它的所有鄰居發送該分組 。
      • 每個結點維護它已經收到的、複製的和轉發的源地址和每個廣播分組的序號列表 。
      • 當結點接收到一個廣播分組時,它首先檢查該分組是否在列表中 。 如果在,丟棄該分組;如果不在,複製該分組並向該結點的所有鄰居轉發(除了接收到該分組從其的那個結點) 。
    • 反向路徑轉發 (Reverse Path Forwarding, RPF)

      • 當一臺路由器收到具有給定源地址的廣播分組時,僅當該分組到達的鏈路正好是位於它自己的返回其源的最短單播路徑上,才向其他出鏈路轉發報文,否則丟棄
      • 注意到 RPF 不使用單播路由選擇以實際將分組交付給目的地,它也不要求路由器知道從它自己到源的完整最短路徑 。
      • 僅需要知道在它到發送方的單播最短路徑上的下一個鄰居;它僅使用這個鄰居的身份以決定是否洪泛一個接收到的廣播分組 。

1.5 生成樹廣播: 冗餘廣播分組的消除

  • 很明顯,在廣播的時候會出現一個節點接收幾個副本的情況

  • 流程

    • 首先對網絡結點構造出一棵生成樹。
    • 當一個源結點要發送一個廣播分組時,它向所有屬於該生成樹的特定鏈路發送分組 。
    • 接收廣播分組的結點則向在生成樹中的所有鄰居轉發該分組(其接收該分組的鄰居除外)。
    • 生成樹不僅消除了冗餘的廣播分組,而且一旦合適,該生成樹能夠被任何結點用於開始廣播分組。
    • 注意到一個結點不必知道整棵樹;只需要知道它在 G 中的哪些鄰居是生成樹的鄰居 。
  • 基於中心的方法( cenler-based approach)

    • 與生成樹方法相關的複雜性主要是生成樹的生成和維護 。

    • 這裏僅考慮一種簡單的算法-基於中心的算法

    • 中心節點也被稱爲匯合點或核

    • 結點則向中心結點單播加入樹( tree- join) 報文 。

    • 圖例:基於中心構造一顆生成樹

  • 實踐中的廣播算法

    • 在實踐中,廣播協議被用於應用層和網絡層 。

2. 多播

2.1 多播分組僅被交付給網絡結點的一個子集
2.2 多播中的兩個問題

  • 如何標識多播分組的接收方
  • 怎樣爲發送到這些接收方的分組編址

2.3 間接地址(D類地址)

  • 在因特網體系結構中,多播數據報使用間接地址來編址
  • 用一個標識來表示一組接收方,尋址到該組的分組副本被交付給所有與該組相關聯的多播接收方,且該組使用這個單一標識符 。
  • 這種表示一組接收方的單一標識就是一個 D 類多播地址 。
  • 與一個 D 類地址相關聯的接收方小組被稱爲一個多播組 (multicast group)
  • 例如若4 臺主機(顯示爲深色)與多播組地址 226.17.30.197 相關聯,則它們將接收所有尋址到該多播地址的數據報 。

2.4 多播組的一些問題

  • 一個組是如何形成,又如何終結的呢?
  • 如何選擇組地址?新主機如何加入某個組(要麼作爲發送方,要麼作爲接收方) ?
  • 任何主機都能加入一個組(向該組發送或從族組接收)或者組成員資格會受到限制嗎?
  • 如果有限制,由誰限制?作爲網絡層協議的一部分,一個組成員知道其他組成員的標識嗎?
  • 網絡結點相互之間如何進行交互,以向所有組成員交付一個多播數據報呢?

2.5 因特網組管理協議

  • IGMP 爲一臺主機提供了手段,讓它通知與其相連的路由器:

  • 在本主機上運行的 一個應用程序想加入一個特定的多播組 。

  • 由於 IGMP 的交互範圍被侷限在主機與其相連的路由器之間,顯然需要另一種協議來協調遍及因特網內的多播路由器(包括相連的路由器) ,以便多播數據報能路由到其最終目的地 。

  • 後一個功能是由網絡層多播路由選擇算法完成

  • 因此因特網中的網絡層多播是由兩個互補的組件組成的:IGMP 與多播路由選撐協議。

2.6 多播路由選擇算法

  • 多播路由選擇的目標就是發現一棵鏈路的樹,這些鏈路連接了所有具有屬於該多播組的相連主機的路由器 。

  • 於是多播分組將能夠沿着這棵樹從發送方路由到所有屬於該多播樹的主機 。

  • 兩種方法來確定多播路由選擇樹

    • 使用一棵組共享樹的多播路由選擇

      • 構建單一的、共辜的路由選擇樹
    • 使用一棵基於源的樹的多格路由選擇

      • 爲多播組巾的每個源構建一棵多播路由選擇樹

      • 剪枝( pruning)

        • 一 臺接收到多播分組的多播路由器,如它無加人該組的相連主機,則它向其上游路由器發送一個 圖例:剪柑匠文。 如果一臺路由器從它每個下游路由器收到剪枝報文,則它就能向上遊轉發一個剪枝報文

2.7 因特網中的多播路由選擇

  • 第一個用於因特網中的多播路由選擇協議是距離 向 量 多播路 由選擇協議

  • 使用最爲廣泛的因特網多播路由選擇協議是協議無 關的 多播 (Proloco! Inclepenclent Mu1Licasl ,PIM) 路由 選擇協議 ,該協議明確辨識兩種多播分發情形

    • 稀疏模式

      • 在源特定多播中,僅允許單一發送方向多播樹中發送流量,大大簡化了樹的構造和維護 。
    • 稠密模式

      • 在稠密模式( dense mode)RFC 3973中,多播組的成員位置分佈稠密;這就是說,在該區域內的許多或大多數路由器需要參與到多播數據報路由選擇過程之中。PIM稠密模式是一種洪泛與剪枝反向路徑轉發技術,類似於 DVMRP的思想。

都看到這裏了,各位哥哥姐姐叔叔阿姨給小王點個贊 關個注 留個言吧,和小王一起成長吧,你們的關注是對我最大的支持。
有事沒事進來看看吧 : 小王的博客目錄索引
更多計算機網絡優質博客看這 : 計算機網絡專欄博客索引


如果以上內容有任何不準確或遺漏之處,或者你有更好的意見,就在下面留個言讓我知道吧-我會盡我所能來回答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章