?? rfc1112.txt
字號(hào):
的任何地方。
6.3本地網(wǎng)絡(luò)服務(wù)接口的擴(kuò)展
為了支持多播IP數(shù)據(jù)報(bào)的發(fā)送,對(duì)本地網(wǎng)絡(luò)服務(wù)接口沒(méi)有任何改變。當(dāng)IP模塊調(diào)用現(xiàn)
存的“send local"操作時(shí),只不過(guò)指定一個(gè)IP主機(jī)組目的地址,而不是單個(gè)IP目的地址。
6.4以太網(wǎng)本地網(wǎng)絡(luò)模塊的擴(kuò)展
通過(guò)允許多播地址出現(xiàn)在以太網(wǎng)分組中的目的地址字段,以太網(wǎng)就能支持本地多播分組
的發(fā)送。為了支持多播IP數(shù)據(jù)報(bào)的發(fā)送,所需的是一個(gè)將IP主機(jī)組地址映射到以太網(wǎng)多播
地址的過(guò)程。
IP主機(jī)組地址映射到以太網(wǎng)多播地址,是通過(guò)將IP地址的低23位放在以太網(wǎng)多播地址
01-00-5E-00-00-00(十六進(jìn)制)的低23位上。因?yàn)樵贗P主機(jī)組地址上有28個(gè)有意義的位,所
以多個(gè)主機(jī)組地址可以映射到相同的以太網(wǎng)多播地址上。
6.5 非以太網(wǎng)的本地網(wǎng)絡(luò)模塊的擴(kuò)展
其它的那些本身就支持多播的網(wǎng)絡(luò),例如符合IEEE 802.2標(biāo)準(zhǔn)的環(huán)和總線網(wǎng)絡(luò)。它們
可以像以太網(wǎng)那樣達(dá)到發(fā)送多播IP數(shù)據(jù)報(bào)的目的。對(duì)于那些支持廣播而不支持多播的網(wǎng)絡(luò),
例如實(shí)驗(yàn)性以太網(wǎng),所有的IP主機(jī)組地址可以被映射為單個(gè)本地廣播地址(以增加所有本
地主機(jī)費(fèi)用為代價(jià))。對(duì)于連接兩個(gè)主機(jī)(或者一個(gè)主機(jī),一個(gè)多播路由器)的一個(gè)的點(diǎn)對(duì)
點(diǎn)連接,多播應(yīng)該完全像單播那樣傳遞。對(duì)于像ARPANET這樣的存儲(chǔ)轉(zhuǎn)發(fā)網(wǎng)絡(luò),或公共的
X.25網(wǎng)絡(luò),所有IP主機(jī)組地址必須映射為IP多播路由器的眾所周知的本地地址;在這些網(wǎng)
絡(luò)上路由器負(fù)責(zé)完成在一個(gè)網(wǎng)絡(luò)內(nèi)或所有網(wǎng)絡(luò)中的多播傳遞。
7. 接收多播IP數(shù)據(jù)報(bào)
7.1 對(duì)IP服務(wù)接口的擴(kuò)展
高層協(xié)議使用與接收標(biāo)準(zhǔn)的單播數(shù)據(jù)報(bào)一樣的“Receive IP”操作,接收到來(lái)的多播IP
數(shù)據(jù)報(bào)。目的高層協(xié)議的選擇由IP首部的協(xié)議字段決定,而與目的IP地址無(wú)關(guān)。然而,在
屬于一個(gè)特定組的任意數(shù)據(jù)報(bào)被接收之前,高層協(xié)議必須請(qǐng)求IP模塊加入該組。因此,必
須擴(kuò)展IP服務(wù)接口,提供以下兩個(gè)操作:
JoinHostGroup(group-address, interface)
LeaveHostGroup(group-address, interface)
JoinHostGroup操作要求本主機(jī)在給定的本地網(wǎng)絡(luò)接口上成為以“group-address”標(biāo)記的
主機(jī)組中的成員。LeaveGroup操作要求本主機(jī)在給定的本地網(wǎng)絡(luò)接口上離開(kāi)以
“group-address”標(biāo)記的主機(jī)組。如果主機(jī)只有一個(gè)接口,則interface參數(shù)可以省略。對(duì)于
屬于多個(gè)網(wǎng)絡(luò)的主機(jī),高層協(xié)議可以不指明interface,這要求使用缺省的interface發(fā)送多播
數(shù)據(jù)報(bào)(參看6.1節(jié))。
允許在多個(gè)interface上加入一個(gè)相同的組,這種情況下可能會(huì)有重復(fù)的多播數(shù)據(jù)報(bào)被接
收;也允許多個(gè)高層協(xié)議要求加入同一個(gè)組。
這兩種操作都立即返回(即它們是非阻塞操作),表示成功或是失敗。每種操作都可能因
為無(wú)效的組地址或接口標(biāo)識(shí)符而出錯(cuò)。JoinHostGroup操作可能由于缺少本地資源而失敗。
LeaveHostGroup可能因?yàn)楸局鳈C(jī)不屬于在給定接口上的某一組而失敗。LeaveHostGroup如
果成功,組成員關(guān)系可能還存在,因?yàn)榭赡苡卸鄠€(gè)高層協(xié)議是同一個(gè)組的成員。
7.2 IP模塊的擴(kuò)展
為了能夠接收多播IP數(shù)據(jù)報(bào),必須擴(kuò)展IP模塊,維持一個(gè)與每個(gè)網(wǎng)絡(luò)接口相關(guān)的主機(jī)
組成員列表。在到來(lái)的數(shù)據(jù)報(bào)中,目的地屬于這些組地址中某一個(gè)的數(shù)據(jù)報(bào)的處理方式與目
的地屬于主機(jī)的單播地址中某一個(gè)數(shù)據(jù)報(bào)的處理方式相同。
如果主機(jī)接收到目的地址是組地址的數(shù)據(jù)報(bào),而該主機(jī)不屬于該組,則這個(gè)數(shù)據(jù)報(bào)將被
丟棄而不生成任何錯(cuò)誤或日志記錄。在有多個(gè)網(wǎng)絡(luò)接口的主機(jī)上,如果目的地屬于某一組的
數(shù)據(jù)報(bào)經(jīng)由一個(gè)接口到達(dá),而該主機(jī)只在另一個(gè)網(wǎng)絡(luò)接口上屬于這個(gè)組,則這個(gè)數(shù)據(jù)報(bào)將被
毫無(wú)聲息的丟棄。( 出現(xiàn)這種情況的唯一原因是本地網(wǎng)絡(luò)模塊的多播地址過(guò)濾功能不完
善。)
如果到來(lái)的數(shù)據(jù)報(bào)的IP生存時(shí)間(TTL)為1,則該數(shù)據(jù)報(bào)不會(huì)被拒收(即,如果到來(lái)
的數(shù)據(jù)報(bào)不會(huì)再被轉(zhuǎn)發(fā),則它的生存時(shí)間字段不會(huì)自動(dòng)減少)。如果到來(lái)的數(shù)據(jù)報(bào)的源地址
字段出現(xiàn)了IP主機(jī)組地址,則該數(shù)據(jù)報(bào)將被毫無(wú)聲息的丟棄。ICMP出錯(cuò)信息(目的主機(jī)
不可達(dá),超時(shí),參數(shù)問(wèn)題,源站被抑制,重定向)不會(huì)因?yàn)槟康牡貫镮P主機(jī)組的數(shù)據(jù)報(bào)而
產(chǎn)生。
主機(jī)組成員列表根據(jù)高層協(xié)議的JoinHostGroup和LeaveHostGroup操作要求而更新。每
個(gè)成員應(yīng)該有一個(gè)相應(yīng)的參照數(shù)或其它同樣的機(jī)制,來(lái)處理加入和離開(kāi)同一組的多個(gè)要求。
當(dāng)?shù)谝粋€(gè)要求加入和最后一個(gè)要求離開(kāi)在給定接口上的某個(gè)組時(shí),那個(gè)接口的網(wǎng)絡(luò)模塊就被
告知,去更新它的多播接收過(guò)濾器(參看7.3部分)。
IP模塊也必須擴(kuò)展,實(shí)現(xiàn)在附錄1中說(shuō)明的IGMP協(xié)議。IGMP是用來(lái)讓鄰近的多播路
由器獲知在一個(gè)特定的本地網(wǎng)絡(luò)中出現(xiàn)的主機(jī)組成員。為了支持IGMP,每個(gè)2級(jí)主機(jī)必須
在初始化時(shí)加入“所有主機(jī)”組(地址為224.0.0.1),而且只要主機(jī)是開(kāi)著的,它都要是這
個(gè)組的成員。
(地址是所有主機(jī)組的數(shù)據(jù)報(bào)會(huì)被多播路由器當(dāng)成一個(gè)特殊情況,不管它的生存時(shí)間是
多少,它不會(huì)被傳遞出單一的網(wǎng)絡(luò)。因此,所有主機(jī)地址不用于互聯(lián)網(wǎng)范圍上的廣播地址。
為了達(dá)到IGMP的目的,屬于所有主機(jī)組的這項(xiàng)要求僅僅在主機(jī)屬于至少一個(gè)其它組時(shí)才真
正是必須的。然而,要求主機(jī)在任何時(shí)候是一個(gè)所有主機(jī)組的成員的原因是(1)簡(jiǎn)單,(2)接
收不必要的IGMP請(qǐng)求的頻率應(yīng)足夠的低,以使開(kāi)銷(xiāo)可以忽略不計(jì)。(3)所有主機(jī)地址可以
用于其它面向路由選路的目的,例如通知網(wǎng)關(guān)的存在或解析本地地址)
7.3 對(duì)本地網(wǎng)絡(luò)服務(wù)接口的擴(kuò)展
把到來(lái)的本地網(wǎng)絡(luò)多播分組傳遞給IP模塊使用的方式與處理本地網(wǎng)絡(luò)單播分組時(shí)一
樣,都是使用“Receive Local”操作。為了允許IP模塊通知本地網(wǎng)絡(luò)模塊它要接收哪種多
播分組,必須擴(kuò)展本地網(wǎng)絡(luò)服務(wù)接口,以提供以下兩個(gè)新操作:
JoinLocalGroup(group-address)
LeaveLocalGroup(group-address)
“group-address”是IP主機(jī)組地址,JoinLocalGroup操作要求本地網(wǎng)絡(luò)模塊接收和向上傳遞
目的地為給定IP主機(jī)組地址的分組。LeaveLocalGroup操作要求本地網(wǎng)絡(luò)模塊停止向上遞交
目的地為給定IP主機(jī)組地址的分組。本地網(wǎng)絡(luò)模塊應(yīng)該能夠映射IP主機(jī)組地址到本地網(wǎng)絡(luò)
地址,
這是更新本地網(wǎng)絡(luò)模塊的多播接收過(guò)濾器所要求的。任何本地網(wǎng)絡(luò)模塊都可以忽略
LeaveLocalGroup操作的要求。如果它不能充分過(guò)濾到來(lái)的分組,也可以向上傳遞超出
JoinLocalGroup操作所要求的更多的多播地址的分組。
本地網(wǎng)絡(luò)模塊不會(huì)向上傳遞任何從該模塊出發(fā)的多播分組;多播回送是在IP層或更高
層處理。
7.4 對(duì)以太網(wǎng)本地網(wǎng)絡(luò)模塊的擴(kuò)展
為了支持多播IP數(shù)據(jù)報(bào)的接收,以太網(wǎng)模塊必須能接收地址是與主機(jī)的IP主機(jī)組地址
相關(guān)的以太網(wǎng)多播地址的分組。利用以太網(wǎng)硬件接口可能具有的地址過(guò)濾能力是非常可取
的,這樣主機(jī)只接收目的地指向它的那些分組。
不幸的是,許多當(dāng)前的以太網(wǎng)接口對(duì)硬件能識(shí)別的地址數(shù)目有很少的限制。而且,一個(gè)
具體的實(shí)現(xiàn)必須能偵聽(tīng)任意數(shù)目的以太網(wǎng)多播地址,這意味著當(dāng)?shù)刂窋?shù)目超過(guò)過(guò)濾器的限制
時(shí),“打開(kāi)”地址過(guò)濾器以接收所有的多播分組。
對(duì)于那些硬件地址過(guò)濾能力不強(qiáng)的接口,為了性能的原因,在以太網(wǎng)模塊的軟件中執(zhí)行
以太網(wǎng)地址過(guò)濾可能要好一些。然而,這并不是強(qiáng)制性的,因?yàn)镮P模塊基于IP目的地址執(zhí)
行它自己的過(guò)濾。
7.5 對(duì)以太網(wǎng)以外的本地網(wǎng)絡(luò)模塊的擴(kuò)展
像IEEE 802.2網(wǎng)絡(luò)這樣的其它多播網(wǎng)絡(luò),為了達(dá)到接收多播IP數(shù)據(jù)報(bào)的目的而進(jìn)行的
處理方式與以太網(wǎng)相同。對(duì)于純廣播網(wǎng)絡(luò),如實(shí)驗(yàn)性以太網(wǎng),所有到達(dá)的廣播分組能夠被接
收并傳遞給IP模塊以實(shí)現(xiàn)IP層過(guò)濾。在點(diǎn)對(duì)點(diǎn)或存儲(chǔ)轉(zhuǎn)發(fā)網(wǎng)絡(luò),多播IP數(shù)據(jù)報(bào)以本地網(wǎng)
絡(luò)單播的形式到達(dá),所以沒(méi)有必要修改本地網(wǎng)絡(luò)模塊。
附錄1 INTERNET組管理協(xié)議(IGMP)
Internet組管理協(xié)議(IGMP)用于IP主機(jī)向所有緊鄰的多播路由器報(bào)告它們的主機(jī)組
成員關(guān)系。IGMP是不對(duì)稱(chēng)的協(xié)議,將從主機(jī)的視角而不是從多播路由器的視角描述它。
(IGMP也可以在多播路由器之間對(duì)稱(chēng)或非對(duì)稱(chēng)的使用。這樣的用法這里沒(méi)有指定。)
像ICMP一樣,IGMP是IP的一個(gè)組成部分。要在所有符合IP多播規(guī)范的2級(jí)主機(jī)上
實(shí)現(xiàn)。IGMP報(bào)文封裝在IP數(shù)據(jù)報(bào)中,數(shù)據(jù)報(bào)的IP協(xié)議字段為2。所有與主機(jī)相關(guān)的IGMP
報(bào)文具有如下格式:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|版本 | 類(lèi)型 | 未用 | 校驗(yàn)和 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 組地址 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本
本備忘錄說(shuō)明IGMP版本1。版本0在RFC-988中說(shuō)明,它現(xiàn)在已經(jīng)廢棄。
類(lèi)型
有兩種與主機(jī)相關(guān)的IGMP報(bào)文:
1=主機(jī)成員請(qǐng)求
2=主機(jī)成員報(bào)告
未用
未用字段,在發(fā)送時(shí)為零,接收時(shí)被忽略。
組地址
主機(jī)成員請(qǐng)求報(bào)文在被發(fā)送時(shí)組地址字段為零,被接收時(shí)忽略該字段。
主機(jī)成員報(bào)告報(bào)文中,組地址字段為被報(bào)告組的IP主機(jī)組地址。
非正式的協(xié)議描述
多播路由器發(fā)送主機(jī)成員請(qǐng)求報(bào)文(在下文叫做請(qǐng)求),以發(fā)現(xiàn)哪些主機(jī)組在它們所屬
的本地網(wǎng)絡(luò)上有成員。請(qǐng)求的目的地址為所有主機(jī)組(224.0.0.1),攜帶的IP生存時(shí)間為1。
主機(jī)為了響應(yīng)一個(gè)請(qǐng)求,生成主機(jī)成員報(bào)告報(bào)文,報(bào)告它們?cè)诮拥秸?qǐng)求的網(wǎng)絡(luò)接口上
所屬的每個(gè)主機(jī)組。為了避免并發(fā)報(bào)告“爆炸”,減少被傳送的報(bào)告的總數(shù),使用了兩種技
術(shù):
1. 當(dāng)主機(jī)接收到一個(gè)請(qǐng)求,不是立即發(fā)送報(bào)告,而是為到達(dá)請(qǐng)求的網(wǎng)絡(luò)接口上每個(gè)組
成員啟動(dòng)一個(gè)報(bào)告延時(shí)定時(shí)器。每個(gè)定時(shí)器被設(shè)置為在0到D秒之間的一個(gè)不同的、隨機(jī)
選擇的值。當(dāng)一個(gè)定時(shí)器超時(shí),會(huì)為相應(yīng)的主機(jī)組產(chǎn)生一個(gè)報(bào)告。因此,報(bào)告的產(chǎn)生時(shí)間分
散在D秒的間隔內(nèi),而不是都立即產(chǎn)生。
2. 被發(fā)送的報(bào)告的IP目的地址等于它要報(bào)告的主機(jī)組的地址,它的IP生存時(shí)間為1,
所以在同一網(wǎng)絡(luò)上這一組的其它成員能偵聽(tīng)到該報(bào)告。如果主機(jī)聽(tīng)到在那個(gè)網(wǎng)絡(luò)上它所屬的
組的報(bào)告,則主機(jī)停止那個(gè)組的定時(shí)器,不再產(chǎn)生那個(gè)組的報(bào)告。因此,在通常情況下,僅
僅為出現(xiàn)在網(wǎng)絡(luò)上的每個(gè)組生成一個(gè)報(bào)告,這是由延遲定時(shí)器最先超時(shí)的成員主機(jī)生成的。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -