組播___IGMP


一、基本概念:

1.協議概述:

          是運行在主機和與主機直連的路由器之間,其實現的功能是雙向的:一方面,主機通過IGMP通知路由器希望接收某個特定組播組的信息;另一方面,路由器通過IGMP周期性地查詢局域網內的組播組成員是否處於活躍狀態,實現所連網段組成員關系的收集與維護。通過IGMP,在路由器中記錄的信息是某個組播組是否在本地有組成員,而不是組播組與主機之間的對應關系。

  • 主機加入和離開組播
  • 路由器維護組播組
  • 查詢器選舉機制
  • 成員報告抑制機制

 

2.常用組播管理協議:

  • IGMP v1=RFC1122
  • IGMP V2=RFC2236
  • IGMP V3=RFC3376
  • 所有版本的IGMP都支持ASM(任意源組播)模型
  • IGMP v3可以直接應用在SSM(指定源組播)模型
  • 而IGMPV1和IGMP v2則需要在IGMP SSM Mapping技術的支持下才能應用於SSM模型。

二、IGMPV1

1.查詢與響應:(維護)

  • IGMP查詢器周期性(60s)地向網段內所有主機以組播方式(224.0.0.1)發送成員關系查詢消息(組地址為0)

 

2.查詢報文:

 

  • 網絡內所有主機都接收到該查詢消息,如果某主機對任意組播組G感興趣,則以組播(地址為目的組播組地址)方式發送“成員關系報告”報文來宣告自己將加入該組播組,只需要一個主機回復此報文即可(IGMPV1成員報告抑制)。 

3.加組報文:

 

報告抑制:當路由器向PC發送普遍組查詢報文(60s)時,目的地址為224.0.0.1,所有的設備(除本身)都能收到,會產生一個隨機的定時器(抑制定時器0~10s),定時器的時間是隨機的,0~10s以內,當定時器一過,pc就會發送成員關系報告報文,目的地址為所處的組播地址,發出以后,其他的所有設備都會收到,其他終端收到后,如果自己加入的組和收到成員關系報告報文的組播地址一樣,就不會再次發送成員關系報告。

 

  • 經過查詢/響應過程后,IGMP路由器了解到本網絡內組播組G對應的接收者,生成(*,G)組播項並依此作為組播信息的轉發依據。

 

在共享網絡中有多台路由器時,由組播路由協議選舉查詢器。不同的組播路由協議有不同的選舉機制。 pim的協議中DR決定了誰是查詢器。

 

4.IGMPV1組成員離開:

主機悄悄離開(不發送報告)。路由器發送成員關系查詢(3次),沒人回應,認為沒有該組的組成員,下次該組流量來時,就不去轉發,收斂時間為3分鍾。

 

三、IGMP v2

  •  主要基於查詢和響應機制來完成組播組成員管理。當一個網段內有多台組播路由器時,由於它們都能從主機那里收到IGMP成員關系報告報文,因此只需要其中一台路由器發送IGMP查詢報文就足夠了,這就需要有一個查詢器的選舉機制來確定由那台路由器作為查詢器。對於IGMPv1來說,由組播路由協議(PIM)選舉出唯一的組播信息轉發者DR作為IGMP查詢器。

 

查詢器:

在BMA網絡中,屬於同一組播組的兩台路由器,選舉出一台路由器發送查詢消息(IP地址小的)

非查詢器會啟動一個查詢計時器,周期檢查IGMP查詢路由器的狀態,缺省情況為120s。

 

1. 與IGMPv1相比,IGMPV2增加了查詢器選舉機制和離開組機制:

  • IGMPv2中,增加了獨立的查詢器選舉機制,其選舉過程如下:(120s)
    • 所有IGMPV2路由器在初始時都認為自己是查詢器,並向本地網段內的所有主機和路由器發送IGMP普遍組查詢(General Query)報文(224.0.0.1)
    • 本地網段中其它IGMPv2路由器在收到該報文后,將報文的源IP地址與自己的接口地址作比較。通過比較,IP地址最小的路由器將成為查詢器,去其他路由器成為非查詢器
    • 所有非查詢器上都會啟動一個定時器(即其他查詢器存在時間定時器)。在該定時器超時前,如果收到了來自查詢器的IGMP查詢報文,則重置該定時器,否則,就認為原查詢器失效,並發起新的查詢器選舉過程。

2.IGMPV2離開機制:

                          在IGMPv1中,主機離開組播組時不會向組播路由器發出任何通知,導致組播路由器只能依靠組播組成員查詢的響應超時來獲知組播組播組成員的離開。而在IGMPv2中,當一個主機離開某組播組時:

  • 該主機向本地網段內的所有組播路由器(目的地址為224.0.0.2)發送離開組(Leave Group)報文
  • 當查詢器收到該報文后,向該主機所聲明要離開的那個組播組發送特定組查詢(Group-Specific Query)報文(目的的地址字段和組地址字段均填充為所要查詢的組播組地址)
  • 如果該網段內還有該組播組的其他成員,則這些成員在收到特定組查詢報文后,會在該報文中所設定的最大響應時間內發送成員關系報告報文;
  • 如果在最大響應時間內(1s)收到了該組播組其它成員發送的成員關系報告報文,查詢器就會繼續維護該組播組的成員關系;否則,查詢器將認為該網段內已無該組播組的成員,於是不再維護這個組播組的成員關系。
  • 發送特定組查詢兩次(2s),無人回應,則刪除該組信息

3.普遍查詢和成員報告:

  • 主機會主動向其要加入的組播組發送IGMP成員關系報告報文以聲明加入,而不必等待IGMP查詢器發來的查詢報文。
  • IGMP查詢器周期性地以組播方式向本地網段內所有主機與路由器發送IGMP查詢報文(224.0.0.1)
  • 當收到查詢報文后,pc1會向組播組1發送IGMP成員關系報文,宣告其屬於組播組1,同時本網段中所有PC和路由器都會收到,這樣,PC2如果也屬於組1,就不會再發送成員關系報文。減少本地網段的信息流量。這叫成員報告抑制機制。(0~10s)誰回復成員報告,誰就是Last  reporter。
  • 經過以上查詢和響應過程,IGMP路由器了解到本地網段中有G1和G2的成員,於是由組播路由協議(如PIM)生成(*,G)表項,作為組播數據轉發的依據。
  • 當有組播源發往某組播組的數據時,且IGMP中存在該組播組,就將組播數據轉發到本地網段,接收者主機便能收到該組播數據了。

4.普遍查詢和組成員報告:

周期性發送(60s),向本地網段內所有主機發送IGMP General Query報文,目的地址224.0.0.1,ttl為1,組地址:224.0.0.0。

5.特定組查詢和離開組:

當最后一個接收者離開時發送,向所有組播路由器發送Leave  Group報文,目的地址224.0.0.2,報文包含要離開的組播組地址信息。

最后一個接收者,是上一次普遍查詢響應的主機,當查詢器收到后,發送特定組長詢,發兩次,時間為2s,這時主機設置的響應延遲為0~1s。如果該網段還存在接收者,該接收者會發送一個成員報告信息給路由器。

6.IGMPV2加組到離組過程:

加組過程:

維護過程:

 

收到查詢信息后,客戶端會設置一個隨機的抑制時間(0~10s),時間一過,就會發送成員報告信息,當路由器收到后就會將last reporter修改成該客戶端IP,其他客戶端也會收到該成員報告報文,其他客戶端就會取消發送成員報告信息報文。

 

離開查詢:

非Last   reporter離開時不會發送離開組信息。

Last reporter 離開組時發送離開組信息:

 

特定組查詢:

當Last reporter發送離開組報文后,路由器會連續發送兩次特定組查詢報文,沒有離開組的客戶端收到后,設定一個隨機的抑制時間(0~1s),時間一過,就會回復成員報告報文,路由器就會將該客戶端設備  Last reporter ,其他客戶端收到該成員報告報文自動取消回復特定組查詢。

 

 

7.IGMPv2協議報文:

  • Type為IGMP報文類型:
    • Membership Query報文:Type字段值為0x11
    • 版本1的Membership Report報文:type為0x12,該Report報文用於和IGMPv1兼容。
    • 版本2的Membership Query報文:Type 0x16
    • Leave Group報文:Type  0x17
  • Membership Query報文包含兩種:
    • General Query報文的組地址字段值為0
    • Group-Specific Query報文中,組地址為被查詢的組播組地址
  • Membership Report報文和Leave Group報文中,組地址為主機要加入或離開的組播組地址
  • Max Reps Time為最大響應時間,只有Membership Query報文使用該字段該字段中規定了主機在發送一個Membership Report報文時最大延時時間,單位為0.1s,默認值為100(10s),在Membership Report和Leave Group報文中,由主機設置為0
  • 校驗和:是IGMP報文長度的16位檢測
  • 組地址字段:在不同的報文類型中有不同的含義:
    • 在General Query報文中設為0
    • Group-Specific Query報文中為被查詢的組播組地址
    • 在Membership Report報文和Leave Group報文中,組地址字段為主機想要加入或離開的組播組地址。

 

四、IGMP v3:(SSM)模型

1.概述:

在兼容和繼承IGMPV1和IGMPV2的基礎上,進一步增強了主機的控制能力,並增強了查詢和報告報文的功能。

 

PC1:加入源為10.1.1.1和10.1.2.1的224.1.1.1的這個組

PC2:加入任意源的224.1.1.1的組

PC3:加入源為10.1.2.1的224.1.1.1的組,離開源為10.1.1.1的224.1.1.1的組

 2.特點

周期查詢(60s),目的地址為224.0.0.1

成員報告目的地址為224.0.0.22

無抑制, 因為V1和V2只關心組播地址,不關注源地址,所以需要抑制,而V3,關注組播地址和源地址,加入加入的組一樣,源不一樣,使用抑制就不合理,所以V3取消抑制。

 

3.V3的好處:

 

 

普遍查詢:

 

特定組源查詢:

 

成員報告:

 

離開組:

 

  • 主機控制能力的增強:
    • 增加了針對組播源的過濾模式,使主機在加入某組播組G的同時,能夠明確要求接收或拒絕來自某特定組播源S的組播信息。
      • 若接收某個指定組播源的信息:可以在報文中標記INCLUDE Sources字段
      • 若拒絕接收來自指定組播的信息:標記EXCLUDE Sources
    • 攜帶源地址的查詢報文:IGMPV3還增加了對特定源組查詢的支持
      • 普通組查詢報文中,既不攜帶組地址,也不攜帶源地址
      • 特定組查詢報文中,攜帶組地址,但不攜帶源地址
      • 特定源組查詢報文,既攜帶組地址,還攜帶一個或多個源地址
    • 包含多組記錄的報告報文:IGMPV3報告報文的目的地址為224.0.0.22,可以攜帶一個或多個組記錄。每個組記錄中包含有組播組地址和組播源地址列表:
      • IS_IN:表示組播組與組播源列表之間的過濾模式為INCLUDE,即只接收從指定組播源列表發往該組播組的組播數據
      • IS_EX:表示組播組與組播源列表之間的過濾模式為EXCLUDE,即只接收從指定組播源列表之外組播源發往該組播組播數據。
      • TO_IN:表示組播組與組播源列表之間的過濾模式由EXCLUDE轉變為INCLUDE。
      • TO_EX:表示組播組與組播源列表之間過濾模式有INCLUDE轉變為EXCLUDE。
      • ALLOW:表示在現有狀態的基礎上,還希望從某些組播源接收組播數據。如果當前的對應關系為INCLUDE,則向現有組播源列表中添加這些組播源,如果當前的對應關系為EXCLUDE,則從現有組播源列表中刪除這些組播源。
      • 不再希望從某些組播源接收組播數據。如果當前的對應關系為INCLUDE,則從現有組播源列表中刪除這些組播源;如果當前的對應關系為EXCLUDE,則向現有組播源列表中添加這些組播源。組定時器只對EXCLUDE模式下起作用。

4.IGMPv3過濾模式和源列表:

  • IGMPV3主機位接口上每一個組播組都維護一個表項信息,其格式為(組地址,過濾模式,源列表);
  • 過濾模式包含INCLUDE 和EXCLUDE兩種類型:
    • INCLUDE模式表示只接收來自於在源列表中列出的組播源發送的組播數據包
    • EXCLUDE模式表示只接收來自於不同源列表列出的組播源發送的組播數據包。
  • 源列表包含0個或多個IP單播地址,通常用集合形式來表示

 

5.IGMPV3主機側維護的組狀態:

  • IGMPV3組播有當前狀態、過濾模式改變以及源列表改變三種狀態,對應的組記錄也有三種類型:
    • 當前狀態記錄
    • 過濾模式變化記錄
    • 源列表變化記錄
  • 當主機接口維護的組狀態發生變化時,會主動發送組記錄類型為過濾模式變化或源列表的Membership Report報文。
  • 當接收到Membership Query報文時,會響應組記錄類型為當前狀態的Membership Report 報文

 

6.IGMPv3路由器側維護的組狀態:

  • 路由器為接口上的每一個組播組維護一個狀態,該狀態包含組過濾模式和源列表以及定時器:
    • 組狀態格式為(組地址,組定時器,過濾模式,源記錄列表);
    • 源記錄格式為(源地址,源定時器)
  • 每一個組播組只對應一種過濾模式:
    • 對於INCLUDE模式,源記錄列表包含該接口網段的主機需要接受的組播源列表,表示為:INCLUDE(S,G)
    • 對於EXCLUDE模式,源記錄列表包含兩類源列表,第一類與過濾模式相反,是主機需要接收的組播源列表S1;第二類是主機不需要接受的組播源列表S2,表示為:EXCLUDE(S1,S2,G)

7.IGMPv3普遍組查詢:

組地址:224.0.0.0

目的地址:224.0.0.1

 

8.IGMPv3特定源組查詢:

 

 

7.IGMPv3特定組查詢:

 

8.IGMP不同版本間的操作:

 

 

高兼容低,低抑制高

 

 

 

 

 

 

五:IGMP  Snooping

  • 二層組播問題:
    • 組播數據被二層交換機以廣播方式發送

 

 

 

  • IGMP   Snooping功能
    • 組播數據在二層按照轉發表項發送給組播接收者

 

IGMP Snooping基本概念和運行機制:

 

 

 

不同VLAN組播點播處理:

  • 不同VLAN的主機點播同一組數據時,路由器需要為每個VLAN的主機復制一份組播報文

 

 

 

組播vlan的功能:

路由器只在組播vlan內復制數據,減輕路由器負擔,並節省網絡帶寬

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM