《TCP/IP 卷1》筆記:IGMP:Internet組管理協議

IGMP:Internet組管理協議

引言

IGMP報文封裝在 IP數據報中
與ICMP一樣,IGMP也當作IP層的一部分。IGMP報文通過IP數據報傳輸。IGMP有固定的報文長度,沒有可選數據。IGMP報文通過IP首部中協議字段值2來指明

IGMP報文

IGMP報文的字段格式
這是版本爲1的IGMP。IGMP類型爲1說明是由多播路由器發出的查詢報文,爲2說明是主機發出的報告報文。檢驗和的計算和ICMP協議相同。
組地址爲D類IP地址。在查詢報文中組地址設置爲0,在報告報文中組地址爲要參加的組地址。在下一節中,當介紹IGMP如何操作時,我們將會更詳細地瞭解它們。

IGMP協議

加入一個多播組
進程通過主機的接口加入或者離開一個多播組
主機通過組地址和接口來識別一個多播組。主機必須保留一個表,此表中包含所有至少含有一個進程的多播組以及多播組中的進程數量

IGMP報告和查詢
多播路由器使用IGMP報文來記錄與該路由器相連網絡中組成員的變化情況。使用規則如下

  1. 當第一個進程加入組時,主機就發送一個IGMP報告。如果一個主機的多個進程加入同一個組,只發送一個IGMP報告。這個報告被髮送到進程加入組所在的同一接口上
  2. 任何一個進程離開時,不發送IGMP報告。如果所有進程都離開,在隨後的IGMP查詢中就不再發送報告報文
  3. 多播路由器定時發送IGMP查詢來知道任何主機包含有屬於多播組的進程。多播路由器必須向每個接口發送一個IGMP查詢。路由器希望主機對它加入的每個組均發回一個報告,因此IGMP查詢報文中的組地址唄設置爲0
  4. 主機發送IGMP報告來響應一個IGMP查詢,對每個至少還包含一個進程的組均要發回IGMP報告

路由器會記錄主機的多播組,轉發對應的多播數據到組中
IGMP的報告和查詢
主機收到路由器發出的查詢後,並不立即響應,而是經過一定的時間間隔後才發出一些響應。
在一物理網絡中的所有主機將收到同組其他主機發送的報告,在等待響應階段收到來自其他主機的相同報告則可以不發送,因爲路由器只關心,多播組下面是否存在進程。

生存時間字段
ttl爲0的多播數據將被限制在同一主機,ttl爲1的多播數據將被限制在同一網絡中,ttl爲最大值的多播數據會被路由器轉發。
對於多播地址的數據報不會產生ICMP差錯和ICMP超時差錯
從224.0.0.0到224.0.0.255的特殊地址空間是打算用於多播範圍不超過1跳的應用。不管TTL值是多少,多播路由器均不轉發目的地址爲這些地址中的任何一個地址的數據報

所有主機組
我們看到了路由器的IGMP查詢被送到目的IP地址224.0.0.1。該地址被稱爲所有主機組地址。它涉及在一個物理網絡中的所有具備多播能力的主機和路由器。當接口初始化後,所有具備多播能力接口上的主機均自動加入這個多播組。這組的成員無需發送IGMP報告

小結

多播是一種將報文發送多個接收者的通信方式。在許多應用中,它比廣播更好,因爲多播降低了不參與主機的負擔。
廣播通常侷限於局域網中。
多播還未解決的是怎麼在廣域網內的多播

習題

13.1 我們知道主機通過設置隨機時延來調度IGMP的發送。一個局域網中的主機採取什麼措施才能避免兩臺主機產生相同的隨機時延?
:收到相同的報告後可以不再發送的機制

13.2 在[Casner and Deering 1992]中,他們提到UDP缺少兩個通過MBONE傳送音頻採樣數據的條件:分組失序檢測和分組重複檢測。你怎樣在UDP上增加這些功能?
:提供編號功能

發佈了44 篇原創文章 · 獲贊 4 · 訪問量 1979
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章