IGMP 網際網路組管理協議

2022-08-03 05:27:10 字數 2928 閱讀 1283

igmp(internet group management protocol)作為網際網路組管理協議,

用於多播。

與icmp一樣,

igmp也被當作 ip 層的一部分,igmp報文也通過ip資料報進行傳輸。

igmp 在tcp/ip中負責區域網ip多播組成員管理的協議。用來在多播路由器與其區域網中的主機建立、維護多播組成員關係(組播路由器之間的組成員資訊建立、維護使用組播路由協議)。關於多播,請參考《tcp/ip詳解、卷一》第十二章。

如圖 r1 r2 r3路由所在區域網中均有主機加入多播組。假設網路中有該組一多播資料報傳送,那麼如何使得該多播資料報只發給r1、r2、r3,而不發給r4.這時,就需要igmp協議了。

簡單的說,igmp實現了這樣的功能,對於主機來說,它通知多播路由器,我在哪些多播組中。對多播路由器而言,igmp使得多播路由器維護區域網中的主機都加入了哪些組。

主機: 

儲存自己加入的組播播組列表

多播路由器:  儲存

每個介面連線的

網段上是否存在某個組播組的組成員

1)加入乙個組:主機加入乙個組,向多播路由器傳送igmp報文,宣告成為某個多播組成員。本地多播路由器獲取該報文後,就可以將這種成員關係發給其他多播路由器。

2)動態維護多播組成員關係:多播路由器定時向本地主機傳送查詢報文,以判斷某個多播組在本地主機中是否還有成員。

在動態維護多播組成員關係時,多播路由器傳送query報文,如果某個組在本地有多名成員,那麼在第乙個成員主機respond之後,其他成員主機不必再應答。

( 1 ) 在主機和多播路由器之間的所有通訊都是使用 ip 多播。只要有可能,攜 帶 igmp

報文的資料報都用硬體多播來傳送。因此在支援硬體多播的網路上,沒

有 參 加 i p 多播的主

機不會收到 ig m p 報文。

( 2 ) 多播路由器在探詢組成員關係時,只需要對所有的組傳送乙個請求資訊的詢問報

文,而不需要對每乙個組傳送乙個詢問報文

( 雖然也允許對乙個特定組傳送詢問報文)。默

認的詢問速率是每 125 秒 發 送 一 次 ( 通訊量並不太大)。

( 3 ) 當同乙個網路上連線有幾個多播路由器時,它們能夠迅速和有效地選擇其中的乙個

來探詢主機的成員關係。因此,網路上多個多播路由器並不會引起igmp通訊量的增大。

( 4 ) 在 igmp 的query報文中有最長響應時間

n( 默 認 值 為 10

秒 )。當收到query時,主機在0 到n之間隨機選擇傳送響應所需經過的時延。因此,若乙個

主機同時參加了幾個多播組,則主機對每乙個多播組選擇不同的隨機數。對應於最小時延的

響應最先傳送。

( 5 ) 同乙個組內的每乙個主機都要監聽響應,只要有本組的其他主機先傳送了響應,自

己就可以不再傳送響應了。這樣就抑制了不必要的通訊量。

igmp目前有三個版本:igmpv1、

igmpv2、

igmpv3

igmpv1

igmpv2  

igmpv3   

實現機制

基於查詢與響應

查詢器通過多播路由選擇協議選舉產生

自己有選舉機制

自己有選舉機制

組員加入

主機主動向要加入的多播組傳送加入報告

組員離開

不立即傳送離開報文,只是在下次查詢時不響應(即不傳送響應報告)

主動發離開報文,查詢器收到報文就開始進行特定組查詢

主動發離開報文,查詢器收到報文就開始進行特定組查詢   

指定源、組查詢

無指定組

指定源、組

指定源、組加入無無

有rfc

rfc 1112

rfc 2236 

rfc 3376 

1、主機控制能力的增強

igmpv3 增加了針對組播源的過濾模式(include/exclude),使主機在加入某組播組g的同時,能夠明確要求接收或拒絕來自某特定組播源s的組播資訊。

主機加入組播組時:

1)    若要求只接收來自指定組播源如s1、s2、……的組播資訊,則其報告報文中可以標記為include sources(s1,s2,……);

2)    若拒絕接收來自指定組播源如s1、s2、……的組播資訊,則其報告報文中可以標記為exclude sources(s1,s2,……)。

2、查詢和報告報文功能的增強

1)攜帶源位址的查詢報文

igmpv3 不僅支援igmpv1 的普遍組查詢和igmpv2 的特定組查詢,而且還增加了對特定源組查詢的支援:

§  普遍組查詢報文中,既不攜帶組位址,也不攜帶源位址;

§  特定組查詢報文中,攜帶組位址,但不攜帶源位址;

§ 特定源組查詢報文中,既攜帶組位址,還攜帶乙個或多個源位址。

2)包含多組記錄的報告報文

igmpv3 報告報文的目的位址為224.0.0.22,§ is_in:表示組播組與組播源列表之間的過濾模式為include,即只接收從指定組播源列表發往該組播組的組播資料。

§ is_ex:表示組播組與組播源列表之間的過濾模式為exclude,即只接收從指定組播源列表之外的組播源發往該組播組的組播資料。

§ to_in:表示組播組與組播源列表之間的過濾模式由exclude 轉變為include。

§ to_ex:表示組播組與組播源列表之間的過濾模式由include 轉變為exclude

網際網路協議

常見的應用層協議使用的埠號 http tcp 80 http協議使用的tcp協議的80埠,下同 共享資料夾 tcp 445 smtp tcp 25 pop3 tcp 110 telnet tcp 23 sql tcp 1433 dns udp 53 服務和應用層協議之間的關係 通過目標埠識別計算機相...

網際網路協議

爭取做乙個懂點網路概念且有趣的程式設計師。tcp ip是網際網路採用的協議標準,它是乙個協議系列,包含了100多個協議,用來將各種計算機和資料通訊裝置組成計算機網路,tcp和ip是最基本 最重要的兩個核心協議,因此,通常用tcp ip協議來代表整個網際網路協議系列 即tcp ip的定義 tcp ip...

網際網路協議

tcp協議 arp協議屬於網路層協議。用途是根據ip位址計算出mac位址。主機傳送資訊時將包含目標ip位址的arp請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址 收到返回訊息後將該ip位址和實體地址存入本機arp快取中並保留一定時間,下次請求時直接查詢arp快取以節約資源。位址解...