百科解釋
目錄·IGMP版本0·IGMP版本1·IGMP版本2·IGMP版本3 因特網(wǎng)組管理協(xié)議(Internet Group Management Protocol或簡寫IGMP)是用于管理因特網(wǎng)協(xié)議多播組成員的一種通信協(xié)議。IP主機(jī)和相鄰的路由器利用IGMP來建立多播組的組成員。像ICMP用于單播連接一樣,IGMP也是IP多播說明的一個完整部分。 IGMP版本0 RFC 966,16頁: 因特網(wǎng)組管理協(xié)議被用在IP主機(jī)和它們即時相鄰多播代理之間,用以支持臨時組地址的分配和組成員的添加刪除。 ===RFC 988,1,2,3頁===: IP多點(diǎn)廣播定義為一個去往"主機(jī)群"的IP數(shù)據(jù)報的傳輸,有零個或多個主機(jī)組成的"主機(jī)群"通過單個IP目的地址標(biāo)識。一個多點(diǎn)播送數(shù)據(jù)報被投遞給它的目的主機(jī)群的所有成員,具有和常規(guī)單路傳送IP數(shù)據(jù)報同樣的“盡力”安全性,那就是說該數(shù)據(jù)報不保證達(dá)到目的地組的所有成員,或者不和其他數(shù)據(jù)報具有相同的順序。主機(jī)組的成員數(shù)是動態(tài)的;也就是說,主機(jī)隨時可以參加和離開組。 沒有對主機(jī)組中的成員的數(shù)目或地點(diǎn)加以限制,但是成員僅限于那些擁有專用的存取鍵的主機(jī)。一個主機(jī)可能同時是多個組的成員。一個主機(jī)即時不是一個組的成員也可以給它發(fā)送數(shù)據(jù)報。主機(jī)組可能永久性或暫時性的。永久性組具有一個眾所周知的,官方分配的IP地址。它是地址,非該組的成員,也就是說永久性;任何時間,一個永久性組也許有許多成員,甚至可能有零個成員。 另一方面,臨時性的組,當(dāng)應(yīng)一個主機(jī)的請求創(chuàng)建時被動態(tài)地指派一個地址。當(dāng)它的成員跌至零,臨時性的組要解散時,它的地址可以重新分配。 臨時組的創(chuàng)建和組員身份信息的維護(hù)是“多播代理”(存在于因特網(wǎng)網(wǎng)關(guān)或其他專用的主機(jī)內(nèi)的實體)的職責(zé)。至少有一個多播代理直接與每個支持IP多點(diǎn)廣播的IP網(wǎng)絡(luò)或子網(wǎng)相連。主機(jī)通過用鄰機(jī)代理交換報文來請求新建一個組、加入或離開現(xiàn)有組。多播代理還擔(dān)負(fù)多點(diǎn)播送IP數(shù)據(jù)報的互連網(wǎng)絡(luò)運(yùn)送工作。發(fā)送一個多點(diǎn)播送IP數(shù)據(jù)報時,主機(jī)將它傳送到一個局域網(wǎng)多播地址那里,哪些地址標(biāo)識目的地主機(jī)組的所有鄰機(jī)成員。如果該組具有在其他網(wǎng)絡(luò)的成員,多播代理成為本地多播的輔助接收器并且通過因特網(wǎng)網(wǎng)關(guān)系統(tǒng)中繼該數(shù)據(jù)報給其他網(wǎng)絡(luò)上的代理。最后,另一個網(wǎng)絡(luò)上的代理將數(shù)據(jù)報作為一個本地的多播傳送給他們自己目的組的鄰機(jī)成員。 2級:充分支持IP多點(diǎn)廣播。 2級容許一個主機(jī)去創(chuàng)建、加入和離開主機(jī)組,以及給主機(jī)組發(fā)送IP數(shù)據(jù)報。它要求在主機(jī)內(nèi)部實現(xiàn)IGMP并且擴(kuò)展IP和局域網(wǎng)服務(wù)接口。本備忘錄以下的所有部分可適用于實現(xiàn)2級。 RFC 988,10頁: IP模塊內(nèi)部,成員資格管理操作通過IGMP支持,這在附錄I.中規(guī)定。也使報文與每一上面規(guī)定的操作相對應(yīng),IGMP還規(guī)定一個" deadman timer "程序借此主機(jī)定期用多播代理確認(rèn)它們的組員資格。 IP模塊必須維護(hù)一個數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)列出主機(jī)當(dāng)前所屬的所有主機(jī)組的IP地址、以及每個組的回送策略、存取關(guān)鍵字和時間變量。 這個數(shù)據(jù)結(jié)構(gòu)被用于IP多址通信傳輸服務(wù),了解哪些輸出數(shù)據(jù)報給回送,通過接收服務(wù)了解哪些入局?jǐn)?shù)據(jù)報去接受。IGMP和管理接口操作的用途是維護(hù)這個數(shù)據(jù)結(jié)構(gòu)。 RFC 988,13頁: IGMP被用在IP主機(jī)和它們的緊接的鄰機(jī)多點(diǎn)播送代理之間支持臨時組的生成,添加和刪除一個組的成員,定期證實組員身份。IGMP是一個不對稱協(xié)議而且這里從一個主機(jī)觀點(diǎn)而非一個多播代理來加以說明。 像ICMP(因特網(wǎng)控制報文協(xié)議)一樣, IGMP是一個IP的組成部分。它要求通過所有主機(jī)對應(yīng)的2級IP多點(diǎn)廣播規(guī)范完全地實現(xiàn)。IGMP報文被壓縮在IP數(shù)據(jù)報中,具有一個IP協(xié)議號碼2.所有IGMP報文具有以下格式: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Access Key + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 類型 8位 類型 描述 1 創(chuàng)建組要求 2 創(chuàng)建組應(yīng)答 3 加入組要求 4 加入組應(yīng)答 5 離開組要求 6 離開組應(yīng)答 7 確認(rèn)組要求 8 確認(rèn)組應(yīng)答 代碼 8位 在一個創(chuàng)建組請求消息中代碼字段指出新的主機(jī)組將是公共的或私有: 代碼 描述 0 公共 1 私有 在一個回答信息中,代碼字段規(guī)定要求的結(jié)果: 0 請求答應(yīng) 1 要求被拒絕,無資源 2 要求被拒絕,無效代碼 3 要求被jia無效組地址 4 要求被拒絕,無效存取關(guān)鍵字 5-255 要求掛起,幾秒后重試 IGMP校驗和,16位 校驗和是從IGMP類型開始的IGMP報文中16位二進(jìn)制反碼和的16位二進(jìn)制反碼值。為了計算該校驗和,校驗和域應(yīng)該為零。在數(shù)據(jù)包傳輸過程中,校驗和被計算出來并插入域中.當(dāng)收到數(shù)據(jù)包的時候,校驗和再次被計算并相對于校驗和域進(jìn)行驗證.當(dāng)兩個校驗和不匹配時即發(fā)生錯誤. 標(biāo)識符,32位 在一個確認(rèn)組請求消息中,標(biāo)識符字段包含零。在所有其他的請求消息中,標(biāo)識符域包含一個值以便將來自同一個主機(jī)的其他要求與該要求區(qū)別開來。在一個回答信息中,標(biāo)識符域包含與在對應(yīng)請求消息中同樣的值。 組地址,32位 在一個組創(chuàng)建請求報文中,組地址字段包含零。在所有其他的請求消息中,組地址域包含一個主機(jī)組地址。 在一個組創(chuàng)建應(yīng)答報文中,組地址域或包含新的指定的主機(jī)組地址(如果該要求被允許)或包含零(如果被拒絕)。在所有其他的應(yīng)答報文中,組地址域包含與在對應(yīng)請求報文中同樣的主機(jī)組地址。 存取關(guān)鍵字,64位 在一個組創(chuàng)建請求報文中,存取關(guān)鍵字字段包含零。在所有其他的請求消息中,存取關(guān)鍵字域包含分配給主機(jī)組在組地址域識別的存取關(guān)鍵字(零對于公共的組)。在一個組創(chuàng)建應(yīng)答報文中,存取關(guān)鍵字域或包含一個非零的64比特編號(如果要求一個私有組被允許)或包含零。在所有其他的應(yīng)答報文中,存取關(guān)鍵字域包含與在對應(yīng)要求中相同存取關(guān)鍵字。 IGMP版本1 RFC1054,10-13頁: 因特網(wǎng)組管理協(xié)議(IGMP v0)被IP主機(jī)用來向任何即時相鄰多播路由器報告它們的組成員關(guān)系.IGMP是一個不對稱協(xié)議,在此處從一個主機(jī)而不是從一個路由器的觀點(diǎn)進(jìn)行說明.(IGMP也能對稱或不對稱地被用于多播路由器之間) 像ICMP一樣,IGMP是IP的一個整體部分.它要求通過所有主機(jī)對應(yīng)的2級IP多點(diǎn)廣播規(guī)范完全地實現(xiàn)。IGMP報文被壓縮在IP數(shù)據(jù)報中,具有一個IP協(xié)議號碼2.此備忘錄詳細(xì)說明了IGMP的版本1. 非正式協(xié)議描述.多播路由器發(fā)送主機(jī)成員關(guān)系查詢信息(下文中稱為查詢)來發(fā)現(xiàn)在哪些主機(jī)組在它們附屬的本地網(wǎng)絡(luò)上有成員.查詢被寫入所有主機(jī)組地址(地址是224.0.0.1),攜帶的IP生存時間是1. 主機(jī)通過產(chǎn)生主機(jī)成員關(guān)系報告(下文中稱為報告)來響應(yīng)一個查詢.報告各個主機(jī)組到它們所屬的收到查詢的用戶接口.為了避免并發(fā)報告產(chǎn)生"內(nèi)爆",同時也減少所傳輸?shù)膱蟾婵倲?shù),采用了以下兩種技術(shù): 1.當(dāng)一臺主機(jī)收到一個查詢時,它并不是馬上發(fā)送報告,而是為傳入查詢的網(wǎng)絡(luò)接口上每個它的組成員關(guān)系啟動一個報告延遲時間.每個時間是在0-D秒隨機(jī)選擇的不同的值.當(dāng)一個時間截止時,就為相應(yīng)的主機(jī)組產(chǎn)生一個報告.因此,報告散布在一個D秒?yún)^(qū)間內(nèi)而不是全部立刻發(fā)生. 2.一個報告伴隨一個與主機(jī)組地址等價的IP目的地址被發(fā)送,IP生存時間是1,所以,同一個網(wǎng)絡(luò)上同一個組的其他成員可以偵聽報告.如果一臺主機(jī)聽到網(wǎng)絡(luò)上同組的一個報告,就停止自己對該組的計時并且不會向該組產(chǎn)生報告.因而,在正常情況下,在網(wǎng)絡(luò)上各組僅會由定時器截止最快的主機(jī)產(chǎn)生一個報告.注意到多播路由器收到所有的IP多播數(shù)據(jù)報,因此不需要明確注明地址.另外還要注意到路由器需要知道哪些主機(jī)屬于同一個組,除非在一個特殊網(wǎng)絡(luò)上至少一個主機(jī)屬于一個組. 以上描述的還有兩個例外:首先,當(dāng)收到一個查詢時,如果一個報告的延遲定時器已經(jīng)開始計時,那個定時器不會被復(fù)位成一個新的隨機(jī)值,而是按其當(dāng)前值繼續(xù)計時.第二,不會為全主機(jī)組(224.0.0.1)中的一個主機(jī)成員關(guān)系設(shè)置報告延遲定時器,該成員關(guān)系不會被報告. 如果一臺主機(jī)使用一個偽隨機(jī)數(shù)生成器來計算報告延遲,主機(jī)自己的一個專用IP地址應(yīng)該被用作生成的一部分,以避免多個主機(jī)產(chǎn)生同樣延遲順序的幾率. 一臺主機(jī)應(yīng)該確認(rèn)一個收到的報告在其IP目的域和IGMP組地址域有同樣的IP主機(jī)組地址,以確保該主機(jī)自己的報告不會被一個錯誤接收的報告取消.主機(jī)應(yīng)當(dāng)放棄除了主機(jī)成員關(guān)系查詢(Host Membership Query)或主機(jī)成員關(guān)系報告(Host Membership Query)之外任何形式的IGMP消息. 多播路由器定期發(fā)送查詢以刷新當(dāng)前特定網(wǎng)絡(luò)上的成員信息.如果在一些查詢之后沒有收到一個特定組的報告,路由器就假定這個組沒有本地成員并且他們不需要為本地網(wǎng)絡(luò)上的組正向遠(yuǎn)程的多播.查詢通常不是被頻繁發(fā)送的(每分鐘少于一次),以保持主機(jī)和網(wǎng)絡(luò)上的IGMP額外開銷很低.盡管如此,當(dāng)一個多播路由器啟動時,它也許會發(fā)出一些密集的查詢以便于快速建立其對于本地成員關(guān)系的信息獲取. 當(dāng)一臺主機(jī)加入到一個新的組時,它應(yīng)當(dāng)立即對該組發(fā)送一個報告,而不是等待一個查詢,以防它正好是網(wǎng)絡(luò)上該組的第一個成員.為避免初始化報告丟失和損壞,建議此報告在短延時后重復(fù)1到2次.一個簡單的實現(xiàn)方法就是假設(shè)收到一個僅面向該組的查詢,設(shè)置該組的隨機(jī)報告延遲定時器. RFC 1054,16,17頁: 主機(jī)組地址分配:組地址捆綁 將IP主機(jī)組地址捆綁到物理主機(jī)上被認(rèn)為和IP單播地址捆綁類似.一個IP單播地址被靜態(tài)捆綁到一個單IP網(wǎng)絡(luò)上的單個本地網(wǎng)絡(luò)接口.一個IP主機(jī)組地址是被動態(tài)捆綁到一個IP網(wǎng)絡(luò)組上的本地網(wǎng)絡(luò)組. 理解IP主機(jī)組地址并非捆綁到一個IP單播地址組非常重要.多播路由器不需要維持各個主機(jī)組獨(dú)立成員的列表.例如,一個連接到Ethernet的多播路由器僅需把一個Ethernet多播地址和各個有本地成員的主機(jī)組聯(lián)系起來,而不是一個獨(dú)立IP成員或Ethernet地址的列表. RFC 1112,第3頁: 主機(jī)組地址 主機(jī)組由D類IP地址標(biāo)記,即高四位為“1110”的那些IP地址。E類IP地址,即那些高四位為“1111”的IP地址,是為了將來的編址方式而保留的。在Internet標(biāo)準(zhǔn)的點(diǎn)分十進(jìn)制表示中,主機(jī)組地址的范圍是從244.0.0.0到239.255.255.255。地址224.0.0.0被保證不分配給任何組,224.0.0.1被分配所有IP主機(jī)的永久組(包括網(wǎng)關(guān))。它被用于標(biāo)記在直接相連的網(wǎng)絡(luò)中所有多播主機(jī)。沒有多播地址(或其它IP地址)用來標(biāo)記Internet上的所有主機(jī)。其它眾所周知的地址、永久組將在“已分配編號”(Assigned Numbers)文檔中公布。 RFC 1112,11頁: Internet組管理協(xié)議(IGMP)用于IP主機(jī)向所有緊鄰的多播路由器報告它們的主機(jī)組成員關(guān)系。IGMP是不對稱的協(xié)議,將從主機(jī)的視角而不是從多播路由器的視角描述它。(IGMP也可以在多播路由器之間對稱或非對稱的使用。這樣的用法這里沒有指定。)像ICMP一樣,IGMP是IP的一個組成部分。要在所有符合IP多播規(guī)范的2級主機(jī)上實現(xiàn)。IGMP報文封裝在IP數(shù)據(jù)報中,數(shù)據(jù)報的IP協(xié)議字段為2。 RFC 1122,47頁: IGMP[RFC 1112]是一個用于在單個網(wǎng)絡(luò)上特定多播組中主機(jī)和網(wǎng)關(guān)間建立主機(jī)成員關(guān)系的協(xié)議。網(wǎng)關(guān)在連接一個多播路由協(xié)義時使用此信息以支持通過Internet的IP多播。 此刻,IGMP的實現(xiàn)是可選的,沒有IGMP,一臺主機(jī)仍然能參與它所在網(wǎng)絡(luò)的本地多播。 RFC 1122,67,68頁: 主機(jī)應(yīng)當(dāng)支持全連接網(wǎng)絡(luò)上的本地IP多播,為此聲明從D類IP地址到鏈路層的地址映射(見下文)。對本地IP多播的支持包括發(fā)送多播數(shù)據(jù)報、加入多播組、接收多播數(shù)據(jù)報和離開多播組。這必須支持RFC 1112中除了IGMP協(xié)議自身之外的所有,這也是可選的。 IGMP提供容許帶有信息需求的多播路由的網(wǎng)關(guān),以支持復(fù)合網(wǎng)絡(luò)上的IP多播。此時,多播路由網(wǎng)關(guān)處于試驗性階段并沒有廣泛應(yīng)用。因為主機(jī)沒有通過多播路由網(wǎng)關(guān)連接到網(wǎng)絡(luò)上,或者不需要接收來自其他網(wǎng)絡(luò)的多播數(shù)據(jù)報,IGMP服務(wù)沒有目的性,因此目前IGMP是任選的。盡管如此,RFC 1112的其他部分在當(dāng)前被建議作為一個更好的本地廣播地址的選擇用于提供IP層接入的本地網(wǎng)絡(luò)多播地址。希望當(dāng)多播路由網(wǎng)關(guān)廣泛使用的時候,在將來的數(shù)據(jù)中建議使用IGMP。 如果IGMP無法實現(xiàn),主機(jī)應(yīng)當(dāng)在IP層被初始化且激活時只有一個成員時仍然加入全主機(jī)(all-host)組(224.0.0.1)。 加入全主機(jī)(all-host)組將嚴(yán)格支持多播的本地使用,例如網(wǎng)關(guān)探測協(xié)議,甚至在IGMP無法實現(xiàn)的時候也是這樣。 當(dāng)前為如下類型的網(wǎng)絡(luò)做了D類IP地址到本地網(wǎng)絡(luò)映射的說明: Ethernet/IEEE 802.3 任何支持廣播但不是多播的網(wǎng)絡(luò),編址:所有D類IP地址映射到本地廣播地址。 任何類型的點(diǎn)對點(diǎn)鏈接(例如SLIP或HDLC鏈接):無需映射,所有IP多播數(shù)據(jù)報按現(xiàn)狀在本地幀中發(fā)送 其他類型網(wǎng)絡(luò)的映射會在將來說明。主機(jī)應(yīng)當(dāng)為高層協(xié)議或應(yīng)用提供一種決定哪種主機(jī)連接網(wǎng)絡(luò)支持IP多播編址的方法。 RFC 1812,84頁: IGMP是一種用于在單個物理網(wǎng)絡(luò)上主機(jī)和多播路由器之間建立特定多播組內(nèi)主機(jī)成員關(guān)系的協(xié)議。多播路由器在通過多播路由協(xié)議連接時使用此信息,以支持Internet上的正向IP多播。路由器應(yīng)當(dāng)實現(xiàn)IGMP的多播路由器部分。 IGMP版本2 RFC 2236,1,2頁: IGMPv2允許組成員關(guān)系的終止被迅速報告給路由協(xié)議,這一點(diǎn)在高帶寬多播組以及易失性組成員關(guān)系的子網(wǎng)中很重要。 像ICMP一樣,IGMP是IP的一個完整部分。它要求在所有希望接收IP多播的主機(jī)上實現(xiàn)。IGMP消息封裝在IP數(shù)據(jù)報中,其IP的協(xié)議號為2。所有在該文檔中說明了的IGMP消息均會用TTL為1進(jìn)行傳遞,并在IP頭中包括了IP路由檢測選項。 RFC 2113,第2頁: 路由器警告選項語義是“路由器應(yīng)該更仔細(xì)地檢查這個包”。通過在其協(xié)議消息的IP頭里包含路由器警告選項,RSVP能在對普通數(shù)據(jù)包的推進(jìn)有少量或沒有性能損失的情況下來截取消息。 RFC 2236,4,5頁: 多播路由器使用IGMP(v2)獲知哪些組在其附屬物理網(wǎng)絡(luò)上有成員。多播路由器保留一個包括各附屬網(wǎng)絡(luò)多播組成員關(guān)系和各成員關(guān)系定時器的列表。多播組成員關(guān)系意味著在一個給定附屬網(wǎng)絡(luò)上至少出現(xiàn)一個多播組的一個成員,而不是所有成員的列表。當(dāng)主機(jī)收到一個通用查詢時,將為各個組(不包括全系統(tǒng)組)設(shè)置延遲定時器,該組就是收到查詢的接口的一個成員。 當(dāng)路由器接收到了報告,它就會把該組報告加入到一個組播組成員列表中,并且會為其成員關(guān)系設(shè)一個值為組成員生存周期的定時器。當(dāng)一個主機(jī)加入了一個組播組,則應(yīng)該立即發(fā)送一個非請求的版本2的成員關(guān)系報告給組,以防它是網(wǎng)絡(luò)上該組的第一個成員。 當(dāng)一主機(jī)離開一個組播組,如果它是最后一個主機(jī),除它外沒有其它的機(jī)器來報告成員關(guān)系了,則它應(yīng)該發(fā)送一條離開組的消息給所有路由器,地址為組播組(224.0.0.2)。 IGMP版本3 RFC 3376
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助