IGMPv1,v2,v3的原理報(bào)文形式_第1頁(yè)
IGMPv1,v2,v3的原理報(bào)文形式_第2頁(yè)
IGMPv1,v2,v3的原理報(bào)文形式_第3頁(yè)
IGMPv1,v2,v3的原理報(bào)文形式_第4頁(yè)
IGMPv1,v2,v3的原理報(bào)文形式_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄1 IGMP 協(xié)議11.1 IGMPv1協(xié)議11.1.1 IGMPv1的工作原理11.1.2 IGMPv1報(bào)文格式11.1.3 IGMPv1工作過(guò)程21.2 IGMPv2協(xié)議41.2.1 IGMPv2的工作原理41.2.2 IGMPv2的報(bào)文格式51.2.3 IGMPv2工作過(guò)程61.3 IGMPv3協(xié)議81.3.1 IGMPv3的工作原理81.3.2 IGMPv3的報(bào)文格式81.3.3 IGMPv3的主要改進(jìn)112 MLD協(xié)議122.1 MLDv1協(xié)議132.1.1 MLDv1的工作原理132.1.2 MLDv1報(bào)文格式132.1.3 MLDv1工作流程152.2 MLDv2協(xié)議152

2、.2.1 工作原理162.2.2 MLDv2報(bào)文格式162.2.3 MLDv2工作過(guò)程221 IGMP 協(xié)議 IGMP用來(lái)動(dòng)態(tài)的將各個(gè)主機(jī)注冊(cè)到特定局域網(wǎng)中的一個(gè)組播組中。主機(jī)向本地的組播路由器發(fā)送IGMP消息來(lái)表明自己所屬的組播組。在IGMP協(xié)議中,路由器偵聽(tīng)I(yíng)GMP消息并周期的發(fā)出查詢,以發(fā)現(xiàn)某個(gè)子網(wǎng)上哪些組是活動(dòng)的,哪些是不活動(dòng)的。 IGMP消息在IP數(shù)據(jù)報(bào)內(nèi)發(fā)送,用IP協(xié)議號(hào)2來(lái)標(biāo)識(shí)。同時(shí),將IP存活時(shí)間(TTL)字段值設(shè)定為1,因此IGMP信息處于本地范圍本子網(wǎng)內(nèi)傳送并且不會(huì)被路由器轉(zhuǎn)發(fā)。1989年,IGMP版本1(RFClll2)第一次詳細(xì)定義了IGMP規(guī)范。后來(lái)施樂(lè)公司對(duì)最早的I

3、GMP版本1進(jìn)行了大幅更新,產(chǎn)生了IGMP版本2(RFC2236)。到目前為止IGMP版本3規(guī)范己經(jīng)稱為IETF正式標(biāo)準(zhǔn)(RFC3376),通用的是IGMPv2。IGMPvl實(shí)現(xiàn)簡(jiǎn)單,但是有離開(kāi)延遲過(guò)大和選擇查詢路由器需要依賴組播路由協(xié)議的缺點(diǎn),IGMPv2對(duì)此進(jìn)行了改進(jìn)。IGMPv3協(xié)議的主要目的是支持源特定組播,并進(jìn)一步對(duì)IGMPv2進(jìn)行完善。1.1 IGMPv1協(xié)議1.1.1 IGMPv1的工作原理在IGMPvl中定義了基本規(guī)則、組成員查詢機(jī)制和報(bào)告機(jī)制。當(dāng)某接收主機(jī)希望接收到某個(gè)組播組的數(shù)據(jù)時(shí),它會(huì)向本地鏈路上的查詢路由器發(fā)送加入消息,通知查詢路由器本機(jī)希望申請(qǐng)加入的組播組;查詢路由器

4、收到加入消息之后,把這條消息加入到查詢路由器所維護(hù)的狀態(tài)列表,同時(shí)向源發(fā)起建立組播分發(fā)樹(shù)的請(qǐng)求;查詢路由器在設(shè)定的周期內(nèi)發(fā)起組成員查詢消息;接收主機(jī)收到查詢消息之后,會(huì)向查詢路由器發(fā)送報(bào)告消息來(lái)應(yīng)答查詢,否則查詢路由器會(huì)認(rèn)為不存在接受主機(jī);主機(jī)如果想離開(kāi)某個(gè)組播組,就對(duì)路由器的查詢保持沉默,經(jīng)過(guò)一定時(shí)間,路由器便知道子網(wǎng)內(nèi)沒(méi)有組成員了。1.1.2 IGMPv1報(bào)文格式IGMPvl報(bào)文格式如圖2-4所示,圖2-4 IGMPv1報(bào)文格式 其主要內(nèi)容包括:(1) 版本字段表示IGMP協(xié)議的版本號(hào),在IGMP中置為1.(2) 類型字段,在IGMPv1中,只有兩個(gè)值:取值為0x11,表示該報(bào)文為成員關(guān)系

5、查詢(Membership Query),主要是由路由器使用。取值為0x12,表示該報(bào)文為成員關(guān)系報(bào)告(Membership Report),主要是主機(jī)使用。(3) 校驗(yàn)和字段用于數(shù)據(jù)報(bào)文的校驗(yàn)。(4) 組地址字段。當(dāng)用于成員關(guān)系查詢時(shí),本字段置為0,并被主機(jī)忽略;當(dāng)用于成員關(guān)系報(bào)告時(shí),本字段包含組播組地址。IGMPv1報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-5:圖2-5 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv1報(bào)文1.1.3 IGMPv1工作過(guò)程在IGMPv1中,路由器利用查詢一響應(yīng)過(guò)程來(lái)確定在本地子網(wǎng)中是否有加入某個(gè)組播組的主機(jī)存在,如果有,則這臺(tái)路由器就要完成向本子網(wǎng)組播數(shù)據(jù)包的功能;如果沒(méi)有,則這臺(tái)路

6、由器就不必向此子網(wǎng)轉(zhuǎn)發(fā)組播包。路由器周期性地向子網(wǎng)上的所有主機(jī)發(fā)送組播成員關(guān)系查詢報(bào)文,希望加入某個(gè)組播組的主機(jī)就響應(yīng)該查詢,發(fā)送一個(gè)組播成員關(guān)系報(bào)告報(bào)文到子網(wǎng)上,在IGMP報(bào)文的組地址地段中加入想要加入的組播組的地址。路由器接收到來(lái)自主機(jī)的成員關(guān)系報(bào)告報(bào)文后,就知道了在該子網(wǎng)上有主機(jī)要加入組播組,組播組地址在報(bào)文中可以獲得,接下來(lái),路由器就會(huì)根據(jù)所使用的路由協(xié)議建立起相應(yīng)的轉(zhuǎn)發(fā)狀態(tài)。當(dāng)一個(gè)子網(wǎng)上有多臺(tái)主機(jī)想加入同一個(gè)組播組時(shí),就可以利用報(bào)告響應(yīng)抑制功能,來(lái)減少子網(wǎng)中的重復(fù)信息傳遞。處理流程如下:主機(jī)接收到IGMP成員關(guān)系查詢報(bào)文后,對(duì)加入的每個(gè)組播組啟動(dòng)一個(gè)倒數(shù)計(jì)時(shí)器。當(dāng)計(jì)時(shí)器的值為0時(shí),主

7、機(jī)發(fā)送IGMP成員關(guān)系報(bào)告報(bào)文,通知路由器子網(wǎng)內(nèi)仍有處于活動(dòng)狀態(tài)的組播接收者。當(dāng)計(jì)時(shí)器到達(dá)0之前,若主機(jī)接收到來(lái)自其他主機(jī)發(fā)送的同一組成員關(guān)系報(bào)告報(bào)文,那么它就停止與該計(jì)時(shí)器得到的數(shù),重新計(jì)時(shí),這樣,就避免了發(fā)送同一個(gè)成員關(guān)系報(bào)告報(bào)文給路由器。如果在一個(gè)子網(wǎng)中有多個(gè)組播路由器,那么多個(gè)路由器都發(fā)送IGMP查詢報(bào)文是一種浪費(fèi),所以應(yīng)當(dāng)確定一個(gè)路由器作為查詢路由器就可以了。但是在IGMPv1中,沒(méi)有提供選舉查詢路由器的機(jī)制,而是把這一任務(wù)留給了組播路由協(xié)議。由于不同的協(xié)議使用不同的選舉機(jī)制,會(huì)造成在一個(gè)子網(wǎng)中出現(xiàn)多個(gè)查詢路由器,這也是IGMPv1的缺點(diǎn)之一。但是IGMPv1的另一個(gè)缺點(diǎn)是缺乏顯式的

8、離開(kāi)方式。當(dāng)一臺(tái)主機(jī)想要離開(kāi)一個(gè)組播組時(shí),并不顯式地表示出來(lái),而只是不再對(duì)路由器的查詢報(bào)文進(jìn)行響應(yīng)。當(dāng)一個(gè)網(wǎng)段內(nèi)某個(gè)組播組的最后一個(gè)成員退出后,路由器還會(huì)繼續(xù)組播這個(gè)組的數(shù)據(jù),直到一段時(shí)間內(nèi)路由器接收不到任何來(lái)自該組的成員響應(yīng),才會(huì)知道該組已經(jīng)沒(méi)有接收者了,然后停止轉(zhuǎn)發(fā)該組的組播數(shù)據(jù)報(bào)文。因此,路由器中需要為子網(wǎng)中的每一個(gè)組維護(hù)一個(gè)計(jì)時(shí)器。當(dāng)路由器接收到某臺(tái)主機(jī)發(fā)送的報(bào)告報(bào)文時(shí),就會(huì)將該組的計(jì)時(shí)器清零;當(dāng)某個(gè)組的計(jì)時(shí)器超時(shí)后,就說(shuō)明在本網(wǎng)段上已經(jīng)沒(méi)有接收者,于是停止轉(zhuǎn)發(fā)該組報(bào)文。下面是工作過(guò)程圖解:1)組成員加入圖2-6 IGMPv1組成員加入2)查詢與響應(yīng)圖2-7 IGMPv1組成員查詢3)

9、 響應(yīng)抑制機(jī)制圖2-8 IGMPv1響應(yīng)抑制機(jī)制4)組成員離開(kāi)圖2-9 IGMPv1組成員離開(kāi)1.2 IGMPv2協(xié)議1.2.1 IGMPv2的工作原理IGMPv1的主要缺點(diǎn)是離開(kāi)延遲過(guò)大和選擇查詢路由器需要依賴組播路由協(xié)議進(jìn)行。針對(duì)這些缺點(diǎn),IGMPv2做了相關(guān)的改進(jìn)。在IGMPv2中,增加了離開(kāi)組的報(bào)文格式,當(dāng)主機(jī)想要離開(kāi)某個(gè)組播組時(shí),不必等待路由器發(fā)出查詢報(bào)文,而是可以直接向路由器發(fā)送成員關(guān)系報(bào)告報(bào)文,這樣可以有效地縮短離開(kāi)延遲。另外在IGMPv2中,還明確了查詢路由器的選舉機(jī)制。除此之外,IGMPv2的工作原理與IGMPv1基本一致1.2.2 IGMPv2的報(bào)文格式IGMPv2的報(bào)文格

10、式如圖2-10所示:圖2-10 IGMPv2報(bào)文格式它在IGMPvl的基礎(chǔ)上,進(jìn)行了兩處改動(dòng):一個(gè)是將v1的版本字段和類型字段進(jìn)行了合并;另一個(gè)是增加了最大響應(yīng)時(shí)間字段 (MaxResponseTime)。其主要內(nèi)容如下:(1)類型字段,在兼容IGMPv1的基礎(chǔ)上,IGMPv2中新增了兩種報(bào)文類型。0xll:成員關(guān)系查詢。與IGMPv1不同,IGMPv2的查詢分為兩種類型:通用查詢 (GeneralQuery),組地址字段置為全0,對(duì)所有的組進(jìn)行組成員查詢;特定組查詢 (GrouPpecificQuery),針對(duì)特定組進(jìn)行組成員查詢,組地址字段置為特定組的地址。0x12:IGMPv1成員關(guān)系報(bào)

11、告(為了向后兼容IGMPv1)。0x16:IGMPv2成員關(guān)系報(bào)告。0xl7:離開(kāi)組。(2)最大響應(yīng)時(shí)間字段,只有在成員關(guān)系查詢報(bào)文中有效,主機(jī)必須在最大響應(yīng)時(shí)間到達(dá)之前發(fā)出成員關(guān)系報(bào)告報(bào)文。通過(guò)該值,路由器可以調(diào)節(jié)組成員的離開(kāi)延遲。(3)校驗(yàn)和字段,與IGMPv1中的一樣。(4)組地址地段,與IGMPv1中的基本一樣,當(dāng)采用特定組查詢時(shí),該字段存放要查詢的組播組的地址。IGMPv2報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-11:圖2-11 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv2報(bào)文格式1.2.3 IGMPv2工作過(guò)程查詢一響應(yīng)過(guò)程與IGMPv1基本相同,但是有兩點(diǎn)改進(jìn):增加了特定組查詢,特定組查詢的目的是為

12、了讓路由器知道一個(gè)特定組在子網(wǎng)內(nèi)是否還有組成員,以便判斷是否還需要轉(zhuǎn)發(fā)該組的數(shù)據(jù)報(bào)文;IGMPv2的成員關(guān)系報(bào)告的類型代碼不一樣。IGMPv2的組成員加入與 IGMPv1中的完全一樣。IGMPv2離開(kāi)過(guò)程與IGMPv1相比有了較大的改進(jìn)。主機(jī)離開(kāi)一個(gè)組時(shí),需要顯式地發(fā)送一個(gè)離開(kāi)報(bào)文給路由器。其過(guò)程如下:要離開(kāi)的主機(jī)發(fā)送一個(gè)離開(kāi)報(bào)文給子網(wǎng)上所有路由器(目的地址224.0.0.2)。查詢路由器接收到離開(kāi)報(bào)文后,會(huì)立即發(fā)送一個(gè)特定組查詢到子網(wǎng)上。如果子網(wǎng)上還有該組的成員,則會(huì)發(fā)回一個(gè)響應(yīng)報(bào)文;如果子網(wǎng)上己經(jīng)沒(méi)有該組的成員,則沒(méi)有主機(jī)回應(yīng),于是路由器就知道己經(jīng)沒(méi)有該組成員了,就停止轉(zhuǎn)發(fā)該組的數(shù)據(jù)。在I

13、GMPv1中,選擇查詢路由器依賴于組播路由協(xié)議。而在IGMPv2中,明確了選擇查詢路由器的機(jī)制。其過(guò)程如下:開(kāi)始時(shí),子網(wǎng)上的每個(gè)路由器都假定自己就是查詢路由器,發(fā)送一個(gè)通用查詢報(bào)文給所有主機(jī)(目的地址224.0.0.1)。每個(gè)路由器都可以接收到來(lái)自其他路由器的報(bào)文,然后進(jìn)行IP地址的比較,具有最低IP地址的路由器就成為查詢路由器;非查詢路由器啟動(dòng)一個(gè)計(jì)時(shí)器,無(wú)論何時(shí)接收到來(lái)自當(dāng)選的查詢路由器的通用查詢報(bào)文,就將計(jì)時(shí)器復(fù)位。如果計(jì)時(shí)器超時(shí),就認(rèn)為當(dāng)選的查詢路由器發(fā)生故障,轉(zhuǎn)向開(kāi)始重新選擇。計(jì)時(shí)器的取值一般為查詢間隔的2倍圖解工作過(guò)程如下:1)組成員加入圖2-12 IGMPv2組成員加入2)查詢與

14、響應(yīng)圖2-13 IGMPv2組成員查詢與響應(yīng)3)查詢器選舉圖2-14 IGMPv2查詢路由器選擇4)成員離開(kāi)圖2-15 IGMPv2組成員離開(kāi)1.3 IGMPv3協(xié)議1.3.1 IGMPv3的工作原理IGMPv3的提出,主要是為了配合源特定組播的實(shí)現(xiàn),即組播組成員可以指定接收或指定不接收某些組播源的報(bào)文。這樣主機(jī)就可以有選擇性接收來(lái)自某個(gè)特定組播源的數(shù)據(jù)包,而不是被動(dòng)接收該組中所有組播源的數(shù)據(jù)包。IGMPv3的這一特性,可以實(shí)現(xiàn)源特定組播SSM技術(shù)。源特定組播(Source Specific Multicast,SSM)是一種區(qū)別于傳統(tǒng)組播的新的業(yè)務(wù)模型,SSM保留了傳統(tǒng)PIM-SM模式中的主

15、機(jī)顯式加入組播組的高效性,但是跳過(guò)了PIM-SM模式中的共享樹(shù)和RP規(guī)程。SSM直接建立由(S,G)標(biāo)志的一個(gè)組播最短路徑樹(shù)。SSM的一個(gè)(S,G)對(duì)也被稱為一個(gè)頻道(Channel)。PIM-SSM是對(duì)傳統(tǒng)PIM協(xié)議的擴(kuò)展,使用SSM,用戶能直接從組播源接收組播報(bào)文,需要匯聚點(diǎn)(RP)的幫助。IGMPv3在IGMPvl/v2的基礎(chǔ)上提供了額外的源過(guò)濾組播功能(Source FilteredMulticast,SFM)。在IGMPvl/v2中,主機(jī)只根據(jù)組地址來(lái)決定加入某個(gè)組,并從任何一個(gè)源接收發(fā)給該組地址的報(bào)文。具有源過(guò)濾組播功能(SFM)的主機(jī)使用IGMPv3來(lái)表示主機(jī)所希望加入的組播組,

16、同時(shí)還表示該主機(jī)所希望接收的組播源的地址。主機(jī)可以使用一個(gè)包括列表(Inclusion List)或一個(gè)排除列表 (Exclusion List)來(lái)表示對(duì)源地址的限制。即組播組成員可以指定接收或指定不接收某些組播源的報(bào)文。這樣主機(jī)就可以有選擇性接收來(lái)自某個(gè)特定組播源的數(shù)據(jù)包,而不是被動(dòng)接收該組中所有組播源的數(shù)據(jù)包。1.3.2 IGMPv3的報(bào)文格式IGMPv3的報(bào)文類型有以下幾種:0xll:成員關(guān)系查詢報(bào)文 (MembershipQeury)。0x22:版本3成員關(guān)系報(bào)告報(bào)文(version 3 Membership Report)0x12:版本1成員關(guān)系報(bào)告報(bào)文(version 1 Memb

17、ership Report)0x16:版本2成員關(guān)系報(bào)告報(bào)文 (version 2 Membership Report)0x17:版本2離開(kāi)報(bào)文 (version 2 LeaveGroup)。報(bào)文類型的值填寫(xiě)在報(bào)文中的類型字段。在IGMPv3中,查詢報(bào)文和報(bào)告報(bào)文格式有較大差異,需要分別描述。圖2-16為查詢報(bào)文的格式圖2-16 IGMPv3查詢信息格式(1)類型字段,設(shè)置為0xll,代表該報(bào)文為查詢報(bào)文。(2)最大響應(yīng)時(shí)間字段,指明了主機(jī)發(fā)出響應(yīng)的最長(zhǎng)時(shí)間。(3)組地址字段,功能與IGMPv2一樣,可以用于通用查詢和組特定查詢。(4)s字段,置為1時(shí),其他路由器不對(duì)該報(bào)文進(jìn)行處理。(5)QR

18、V字段,查詢路由器的健壯值(Queriers RobustnessVariable),該值影響計(jì)時(shí)器和重試次數(shù)的取值。(6)QQIC字段,查詢路由器的查詢間隔碼(Queriers QueryIntervalCode),該值影響查詢路由器的查詢間隔時(shí)間,非查詢路由器按照此值更新自己的缺省值。(7)源地址數(shù)目字段,該值表在這個(gè)報(bào)文中包含了多少個(gè)源地址。當(dāng)進(jìn)行通用查詢(GeneraQuery)或者組特定查詢 (GroupSpecific Query)時(shí),該值置為0;當(dāng)進(jìn)行特定組和源查詢 (Group Source pecific Query,用于PIM一SSM)時(shí),該值為源特定地址的數(shù)目。雖然該值最

19、大可為65536,但是實(shí)際上受限于數(shù)據(jù)鏈路層的MTU,例如在以太網(wǎng)上,1P數(shù)據(jù)報(bào)最長(zhǎng)為1500字節(jié),除去IP報(bào)頭的24字節(jié)和IGMP報(bào)頭的12字節(jié),剩余1464字節(jié),所以最多包含366(1464/4)個(gè)源地址。(8)源地址地段。IGMPv3查詢信息報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-17:圖2-17 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv3查詢報(bào)文格式IGMPv3報(bào)告報(bào)文的格式較為復(fù)雜,如圖2-18所示。圖2-18 IGMPv3偵聽(tīng)者報(bào)告格式(1)類型字段,置為0x22,表示該報(bào)文為IGMPv3報(bào)告報(bào)文。(2)組記錄數(shù)目字段,表示此報(bào)文中包含的組記錄數(shù)目。(3)組記錄字段。包含若干個(gè)組記錄,每個(gè)組記錄長(zhǎng)度

20、不固定,其內(nèi)容如圖2-19:圖2-19 IGMPv3組記錄格式組記錄類型字段,表示該組記錄中包含的數(shù)據(jù)的類型,目前定義了六種類型,分別是:MODE IS INCLUDE。表示該主機(jī)的過(guò)濾模式為INCLUDE.也就是說(shuō),后面列出的地址都是主機(jī)想要接收的組播源地址。MODE IS EXCLUDE。表示該主機(jī)的過(guò)濾模式為EXCLUDE,也就是說(shuō),后面列出的地址都是主機(jī)想要拒絕的組播源地址。CHANGE TO INCLUDE MODE。表示該主機(jī)的過(guò)濾模式從EXCLUDE切換為INCLUDE模式。CHANGE TO EXCLUDE MODE。表示該主機(jī)的過(guò)濾模式從INCLUDE切換為EXCLUDE模式

21、。ALLOW NEW SOURCES。表示該主機(jī)中新增的想要接收的源地址。BLOCK OLD SOURCES。表示從該主機(jī)中刪除的不想接收的源地址。輔助數(shù)據(jù)長(zhǎng)度字段,在組記錄的最后,可以增加以4字節(jié)為單位的輔助數(shù)據(jù),如果沒(méi)有輔助數(shù)據(jù),則置為0。源地址數(shù)目字段,表示該記錄中包含了多少個(gè)組播源地址。組地址字段,與源地址共同表示特定源組播。源地址字段,每個(gè)長(zhǎng)度為32bits。標(biāo)志源地址,數(shù)目由源地址數(shù)目字段表示。輔助數(shù)據(jù)字段。為將來(lái)的應(yīng)用預(yù)留,在IGMPv3中并不需要。一臺(tái)主機(jī)在發(fā)送報(bào)告報(bào)文的時(shí)候,應(yīng)當(dāng)把自己的源IP地址包含在IP數(shù)據(jù)報(bào)中,當(dāng)主機(jī)還沒(méi)有獲得IP地址的時(shí)候,可以使用0.0.0.0作為源

22、IP地址,支持IGMPv3的路由器必須接收來(lái)自0.0.0.0的數(shù)據(jù)報(bào)。主機(jī)的IGMP報(bào)文的目的地址標(biāo)志為224.0.0.22,代表子網(wǎng)中所有支持IGMPv3的路由器。1.3.3 IGMPv3的主要改進(jìn)IGMPv3除了支持原特定組播外,其工作原理與IGMPv2相比,并沒(méi)有本質(zhì)的改變,只是在某些地方做了改進(jìn)和優(yōu)化。以下列出了IGMPv3的主要特點(diǎn)和改進(jìn):支持源特定組播SSM;向后兼容IGMPvl和IGMPv2; 主機(jī)可以定義要接收的組播源地址;非查詢路由器可以與查詢路由器保持參數(shù)值同步;最大響應(yīng)時(shí)問(wèn)從25.5s增加到53min,適合于較大的網(wǎng)絡(luò);輔助數(shù)據(jù)字段為將來(lái)的應(yīng)用預(yù)留了空間;關(guān)系成員報(bào)告報(bào)文

23、發(fā)送給目的地址224.0.0.22,可以幫助二層交換機(jī)更有效地實(shí)現(xiàn)IGMP監(jiān)聽(tīng) (IGMPSnooping)功能;報(bào)告報(bào)文中可以包含多個(gè)組記錄,可以有效地減少網(wǎng)絡(luò)通信量;在IGMPv3中,取消了前面版本中的響應(yīng)抑制功能,主要原因是:第一,使用響應(yīng)抑制時(shí),路由器只知道子網(wǎng)上是否有組成員,而不知道有幾個(gè)組成員,以及成員是哪些主機(jī):取消響應(yīng)抑制,路由器就可以記錄每一個(gè)組成員的信息,可以開(kāi)發(fā)一記賬等增值服務(wù)功能。第二,許多網(wǎng)橋或者二層/三層交換機(jī)在實(shí)現(xiàn)IGMP監(jiān)聽(tīng)功能時(shí),為了避免響應(yīng)抑制,一般不轉(zhuǎn)發(fā)網(wǎng)段問(wèn)的IGMP報(bào)文。取消了響應(yīng)抑制后,可以簡(jiǎn)化這些設(shè)備的設(shè)計(jì)。第三,取消響應(yīng)抑制后,主機(jī)不必處理來(lái)自其

24、他主機(jī)的報(bào)文,簡(jiǎn)化了主機(jī)的實(shí)現(xiàn)。在查詢報(bào)文中,增加S標(biāo)志位,可以提高系統(tǒng)的健壯性。IGMPv3報(bào)告報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-20:圖2-20 在網(wǎng)絡(luò)中傳輸?shù)腎GMPv3報(bào)告報(bào)文2 MLD協(xié)議IPv6的組管理協(xié)議被稱為MLD(組播監(jiān)聽(tīng)者發(fā)現(xiàn))。1999年,MLD版本l(RFC2710)被IETF發(fā)布。2004年,MLD版本2(RFC3810)標(biāo)準(zhǔn)出臺(tái),后一個(gè)版本可以向前一個(gè)兼容。MLD協(xié)議是專門針對(duì)基于IPv6的組播組管理協(xié)議。因?yàn)镸LD使用全新的ICMPv6的報(bào)文格式,所以MLD協(xié)議就是ICMPv6協(xié)議的一個(gè)子集。MLD消息使用鏈路本地IPv6源地址發(fā)送,其跳數(shù)被限制為1。MLD消

25、息的封裝格式如圖2-21所示:圖2-21 MLD消息封裝格式以下分別描述MLD協(xié)議的兩個(gè)版本以及MLDSnooping,其中對(duì)于MLDSnooping的詳細(xì)描述見(jiàn)第三章。2.1 MLDv1協(xié)議2.1.1 MLDv1的工作原理MLDvl協(xié)議是從IGMPv2協(xié)議中派生出來(lái)的,其運(yùn)行機(jī)制和IGMPv2協(xié)議相同,專門用于IPv6組播群組的管理,其主要是應(yīng)用于ASM模式組播路由協(xié)議的組管理工作。對(duì)于運(yùn)行MLD協(xié)議的路由器,其接口要監(jiān)聽(tīng)由IPv6組播地址產(chǎn)生的所有鏈路組播地址。路由器為它所在的每一條鏈路維護(hù)一個(gè)列表。表項(xiàng)有此鏈路中存在的組成員的組播地址,以及該地址相應(yīng)的定時(shí)器。路由器周期性地發(fā)送通用請(qǐng)求

26、(general query),以查詢?cè)撴溌飞鲜欠翊嬖谀辰M播地址的組成員。節(jié)點(diǎn)收到路由器發(fā)送的常規(guī)請(qǐng)求后,經(jīng)過(guò)隨機(jī)時(shí)延后發(fā)出組播監(jiān)聽(tīng)報(bào)告。這樣是為了防止所有的節(jié)點(diǎn)都在同一時(shí)間發(fā)出報(bào)告分組,從而造成網(wǎng)絡(luò)的突發(fā)性阻塞。當(dāng)路由器收到鏈路上的報(bào)告分組時(shí),如果報(bào)告地址不在路由器的列表上,則加入該項(xiàng),否則計(jì)時(shí)器重新置位。如果某個(gè)地址的計(jì)時(shí)器過(guò)期,則從列表中刪除。當(dāng)節(jié)點(diǎn)要加入一個(gè)組播組時(shí),主動(dòng)發(fā)送組播監(jiān)聽(tīng)報(bào)告,向路由器報(bào)告組成員的存在。節(jié)點(diǎn)退出組播組時(shí),發(fā)送完成分組,刪除有關(guān)路徑。當(dāng)請(qǐng)求狀態(tài)的路由器從鏈路上接收到一個(gè)完成消息,如果消息中的組播地址在路由器的列表上,路由器發(fā)送一個(gè)特定組播地址查詢。如果一段時(shí)延

27、后沒(méi)有報(bào)告分組,則認(rèn)為該組播地址在此鏈路上沒(méi)有組成員了。2.1.2 MLDv1報(bào)文格式MLDv1的報(bào)文格式如圖2-22所示:圖2-22 MLDv1報(bào)文格式(1)類型字段,MLDvl有如下三種報(bào)文類型:組播偵聽(tīng)查詢消息(Type=130),分為兩種類型:通用查詢(GeneralQuery),組地址字段置為全0,對(duì)所有的組進(jìn)行組成員查詢;特定組查詢(Group Pecific Query),用于判斷一個(gè)特定的組播地址在本地鏈路上是否有組播偵聽(tīng)者。組播偵聽(tīng)報(bào)告消息(Type = 131)組播偵聽(tīng)完成消息(Type = 132)(2)編碼字段,初始值為0。(3)校驗(yàn)和字段。(4)最大響應(yīng)時(shí)間字段,只有

28、在組播監(jiān)聽(tīng)者查詢報(bào)文中有效,主機(jī)必須在最大響應(yīng)時(shí)間到達(dá)之前發(fā)出成員關(guān)系報(bào)告報(bào)文。通過(guò)該值,路由器可以調(diào)節(jié)組成員的離開(kāi)延遲。(5)組地址字段,在通用組查詢中,置為0;在特定組查詢時(shí),該字段存放要查詢的組播組的地址。在報(bào)告和完成報(bào)文中,分別用于存放主機(jī)要加入和離開(kāi)的組地址。MLDv1報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-23:圖2-23 在網(wǎng)絡(luò)中傳輸?shù)腗LDv1報(bào)文以上這些查詢消息和應(yīng)答消息報(bào)文有三種不同的報(bào)文交互方式:第一種交互方式是由路由器發(fā)起的。路由器作為詢問(wèn)者向與其相連接的所有主機(jī)發(fā)送一個(gè)一般查詢消息報(bào)文。其目的地址是FF02:1。主機(jī)收到此消息后,應(yīng)答一個(gè)包含當(dāng)前組播地址狀態(tài)記錄的報(bào)文消

29、息,此報(bào)文告訴路由器此主機(jī)希望接收哪個(gè)組播組或者哪些源發(fā)來(lái)的數(shù)據(jù)。第二種交互方式是由主機(jī)發(fā)起的。當(dāng)一個(gè)主機(jī)離開(kāi)一個(gè)組播組時(shí),它就要向路由器發(fā)送組播偵聽(tīng)者完成消息,該消息包括一個(gè)狀態(tài)改變一記錄。路由器收到此消息后,向其相連的鏈路上發(fā)送一個(gè)特定組播地址查詢,詢問(wèn)是否還有主機(jī)加人了此特定的組。第三種交互方式是由路由器發(fā)起的。如果在路由器的組播地址表中某一個(gè)組播地址的相關(guān)定時(shí)器超時(shí)后,仍然沒(méi)有收到主機(jī)發(fā)來(lái)的包含狀態(tài)變化記錄的組播偵聽(tīng)者報(bào)告消息,路由器則向所有主機(jī)發(fā)送一個(gè)特定組查詢消息,確認(rèn)該組播組是否還有組播偵聽(tīng)者。2.1.3 MLDv1工作流程當(dāng)一個(gè)網(wǎng)段內(nèi)連接有多臺(tái)路由器運(yùn)行MLDvl協(xié)議時(shí),必須選

30、舉一臺(tái)路由器作為查詢路由器,其余的自然成為非查詢路由器。選舉的機(jī)制是:地址最小的路由器當(dāng)選。非查詢路由器中有一個(gè)其他查詢路由器存在計(jì)時(shí)器,當(dāng)該計(jì)時(shí)器到期仍沒(méi)有收到來(lái)自查詢路由器的報(bào)文,則認(rèn)為該查詢路由器失效,重新開(kāi)始新的選舉。路由器定期向子網(wǎng)內(nèi)所有的主機(jī)廣播查詢報(bào)文(目的地址為FF02:1),目的是獲得主機(jī)的報(bào)告報(bào)文。在路由器剛開(kāi)始工作時(shí),會(huì)快速連續(xù)地發(fā)送查詢報(bào)文,以便盡快搜集到子網(wǎng)內(nèi)的組成員信息。當(dāng)主機(jī)接收到一個(gè)查詢報(bào)文后,就為每一個(gè)要接收的組地址啟動(dòng)一個(gè)延遲定時(shí)器。定時(shí)器的值在0,最大響應(yīng)時(shí)間之間取一個(gè)隨機(jī)數(shù)。如果查詢報(bào)文中的最大響應(yīng)時(shí)間字段被置為0,則定時(shí)器立刻到期。定時(shí)器到期后,主機(jī)會(huì)

31、發(fā)送一個(gè)報(bào)告報(bào)文給路由器,通知路由器主機(jī)想接收的組播組地址。如果一臺(tái)主機(jī)在定時(shí)器還未到期時(shí),就收到其它主機(jī)通告路由器的報(bào)告報(bào)文,則讀取該報(bào)文的組地址,如果和自己需要通告的組地址相同,則立刻停止相應(yīng)的定時(shí)器,并不再發(fā)送關(guān)于該組地址的報(bào)告報(bào)文,這樣就可以避免多臺(tái)主機(jī)發(fā)送相同內(nèi)容的報(bào)告報(bào)文給路由器,這種機(jī)制稱為“響應(yīng)抑制”。路由器收到來(lái)自主機(jī)的報(bào)告報(bào)文后,查看其中的組地址,如果該地址未在路由器的組地址列表中,則將其添加到組地址列表中,同時(shí)為其啟動(dòng)一個(gè)相應(yīng)的定時(shí)器;如果該地址已經(jīng)在路由器的組地址列表中,則將相應(yīng)的定時(shí)器恢復(fù)最大值。如果一個(gè)組地址的定時(shí)器到期了,則說(shuō)明該組地址在子網(wǎng)內(nèi)已經(jīng)沒(méi)有接收者了,路

32、由器會(huì)將此組地址從列表中刪除。當(dāng)一臺(tái)主機(jī)想要加入某個(gè)組播組時(shí),可以不必等待路由器的查詢報(bào)文,而是直接向路由器發(fā)送報(bào)告報(bào)文。為了保障該報(bào)文的可靠性,一般會(huì)進(jìn)行重傳。當(dāng)一臺(tái)主機(jī)想要離開(kāi)某個(gè)組播組時(shí),必須發(fā)送一個(gè)離開(kāi)報(bào)文給子網(wǎng)內(nèi)的路由器。路由器收到離開(kāi)報(bào)文后,會(huì)首先查看該組地址是否在組地址列表中,如果在,則發(fā)送一個(gè)特定組地址查詢給子網(wǎng)內(nèi)的所有主機(jī)。在一定的時(shí)間內(nèi),路由器收不到來(lái)自主機(jī)的應(yīng)答,則會(huì)認(rèn)為該組已經(jīng)沒(méi)有接收者,于是將該組地址從列表中刪除。非查詢路由器會(huì)忽略所有的離開(kāi)報(bào)文。2.2 MLDv2協(xié)議MLDv2從IGMPv3中發(fā)展過(guò)來(lái),和MLDvl相比,增加了IGMPv3所具有的源過(guò)濾功能,不僅能夠

33、支持ASM模式組播路由協(xié)議,而且還能夠支持基于IPv6的SSM模式組播路由協(xié)議。MLDv2在MLDv1的基礎(chǔ)上添加了源組播 (Source Specific Multieast)的概念,主機(jī)可以組播源報(bào)告(Group-Source Report)報(bào)告感興趣的源,路由器則只轉(zhuǎn)發(fā)該鏈路上所有組成員感興趣的源所發(fā)送的報(bào)文。當(dāng)主機(jī)想退出某組播源時(shí),主機(jī)發(fā)送離開(kāi)組播源報(bào)告(Group-Source Leave),查詢者在接收到該報(bào)告后可以發(fā)送指定組播源請(qǐng)求,確認(rèn)是否仍有組成員關(guān)心該組播源。MLDv2支持源過(guò)濾 (SourceFiltering),因此比MLDvl具備更高的可管理性和安全性。此外MLDv2

34、還可以與MLDvl兼容。2.2.1 工作原理MLD協(xié)議的目的是使每一個(gè)組播路由器知道在本地鏈路上監(jiān)聽(tīng)者對(duì)哪些組播地址和源地址感興趣。被MLD收集到的信息提供給在路由器上運(yùn)行的任何組播路由協(xié)議,來(lái)保證組播數(shù)據(jù)包被傳遞到組播組成員。組播路由器只需要知道在一個(gè)鏈路上,至少有一個(gè)節(jié)點(diǎn)正在監(jiān)聽(tīng)從一個(gè)特定的源發(fā)給一個(gè)特定組播地址的數(shù)據(jù)包,它不需要知道有多少個(gè)這樣的節(jié)點(diǎn)。MLDv2是一個(gè)不對(duì)稱的協(xié)議,它包括分離的兩部分:針對(duì)組播地址偵聽(tīng)者部分(監(jiān)聽(tīng)組播數(shù)據(jù)包的主機(jī)或者路由器)和組播路由器部分。它為組播地址偵聽(tīng)者和組播路由器定義了不同的行為。當(dāng)執(zhí)行“組播路由器”功能時(shí),收集組播路由協(xié)議所需要的組播偵聽(tīng)者信息;

35、當(dāng)執(zhí)行“組播地址偵聽(tīng)者”功能時(shí),通知本身和其他鄰居組播路由器他的偵聽(tīng)狀態(tài)。需要注意的是,一個(gè)組播路由器可以本身是一個(gè)或者多個(gè)組播地址的偵聽(tīng)者,執(zhí)行“組播路由器”和“組播地址偵聽(tīng)者”雙重功能。組播地址監(jiān)聽(tīng)者在所有的支持組播的接口上執(zhí)行MLDv2協(xié)議的“組播地址監(jiān)聽(tīng)者”功能。組播路由器在它的每一個(gè)接口上執(zhí)行MLDv2協(xié)議的“組播路由器”功能。如果在同一個(gè)子網(wǎng)上具有不止一個(gè)組播路由器,組播路由器將運(yùn)行查詢者選舉機(jī)制來(lái)選擇一個(gè)組播路由器來(lái)充當(dāng)查詢路由器。在這個(gè)子網(wǎng)上的所有的組播路由器都在監(jiān)聽(tīng)由組播地址監(jiān)聽(tīng)者發(fā)送的消息,并且維護(hù)相同的組播監(jiān)聽(tīng)信息狀態(tài),以便于當(dāng)目前的查詢路由器不能工作時(shí),接替查詢路由器的

36、工作,但是只有查詢路由器在子網(wǎng)上能夠發(fā)送周期的消息和被觸發(fā)的查詢消息。2.2.2 MLDv2報(bào)文格式為了支持以上的功能,MLDv2除了兼容支持MLDvl所有的三種報(bào)文:組播偵聽(tīng)查詢(MLD消息類型值為130),包括一般查詢和特定組播地址查詢:組播偵聽(tīng)報(bào)告(MLD消息類型值為131);組播偵聽(tīng)完成(MLD消息類型值為 132)外,還增加了MLDv2查詢消息(一般的查詢、特定組播地址查詢,特定組播地址和源查詢)和“偵聽(tīng)者報(bào)告”報(bào)文?!皞陕?tīng)者報(bào)告”報(bào)文是向鄰居路由器報(bào)告當(dāng)前的組播偵聽(tīng)狀態(tài),或者聲明偵聽(tīng)狀態(tài)變化情況。綜上,MLDv2消息中的所有消息如下:n 兩種類型的MLDv2消息:l 組播偵聽(tīng)查詢(

37、類型值=130)l Version 2組播偵聽(tīng)報(bào)告(類型值=143)n 為保證和MLDvl的兼容,MLDv2還要支持以下兩種消息:l Versionl組播偵聽(tīng)報(bào)告(類型值=131)RFC2710l versionl組播偵聽(tīng)完成(類型值=132)RFC2710以下詳細(xì)介紹兩種類型的MLDv2消息內(nèi)容。a)MLDv2偵聽(tīng)查詢消息組播偵聽(tīng)查詢消息是在請(qǐng)求狀態(tài)的路由器發(fā)出來(lái)的,它用來(lái)查詢鄰居接口的偵聽(tīng)狀態(tài)。它的消息格式如圖2-24所示:圖2-24 MLDv2偵聽(tīng)查詢消息(1)編碼被發(fā)送者初始化為0,接收者被忽略。(2)校驗(yàn)和標(biāo)準(zhǔn)的ICMPv6校驗(yàn)和;算它,它需要計(jì)算整個(gè)消息,包括IPv6的偽造報(bào)頭。為

38、了計(jì)算它,首先把它設(shè)置為0。收到包后,要先驗(yàn)證后處理。(3)最大響應(yīng)延遲最大響應(yīng)延遲編碼域指定了在發(fā)送響應(yīng)報(bào)告的允許的最大延遲。實(shí)際時(shí)間叫做最大響應(yīng)延遲,單位為毫秒。它們之間編碼方式如下:l 如果最大響應(yīng)延遲編碼=32768,則最大響應(yīng)延遲編碼構(gòu)成如圖2-25所示:圖2-25 最大響應(yīng)延遲編碼構(gòu)成圖而且最大響應(yīng)延遲=(mant | 0x1000) (exp+3)。值比較小的最大響應(yīng)延遲允許MLDv2路由器調(diào)整“離開(kāi)潛伏期”(鏈路上最后一個(gè)節(jié)點(diǎn)停止偵聽(tīng)某個(gè)特定的組播地址到路由協(xié)議認(rèn)為對(duì)于這個(gè)地址沒(méi)有偵聽(tīng)者的時(shí)間)。值比較大的最大響應(yīng)延遲,尤其是編碼的那些,是用來(lái)調(diào)整在鏈路上的爆炸性的MLD消息的

39、傳輸。(4)預(yù)留被發(fā)送者初始化為0,被接收者忽略。(5)組播地址對(duì)于一般的查詢消息,組播地址為0。對(duì)于特定組地址或者特定組地址和源的查詢消息來(lái)說(shuō),組播地址被設(shè)置成需要查詢的地址。 (6)S Flag(抑制路由器端的處理)如果設(shè)置成1,則表示對(duì)于所有接收在收到查詢消息時(shí)抑制計(jì)時(shí)器更新。不過(guò),并不抑制選舉查詢者和主機(jī)端對(duì)一類查詢消息的處理,這類查詢是路由器請(qǐng)求實(shí)現(xiàn)組播偵聽(tīng)者的功能。(7)QRV(查詢者活躍變量)如果非0,那么查詢者活躍變量域包含查詢者使用的活躍變量值。如果活躍變量大于7(查詢者活躍變量域的最大值),查詢者活躍變量域被設(shè)置為0。路由器把近期收到的查詢消息中的查詢者活躍變量值設(shè)置為自己

40、的活躍變量值,除非近期收到的查詢消息中多數(shù)的查詢者活躍變量值都為0。在多數(shù)的查詢者活躍變量值都為0的清況時(shí),就使用缺省值,或者靜態(tài)配置特定的值。(8)QQIC(查詢者查詢間隔編碼)查詢者查詢間隔編碼域指定了查詢者使用的查詢間隔。實(shí)際間隔被叫作查詢者查詢間隔(QQI),它是以秒為單位的。它們之間的轉(zhuǎn)換如下:l 如果QQIC=128,則查詢者查詢間隔編碼構(gòu)成如圖2-26所示:圖2-26 查詢者查詢間隔編碼構(gòu)成圖 而且QQI = (mant | 0x10) (exp+ 3)。不是當(dāng)前查詢者的組播路由器把最新收到的查詢消息中的QQI值作為自己的查詢間隔時(shí)間,除非近期收到的查詢消息中多數(shù)的QQI值都為0

41、。在都為0情況時(shí),就使用缺省值(9)源個(gè)數(shù)(N)源個(gè)數(shù)(N)指出在當(dāng)前處在查詢的源地址的個(gè)數(shù)。在一般查詢消息或者特定組播地址的查詢消息中源個(gè)數(shù)都為0,在特定源和組地址的查詢消息中不為0。源個(gè)數(shù)的大小由鏈路上可傳輸?shù)淖畲髨?bào)文決定。例如,在Ethernet上,可傳輸?shù)淖畲髨?bào)文是1500字節(jié),攜帶路由警報(bào)選項(xiàng)的8字節(jié)的Hop-By-Hop擴(kuò)展頭和40字節(jié)的IPv6頭一共48字節(jié);源個(gè)數(shù)域前的MLD頭共28字節(jié),這樣留給源個(gè)數(shù)域的有1424字節(jié),所以源個(gè)數(shù)最大為89(1424/16)。(10)源地址i源地址i域是指向n的單播地址,n既是源個(gè)數(shù)域中的值。(11)附加數(shù)據(jù)區(qū)如果收到的查詢消息中的IPv6頭

42、的負(fù)載長(zhǎng)度域指定了需要有附加數(shù)據(jù)存在時(shí),執(zhí)行MLDv2時(shí)必須包含附加字節(jié),用來(lái)確認(rèn)收到MLD消息的校驗(yàn)和,否則就忽略附加字節(jié)。當(dāng)發(fā)送查詢消息時(shí),一定不含附加消息。(12)查詢變量查詢消息中有三類查詢變量:l “一般查詢消息”是查詢路由器發(fā)出的,用來(lái)查詢相連的鏈路上哪個(gè)組播地址有偵聽(tīng)者。組播地址和源個(gè)數(shù)都為0。l “特定組地址查詢消息”是查詢路由器發(fā)出的,用來(lái)查詢相連的鏈路上某個(gè)特定的組播地址是否有偵聽(tīng)者。在特定組地址查詢消息中,包括希望查詢的組地址,源個(gè)數(shù)為0。l “特定組地址和源查詢消息”是查詢路由器發(fā)出的,用來(lái)查詢相連的鏈路上某個(gè)特定的組播地址并且是來(lái)自特定的源的消息是否有偵聽(tīng)者。在特定組

43、地址和源查詢消息中,包括希望查詢的組地址,源地址列表包含關(guān)注的源地址。(13)查詢消息源地址所有MLDv2的查詢消息的源地址為可用的IPv6鏈路本地地址。如果節(jié)點(diǎn)(路由器或主機(jī))收到的來(lái)自不明的地址的查詢消息,或者不是可用的IPv6鏈路本地地址時(shí),它就丟棄這個(gè)消息,同時(shí)記錄警報(bào)。(14)查詢消息目的地址在MLDv2協(xié)議中,一般查詢消息是發(fā)給鏈路內(nèi)所有節(jié)點(diǎn)的地址的(FF02:1)。特定組地址查詢消息和特定組地址和源查詢消息都發(fā)給希望查詢的組地址。同時(shí)節(jié)點(diǎn)必須接收和處理所有的IP目的地址是任意的單播或組播地址的查詢消息,這樣有利于調(diào)試。MLDv2偵聽(tīng)查詢報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-27:

44、圖2-27 在網(wǎng)絡(luò)中傳輸?shù)腗LDv2偵聽(tīng)查詢報(bào)文b)MLDv2組播偵聽(tīng)報(bào)告MLDv2組播偵聽(tīng)報(bào)告是IP節(jié)點(diǎn)發(fā)送的,它可以用來(lái)向鄰居報(bào)告當(dāng)前的偵聽(tīng)狀態(tài)和以身改變接口上的組播偵聽(tīng)狀態(tài)。消息格式如圖2-28所示:圖2-28MLDv2組播偵聽(tīng)報(bào)告報(bào)文 組地址記錄的消息格式如圖2-29所示:圖2-29 組地址記錄的消息格式(1) 類型字段,在MLDv2偵聽(tīng)報(bào)告置為143。(2) 預(yù)留,被發(fā)送者初始化為0,被接收者忽略。(3) 校驗(yàn)和標(biāo)準(zhǔn)的ICMPv6校驗(yàn)和;它需要計(jì)算整個(gè)消息,包括IPv6的偽造報(bào)頭。為了計(jì)算它,首先把它設(shè)置為0。收到包后,要先驗(yàn)證后處理。(4) 組播地址記錄個(gè)數(shù)(M)組播地址記錄個(gè)數(shù)(

45、M)指出在當(dāng)前偵聽(tīng)報(bào)告中的組播地址一記錄的個(gè)數(shù)。(5) 組播地址記錄組播地址記錄是由來(lái)自報(bào)告發(fā)送的接口的發(fā)送者偵聽(tīng)每個(gè)組播地址的信息組成。具體記錄如下:記錄類型當(dāng)前狀態(tài)報(bào)告是用來(lái)在收到查詢消息的接口上節(jié)點(diǎn)發(fā)出的消息。它報(bào)告接口對(duì)于每一個(gè)組地址的當(dāng)前的偵聽(tīng)狀態(tài)。以下兩類,如表2-2所示表2-2 當(dāng)前狀態(tài)報(bào)告類型值名字作用1包括模式指明在當(dāng)前的接口上對(duì)于特定的組地址的過(guò)濾模式是包括模式的。相應(yīng)的源地址域是對(duì)于特定的組地址的列表必須為非空。2排除模式指明在當(dāng)前的接口上對(duì)于特定的組地址的過(guò)濾模式是排除模式的。如果組地址列表為非空,則組地址域包含接口的對(duì)于特定組地址的源列表。過(guò)濾模式變化報(bào)告是接點(diǎn)在本地

46、的接口層對(duì)于特殊的組地址狀態(tài)變化時(shí)引起的IPv6 Multicast Listen請(qǐng)求而發(fā)出的報(bào)告,這種報(bào)告無(wú)論源地址是否發(fā)生變化都要發(fā)送。只有狀態(tài)變化的接口才發(fā)送這類的報(bào)告。以下兩類,如表2-3所示:表2-3 過(guò)濾模式變化報(bào)告值名字作用3變?yōu)榘J街该髟诋?dāng)前的接口上對(duì)于特定的組地址的過(guò)濾模式轉(zhuǎn)變?yōu)榘J降?。如果組地址列表為非空,則組地址域包含接口的對(duì)于特定組地址的新的源列表。4變?yōu)榕懦J?指明在當(dāng)前的接口上對(duì)于特定的組地址的過(guò)濾模式轉(zhuǎn)變?yōu)榕懦J降摹H绻M地址列表為非空,則組地址域包含接口的對(duì)于特定組地址的新的源列表。源列表改變報(bào)告是節(jié)點(diǎn)發(fā)出的,當(dāng)源列表改變,過(guò)濾模式和組地址不改變時(shí)會(huì)

47、觸發(fā)發(fā)送此消息。以下兩類,如表2-4示表2-4 源列表改變報(bào)告值名字作用5允許新的源指明在當(dāng)前組地址記錄中的源地址域需要增加新的源。若是在包含模式下,則把這些源加入到列表中。若是在排除模式下,則把這些源從列表中刪除。6阻止舊的源指明在當(dāng)前組地址記錄中的源地址域需要?jiǎng)h除舊的源。若是在包含模式下,則把這些源刪除到列表中。若是在排除模式下,則把這些源從列表中刪除加入。 附加數(shù)據(jù)長(zhǎng)度附加數(shù)據(jù)長(zhǎng)度域包含在當(dāng)前在偵聽(tīng)報(bào)告中的附加數(shù)據(jù)長(zhǎng)度,單位是字(32bits)。如果為0,則表示沒(méi)有附加數(shù)據(jù)。源個(gè)數(shù)(N)源個(gè)數(shù)(N)指出在當(dāng)前在偵聽(tīng)報(bào)告中的源地址記錄的個(gè)數(shù)。組播地址組播地址域包含組播偵聽(tīng)報(bào)告中有的組播地址

48、。源地址i源地址i域是指向n的單播地址,n既是源個(gè)數(shù)域中的值。輔助數(shù)據(jù)區(qū)如果存在輔助數(shù)據(jù)區(qū),那么它是用來(lái)補(bǔ)充說(shuō)明組播地址報(bào)告的。在MLDv2協(xié)議中沒(méi)有定義間接尋址數(shù)據(jù),所以不需要包括輔助數(shù)據(jù)區(qū)。因此設(shè)置輔助數(shù)據(jù)區(qū)為0,收到時(shí)也忽略。留出這樣一部分輔助數(shù)據(jù)區(qū)是為了以后能夠擴(kuò)展MLD。MLDv2組播偵聽(tīng)報(bào)告報(bào)文在網(wǎng)絡(luò)中傳輸完整的報(bào)文格式如圖2-30:圖2-30 在網(wǎng)絡(luò)中傳輸?shù)腗LDv2組播偵聽(tīng)報(bào)告報(bào)文2.2.3 MLDv2工作過(guò)程MLDv2的工作過(guò)程可以分成三部分:一是偵聽(tīng)者端建立“組播偵聽(tīng)狀態(tài)”;二是偵聽(tīng)者端和路由器端之間交換各種報(bào)文;三是路由器端建立偵聽(tīng)者狀態(tài)列表。a)建立偵聽(tīng)狀態(tài)偵聽(tīng)者根據(jù)自

49、身的需要指定它所感興趣的組播組和組的源地址,建立自身的偵聽(tīng)狀態(tài),即加入列表或排除列表,然后主動(dòng)或被動(dòng)通知鄰居組播路由器它的偵聽(tīng)狀態(tài)。偵聽(tīng)者執(zhí)行MLDv2協(xié)議的“偵聽(tīng)部分”的功能。無(wú)論節(jié)點(diǎn)上的接口是否在同一鏈路上.每個(gè)接口上都會(huì)執(zhí)行偵聽(tīng)者功能。運(yùn)行在偵聽(tīng)節(jié)點(diǎn)上層的協(xié)議或者應(yīng)用通過(guò)“套接字組播狀態(tài)”函數(shù)IPv6 Multicast Listen告知接口啟用或禁用組播功能。IPv6Muhieast Listen的格式如下:IPv6 MulticastListen(套接口,接口,IPv6組播地址,過(guò)濾模式,源列表)套接口:用來(lái)區(qū)分節(jié)點(diǎn)內(nèi)不同的組播請(qǐng)求實(shí)體(如進(jìn)程用程序等)。接口:表示一個(gè)本地網(wǎng)絡(luò)接口.

50、通過(guò)該接口可以啟用或禁用組播功能。IPv6組播地址:表示請(qǐng)求加入的組播地址。如果一個(gè)接口接收多于一個(gè)組播的分組,IPv6Multicast Listen就會(huì)被每個(gè)組播單獨(dú)調(diào)用。過(guò)濾模式:過(guò)濾模式分為“INCLUDEMODE”(包含模式)和“EXCLUDEMODE”(排除模式)兩種。源列表:一個(gè)無(wú)序的地址列表,可以為空。除了“套接字組播狀態(tài)”之外,節(jié)點(diǎn)必須維護(hù)或計(jì)算出每個(gè)接口的組播偵聽(tīng)狀態(tài),稱為“接口組播狀態(tài)”,表示為(IPv6組播地址,過(guò)濾模式,源列表)?!敖涌诮M播狀態(tài)”從“套接字組播狀態(tài)”推導(dǎo)出來(lái)。從“套接字組播狀態(tài)”導(dǎo)出“接口組播狀態(tài)”的一般規(guī)律如下:根據(jù)具有相同接口(IPv6組播地址)的

51、“套接字組播狀態(tài)”記錄,推導(dǎo)出一個(gè)“接口組播狀態(tài)”。(1)若有“套接字組播狀態(tài)”記錄處于排除模式,那么“接口組播狀態(tài)”的過(guò)濾模式就是“排除模式”,且“源地址列表”等于所有“排除模式”“套接字組播狀態(tài)”記錄中的源地址列表的交集,減去所有“包含模式”“套接字組播狀態(tài)”記錄中的源地址列表。(2)若所有“套接字組播狀態(tài)”記錄都是“包含模式”,那么“接口組播狀態(tài)”就是“包含模式”,且“源地址列表”等于所有“套接字組播狀態(tài)”記錄中源地址列表的并集。偵聽(tīng)者通過(guò)上述算法可以建立起自己的“接口組播狀態(tài)”。當(dāng)接口收到組播分組之后,就會(huì)根據(jù)應(yīng)用或者進(jìn)程的“套接字組播狀態(tài)”判斷是否將數(shù)據(jù)分組傳給上層。MLDv2報(bào)文不

52、受源地址過(guò)濾影響,能夠被所有的主機(jī)或路由器處理。b)交換各種報(bào)文偵聽(tīng)者端和路由器端之間交換各種報(bào)文是協(xié)議的重要部分,在此過(guò)程中計(jì)時(shí)器會(huì)保持各個(gè)功能實(shí)體的可用性,若計(jì)時(shí)器到期會(huì)重新選舉新的偵聽(tīng)者和查詢器。同一子網(wǎng)內(nèi)的運(yùn)行MLDv2協(xié)議的路由器首先通過(guò)1P地址最小的接口為查詢接口的“查詢器選舉機(jī)制”選舉出一臺(tái)“查詢器”(Querierrouter),其余的路由自然成為非查詢路由器(Non-Querier router)。被當(dāng)選為“查詢器”的接口周期性的在子網(wǎng)內(nèi)發(fā)布一般查詢報(bào)文,觸發(fā)性地發(fā)布特定組播地址查詢報(bào)文和特定組播地址和源查詢報(bào)文,查詢鄰居接口的組播偵聽(tīng)者發(fā)出的組播偵聽(tīng)狀態(tài)路由器周期性地發(fā)送一般查詢報(bào)文,以查詢?cè)撴溌飞鲜欠翊嬖谀辰M播地址的組成員。在接收到收到路由器發(fā)送的一般查詢報(bào)文后,節(jié)點(diǎn)經(jīng)過(guò)0,最大響應(yīng)時(shí)間之間的隨機(jī)時(shí)延后發(fā)出組播偵聽(tīng)報(bào)告,通過(guò)“當(dāng)前狀態(tài)報(bào)告”報(bào)告自己的“接口組播狀態(tài)”。經(jīng)過(guò)隨機(jī)時(shí)延是為了防止所有的節(jié)點(diǎn)都在同一時(shí)間發(fā)出報(bào)告分組,從而避免網(wǎng)絡(luò)的突發(fā)性阻塞。當(dāng)偵聽(tīng)者端改變自己的接口組播狀態(tài)時(shí),如想要加入某個(gè)組播組時(shí)或改變對(duì)某個(gè)源的接收狀態(tài),就可以不必等待路由器的查詢報(bào)文,而是直接向路由器發(fā)送報(bào)告報(bào)文。如果節(jié)點(diǎn)狀態(tài)發(fā)生變化,會(huì)立刻發(fā)送并重傳“狀態(tài)變化報(bào)告”。在舊的“狀態(tài)變化報(bào)告”重傳過(guò)程中.如果又有新的狀態(tài)變化發(fā)生,這個(gè)新的狀態(tài)變化就會(huì)和原來(lái)的狀態(tài)變化合并,然后

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論