Linux IGMP 學習筆記 之一 IGMP協議格式__Linux

來源:互聯網
上載者:User

一、IGMP定義及分類

IGMP:INTERNET組管理協議,與廣播最大的不同是,IGMP允許每一個網路裝置決定是否參與到一個特定的多播群組中。

       IGMP的ip地址,組播ip地址的範圍為224.0.0.0-239.255.255.255。其中224.0.0.1代表子網上的所有電腦,224.0.0.2代表子網上的所有路由器。另外,多播ip地址只可作為目的地址,而且不能產生關於多播地址的差錯報文。在上幾節分析icmp協議時,代碼在接收icmp echo request包後,只有允許對多播地址的請求包的回複時才會對多播地址進行回複,linux中預設是不回複多播echo請求的,只有使用者強制配置回複後,才會對多播echo請求進行回複。

       IGMP的mac地址為01-00-5e-xx-xx-xx,其中後23bits是ip地址的低23bits。從這也說明了只要知道一個多播ip地址,即可換算出其mac地址,不需要通過arp請求擷取mac地址。

 

 

在具體實現功能時,又分為IGMP SNOOPING與IGMP PROXY兩種。

對於IGMP SNOOPING這是在二層實現組播資料限制的一個功能。對於一個路由器或者2層switch,當lan層的一個連接埠發送一個IGMP report報文加入一個組播組後,如果沒有開啟IGMP SNOOPING,則資料會flood到所有lan側連接埠,這樣會增加網路負載。如果開啟了IGMP SNOOPING,路由器或者2層switch就會分析IGMP報文,為連接埠和IGMP組播組地址建立映射關係,這樣下行的組播流資料就只會轉寄到加入組播組的連接埠,而不會flood到所有橋連接埠。

對於IGMP PROXY,主要是攔截lan側pc發送的igmp報文,其在wan側作為用戶端相應上行路由的查詢操作,而在lan側則作為服務端定期發送查詢報文。

    當lan側加入的組播組在IGMP PROXY裝置上沒有相應的組播路由時,才會給上層發送組播加入報文,當lan側加入的組播組在IGMP PROXY裝置上已經存在時,則無需再將加入報文轉寄出去。這樣不僅能夠達到有效抑制二層組播泛濫的問題,且能更有效擷取和控制使用者資訊,降低網路負載。

 

二、IGMP的格式

IGMP V1

a)成員關係查詢

Version

Type

Un used

CheckSum

Multicast ip address

Version:1

Type:0x11

Multicast ipaddress:設定為0,因為其只支援通用查詢

b)成員關係報告

Version

Type

Un used

CheckSum

Multicast ip address

Version:1

Type:0x12

Multicast ip address:要加入的組播組地址

 

在IGMP V1中,沒有專門定義離開組播組的報文,所以組播組路由器是基於逾時的機制來發現沒有成員的組播組的。

 

 

IGMPV2

 

a)成員關係查詢

TYPE(0x11)

Max Resp Time

CheckSum

Multicast ip address

 MaxResp Time:最大回複時間,對於成員關係查詢報文,需要設定該時間,組播群組成員收到成員關係查詢後,會根據該值來確定回複時間。

有兩種成員關係查詢報文:通用成員關係查詢與特定群組成員關係查詢。

對於通用成員關係查詢,需要將Multicastip address設定為0;對於特定群組成員關係查詢,需要將Multicast ip address值設定為要查詢的組播組地址。

其中ip頭部中的目的地址為224.0.0.1或者要查詢的組播組地址

b)成員關係報告

TYPE(0x16)

Max Resp Time

CheckSum

Multicast ip address

 MaxResp Time:最大回複時間,此處設定為0。

需要將Multicastip address值設定為加入的組播組地址。

c)離開組訊息

TYPE(0x17)

Max Resp Time

CheckSum

Multicast ip address

 MaxResp Time:最大回複時間,此處設定為0。

需要將Multicastip address值設定為離開的組播組地址。其中ip頭中的目的地址設定為224.0.0.2或者要離開的組播組地址

 

查詢器機制:共用網段上組播路由器的選舉機制:同一網段上有多個路由器時,具有最新ip地址的組播路由器充當查詢器。

 

IGMP V3

其在繼承了v1、v2的基礎上,增加了以下功能:

1)  支援源過濾

2)  查詢報文中的最大查詢回應時間增加

3)  增加了對特定源組的查詢

 

a)      成員關係查詢

TYPE(0x11)

RESP CODE

CheckSum

Multicast ip address

RES

S

QRV

QQIC

源地址數

源地址1

源地址2

源地址3

 

RESP CODE:最大回應時間

Multicast ip address:群組地址

RES:保留

S:禁止路由器處理位

QRV:發送方發送該報文的次數(QRV-1次)

QQIC:查詢報文發送間隔時間

源地址數:記錄源地址的數量,用於增加的特定源組查詢

 

b)成員關係報告

TYPE(0x22)

保留

CheckSum

保留

保留

群組記錄數

群組1

 

群組2

 

群組3

 

群組的格式如下:

記錄類型

0

源地址數

多播地址

源地址1

源地址2

 

源地址3

 

。。。

源地址3

 

記錄類型:

1     MODE_IS_INCLUDE

2        MODE_IS_EXCLUDE

3        CHANGE_TO_INCLUDE_MODE

4        CHANGE_TO_EXCLUDE_MODE

5         ALLOW_NEW_SOURCE

6        BLOCK_OLD_SOURCE

其ip頭部中的目的地址為224.0.0.22

 

至此完成IGMP協議格式的分析,明天開始分析LINUX IGMP SNOOPING實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.