IGMP:他讓一個物理網(wǎng)絡(luò)上的所有系統(tǒng)知道主機當(dāng)前所在的多播組加袋,多播路由器需要這些信息以便知道多播數(shù)據(jù)報應(yīng)該向哪些接口轉(zhuǎn)發(fā)。
IGMP 報文
8字節(jié)的 IGMP 報文格式:
4位 IGMP 版本欠窒、4位 IGMP 類型、8位未用滤否、16位檢驗和吃嘿、32位組地址。
IGMP 類型為1說明是由多播路由器發(fā)出的查詢報文横朋,為2說明是主機發(fā)出的報告報文仑乌。組地址為 D 類 IP 地址,在查詢報文中組地址設(shè)置為0琴锭,在報告報文中組地址為要參加的組地址晰甚。
IGMP 協(xié)議
一)加入一個多播組
多播的基礎(chǔ)就是一個進程的概念(使用的術(shù)語進程是指操作系統(tǒng)執(zhí)行的一個程序),該進程在一個主機的給定接口上加入了一個多播組决帖。多播組的成員是動態(tài)的厕九,他隨時因進程加入和離開多播組而變化。
一個主機通過組地址和接口來識別一個多播組地回,主機必須保留一個表扁远,其中包含所有至少含有一個進程的多播組以及多播組中的進程數(shù)量。
二)IGMP 報告和查詢
多播路由器使用 IGMP 報文來記錄與該路由器相連網(wǎng)絡(luò)中組成員的變化情況刻像,使用規(guī)則如下:
1)當(dāng)?shù)谝粋€進程加入一個組時畅买,主機就發(fā)送一個 IGMP 報告,如果一個主機的多個進程加入同一個組细睡,只發(fā)送一個 IGMP 報告谷羞,這個報告被發(fā)送到進程加入組所在的同一接口上。
2)進程離開一個組時纹冤,主機不發(fā)送 IGMP 報告洒宝,即便是最后一個進程離開。
3)多播路由器定時發(fā)送 IGMP 查詢來了解是否還有任何主機包含屬于多播組的進程萌京。
4)主機通過發(fā)送 IGMP 報告來響應(yīng)一個 IGMP 查詢雁歌,對每個至少還包含一個進程的組均要發(fā)回 IGMP 報告。
三)生存時間字段
生存時間(TTL)設(shè)置為0時知残,多播數(shù)據(jù)報將被限制在同一主機靠瞎,設(shè)置為1時,多播數(shù)據(jù)報將被限制在同一子網(wǎng)內(nèi)傳送求妹,更大的 TTL 值能被多播路由器轉(zhuǎn)發(fā)乏盐。
通過增加 TTL 值得方法,一個應(yīng)用程序可實現(xiàn)對一個特定服務(wù)器的擴展環(huán)搜素制恍,第一個多播數(shù)據(jù)報以 TTL 等于1發(fā)送父能,如果沒有響應(yīng),就嘗試將 TTL 設(shè)置為2净神。在這種方式下何吝,該應(yīng)用能找到以跳數(shù)來度量的最近的服務(wù)器溉委。