国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 網(wǎng)絡(luò)通信 > 正文

RFC2236 Internet組管理協(xié)議,版本2

2019-11-04 10:55:10
字體:
供稿:網(wǎng)友

備忘錄:

該文檔為Internet團(tuán)體定義了Internet標(biāo)準(zhǔn)檢測協(xié)議,并要求對(duì)其進(jìn)行討論以求進(jìn)一步的改進(jìn)。該協(xié)議的標(biāo)準(zhǔn)及其請(qǐng)參考當(dāng)前的“Internet商業(yè)協(xié)議標(biāo)準(zhǔn)("InternetOfficial
版權(quán)聲明

版權(quán)保留歸InternetSociety(1997)所有.

摘要:

該備忘文檔IGMPv2,歸
ip主機(jī)使用,并向路由器報(bào)告他們的組播成員關(guān)系。它對(duì)STD5,RFC1112進(jìn)行了升級(jí).

IGMPv2答應(yīng)組中成員的退出可以迅速報(bào)告給路由協(xié)議,這一點(diǎn)對(duì)于高帶寬的組播組以及其子網(wǎng)中成員關(guān)系的動(dòng)態(tài)調(diào)整尤為重要。

該文檔是Internet工程技術(shù)組織一個(gè)域內(nèi)組播的技術(shù)標(biāo)準(zhǔn)。如有任何注釋應(yīng)向idmr@cs.UCl.ac.uk郵件列表或其作者提出。




目錄
1.要害字定義 3
2.介紹 3
2.1.類型 3
2.2.最大的響應(yīng)時(shí)間 4
2.3.校驗(yàn)字 4
2.4.組地址 4
2.5.其它域: 4
3.協(xié)議描述 4
4.與IGMPv1路由器的兼容性 6
5.和IGMPv1主機(jī)的兼容性 6
6.主機(jī)狀態(tài)報(bào)文 6
7.路由器狀態(tài)報(bào)文 9
8.定時(shí)器表和默認(rèn)值 13
8.1.健壯性變量 13
8.2.查詢周期 13
8.3.查詢響應(yīng)周期 13
8.4.組成員周期 13
8.5.其它的查詢存在周期 14
8.6.初始查詢周期 14
8.7.初始查詢周期 14
8.8.最后的成員查詢周期 14
8.9.最后成員計(jì)數(shù) 14
8.10.非請(qǐng)求報(bào)告周期 14
8.11.版本1路由器存在超時(shí) 14
9.消息目的地 15
11.致謝 16
12.參考 16
13.附錄I-基于IGMPv1的改變 16
14.作者地址 17
15.版權(quán)聲明 17










1.要害字定義
要害字"MUST","MUSTNOT","REQUIRED","SHALL","SHALLNOT",
"SHOULD","SHOULDNOT","RECOMMENDED","MAY",and"OPTIONAL"均在RFC2119[RFC2119]有具體說明。
2.介紹
Internet組治理協(xié)議(IGMP)在IP主機(jī)上應(yīng)用,并向任一個(gè)鄰近的路由器報(bào)告他們的組播成員關(guān)系。該備忘錄僅描述了IGMP在主機(jī)和路由器之間如何確定其組成員關(guān)系,在此路由器和組播成員主機(jī)的行為相近。IGMP也用于兩個(gè)路由器之間,但不在此進(jìn)行討論。
和ICMP一樣,IGMP也是IP的一個(gè)組成部分。要求在所有想接收IP組播的主機(jī)都進(jìn)行實(shí)現(xiàn)。IGMP消息封裝在IP報(bào)文中,其IP的協(xié)議號(hào)為2。所有在該文檔中說明了的IGMP消息均會(huì)用TTL為1進(jìn)行傳遞,并在IP頭中包括了IP路由檢測選項(xiàng)[RFC2113]。
所有和主機(jī)相關(guān)的IGMP消息見下:

0123
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TypeMaxRespTimeChecksum
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GroupAddress
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.1.類型
有3種IGMP消息和主機(jī)與路由器的交互有關(guān):
0x11=成員關(guān)系查詢
有兩個(gè)成員關(guān)系查詢的子類型:
-一般查詢,用于了解一個(gè)組中是否有成員在相鄰的網(wǎng)絡(luò)中。
-特定組查詢,用于了解在相鄰的網(wǎng)絡(luò)中特定的組是否有成員。
這兩個(gè)消息由組地址進(jìn)行區(qū)分,詳見第1。4章。成員查詢消息則類似于"Query"。
0x16=版本2成員關(guān)系報(bào)告。
0x17=離開組
為了和IGMPv1兼容,還有另外的一個(gè)附加的消息類別:
0x12=版本1成員報(bào)告。
該文檔中的成員關(guān)系報(bào)告實(shí)指“報(bào)告”。當(dāng)沒有定義版本號(hào)時(shí),則同時(shí)適用于兩個(gè)版本。一個(gè)不能識(shí)別的消息類型應(yīng)將其忽略。新的消息類型會(huì)用新版本的IGMP,組播路由協(xié)議或其它的用途來使用。
2.2.最大的響應(yīng)時(shí)間
最大的響應(yīng)時(shí)間域僅在成員關(guān)系查詢中有效。規(guī)定了在發(fā)送一個(gè)回應(yīng)報(bào)文時(shí)最大的答應(yīng)時(shí)間,(其單位為1/10秒)。在所有其它的消息中,會(huì)由發(fā)送者置為0,而接收者則忽略該域。
改變?cè)撛O(shè)置可以答應(yīng)IGMPv2路由器調(diào)整離開延時(shí)"leavelatency"(最后一個(gè)成員離開組的時(shí)刻和通知路由協(xié)議該處已不在存在成員時(shí)的這一段時(shí)間。),詳見第7.8節(jié)。也答應(yīng)調(diào)整子網(wǎng)上的IGMP的突發(fā)流量,詳見第7.3節(jié)。
2.3.校驗(yàn)字
校驗(yàn)字是IGMP消息長度(IP包的整個(gè)有效負(fù)載)的16位檢測。該域設(shè)為0,在計(jì)算校驗(yàn)字時(shí)將該域包在一起進(jìn)行計(jì)算。當(dāng)傳送包的時(shí)候,必須計(jì)算該校驗(yàn)字并插入到該域中去。當(dāng)接收包的時(shí)候,該校驗(yàn)字必須在處理該包之前進(jìn)行檢驗(yàn)。
2.4.組地址
在成員查詢消息中,發(fā)送一個(gè)通常的查詢時(shí)組地址域應(yīng)設(shè)為0,當(dāng)發(fā)送一個(gè)特定組查詢時(shí),則應(yīng)設(shè)置組的地址。在成員報(bào)告或離開組的消息中,組的地址域保留了要報(bào)告或要離開的地址。
2.5.其它域:
注重IGMP消息可能會(huì)大于8個(gè)字節(jié),尤其是將來向后兼容的IGMP版本。有 一點(diǎn)必須注重,一個(gè)IGMPv2的實(shí)現(xiàn)在處理包的時(shí)候必須忽略第一個(gè)8位字節(jié)。但是,IGMP的校驗(yàn)總是在整個(gè)IP的有效負(fù)載上進(jìn)行計(jì)算的,而不是正好在首先的8字節(jié)上。
3.協(xié)議描述
注重:定時(shí)器的數(shù)值將在該文檔的后面進(jìn)行描述。定時(shí)器和
當(dāng)一個(gè)主機(jī)接收到了普通的查詢,它會(huì)給每個(gè)組(有查詢請(qǐng)求到達(dá)并有成員存在的端口,包括所有系統(tǒng)平臺(tái)的組)都設(shè)一個(gè)延時(shí)定時(shí)器,每一個(gè)定時(shí)器都設(shè)為一個(gè)不同的隨機(jī)值,該值由主機(jī)上所能有的最高時(shí)鐘頻率產(chǎn)生,范圍從0,到查詢包中所定義的最大響應(yīng)時(shí)間。當(dāng)一個(gè)主機(jī)接收到了一個(gè)特定組的查詢,則會(huì)將延時(shí)定時(shí)器設(shè)為從0到最大響應(yīng)時(shí)間的一個(gè)隨機(jī)值。假如定時(shí)器已經(jīng)運(yùn)行了,則假如所要求的最大響應(yīng)時(shí)間小于當(dāng)前運(yùn)行的定時(shí)值所剩部份時(shí),重置該定時(shí)器。當(dāng)組的定時(shí)器到時(shí)后,主機(jī)組播一個(gè)版本2的成員報(bào)告到該組中,其IP中TTL的值為1。如主機(jī)接收到了另一個(gè)主機(jī)的報(bào)告(版本為1或2),而其本身的定時(shí)器還沒有到時(shí),則它會(huì)停止其特定組的定時(shí)器,且不發(fā)送報(bào)告,這樣就減少了重復(fù)的報(bào)告。

當(dāng)路由器接收到了報(bào)告,它就會(huì)把該組報(bào)告加入到一個(gè)組播組成員列表中,并且會(huì)為其成員關(guān)系設(shè)一個(gè)值為組成員生存周期的定時(shí)器。重復(fù)的報(bào)告會(huì)導(dǎo)致該定時(shí)器的刷新。假如在定時(shí)器到時(shí)之前沒有接收到一個(gè)特定組的報(bào)告,路由器則會(huì)假定沒有本地的成員,它也不再需要在鄰接的網(wǎng)絡(luò)上為該組轉(zhuǎn)發(fā)組播消息了。
當(dāng)一個(gè)主機(jī)加入了一個(gè)組播組,則應(yīng)該立即發(fā)送一個(gè)非請(qǐng)求的版本2的成員關(guān)系報(bào)告給組,以防它是網(wǎng)絡(luò)上該組的第一個(gè)成員。初始的成員報(bào)告可能會(huì)丟失或會(huì)受到損害,為了防止此種情況,推薦在短的間隔時(shí)間內(nèi)報(bào)告一次或兩次(非請(qǐng)求報(bào)告間隔)。(一種簡單的方法可以解決該問題。即通過發(fā)送版本號(hào)為2的初始成員報(bào)告,就好象是從一個(gè)組接收到了特定組查詢的消息一樣,并設(shè)置適當(dāng)?shù)亩〞r(shí)器)。
當(dāng)一主機(jī)離開一個(gè)組播組,假如它是最后一個(gè)主機(jī),除它外沒有其它的機(jī)器來報(bào)告成員關(guān)系了,則它應(yīng)該發(fā)送一條離開組的消息給所有路由器,地址為組播組(224.0.0.2),如它并不是最后一個(gè)回答查詢的主機(jī),它可以不發(fā)送消息,就好象另一個(gè)在子網(wǎng)中的成員一樣。這樣也可以減少了一些數(shù)據(jù)流量。一個(gè)沒有足夠存儲(chǔ)器的主機(jī)不能記住是否它是最后一個(gè)主機(jī),它離開一個(gè)組時(shí),它總是會(huì)發(fā)送一條離開組的消息。為了和早期的版本標(biāo)準(zhǔn)的兼容,路由器應(yīng)接收該條離開組的消息。離開組消息發(fā)布給所有的路由器組,因?yàn)槠渌慕M成員不必知道一個(gè)主機(jī)是否離開了該組,但它不會(huì)破壞該離開組的消息。

當(dāng)查詢者在其接口上接收到了組成員離開組的消息之后,它發(fā)送[最后成員查詢計(jì)數(shù)]特定組成員查詢消息[最后成員查詢間隔]給正離開的組。這些特定組查詢有最大的響應(yīng)時(shí)間(設(shè)為最后成員查詢間隔)。假如在最后查詢的響應(yīng)時(shí)間之后,沒有報(bào)告者接到消息,路由器則會(huì)假定該組沒有本地的成員。在該時(shí)間內(nèi),任一個(gè)查詢者到非查詢者的傳送都會(huì)忽略,一個(gè)路由器會(huì)繼續(xù)發(fā)送特定組的查詢。


對(duì)于接收端口上沒有組成員時(shí),非查詢者必須忽略離開組的消息,而查詢者則是應(yīng)該忽略離開組的消息。當(dāng)查詢者接收發(fā)一個(gè)特定組查詢消息,假如它的組成員定時(shí)器大于[最后成員查詢計(jì)數(shù)]消息中所定義的最大響應(yīng)時(shí)間,它會(huì)將其組成員計(jì)數(shù)為該值。
4.與IGMPv1路由器的兼容性
在一個(gè)路由器沒有升級(jí)到IGMPv2的子網(wǎng)上,IGMPv2主機(jī)可能會(huì)被取代。如下的請(qǐng)求為IGMPv1路由器會(huì)發(fā)送正常的查詢消息,其響應(yīng)時(shí)間設(shè)為0。這必須理解為數(shù)值100(為10秒鐘點(diǎn))。
IGMPv1路由器期望版本1的成員報(bào)告對(duì)應(yīng)于它的查詢,而不會(huì)注重版本2的成員報(bào)告。因此,對(duì)于每個(gè)接口都必須保留一個(gè)狀態(tài)變量,描述在接口中的組播查詢者是運(yùn)行的IGMPv1還是IGMPv2。該變量必須由在最后幾秒內(nèi)是否聽到IGMPv1查詢來決定。并必須用來決定用什么類型的成員報(bào)告來發(fā)送非請(qǐng)求的成員報(bào)告以及對(duì)查詢響應(yīng)的成員報(bào)告。
一個(gè)IGMPv2主機(jī)可以減少使用IGMPv1查詢者所在網(wǎng)絡(luò)上的離開組消息。一個(gè)IGMPv2路由器可被放置在至少有一個(gè)路由器沒有被升級(jí)為IGMPv2的子網(wǎng)上。,有如下的要求:
假如存在任一個(gè)IGMPv1路由器,查詢者必須使用IGMPv1.IGMPv1的使用必須有組織的配置,就好象沒有可靠的方法來動(dòng)態(tài)決定在網(wǎng)絡(luò)上是否有IGMPv1路由器存在一樣。其實(shí)現(xiàn)須提供給系統(tǒng)治理者一個(gè)方法來打開這些路由器上IGMPv1的使用。其配置必須默認(rèn)為IGMPv2。在IGMPv1模式中,路由器必須發(fā)送最大廈響應(yīng)時(shí)間為0的周期性查詢。它們必須在接收到IGMPv2查詢時(shí)報(bào)警,盡管這些報(bào)警會(huì)受速率限制。
假如一個(gè)路由器沒有顯式地配置為使用IGMPv1,且收到了一個(gè)IGMPv1查詢,它應(yīng)該在日志上寫上一個(gè)警告。這些警告必須有速率限制。
5.和IGMPv1主機(jī)的兼容性
一個(gè)IGMPv2主機(jī)可以被放置于有一些主機(jī)沒有被升級(jí)為IGMPv2的子網(wǎng)上。如下的必要條件為:
主機(jī)必須答應(yīng)它的成員報(bào)告可被其它的版本1或版本2的成員報(bào)告所壓制。
一個(gè)IGMPv2主機(jī)可以被放置于有一些主機(jī)沒有被升級(jí)為IGMPv2的子網(wǎng)上。如下的必要條件為:
主機(jī)必須答應(yīng)它的成員報(bào)告可被其它的版本1或版本2的成員報(bào)告所壓制。
假如一個(gè)路由器收到了一個(gè)版本為1的成員報(bào)告,它必須設(shè)置一個(gè)定時(shí)器來注明存在一個(gè)版本1的主機(jī),該主機(jī)是它接收到報(bào)告的組中的成員。該計(jì)時(shí)器應(yīng)和[組成員時(shí)間間隔。
假如版本1主機(jī)聲明為一個(gè)特定的組,一個(gè)路由器必須忽略任一個(gè)它所接收到的離開該組的消息。
6.主機(jī)狀態(tài)報(bào)文
主機(jī)的行為正式上由如下的傳送報(bào)文狀態(tài)定義。考慮到任一個(gè)單個(gè)的IP組播組在任一個(gè)單一的網(wǎng)絡(luò)接口上,主機(jī)可以為三個(gè)可能狀態(tài)中的一個(gè):

-"無成員"狀態(tài),當(dāng)該主機(jī)不屬于接口上的組時(shí)。這是一個(gè)對(duì)于所有的網(wǎng)絡(luò)接口上的所有成員來說,是一個(gè)初始的狀態(tài),它不要求在主機(jī)上進(jìn)行存儲(chǔ)。
"滯留成員"狀態(tài),當(dāng)該主機(jī)屬于在此接口上的該組時(shí),且對(duì)于成員關(guān)系有一個(gè)報(bào)告延遲定時(shí)器。
-"空閑成員"狀態(tài),當(dāng)該主機(jī)屬于該接口上的組時(shí),且對(duì)于那個(gè)成員關(guān)系沒有報(bào)告定時(shí)器正在運(yùn)行。
有五個(gè)明顯的事件,能引起IGMP狀態(tài)的改變:
-"加入組"發(fā)生時(shí)間。當(dāng)主機(jī)決定加入該接口上的一個(gè)組時(shí),它會(huì)發(fā)生。它僅發(fā)生在無成員狀態(tài)時(shí)。
-"離開組"發(fā)生時(shí)間。發(fā)生在主機(jī)決定離開此接口上的該組時(shí),它僅發(fā)生在滯留成員以及空閑成員狀態(tài)時(shí)。
"收到的查詢"發(fā)生時(shí)間。發(fā)生在主機(jī)接收到一個(gè)有效的一般組成員查詢消息,或者一個(gè)有效的特定組成員查詢消息。為了使其有效,查詢消息必須至少為8個(gè)字節(jié)長,并且有正確的IGMP校驗(yàn)字。在IGMP頭中的組地址必須是0(對(duì)于一般的查詢)或者為一個(gè)有效的組播地址(對(duì)于特定組的查詢)。一個(gè)特定組的查詢應(yīng)用于接收到查詢的接口上所有的成員關(guān)系。對(duì)于在非成員狀態(tài)中的成員關(guān)系,查詢會(huì)被忽略。
-"收到的報(bào)告"發(fā)生時(shí)間。發(fā)生在主機(jī)接收到一個(gè)有效的IGMP成員報(bào)告消息(版本1或版本2)。為了使其有效,此報(bào)告消息必須至少有8個(gè)字節(jié)長并且有正確的IGMP校驗(yàn)字。一個(gè)成員關(guān)系報(bào)告僅應(yīng)用于成員關(guān)系報(bào)告所標(biāo)識(shí)的組中的成員關(guān)系,位于接收到成員關(guān)系的接口上。對(duì)于在非成員或空閑成員狀態(tài)中的成員關(guān)系,會(huì)被忽略。
-"定時(shí)器超時(shí)"發(fā)生時(shí)間。發(fā)生在為接口上組設(shè)定的報(bào)告延時(shí)定時(shí)器超時(shí)時(shí)。它僅會(huì)發(fā)生在延進(jìn)成員狀態(tài)中。
所有其它的事件中,例如接收有效的IGMP消息,或者IGMP消息而不只是查詢或者是報(bào)告,在所有的狀態(tài)中都會(huì)被忽略。這兒有七個(gè)可能的反應(yīng),對(duì)于以上的事件的反應(yīng)來說:
-"發(fā)送報(bào)告"對(duì)于接口上的組。這類型的報(bào)告由接口的狀態(tài)來決定。該報(bào)告消息被發(fā)給正被報(bào)告的組。
-"發(fā)送離開"對(duì)于接口上的組。假如該接口的狀態(tài)說查詢者正在運(yùn)行IGMPv1,該反應(yīng)應(yīng)被跳過。假如說我們是最后一個(gè)主機(jī)的該狀態(tài)標(biāo)志被清除,該反應(yīng)可被跳過。該離開消息被送給所有路由器組(224.0.0.2)。
-"設(shè)置狀態(tài)",指我們是最后發(fā)送報(bào)告給該組的主機(jī)。
-"清除狀態(tài)",指因?yàn)槲覀儾皇亲詈蟀l(fā)送報(bào)告給該組的主機(jī)。
-"開始定時(shí)器",為此接口上的組而定。使用一個(gè)唯一的選擇值(從0到最大的響應(yīng)時(shí)間間隔)延時(shí)值,在此最大的響應(yīng)時(shí)間在查詢中規(guī)定。假如這是一個(gè)非請(qǐng)求的報(bào)告,該定時(shí)器會(huì)被設(shè)為一個(gè)唯一的選擇值(從0到最大的響應(yīng)時(shí)間間隔)延時(shí)值。
-"重置定時(shí)器"對(duì)于該接口上的組設(shè)為一個(gè)新的數(shù)值,其延時(shí)數(shù)值從從0到最大的響應(yīng)時(shí)間間隔)延時(shí)值,和"開始定時(shí)器"中所說的一樣。
-"停止定時(shí)器"對(duì)于接口上的該組。
在所有如下的狀態(tài)報(bào)文中,每一個(gè)狀態(tài)傳送弧都被標(biāo)以引起該傳送的事件,并且,在插入符中,有在傳送中的一個(gè)反應(yīng)標(biāo)識(shí)。注重該傳送已經(jīng)被事件引發(fā)了;即使該反應(yīng)是有條件的,該傳送仍然發(fā)生。







________________




--------->Non-Member<---------



________________

leavegroupjoingroupleavegroup
(stoptimer,(sendreport,(sendleave
sendleaveifsetflag,ifflagset)
flagset)starttimer)
________________________________
<---------

<-------------------
queryreceived
DelayingMember(starttimer)IdleMember
---->------------------->
reportreceived
(stoptimer,
clearflag)
_________________------------------->_________________
queryreceivedtimereXPired
(resettimerif(sendreport,
MaxRespTimesetflag)
<currenttimer)
-------------------


所有系統(tǒng)的組(地址為224.0.0.1)被處理為一個(gè)非凡的事例。對(duì)于每個(gè)接口上的組,該主機(jī)開始于空閑成員狀態(tài),并且從不發(fā)送針對(duì)此組的報(bào)告。
另外,考慮到某個(gè)單一的網(wǎng)絡(luò)接口一個(gè)主機(jī)可以是在兩個(gè)可能狀態(tài)中的一個(gè):
-"無IGMPv1路由器存在",當(dāng)該主機(jī)沒有聽到針對(duì)[版本1的路由器存在超時(shí)]的IGMPv1風(fēng)格的查詢時(shí),此為初始狀態(tài)。
-"IGMPv1路由器存在",當(dāng)該主機(jī)已聽到了在針對(duì)[版本1的路由器存在超時(shí)]的一個(gè)IGMPv1風(fēng)格的查詢時(shí)。
此處有兩個(gè)事件,能導(dǎo)致狀態(tài)的改變:
-"IGMPv1查詢收到",當(dāng)主機(jī)接收到一個(gè)帶有最大響應(yīng)時(shí)間域設(shè)為0的查詢時(shí)產(chǎn)生。
-"定時(shí)器超時(shí)",當(dāng)定時(shí)器設(shè)為提示有一個(gè)IGMPv1的路由器存在已過期。加入一個(gè)單個(gè)的反應(yīng)能被一個(gè)事件所啟動(dòng):
"設(shè)定定時(shí)器",設(shè)定定時(shí)器為其最大的值[版本1的路由器存在超時(shí)]且開始或重新開始它。

________________


NoIGMPv1
Router
Present

---->----

________________
timerexpiresIGMPv1query
________________received
(settimer)


-----IGMPv1<---
Router
Present

---->----
________________

IGMPv1queryreceived
(settimer)
---------------------------
7.路由器狀態(tài)報(bào)文
路由器的行為很大程度上由如下的傳送提報(bào)文所定義。
考慮到任一個(gè)單一的鄰接網(wǎng)絡(luò),一個(gè)路由器可為兩個(gè)可能狀態(tài)中的一個(gè):
-"查詢者",當(dāng)該路由器設(shè)計(jì)為在此網(wǎng)絡(luò)上傳送IGMP成員關(guān)系查詢時(shí)。
-"非查詢者",當(dāng)此處是另一個(gè)設(shè)為在此網(wǎng)絡(luò)上傳送IGMP成員關(guān)系查詢的路由器。
如下的三個(gè)事件能導(dǎo)致路由器改變狀態(tài):
-"查詢定時(shí)器超時(shí)"發(fā)生在定時(shí)器設(shè)為查詢傳送超時(shí)時(shí)。
-"從低IP地址的路由器上收到的查詢消息"發(fā)生在從在同一個(gè)網(wǎng)絡(luò)上且有低IP地址的路由器上接收到IGMP成員查詢時(shí)。
-"其它的查詢者存在定時(shí)器超時(shí)"發(fā)生在,當(dāng)定時(shí)器設(shè)為提示另一個(gè)此網(wǎng)絡(luò)上擁有低IP地址的查詢者超時(shí)時(shí)。
此處有三個(gè)反應(yīng),可用來響應(yīng)以上的事件:

-"啟動(dòng)一般查詢定時(shí)器"針對(duì)一個(gè)鄰接網(wǎng)絡(luò)。
-"啟動(dòng)另一個(gè)查詢者存在定時(shí)器"針對(duì)于該鄰接網(wǎng)絡(luò)[其它查詢者存在周期。
-"發(fā)送一般查詢"在鄰接網(wǎng)絡(luò)上發(fā)送。一般的查詢被發(fā) 給所有的系統(tǒng)組(224.0.0.1),并且有[查詢響應(yīng)周期]的最大的響應(yīng)時(shí)間。

--------------------------------
_______________gen.querytimer
---------expired
Initial---------------->(sendgeneralquery,
---------(sendgen.q.,setgen.q.timer)
setinitialgen.q.<----------------------
timer)Querier

-----<---

________________
queryreceivedfromaotherquerier
routerwithalowerpresenttimer
IPaddressexpired
(setotherquerier________________(sendgeneral
presenttimer)query,setgen.
q.timer)

---->Non----
Querier


---->----
________________
queryreceivedfroma
routerwithalowerIP
address
(setotherquerier
presenttimer)
---------------------------

一個(gè)路由器應(yīng)該在所有的鄰接網(wǎng)絡(luò)上開始于初始狀態(tài),并且立即移到查詢者狀態(tài)。
另外,為了保持和那些有成員的組的聯(lián)系,在考慮到任一個(gè)位于單個(gè)鄰接的網(wǎng)絡(luò)上的單一IP組播組時(shí),一個(gè)路由器可處于四個(gè)可能狀態(tài):
-"無成員存在"狀態(tài),當(dāng)已 發(fā)送該組播組報(bào)告的網(wǎng)絡(luò)上沒有主機(jī)存在時(shí)。這對(duì)于該路由器上所有的組來說是一個(gè)初始狀態(tài);它不需要路由器的存儲(chǔ)。
-"成員存在"狀態(tài),當(dāng)已 發(fā)送該組播組報(bào)告的網(wǎng)絡(luò)上有一個(gè)主機(jī)存在時(shí)。
-"版本1成員存在"狀態(tài),當(dāng)對(duì)于該組已發(fā)送版本1成員組報(bào)告的網(wǎng)絡(luò)上有一個(gè)主機(jī)存在時(shí)。

-"檢測成員關(guān)系"狀態(tài),當(dāng)路由器已接收到了一個(gè)離開組消息,今明兩天沒有聽到針對(duì)組播組的成員報(bào)告。
此處有六個(gè)明顯的能導(dǎo)致路由器狀態(tài)改變的事件:
-"版本v2報(bào)告收到"發(fā)生在當(dāng)路由器接收到針對(duì)該接口上該組的版本2成員關(guān)系報(bào)告時(shí)。為了有效,該報(bào)告消息必須至少有8個(gè)字節(jié)長,并且必須有正確的IGMP檢測字。
-"版本v1報(bào)告收到 "發(fā)生在當(dāng)路由器收到了針對(duì)該接口上該組的版本1的成員報(bào)告。應(yīng)用了同樣合法的請(qǐng)求。
-"離開收到"發(fā)生在當(dāng)路由器接收到針對(duì)該接口上的該組的IGMP組離開消息時(shí)。為使其有效,此離開組的消息必須至少有8個(gè)字節(jié)長,并且必須有正確的IGMP校驗(yàn)字。
-"定時(shí)器超時(shí)"發(fā)生在當(dāng)定時(shí)器為一個(gè)組成員設(shè)置后超時(shí)時(shí)。
-"重傳定時(shí)器超時(shí)"發(fā)生在為重傳一個(gè)特定組查詢的定時(shí)器超時(shí)時(shí)。
-"版本v1主機(jī)定時(shí)器超時(shí)"發(fā)生在當(dāng)為提示版本1的主機(jī)作為組成員存在的定時(shí)越野時(shí)。
此處有六個(gè)可能的反應(yīng),它可能對(duì)以上的事件反應(yīng):
-"開始定時(shí)器"針對(duì)接口上的組成員-也重置定時(shí)囂為其初始值[組成員生存期]假如該定時(shí)器當(dāng)前正在運(yùn)行。
-"開始定時(shí)器*"針對(duì)接口上的的組成員-該替代的響應(yīng)設(shè)此計(jì)時(shí)器為[最后的組成員生存期]*[最后的成員查詢計(jì)數(shù)]假如該路由器是一個(gè)查詢者,或是包中的[最大的響應(yīng)時(shí)間]*[最后的成員查詢計(jì)數(shù)]如該路由器是一個(gè)非查詢者。
-"開始重傳定時(shí)器"針對(duì)于該口上的組成員[最后的成員查詢周期]。
-"開始版本1主機(jī)定時(shí)器"針對(duì)于該接口上的組成員,也重置該定時(shí)器為其初始值[組成員周期]假如該定時(shí)器當(dāng)前正在運(yùn)行。
-"發(fā)送特定組查詢"針對(duì)于鄰接網(wǎng)絡(luò)上的組。特定組查詢被發(fā)給所查詢的 組中,并且有著[最后成員查詢周期]的最大的響應(yīng)時(shí)間。
-"通知路由+"通知路由協(xié)議在此連接的網(wǎng)絡(luò)上該組的成員。
-"通知路由-"通知路由協(xié)議在此連接的網(wǎng)絡(luò)上不在有該組的成員。
對(duì)于路由器查詢狀態(tài)的狀態(tài)報(bào)文如下 :
________________
----------------------------<-----------------------
timerexpired
timerexpired(notifyrouting-,
(notifyrouting-)NoMembersclearrxmttmr)
------->Present<-------

v1reportrec'd------------
(notifyrouting+,________________rexmttimer
starttimer,expired
startv1hostv2reportreceived(sendg-s
timer)(notifyrouting+,query,
starttimer)strxmt
____________________________tmr)
<------------
<-----
v2reportreceived
(starttimer)
MembersPresent<-------------------Checking
----->leavereceivedMembership
(starttimer*,
startrexmttimer,
sendg-squery)
--->------------------->
_______________________________
v2reportrec'd
(starttimer)v1reportrec'dv1reportrec'd
----------------(starttimer,(starttimer,
v1hoststartv1hosttimer)startv1host
tmr______________V__timer)
exp'd<----------------------
------
Version1timerexpired
MembersPresent(notifyrouting-)
------->-------------------------------------------
<--------------------
------->_________________v1reportrec'd
v2reportrec'd(starttimer,
(starttimer)startv1hosttimer)
-------------------------------------------
  該處于非查詢者路由器的狀態(tài)報(bào)文很簡單,但非查詢者不發(fā)送消息且僅由消息接收驅(qū)動(dòng)。注重非查詢者不會(huì)關(guān)心一個(gè)成員報(bào)告消息是版本1還是版本2。
________________


timerexpiredtimerexpired
(notifyrouting-)NoMembers(notifyrouting-)
--------->Present<---------



________________

reportreceived
(notifyrouting+,
starttimer)
________________________________
<---------
reportreceived
(starttimer)
MembersPresent<-------------------Checking
g-squeryrec'dMembership
(starttimer*)
---->------------------->
__________________________________
reportreceived
(starttimer)
-----------------
8.定時(shí)器表和默認(rèn)值
大多數(shù)定時(shí)器都可配置。如使用了非默認(rèn)的設(shè)定,則他們必須在單個(gè)連接上所有的路由器中是一致的。注重這些插入語被用于組的表達(dá)以使得邏輯清楚。
8.1.健壯性變量
  健壯性變量答應(yīng)在一個(gè)子網(wǎng)上所要的包丟失。假如子網(wǎng)是可以丟失的,健壯性變量可增加。IGMP對(duì)于(健壯性變量 - 1) 包的丟失是健壯性的。健壯性變量不能為0,且不應(yīng)為1。默認(rèn)值為2。
8.2.查詢周期
查詢周期是由查詢者發(fā)出的一般查詢間的間隔,默認(rèn)值為125秒。
通過改變?cè)揫查詢周期],一個(gè)治理者可以調(diào)節(jié)子網(wǎng)上IGMP消息的數(shù)目,更大的值導(dǎo)致了IGMP查詢發(fā)送少天10。
8.3.查詢響應(yīng)周期
插入一般查詢周期中的最大的響應(yīng)時(shí)間。默認(rèn)值為100(10秒)。
  通過改變[查詢響應(yīng)周期],一個(gè)治理者可以調(diào)節(jié)子網(wǎng)上IGMP消息的突發(fā)性。更大一點(diǎn)的值可使流量少些突發(fā)性,當(dāng)主機(jī)響應(yīng)被散布到更大的范圍時(shí)。由[查詢響應(yīng)周期]所代表的秒數(shù)必須小于[查詢周期].
8.4.組成員周期
組成員周期是在組播路由器決定此處沒有成員在網(wǎng)絡(luò)上之前必須經(jīng)過的秒數(shù)。該值必須是((健壯性變量)倍(查詢周期))加上(一個(gè)查詢響應(yīng)周期)。
8.5.其它的查詢存在周期
其它的查詢存在周期是在組播路由器決定網(wǎng)絡(luò)上不在有另一個(gè)應(yīng)該成為查詢者的組播路由器之前,所必須經(jīng)過的秒數(shù)。該變量必須為((健壯性變量)倍(查詢周期))加上(一個(gè)查詢響應(yīng)周期的一半)。
8.6.初始查詢周期   
開始查詢周期是在開始時(shí)由查詢者發(fā)送的一般查詢之間的間隔時(shí)間。默認(rèn)值為:1/4查詢周期。
8.7.初始查詢周期  
初始查詢周期是在初始化時(shí)發(fā)出的查詢數(shù)目,其中由初始查詢周期的長度進(jìn)行分隔。默認(rèn)值為:健壯性變量。
8.8.最后的成員查詢周期
最后的成員查詢周期是響應(yīng)組消息所發(fā)送的特定組 查詢的最大響應(yīng)時(shí)間,并且也是特定組查詢消息之間的時(shí)間總數(shù)。默認(rèn)值為:10(1秒)。
該值可以調(diào)整為適合于該網(wǎng)絡(luò)的"離開延時(shí)"。
一個(gè)降低的數(shù)值會(huì)導(dǎo)時(shí)間的降低,以檢測組中最后一個(gè)成員的丟失。
8.9.最后成員計(jì)數(shù)  
最后成員計(jì)數(shù)是在路由器確定已沒有本地成員之前,發(fā)出的特定組成員查詢的數(shù)目。認(rèn)值為:健壯性變量。
8.10.非請(qǐng)求報(bào)告周期 
非請(qǐng)求報(bào)告周期是在 一個(gè)組中主機(jī)的初始化成員報(bào)告消息接收之間的時(shí)間。默認(rèn)值為:10秒。
8.11.版本1路由器存在超時(shí)
版本1路由器存在超時(shí)是在聽到了版本1的查詢之后,它發(fā)出IGMPv2消息之前,所要等的時(shí)間。其默認(rèn)值為?:400秒。
9.消息目的地
該消息在文檔的幾乎任何地方 都有提供,但在此仍遵照慣列在下面列出。
消息類型    目的組          
-----------------------------
GeneralQueryALL-SYSTEMS(224.0.0.1)
Group-SpecificQueryThegroupbeingqueried
MembershipReportThegroupbeingreported
LeaveMessageALL-ROUTERS(224.0.0.2)
注重:在老的IGMPv2版本中(例如,非標(biāo)準(zhǔn)的且現(xiàn)在淘汰了的),主機(jī)發(fā)出了離開消息給就要離開的組。路由器應(yīng)該接受發(fā)布給正有成員離開的組的消息,以便對(duì)這些主機(jī)提供向后的兼容性。在所有的情況下,主機(jī)必須向所有路由器地址發(fā)布以適合該規(guī)范。
10.安全考慮
我們考慮每個(gè)類型消息的分枝 
  查詢消息:
來自擁有比當(dāng)前查詢者更低的IP值主機(jī)的一個(gè)偽造的查詢消息會(huì)導(dǎo)致查詢者方面的職權(quán)歸偽造者所有。假如該偽造者隨之不再發(fā)送查詢消息,其它的路由上的其它的查詢者生存計(jì)時(shí)器將會(huì)超時(shí)且有一個(gè)重新作為查詢者。在這段時(shí)間中,假如仿造者忽略離開消息,流量,會(huì)散布到?jīng)]有成員的組內(nèi)直到[組成員周期]。
一個(gè)仿造的消息發(fā)到了一個(gè)有成員存在的組會(huì)導(dǎo)致該組內(nèi)的主機(jī)報(bào)告的他們的成員關(guān)系。這導(dǎo)致了LAN中的流量略為增多,但沒導(dǎo)致協(xié)議方面的問題。
報(bào)告消息:
一個(gè)仿造的消息可以導(dǎo)致組播路由器認(rèn)為組中的成員都在子網(wǎng)上,而實(shí)際上卻不是。來自于本地的子網(wǎng)的一個(gè)仿造的消息是沒有意義的,因?yàn)榧尤胍粋€(gè)主機(jī)所在的組通常是沒有特權(quán)的操作,所以一個(gè)本地的用戶可以簡單地得到同樣的結(jié)果而不需要仿造消息。一個(gè)從外部來的仿造的消息則更討厭了,有兩個(gè)方法可以防御仿造的消息。
-忽略該報(bào)告,假如你不能認(rèn)出一個(gè)屬于該接口的子網(wǎng)上的包中的源地址,在該接口上收到了該包。這種解決方案意味著由移動(dòng)主機(jī)發(fā)出的報(bào)告而不是在本地子網(wǎng)上發(fā)出的將會(huì)被忽略。
-忽略沒有路由警告選項(xiàng)[RFC2113]的報(bào)告消息,且請(qǐng)求路由器不轉(zhuǎn)發(fā)報(bào)告消息。(該請(qǐng)求不是在轉(zhuǎn)發(fā)路徑上一般來說經(jīng)過了過濾的請(qǐng)求,因?yàn)檫@些包已經(jīng)在其中包括了路由警告選項(xiàng)[RFC2113])。該解決方案破壞了和早期版本實(shí)現(xiàn)的向后的兼容性,早期的版本不要路由警告選項(xiàng)[RFC2113]。
一個(gè)偽造版本1報(bào)告消息可以針對(duì)一個(gè)選定的組把一個(gè)路由器置為"版本1成員存在"狀態(tài),這意味著該路由器會(huì)忽略離開消息。這能導(dǎo)致流量遍布那些沒有成員的整個(gè)組內(nèi)并且持續(xù)[GroupMembershipInterval]。有兩個(gè)方法可以防御仿造的版本1報(bào)告消息:
-為了來自外部的源端版本1報(bào)告,忽略該報(bào)告假如你不能確定包的源地址是屬于收到該包的接口上的子網(wǎng)。該解決方案意味著由移動(dòng)主機(jī)(不在本地網(wǎng)上)發(fā)出的版本1報(bào)告將會(huì)被忽略。
-提供帶有配置開關(guān)的路由器以完全忽略版本1消息。此方法會(huì)使得不能自動(dòng)的和版本1主機(jī)進(jìn)行兼容,因此應(yīng)該僅僅用于那些對(duì)"快速離開"要求嚴(yán)格的地方。該解決方案很好地防止了來自本地子網(wǎng)的偽造的版本1消息。
離開消息:
一個(gè)偽造的離開消息導(dǎo)致查詢者發(fā)出一個(gè)特定組查詢來查詢?cè)摻M。這會(huì)導(dǎo)致在每一個(gè)路由器上和組中的每一個(gè)成員上過多的處理,但是不會(huì)導(dǎo)致預(yù)期流量的減少。這兒有兩個(gè)方法可以防御來自外部的偽離開消息:
-忽略該離開消息,假如你不能確定包的源地址是屬于收到該包的接口上的子網(wǎng)。該解決方案意味著由移動(dòng)主機(jī)(不在本地網(wǎng)上)發(fā)出的離開消息將會(huì)被忽略。
-忽略沒有路由器警告選項(xiàng)[RFC2113]的離開消息,且要求路由器不再轉(zhuǎn)發(fā)離開消息。(該請(qǐng)求不是在轉(zhuǎn)發(fā)路徑上通常化過濾后的請(qǐng)求,因?yàn)樵摪呀?jīng)包括了路由器警告選項(xiàng))。該解決方案一樣破壞了和早期的在該規(guī)范方面沒有路由器警告選項(xiàng)的兼容性。
11.致謝
IGMPv2由RosenSharma和SteveDeering設(shè)計(jì)。
12.參考
RFC2119Bradner,S.,"Key
WordsforuseinRFCstoIndicate
RequirementLevels",BCP14,RFC2119,March1997.

RFC2113Katz,D.,"IPRouterAlertOption,"RFC2113,
February1997.

RFC1112Deering,S.,"HostExtensionsforIPMulticasting",
STD5,RFC1112,August1989.

13.附錄I-基于IGMPv1的改變
IGMPv1"Version"and"Type"域被整合為一個(gè)"Type"域。
一個(gè)新的IGMP類型設(shè)為版本2的成員報(bào)告消息,因此路由器可以在IGMPv1和IGMPv2主機(jī)的報(bào)告中分辨其不同。
一個(gè)新的IGMP類型特為IGMPv2離開組消息創(chuàng)建。
改變了成員查詢消息,從而以前沒有利用的域飲食了一個(gè)新的數(shù)值,為最大的響應(yīng)時(shí)間。
IGMPv2spec現(xiàn)在規(guī)定了一個(gè)查詢者選舉機(jī)制。在IGMPv1中,查詢者選舉機(jī)制和組播路收協(xié)議沒有什么關(guān)系,而且不同的協(xié)議使用不同的機(jī)制。這會(huì)導(dǎo)致每一個(gè)網(wǎng)絡(luò)中不止一個(gè)查詢者,因此在IGMPv2中查詢者選舉機(jī)制已標(biāo)準(zhǔn)化了。然而,這意味著必須小心一個(gè)IGMPv2路由器試圖和一個(gè)使用不同的查詢者選舉機(jī)制的IGMPv1路由器一起退出的情況。尤其是,意味著當(dāng)發(fā)生了這樣的配置時(shí),IGMPv2路由器必須能夠在特定的網(wǎng)絡(luò)上做為一個(gè)IGMPv1路由器。該反應(yīng)包括如下:

-在所有的查詢中設(shè)置最大的響應(yīng)間為0。
-忽略離開組消息。
IGMPv2spec放松了對(duì)成員查詢和成員報(bào)告的有效性檢查。當(dāng)對(duì)其中的某個(gè)實(shí)現(xiàn)部分升級(jí)時(shí),要確保移除不再屬于的一些檢測機(jī)制。
IGMPv2spec需要在所有的包中有該備忘錄中所說的IP路由器警告選項(xiàng)[RFC2113]。
14.作者地址
WilliamC.Fenner
XeroxPARC
3333CoyoteHillRoad
PaloAlto,CA94304
Phone:+16508124816
EMail:fenner@parc.xerox.com
15.版權(quán)聲明
版權(quán)(C)屬于TheInternetSociety(1997).所有版權(quán)保留。

該文檔及其譯本可以復(fù)制和傳閱,可以進(jìn)一步地對(duì)其注釋或者對(duì)其部分或整體地進(jìn)行實(shí)現(xiàn)、拷貝、出版、發(fā)行,而無任何方面的限制,以上版權(quán)注釋的聲明以及圖列都包含在所有的拷貝中和對(duì)其的擴(kuò)展中。然而,該文檔本身不能被隨意改動(dòng)的,列如移走版權(quán)的注釋或者是InternetSociety的引用,或者是其它的Internet組織,除非是出于發(fā)展Internet標(biāo)準(zhǔn)的目的需要,而這對(duì)于Internet標(biāo)準(zhǔn)中規(guī)定版權(quán)的程序是必須遵守的。或是按要求將其從英語翻譯到其它的語言。
以上該受限的許可是永久的且不會(huì)被廢棄或分配。在此所說的該文檔和包含的信息是基于一個(gè)"ASIS"的基礎(chǔ)和INTERNETSOCIETY以及INTERNET工程任務(wù)組織的全部授權(quán),表達(dá)或者是其引申意義,包含了沒有受限的一些授權(quán),因此對(duì)于某一特定的目的來說,該信息的使用不會(huì)侵犯銷售產(chǎn)品中所授的權(quán)利和引申的權(quán)利。




發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澳门| 林州市| 内江市| 灵山县| 都匀市| 喀喇沁旗| 乐亭县| 杨浦区| 青铜峡市| 正蓝旗| 隆安县| 密山市| 项城市| 上高县| 北流市| 东源县| 龙里县| 泽州县| 内江市| 元江| 乐至县| 绥滨县| 揭阳市| 聂荣县| 涞源县| 阜宁县| 平潭县| 百色市| 禹州市| 洪雅县| 获嘉县| 宝应县| 南华县| 东源县| 武安市| 庆元县| 泰安市| 信丰县| 罗源县| 广宗县| 车致|