Internet 組管理協(xié)議稱為IGMP協(xié)議(Internet Group Management Protocol),是因特網(wǎng)協(xié)議家族中的一個組播協(xié)議。該協(xié)議運行在主機(jī)和組播路由器之間。IGMP協(xié)議共有三個版本,即IGMPv1、v2 和v3。
組播的可靠性IP 組播使用用戶數(shù)據(jù)報UDP 協(xié)議,然而UDP 是盡最大能力投遞的一種協(xié)議。因此,IP 組播應(yīng)用勢必會遇到數(shù)據(jù)包丟失和亂序問題。為此,對于IGMP 不同類型的應(yīng)用必須在確認(rèn)方式( 肯定確認(rèn)ACK 和否定確認(rèn)NACK),集中確認(rèn)與分布確認(rèn)、重傳機(jī)制、流量控制、擁塞控制等方面綜合考慮,提出解決方案。迄今為止,盡管在廣域網(wǎng)環(huán)境中已經(jīng)存在許多可靠組播協(xié)議,包括可靠組播協(xié)議RMP(ReliableMulticast Protocol),可擴(kuò)可靠組播SRM(Scalable Reliable Multicast),和可靠組播傳輸協(xié)議RMTP(ReliableMulticast Transport Protocol)。組播的可靠性研究仍然是重點研究課題之一。
組播安全性是只有注冊的主機(jī)才能夠向組發(fā)送數(shù)據(jù)和接收組播數(shù)據(jù)。然而IP 組播很難保證這一點。首先,IP 組播使用UDP,網(wǎng)絡(luò)中任何主機(jī)都可以向某個組播地址發(fā)送UDP 包;其次,Internet缺少對于網(wǎng)絡(luò)層的訪問控制,組成員可以隨時加入和退出組播組,使得組播安全性問題仍然是一個技術(shù)難點。IGMP 組播協(xié)議是IPv4 環(huán)境下重要的協(xié)議。IGMPv1 實現(xiàn)簡單,但是主機(jī)離開多播組延遲過大,選擇查詢路由器需要依賴具體的組播路由協(xié)議;IGMPv2缺少對主機(jī)進(jìn)程加入多播組的定義,制約了其應(yīng)用范圍。IGMPv3 主要改進(jìn)是支持源特定組播。大部分的網(wǎng)絡(luò)設(shè)備和主機(jī)操作系統(tǒng)協(xié)議棧都支持IGMPv1 和IGMPv2,但為適應(yīng)復(fù)雜的網(wǎng)絡(luò)需求,必須大力推進(jìn)IGMPv3 協(xié)議的用應(yīng)用。Windows XP 已經(jīng)支持IGMPv3 ,UNIX 操作系統(tǒng)也可以與IGMP v1/ v2 版本向后兼容,組播技術(shù)有著廣闊的發(fā)展前景。
IGMP的組成員查詢利用報文中類型字段0x11來標(biāo)識。IGMP的組成員查詢包含了兩種子類型:一般組成員查詢(General Query)和特定組成員查詢(Group-Specific Query)。子類型利用報文中的組播組地址(Group Address)字段來區(qū)分:組地址段等于0,表示一般組成員查詢;組地址地段不等于0,則表示特定組成員查詢,用于查詢本地網(wǎng)絡(luò)中的每個指定組播組的成員,其中組播組的地址由組地址(Group Address)字段來指定被查詢的組播組。在IGMPv1中只支持一般組成員查詢,IGMPv2支持特定組成員查詢。
IGMP約定,本地路由器利用一般組成員查詢方式來周期性地向本網(wǎng)絡(luò)內(nèi)的所有主機(jī)發(fā)送IGMP組成員查詢報文;本地網(wǎng)絡(luò)中的主機(jī)在接收到IGMP查詢報文時,將會對該報文作出相應(yīng),返回一個組成員報告報文,通知路由器本主機(jī)所在的組播組的地址。
正常情況下,IGMP采用一般組播組成員查詢來輪詢本地網(wǎng)絡(luò)中的組成員信息。這種查詢并非針對某一個組播組,而是針對本地網(wǎng)絡(luò)中所有組進(jìn)行查詢。在某些特定環(huán)境中,路由器也需要查詢在本地網(wǎng)絡(luò)中是否存在某個特定組播組的成員。這時可使用特定組成員查詢。