計(jì)算機(jī)網(wǎng)絡(luò)第8章 因特網(wǎng)組管理協(xié)議IGMP.ppt_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)第8章 因特網(wǎng)組管理協(xié)議IGMP.ppt_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)第8章 因特網(wǎng)組管理協(xié)議IGMP.ppt_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)第8章 因特網(wǎng)組管理協(xié)議IGMP.ppt_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)第8章 因特網(wǎng)組管理協(xié)議IGMP.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余73頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、多播技術(shù),鄭州大學(xué)信息工程學(xué)院李向麗,兩種多播協(xié)議,根據(jù)協(xié)議的作用范圍,多播協(xié)議分為: 主機(jī)-路由器之間的協(xié)議,即多播成員管理協(xié)議(包括 IGMP 互連網(wǎng)組管理協(xié)議) 路由器-路由器之間協(xié)議,主要是各種多播路由協(xié)議,第8章 因特網(wǎng)組管理協(xié)議(IGMP),8.1 IGMP概述 8.2 IGMPv1 8.3 IGMP2 8.4 IGMP3,8.1 IGMP概述,8.1.1 IGMP的功能 8.2.2 IGMP在TCP/IP協(xié)議棧的位置,8.1 IGMP概述,IGMP:因特網(wǎng)組管理協(xié)議,它運(yùn)行于主機(jī)和與主機(jī)直接相連的多播路由器之間,用來(lái)管理組成員的關(guān)系。 IGMP協(xié)議把網(wǎng)絡(luò)上所連接的主機(jī)的成員關(guān)系傳

2、送給多播路由器。幫助多播路由器創(chuàng)建和更新與每一個(gè)路由器接口有關(guān)的多播組表。 多播路由器根據(jù)這些信息來(lái)了解多播分組應(yīng)該向哪些接口轉(zhuǎn)發(fā)。,IGMP有三個(gè)版本,IGMPv1,RFC1112,定義了基本的組成員查詢和報(bào)告過(guò)程 IGMPv2,RFC2236,在 IGMPv1 的基礎(chǔ)上增加了組成員快速離開的機(jī)制 IGMPv3,RFC3376,增加的主要功能是:成員可以指定接收或不接收某些多播源的報(bào)文 著重介紹 IGMPv2 協(xié)議的原理,(多播源地址,組地址)地址對(duì)表示方式,(S,G)地址對(duì)方式表示從源S向多播組G所發(fā)送的分組,用來(lái)對(duì)某一多播組進(jìn)行唯一標(biāo)識(shí)。 (*,G)地址對(duì)方式未指定源地址,只是用來(lái)說(shuō)明是

3、發(fā)送給多播組G的多播分組。 (*,G)又可細(xì)分為由該組地址和多個(gè)源地址所標(biāo)識(shí)的多個(gè)更加精確的多播分組,例如(S1,G)、(S2,G)、(S3,G)等。,IGMPv1、IGMPv2和IGMPv3協(xié)議的不同,v1、v2的主機(jī)只能根據(jù)組地址來(lái)識(shí)別和接收多播分組,即識(shí)別和接收(*,G)表示的多播分組。 如果主機(jī)需要選擇接收某一特定(S,G)的多播分組,則需要相應(yīng)的上層協(xié)議在(*,G)分組中選擇接收(S,G)的多播分組。 v3中的主機(jī)可以直接對(duì)特定的多播組(S,G)進(jìn)行接收和過(guò)濾。,8.1.1 IGMP的功能,IGMP 實(shí)現(xiàn)的功能是雙向的: 一方面通過(guò) IGMP 協(xié)議,主機(jī)通知本地路由器希望加入并接收某

4、個(gè)特定多播組 另一方面路由器通過(guò) IGMP 協(xié)議,周期性地查詢子網(wǎng)內(nèi)某個(gè)已知組的成員是否處于活動(dòng)狀態(tài),即該網(wǎng)段是否仍有屬于某個(gè)多播組的成員,實(shí)現(xiàn)所連網(wǎng)絡(luò)組成員關(guān)系的收集與維護(hù)。 通過(guò) IGMP,路由器能夠記錄特定的多播組在某個(gè)主機(jī)上是否有組成員。,多播組地址表,多播路由器都有一個(gè)多播組地址表,表中記錄了與每一個(gè)接口連接的物理網(wǎng)絡(luò)上的多播組成員關(guān)系。路由器根據(jù)多播分組的目的地址查找多播組地址表,轉(zhuǎn)發(fā)多播分組。 IGMP多播路由器通過(guò)查詢網(wǎng)絡(luò)上的主機(jī)來(lái)建立和維護(hù)多播組地址表。 多播路由器周期性(125秒)查詢本地網(wǎng)絡(luò)上的主機(jī),確定目前各個(gè)多播組中是否有成員存在。 主機(jī)對(duì)IGMP的查詢進(jìn)行響應(yīng)。一個(gè)

5、主機(jī)中可能有一個(gè)或多個(gè)進(jìn)程加入到不同的多播組,對(duì)每個(gè)多播組,都需要發(fā)回IGMP響應(yīng)報(bào)文。,多播路由器通過(guò)查詢以及主機(jī)的應(yīng)答這樣的交互過(guò)程,建立、更新和維護(hù)多播組地址表的內(nèi)容。 不管有一臺(tái)還是多臺(tái)主機(jī)屬于某個(gè)多播組,表中只包含一個(gè)該多播組的地址。,多播組內(nèi)的成員關(guān)系是動(dòng)態(tài)的,進(jìn)程可以隨時(shí)離開一個(gè)組。 隱式退出。當(dāng)主機(jī)檢測(cè)到參加到某個(gè)多播組的進(jìn)程全部都退出時(shí),對(duì)這個(gè)組就不再發(fā)送IGMP響應(yīng)報(bào)文。 顯式退出。主機(jī)也可以發(fā)送離開組報(bào)文,顯式通知路由器它要退出多播組。,8.1.2 IGMP在TCP/IP協(xié)議棧的位置,封裝IGMP報(bào)文的IP分組首部的三個(gè)字段,協(xié)議字段,值為2,說(shuō)明封裝的是IGMP報(bào)文。

6、TTL字段,值為1,表示IGMP報(bào)文只能在本網(wǎng)絡(luò)傳送。 目的IP地址字段,其值隨報(bào)文類型的不同而不同。 如果是成員關(guān)系查詢報(bào)文,則目的IP地址是224.0.0.1(本網(wǎng)絡(luò)上的所有節(jié)點(diǎn)); 如果是成員關(guān)系報(bào)告報(bào)文,則目的IP地址是被報(bào)告的多播地址 ; 如果是離開組報(bào)文,則目的IP地址應(yīng)該是224.0.0.2(本網(wǎng)絡(luò)上的所有路由器)。,8.2 IGMPv1,8.2.1 IGMPv1的報(bào)文格式 8.2.2 IGMPv1查詢-響應(yīng)過(guò)程 8.2.3 報(bào)告抑制 8.2.4 查詢路由器選舉 8.2.5 主機(jī)加入組和離開組的過(guò)程,8.2 IGMPv1,大多數(shù)設(shè)備都支持IGMPv2,仍有許多設(shè)備在使用IGMPv

7、1。 IGMPv1的工作原理: 路由器定期向網(wǎng)絡(luò)內(nèi)廣播成員關(guān)系查詢報(bào)文,探詢網(wǎng)絡(luò)內(nèi)是否有多播組成員。 如果主機(jī)想加入某個(gè)多播組,就向路由器發(fā)送成員關(guān)系報(bào)告報(bào)文; 隱式離開。主機(jī)如果想離開某個(gè)多播組,就對(duì)路由器的查詢報(bào)文保持沉默,經(jīng)過(guò)一段時(shí)間后,路由器便知道網(wǎng)絡(luò)內(nèi)沒有多播組成員了。,8.2.1 IGMPv1的報(bào)文格式,版本字段,4比特。IGMPv1為1。 類型字段,4比特。報(bào)文的類型。在IGMPv1中,該字段只有兩個(gè)值: 取值為1,成員關(guān)系查詢。是多播路由器向主機(jī)發(fā)送的查詢,詢問(wèn)主機(jī)所屬的多播組; 取值為2,成員關(guān)系報(bào)告。主機(jī)向多播路由器發(fā)送,可以由主機(jī)主動(dòng)發(fā)出,或者是主機(jī)對(duì)多播路由器的查詢報(bào)文

8、的響應(yīng)。該報(bào)文用來(lái)說(shuō)明主機(jī)屬于某個(gè)多播組。,校驗(yàn)和字段,16比特。用于IGMP報(bào)文的校驗(yàn)。 組地址字段,32比特。 若是成員關(guān)系查詢報(bào)文,設(shè)置為0(0.0.0.0),被主機(jī)忽略。表示多播路由器希望主機(jī)對(duì)它想加入的每個(gè)多播組,都需要發(fā)回一個(gè)報(bào)告報(bào)文。 若用于成員關(guān)系報(bào)告報(bào)文時(shí),包含一個(gè)主機(jī)要參加的多播組地址,這是一個(gè)D類IP地址。,8.2.2 IGMPv1查詢-響應(yīng)過(guò)程,8.2.3 報(bào)告抑制,主機(jī)對(duì)成員關(guān)系查詢報(bào)文的處理流程如下: 主機(jī)接收成員關(guān)系查詢報(bào)文后,對(duì)加入的每個(gè)多播組啟動(dòng)一個(gè)倒計(jì)時(shí)器。計(jì)時(shí)值為隨機(jī)值,默認(rèn)為10秒。 當(dāng)計(jì)時(shí)器為0 時(shí),主機(jī)發(fā)送成員關(guān)系報(bào)告報(bào)文,通知路由器網(wǎng)絡(luò)內(nèi)仍有某個(gè)多

9、播分組的接收者。 當(dāng)計(jì)時(shí)器到達(dá)0 之前,若主機(jī)接收到來(lái)自其它主機(jī)發(fā)送的同一個(gè)組成員關(guān)系報(bào)告報(bào)文,那么它就取消對(duì)多播組224.1.1.1的計(jì)時(shí)。避免了發(fā)送同一個(gè)成員關(guān)系報(bào)告報(bào)文給路由器。通過(guò)報(bào)告抑制機(jī)制,有助于減少IGMP報(bào)文數(shù)量。,報(bào)告抑制例子,例如:三臺(tái)主機(jī),在時(shí)間0收到查詢報(bào)文,對(duì)每一個(gè)組的隨機(jī)響應(yīng)時(shí)間如圖所示。 若每個(gè)主機(jī)發(fā)送響應(yīng)報(bào)文,則需要7個(gè)報(bào)文。若使用延遲響應(yīng),則只需要4個(gè)報(bào)文。,8.2.4 查詢路由器選舉,如果在一個(gè)網(wǎng)絡(luò)中有多個(gè)多播路由器,那么多個(gè)路由器都發(fā)送IGMP查詢報(bào)文是一種浪費(fèi),應(yīng)當(dāng)確定一個(gè)查詢路由器。 IGMPv1沒有提供選舉查詢路由器的機(jī)制,把這一任務(wù)留給了PIM、D

10、VMRP等多播路由協(xié)議。 由于不同的協(xié)議使用不同的選舉機(jī)制,會(huì)造成在一個(gè)網(wǎng)絡(luò)中出現(xiàn)多個(gè)查詢路由器,這是IGMPv1的缺點(diǎn)。,8.2.5 主機(jī)加入組和離開組的過(guò)程,查詢路由器RA,主機(jī)A,主機(jī)B,主動(dòng)報(bào)告加入224.3.3.3,主機(jī)C,非查詢路由器RB,IGMPv1缺乏顯式離開組方式,一臺(tái)主機(jī)離開一個(gè)多播組時(shí),就不響應(yīng)路由器的查詢報(bào)文。當(dāng)一個(gè)網(wǎng)絡(luò)內(nèi)某個(gè)多播組的最后一個(gè)成員退出后,路由器還會(huì)繼續(xù)轉(zhuǎn)發(fā)關(guān)于這個(gè)多播組的數(shù)據(jù)分組,直到一段時(shí)間內(nèi)路由器接收不到任何來(lái)自該組的成員響應(yīng),才停止向該網(wǎng)絡(luò)轉(zhuǎn)發(fā)該組的多播數(shù)據(jù)分組。 路由器為網(wǎng)絡(luò)中的每個(gè)多播組維護(hù)一個(gè)計(jì)時(shí)器。 當(dāng)路由器接收到某臺(tái)主機(jī)的成員關(guān)系報(bào)告報(bào)文

11、時(shí),就會(huì)將該組的計(jì)時(shí)器清零。 當(dāng)某個(gè)計(jì)時(shí)器超時(shí)后,說(shuō)明在本網(wǎng)絡(luò)上沒有這個(gè)多播組的接收者了,于是停止向該網(wǎng)絡(luò)轉(zhuǎn)發(fā)該多播組的分組。,8.3 IGMPv2,8.3.1 IGMPv2的報(bào)文格式 8.3.2 查詢-響應(yīng)過(guò)程 8.3.3 主機(jī)加入多播組和離開多播組的過(guò)程 8.3.4 選舉查詢路由器 8.3.5 IGMPv1與IGMPv2的互操作性 8.3.6 IGMPv2的操作 8.3.7 IGMPv2的實(shí)現(xiàn),8.3 IGMPv2,IGMPv1的缺點(diǎn): 離開組的延遲過(guò)大 選舉查詢路由器需要依賴多播路由協(xié)議進(jìn)行。 IGMPv2的改進(jìn): 增加了離開多播組的報(bào)文格式,當(dāng)主機(jī)想要離開時(shí),向路由器發(fā)送離開組報(bào)文即可

12、。 明確了查詢路由器的選舉機(jī)制。 除此之外,IGMPv2的工作原理與IGMPv1基本一致。,8.3.1 IGMPv2的報(bào)文格式,IGMPv2的報(bào)文格式進(jìn)行了兩處改動(dòng)。 將IGMPv1的版本字段和類型字段進(jìn)行了合并; 增加了最大響應(yīng)時(shí)間 (Max ResponseTime) 字段 。,IGMPv2報(bào)文字段含義,類型字段,8比特。新增了兩種報(bào)文類型,共定義了4種類型。 0 x11,成員關(guān)系查詢報(bào)文。IGMPv2的查詢分為兩種: 一般查詢(General Query) ,組地址字段置為全0,對(duì)所有多播組進(jìn)行組成員查詢; 特定組查詢(Group-specific Query) ,組地址字段設(shè)置為特定多

13、播組的地址。 0 x12,IGMPv1成員關(guān)系報(bào)告報(bào)文,兼容IGMPv1。 0 x16,IGMPv2成員關(guān)系報(bào)告報(bào)文。 0 x17,離開組(Leave Group)報(bào)文。,IGMPv2報(bào)文類型,IGMPv2報(bào)文字段含義(續(xù)),最大響應(yīng)時(shí)間字段,8比特。只有在成員關(guān)系查詢報(bào)文中有效,用來(lái)指定對(duì)這個(gè)查詢報(bào)文進(jìn)行響應(yīng)的最大等待時(shí)間。 主機(jī)必須在最大響應(yīng)時(shí)間到達(dá)之前進(jìn)行響應(yīng),發(fā)送成員關(guān)系報(bào)告報(bào)文。 校驗(yàn)和字段,16比特。與IGMPv1中的一樣。 組地址字段,32比特。與IGMPv1中的基本一樣。只是當(dāng)采用特定多播組查詢時(shí),該字段存放要查詢的多播組的地址。,8.3.2 查詢-響應(yīng)過(guò)程,與IGMPv1工作

14、原理基本相同,但是有兩個(gè)方面的改進(jìn): 增加了特定多播組查詢。路由器使用特定多播組查詢報(bào)文,了解特定多播組在網(wǎng)絡(luò)內(nèi)是否還有組成員,決定是否還需要向該網(wǎng)絡(luò)轉(zhuǎn)發(fā)該多播組的數(shù)據(jù)分組。 IGMPv2的成員關(guān)系報(bào)告報(bào)文的類型代碼不一樣。,8.3.3 主機(jī)加入多播組和離開多播組的過(guò)程,IGMPv2的組成員加入與IGMPv1完全一樣。 多播的基礎(chǔ)是進(jìn)程的概念。 進(jìn)程可以要求它的主機(jī)加入或離開一個(gè)組。 當(dāng)一臺(tái)主機(jī)的最后一個(gè)進(jìn)程離開一個(gè)組的時(shí)候,此主機(jī)就不再屬于這個(gè)組。 每臺(tái)主機(jī)都記錄它的進(jìn)程當(dāng)前屬于哪些組。,主機(jī)記錄進(jìn)程和多播組的關(guān)系,主機(jī)中維護(hù)了一個(gè)進(jìn)程表,包含所有參與多播的進(jìn)程的進(jìn)程號(hào),以及它們所加入的多播

15、組的地址。 當(dāng)一個(gè)進(jìn)程想加入到一個(gè)多播組時(shí),主機(jī)在它的進(jìn)程表中增加或更新維護(hù)相關(guān)表項(xiàng)。 如果進(jìn)程表中沒有這個(gè)多播組的表項(xiàng),則增加一個(gè)表項(xiàng)。并且主機(jī)需要向路由器發(fā)送成員關(guān)系報(bào)告報(bào)文。表項(xiàng)內(nèi)容包括: 進(jìn)程號(hào)、請(qǐng)求加入的多播組地址、進(jìn)程計(jì)數(shù)值等信息。 如果進(jìn)程表中已經(jīng)有這個(gè)多播組的表項(xiàng),主機(jī)不發(fā)送成員關(guān)系報(bào)告報(bào)文。,路由器維護(hù)一個(gè)多播組地址表,多播組地址表給出了連接到每個(gè)接口的網(wǎng)絡(luò)的成員關(guān)系。路由器和主機(jī)一樣,都能夠加入一個(gè)多播組。路由器也可以發(fā)送成員關(guān)系報(bào)告報(bào)文。 因?yàn)镮GMP使用IP傳送報(bào)文,IP并不能夠保證成員關(guān)系報(bào)告報(bào)文被可靠接收,要求發(fā)送兩次成員關(guān)系報(bào)告報(bào)文。第二個(gè)報(bào)告報(bào)文將在間隔一段時(shí)間

16、后發(fā)送。 時(shí)間間隔在0 10秒的范圍內(nèi)。,IGMPv2中的離開過(guò)程,IGMPv2采用顯式離開方式。 多播組成員離開組的過(guò)程: 要離開的主機(jī)發(fā)送一個(gè)離開組報(bào)文給網(wǎng)絡(luò)上的所有路由器(目的地址為224.0.0.2)。 查詢路由器接收到離開組報(bào)文后,立即發(fā)送一個(gè)特定多播組查詢報(bào)文到網(wǎng)絡(luò)上。 如果網(wǎng)絡(luò)上還有該多播組的成員,則會(huì)發(fā)回一個(gè)響應(yīng)報(bào)文; 如果沒有該多播組的成員,則不會(huì)有主機(jī)響應(yīng),于是路由器就知道已經(jīng)沒有該組成員了,就停止轉(zhuǎn)發(fā)該組的數(shù)據(jù)。,主機(jī)B主動(dòng)退出多播組,查詢路由器RA,主機(jī)A,主機(jī)B,主機(jī)C,非查詢路由器RB, 成員關(guān)系報(bào)告224.1.1.1, 向224.0.0.2報(bào)告,要離開224.1.

17、1.1, 特定組查詢224.1.1.1,主機(jī)A也退出多播組,查詢路由器RA,主機(jī)A,主機(jī)B,主機(jī)C,非查詢路由器RB, 特定組查詢224.1.1.1, 沒有對(duì)特定組查詢(224.1.1.1)的響應(yīng) 刪除多播組成員關(guān)系, 向224.0.0.2報(bào)告,要離開224.1.1.1,8.3.4 選舉查詢路由器,IGMPv2使用IP地址和通用成員關(guān)系查詢報(bào)文選舉查詢路由器,其過(guò)程如下: 每個(gè)路由器都假定自己就是查詢路由器。路由器啟動(dòng)時(shí),給所有節(jié)點(diǎn)(目的地址為224.0.0.1)發(fā)送一個(gè)通用成員關(guān)系查詢報(bào)文; 每個(gè)路由器用自己的IP地址與IP分組的源IP地址進(jìn)行比較,具有最小IP地址的路由器就被選舉為查詢路由

18、器; 所有非查詢路由器啟動(dòng)一個(gè)查詢者計(jì)時(shí)器,接收到查詢路由器的一般查詢報(bào)文,就將計(jì)時(shí)器復(fù)位。如果計(jì)時(shí)器超時(shí),就認(rèn)為當(dāng)選的查詢路由器發(fā)生故障,轉(zhuǎn)步驟 ,重新開始選舉。計(jì)時(shí)器的取值一般為查詢間隔的2倍。,8.3.5 IGMPv1與v2的互操作性,主機(jī)和路由器使用不同版本的IGMP時(shí)分三種情況: 第一種情況,主機(jī)使用v2,路由器使用v1。v1路由器不識(shí)別v2的成員關(guān)系報(bào)告報(bào)文,因此,v2主機(jī)需要發(fā)送v1的成員關(guān)系報(bào)告報(bào)文。 主機(jī)根據(jù)查詢報(bào)文的第2個(gè)字節(jié)判斷路由器支持v1還是v2。 v1的查詢報(bào)文的第2個(gè)字節(jié)字段未使用,一般置為0。 v2的查詢報(bào)文中,第2個(gè)字節(jié)定義為最大響應(yīng)時(shí)間字段,其值非0。,IG

19、MPv1與v2的互操作性,第二種情況,主機(jī)使用v1,路由器使用v2。組加入不會(huì)有問(wèn)題,因?yàn)関1的成員關(guān)系報(bào)告報(bào)文可以被運(yùn)行v2的路由器接收。但是離開組時(shí)會(huì)出現(xiàn)問(wèn)題。因?yàn)檫\(yùn)行v1的主機(jī)不能識(shí)別來(lái)自特定多播組查詢報(bào)文。 第三種情況,既有v1路由器,也有v2路由器。同一網(wǎng)絡(luò)上的所有路由器必須運(yùn)行同一版本的IGMP協(xié)議,這時(shí),必須將運(yùn)行IGMPv2的路由器手工配置為運(yùn)行IGMPv1。,8.3.6 IGMPv2的操作,查詢路由器周期性發(fā)送一般查詢報(bào)文,進(jìn)行所有多播組成員關(guān)系的查詢,主機(jī)發(fā)送成員關(guān)系報(bào)告報(bào)文進(jìn)行響應(yīng)。 主機(jī)發(fā)送報(bào)告報(bào)文可以采用響應(yīng)抑制技術(shù)。 如果有新主機(jī)要加入某個(gè)多播組,可以主動(dòng)發(fā)送成員關(guān)

20、系報(bào)告報(bào)文。 當(dāng)離開多播組時(shí),主動(dòng)發(fā)送離開組報(bào)文。收到離開組報(bào)文后,查詢路由器發(fā)送特定組查詢報(bào)文,來(lái)確定是否該多播組的所有組成員是否都已離開該組。 通過(guò)這些交互操作,路由器的多播組地址表中建立一些表項(xiàng),記錄網(wǎng)絡(luò)上的活動(dòng)多播組。路由器依據(jù)多播組地址表轉(zhuǎn)發(fā)多播分組。,IGMPv2 的工作原理,8.3.7 IGMPv2的實(shí)現(xiàn),IGMP的軟件實(shí)現(xiàn),以主機(jī)的實(shí)現(xiàn)為實(shí)例進(jìn)行說(shuō)明。共有6個(gè)構(gòu)件: 1個(gè)組表 1組計(jì)時(shí)器 4個(gè)模塊 組加入 組退出 輸入 輸出,IGMPv2的6個(gè)構(gòu)件,1. 多播組表,多播組表描述關(guān)于多播地址的信息。 狀態(tài),定義項(xiàng)目的四種狀態(tài): Free,表示沒有進(jìn)程對(duì)某多播組感興趣; Delay

21、ing,表示當(dāng)計(jì)數(shù)器截止時(shí)間到時(shí),必須為該表項(xiàng)發(fā)送報(bào)告報(bào)文; Idle,表示該表項(xiàng)沒有計(jì)時(shí)器運(yùn)行。 接口號(hào),定義發(fā)送和接收多播分組所經(jīng)過(guò)的接口。 多播組地址,定義組的多播地址。 引用計(jì)數(shù),定義對(duì)組感興趣的進(jìn)程數(shù)。 當(dāng)一個(gè)進(jìn)程加入到該組時(shí),引用計(jì)數(shù)值加1; 當(dāng)一個(gè)進(jìn)程退出該組時(shí),引用計(jì)數(shù)值減1; 當(dāng)一個(gè)引用計(jì)數(shù)值為0時(shí),刪除該表項(xiàng),狀態(tài)變?yōu)镕ree。,2. 計(jì)時(shí)器,組表中處于Delaying狀態(tài)的每個(gè)表項(xiàng)都有計(jì)時(shí)器,用來(lái)管理報(bào)告報(bào)文的發(fā)送。 每個(gè)計(jì)時(shí)器有一個(gè)隨機(jī)選擇的截止時(shí)間,以避免突發(fā)地產(chǎn)生許多報(bào)告報(bào)文。 當(dāng)某個(gè)截止時(shí)間到了時(shí),就有信號(hào)傳送到輸出模塊,然后發(fā)送報(bào)告報(bào)文。,3. 組加入模塊,想加

22、入一個(gè)組的進(jìn)程調(diào)用這個(gè)模塊。 接收:來(lái)自加入組的進(jìn)程的請(qǐng)求。 在組表中尋找相應(yīng)表項(xiàng)。 若找到 引用計(jì)數(shù)器加1(表示又有進(jìn)程加入到該組) 若找不到 創(chuàng)建一個(gè)表項(xiàng),將它的引用計(jì)數(shù)器值設(shè)為1。 把該表項(xiàng)添加到表中。 請(qǐng)求輸出模塊發(fā)送成員關(guān)系報(bào)告報(bào)文。 通知數(shù)據(jù)鏈路更新其配置表,以便能接收該類型的多播分組。 返回,組加入模塊流程圖,4. 組退出模塊,想退出一個(gè)組的進(jìn)程調(diào)用這個(gè)模塊。 接收:來(lái)自退出組的進(jìn)程的請(qǐng)求。 在組表中尋找相應(yīng)表項(xiàng)。 若找到 將它的引用計(jì)數(shù)器值減1。 若引用計(jì)數(shù)值為0 若存在關(guān)于該項(xiàng)目的任何計(jì)時(shí)器,則取消該計(jì)時(shí)器。 把狀態(tài)改變?yōu)镕ree。 請(qǐng)求輸出模塊發(fā)送離開報(bào)告報(bào)文。 返回,組離

23、開模塊流程圖,5. 輸入模塊(由IGMP調(diào)用),接收:IGMP報(bào)文(只接收查詢和報(bào)告報(bào)文,不接收離開報(bào)文)。 檢查報(bào)文類型。 若是查詢報(bào)文 為表中狀態(tài)為Idle的表項(xiàng)啟動(dòng)引用計(jì)數(shù)器。 將每個(gè)Idle狀態(tài)轉(zhuǎn)換為Delaying狀態(tài)。(計(jì)時(shí)時(shí)間到時(shí)發(fā)送報(bào)告報(bào)文) 若是成員關(guān)系報(bào)告報(bào)文(響應(yīng)抑制) 尋找表中相應(yīng)項(xiàng)目。 若找到該項(xiàng)目,且狀態(tài)為Delaying(說(shuō)明已經(jīng)有另一個(gè)主機(jī)發(fā)送了成員報(bào)告報(bào)文),則 取消該項(xiàng)目的計(jì)時(shí)器。 將狀態(tài)改為Idle。 返回,輸入模塊流程圖,6. 輸出模塊,由截止時(shí)間到計(jì)時(shí)器、加入或退出模塊調(diào)用。 接收:來(lái)自計(jì)時(shí)器的信號(hào),或加入模塊的請(qǐng)求,或組退出模塊的請(qǐng)求。 若報(bào)文來(lái)自計(jì)

24、時(shí)器 若找到該項(xiàng)目,且狀態(tài)為Delaying,則 創(chuàng)建成員關(guān)系報(bào)告報(bào)文。 將狀態(tài)重新設(shè)置為Idle。 2. 若報(bào)文來(lái)自組加入模塊 創(chuàng)建成員關(guān)系報(bào)告報(bào)文 若報(bào)文來(lái)自組退出模塊 創(chuàng)建離開報(bào)文。 發(fā)送該報(bào)文 返回,輸出模塊流程圖,8.4 IGMPv3,8.4.1 IGMPv3的報(bào)文格式 8.4.2 IGMPv3的主要改進(jìn),8.4 IGMPv3,IGMPv3包含幾個(gè)新的功能。其中一項(xiàng)功能可以使計(jì)算機(jī)指定它將從哪一個(gè)源節(jié)點(diǎn)接收多播數(shù)據(jù)。 IGMPv3的提出,主要是為了配合源特定多播的實(shí)現(xiàn)。源特定多播( Source Specific Multicast,SSM) 使用多播組地址和多播源地址同時(shí)來(lái)標(biāo)志一個(gè)

25、多播會(huì)話。 例如,視頻會(huì)議中,也許幾個(gè)源節(jié)點(diǎn)都是活動(dòng)的,都可以發(fā)送多播分組,但是某主機(jī)只想接收其中的一個(gè)源節(jié)點(diǎn)發(fā)來(lái)的多播分組。,8.4.1 IGMPv3的報(bào)文格式,IGMPv3主要有兩種報(bào)文類型: 0 x11,成員關(guān)系查詢報(bào)文。共有3種類型,使用類型號(hào)0 x11。 一般查詢。 特定組查詢。 特定組和源的查詢,用來(lái)查詢是否有主機(jī)要接收某一特定組中某些特定多播源發(fā)送來(lái)的多播數(shù)據(jù)。 0 x22,IGMPv3 成員關(guān)系報(bào)告報(bào)文。 為了兼容前兩個(gè)版本,v3還支持下列報(bào)文類型: 0 x12,IGMPv1成員關(guān)系報(bào)告報(bào)文。 0 x16,IGMPv2成員關(guān)系報(bào)告報(bào)文。 0 x17,IGMPv2離開組報(bào)文。,1

26、. IGMPv3成員關(guān)系查詢報(bào)文格式,成員關(guān)系查詢報(bào)文字段意義,類型字段,8比特。IGMPv3共定義了5種報(bào)文類型,這些報(bào)文類型分別是: 0 x11,IGMPv3成員關(guān)系查詢報(bào)文。 0 x12,IGMPv1成員關(guān)系報(bào)告報(bào)文。 0 x16,IGMPv2成員關(guān)系報(bào)告報(bào)文。 0 x22,IGMPv3 成員關(guān)系報(bào)告報(bào)文。 0 x17,IGMPv2離開組報(bào)文。,成員關(guān)系查詢報(bào)文字段意義(續(xù)),最大響應(yīng)時(shí)間(Max Response Time)字段,8比特。指定最大的等待響應(yīng)時(shí)間,單位是0.1秒。 如果值小于128,即8比特的最高位等于0,則最大響應(yīng)時(shí)間值是一個(gè)整數(shù)值; 如果值大于等于128,即8比特的最

27、高位等于1,則最大響應(yīng)時(shí)間值是一個(gè)浮點(diǎn)數(shù)。浮點(diǎn)數(shù)的格式,最大響應(yīng)時(shí)間= (mant | 0 x10)2(exp+3)。 “|” 邏輯或運(yùn)算符。浮點(diǎn)表示形式的取值范圍: mant=0 x0,exp=0 x0,最小值=(0 x0|0 x10)2(0+3) =128 mant=0 x0f,exp=0 x7,最大值=(0 x0f|0 x10)2(7+3)=31210,成員關(guān)系查詢報(bào)文字段意義(續(xù)),校驗(yàn)和字段,16比特。與IGMPv1中的一樣。 組地址字段,32比特。功能與IGMPv2一樣。若是一般查詢,為0;若是特定組成員關(guān)系查詢,為所要查詢的多播地址。 S(SuppressRouter-SideP

28、rocessing)比特字段。為1時(shí),任何接收此報(bào)文的多播路由器都將抑制查詢計(jì)時(shí)器的正常更新。這個(gè)比特對(duì)主機(jī)不起作用。,成員關(guān)系查詢報(bào)文字段意義(續(xù)),QRV字段,3比特。QRV字段說(shuō)明查詢路由器的健壯變量的值。 健壯變量的值影響計(jì)時(shí)器和重復(fù)發(fā)送同一個(gè)成員關(guān)系報(bào)告報(bào)文的次數(shù)(重復(fù)次數(shù)為QRV-1次)。 如果健壯變量值0,則QRV字段包含健壯變量值。 如果健壯變量值7,則QRV字段就被設(shè)置為0。這時(shí),路由器從最新收到的查詢中的QRV值改變自己的健壯變量值。,成員關(guān)系查詢報(bào)文字段意義(續(xù)),查詢間隔代碼QQIC字段,8比特。該字段的值表示查詢路由器所使用的查詢間隔QQI變量的值。 QQI變量以秒為

29、單位,表示查詢器發(fā)出查詢的時(shí)間間隔。 QQIC字段的表達(dá)方式與最大響應(yīng)時(shí)間字段相同。,成員關(guān)系查詢報(bào)文字段意義(續(xù)),源地址數(shù)目(Number of Sources)字段,16比特。表示成員關(guān)系查詢報(bào)文中包含的源地址數(shù)目。 當(dāng)進(jìn)行一般查詢或者特定組查詢時(shí),該值置為0。 當(dāng)進(jìn)行組-源特定查詢( Group-Source-specific Query) 時(shí),該值為源特定地址的數(shù)目。 最大值為65 535,但受限于MTU。例如以太網(wǎng)MTU=1 500字節(jié),除去帶路由通告選項(xiàng)的IP分組首部的24字節(jié)和IGMP報(bào)文首部的12字節(jié),剩余1 464 字節(jié),最多包含366( 1 464/4) 個(gè)源地址。 源地

30、址字段,存放多播源的IP地址,每個(gè)源地址占用4 個(gè)字節(jié)。,2. IGMPv3成員關(guān)系報(bào)告報(bào)文格式,成員關(guān)系報(bào)告報(bào)文字段意義(續(xù)),類型字段,8比特。置為0 x22,表示該報(bào)文為IGMPv3成員關(guān)系報(bào)告報(bào)文。 校驗(yàn)和字段,16比特。與IGMPv1中的一樣。 組記錄數(shù)目(Number of Group Records)字段,16比特。表示此報(bào)文中包含的組記錄數(shù)目。 組記錄(Group Records)字段。這是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)塊,包含若干個(gè)組記錄,每個(gè)組記錄長(zhǎng)度不固定,成員關(guān)系報(bào)告報(bào)文字段意義(續(xù))-組記錄字段,組記錄字段的子字段含義, 組類型(Group Type)字段,8比特。表示該組記錄中包

31、含的數(shù)據(jù)類型,RFC3376定義了三種類型: 當(dāng)前狀態(tài)記錄(Current State Record) 過(guò)濾模式變更記錄(Filter Mode Change Record) 源列表變更記錄(Source List Change Record),組記錄字段的子字段含義(續(xù)),第1種組類型:當(dāng)前狀態(tài)記錄。說(shuō)明主機(jī)的過(guò)濾模式,可以取兩個(gè)值之一。 MODE_IS_INCLUDE。包含模式,列出的源地址都是主機(jī)想要接收的多播源地址。 MODE_IS_EXCLUDE。排除模式,列出的源地址都是主機(jī)想要拒絕的多播源地址。,組記錄字段的子字段含義(續(xù)),第2種組類型:過(guò)濾模式變更記錄,記錄過(guò)濾模式的變化。過(guò)濾模式在INCLUDE和EXCLUDE模式之間切換。過(guò)濾模式變更記錄共有兩個(gè)取值。 CHANGE_TO_INCLUDE_MODE。表示該主機(jī)的過(guò)濾模式從EXCLUDE 切換為INCLUDE 模式。 CHANGE_TO_EXCLUDE_MODE。表示該主機(jī)的過(guò)濾模式從INCLUDE 切換為EXCLUDE 模式。,組記錄字段的子字段含義(續(xù)),第3種組類型:源列表變更記錄。如果源列表發(fā)生變化,但并沒有引起過(guò)濾模式變化時(shí),主機(jī)發(fā)送對(duì)相應(yīng)組的源列表變更記錄。源列表變更記錄可以有以下兩種取值: ALLOW_NEW_SOURCES。表示允許新的多播源。后面的源地址字段為感興趣的多播源。 如果這些

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論