正文之前
所謂的沉迷美劇,我來揭秘一下到底是哪一個(gè)美劇?!短┨埂穨

正文
Multicasting-組播
- IP組播(IP multicast)又稱為IP多播,特點(diǎn):
- IP組播是介于單播和廣播之間的一種分組傳送形式,它既不指定明確的接收者, 也不是將數(shù)據(jù)分發(fā)給網(wǎng)絡(luò)上的所有主機(jī)。
- 發(fā)送者不關(guān)心接收者所處的位置,只要將數(shù)據(jù)發(fā)送到約定的目的地址,剩下的工 作就交給網(wǎng)絡(luò)去完成。
- 這樣做的好處在于,發(fā)送者只產(chǎn)生一份數(shù)據(jù),而不用為每個(gè)接收者分別復(fù)制一份 ,而且發(fā)送者不必維護(hù)接收者的信息。
- 網(wǎng)絡(luò)中的路由器設(shè)備必須收集接收者的信息,并按照正確的路徑實(shí)現(xiàn)組播報(bào)文的 轉(zhuǎn)發(fā)和復(fù)制。
-
Multicast
- 在 IP 網(wǎng)上一對(duì)多的傳輸
- 支持視頻會(huì)議,
- e-learning, 培訓(xùn)等
-
組播的三個(gè)組成部分
- 1.組播地址(能被組播識(shí)別的地址集)
- 2.組成員機(jī)制(主機(jī)加入和退出組的機(jī)制)
- 3.組播路由協(xié)議(路由器有效傳送組播到各個(gè)網(wǎng)絡(luò)的組成員,且不會(huì)過度消耗網(wǎng)絡(luò)資源的路由協(xié)議)
- 從數(shù)據(jù)格式來看,組播與單播使用共同的IP報(bào)文結(jié)構(gòu)和上層封裝,只是目的 地址使用一段特殊的地址空間。這段地址在IPv4中被稱為D類地址空間: 224.0.0.0-239.255.255.255。
-
這段地址雖然看上去是連續(xù)地址,但不能聚合為網(wǎng)段地址,而是每個(gè)IP獨(dú)立 分配和使用。
- 特殊的組播地址
- 224.0.0.1 所有組播主機(jī)和路由器
- 224.0.0.2 所有組播路由器
- 224.0.0.4 DRMRP 路由器
- 224.0.0.5 所有 OSPF 的路由器
- 224.0.0.6 OSPF 指派路由器
- 224.0.0.9 RPIv2 路由器
- 224.0.0.10 EIGRP 路由器
- 224.0.0.13 PIM 路由器
- 224.0.0.22 IGMPv3
- 224.0.0.25 RGMP
- 224.0.1.1 NTP 網(wǎng)絡(luò)時(shí)間協(xié)議
組成員機(jī)制
要將組播數(shù)據(jù)準(zhǔn)確發(fā)送給組成員,必須先確定哪些網(wǎng)絡(luò)的哪些主機(jī)是組成員,只有先確定了成員的位置,才能正確轉(zhuǎn)發(fā)組播。
當(dāng)組成員不再需要接收組播的時(shí)候,就應(yīng)該停止向成員發(fā)送組播,要確 定組成員不再需要接收組播,就必須在成員退出時(shí)明確通告發(fā)送者。
-
要確定組成員,有兩種方式:查詢和報(bào)告
- 查詢,就是一臺(tái)路由器向網(wǎng)絡(luò)中發(fā)出查詢消息,查詢是否要主機(jī)要加入組 ,如果有主機(jī)應(yīng)答,那么路由器就可以請(qǐng)求上游路由器把組播流量前轉(zhuǎn)到這個(gè)子網(wǎng)中,如果沒有主機(jī)應(yīng)答,則請(qǐng)求上游路由器停止向其前轉(zhuǎn)組播流量。
- 報(bào)告,主機(jī)也可以不必等待路由器的查詢,可以主動(dòng)向路由器請(qǐng)求加入某個(gè)組,退出時(shí)也要向路由器發(fā)送退出消息,讓路由器停止向其轉(zhuǎn)發(fā)組播流量。
-
<u>IGMP (Internet Group Management Protocol)因特網(wǎng)組管理協(xié)議, IGMP運(yùn)行在路由器和主機(jī)之間</u>
- IGMP實(shí)現(xiàn)的功能是雙向的:一方面,主機(jī)通過IGMP協(xié)議通知本地路由器希望加入并接收某個(gè)特定組播組的信息;另一方面,路由器通過IGMP協(xié)議周期性地查詢局域網(wǎng)內(nèi)某個(gè)已知組 的成員是否處于活動(dòng)狀態(tài)(即該網(wǎng)段是否仍有屬于某個(gè)組播組的成員),實(shí)現(xiàn)對(duì)所連網(wǎng)絡(luò) 組成員關(guān)系的收集與維護(hù)。
- 通過上述IGMP機(jī)制,在組播路由器里建立起一張表,其中包含路由器的各個(gè)接口以及在接 口所對(duì)應(yīng)的子網(wǎng)上都有哪些組的成員。當(dāng)路由器接收到某個(gè)組的數(shù)據(jù)報(bào)文后,只向那些有 該組成員的接口上轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文。
- 至于數(shù)據(jù)報(bào)文在路由器之間如何轉(zhuǎn)發(fā)則由組播路由協(xié)議決定,IGMP協(xié)議并不負(fù)責(zé)。
當(dāng)組播發(fā)送者和組成員在不同網(wǎng)絡(luò)時(shí),需要路由器為組播數(shù)據(jù)提供轉(zhuǎn)發(fā) ,那么路由器就必須確認(rèn)自己直連的網(wǎng)絡(luò)中是否存在組成員,可以使用 查詢和報(bào)告來發(fā)現(xiàn)組成員,IGMP用來完成這樣的工作。
- 加入/離開組播過程:
- 加入過程: 當(dāng)主機(jī)加入一個(gè)組播組時(shí),不是等待路由器發(fā)出成員查詢報(bào)文時(shí)再響應(yīng) 加入,而是立即主動(dòng)地向一個(gè)該組播地址發(fā)出一個(gè)成員報(bào)告(類型為0x2)表示加入 ,這樣在該組內(nèi)沒有其它組成員的情況下縮短了主機(jī)加入該組播組的延遲。

## 組播路由協(xié)議
組播協(xié)議總體結(jié)構(gòu):
- 路由器、主機(jī)之間:IGMP
- 路由器、路由器之間:PIM
- 路由器、交換機(jī)之間:CGMP

-
PIM協(xié)議
如果要讓路由器也能像轉(zhuǎn)發(fā)單播數(shù)據(jù)一樣,將組播根據(jù)路由表來精確地轉(zhuǎn)發(fā)到目的地,那就需要讓路由器擁有像單播路由表一樣的組播路由表。
要讓路由器生成一張功能完全的組播路由表,就需要在路由器之間運(yùn)行一種協(xié)議,這種協(xié)議可以讓組播源和目的之間的路由表生成單播表一樣地生成組播表,最后路由器根據(jù)這張組播路由表來完成組播的轉(zhuǎn)發(fā)。
這個(gè)協(xié)議就是PIM(Protocol Independent Multicast)。
-
PIM基本概念:組播樹
- 組播發(fā)送者到接收者之間的轉(zhuǎn)發(fā)線路,被稱為組播轉(zhuǎn)發(fā)樹。
- 組播發(fā)送者就好比是組播樹的樹根,組播總是從根發(fā)向接收者。從發(fā)送者到接收者之間的路由器,都是在組播樹上的,因?yàn)檫@些路由器在中間提供組播轉(zhuǎn)發(fā)。
- 要完成從發(fā)送者到接收者之間的組播轉(zhuǎn)發(fā),組播樹上的路由器都應(yīng)該記 住組播的出口,每臺(tái)中間路由器都記住出口之后,最終便形成了組播樹,而要記住組播的出口信息,這就是組播路由表的工作
-
PIM基本概念:組播反向路徑轉(zhuǎn)發(fā)
- 因?yàn)榻M播經(jīng)常會(huì)有多個(gè)接收者分布在不同的網(wǎng)絡(luò),所以當(dāng)路由器在轉(zhuǎn)發(fā) 組播時(shí),也通常需要將同一份數(shù)據(jù)從多個(gè)接口發(fā)出去
- 由此可以看出,轉(zhuǎn)發(fā)組播的路由器,必須擁有發(fā)現(xiàn)環(huán)路、避免環(huán)路的能 力。
- 所有的組播路由器就必須只將數(shù)據(jù)往接收者的方向轉(zhuǎn)發(fā),而絕不能往發(fā) 送者的方向轉(zhuǎn)發(fā)
- 向發(fā)送者轉(zhuǎn)發(fā)稱為RPF(Reverse Path Forwarding),組播路由器在收 到組播數(shù)據(jù)后,都要對(duì)數(shù)據(jù)進(jìn)行RPF檢測(cè),組播路由表記住接收者的接 口,就能正常將數(shù)據(jù)發(fā)給組成員,而記住了發(fā)送者的接口后,就可以避 免路由器將數(shù)據(jù)往回發(fā)而產(chǎn)生路由環(huán)路了。
- 組播路由器上朝發(fā)送者方向的接口被稱為RPF接口,只有從RPF接口發(fā)來的數(shù)據(jù)才能被轉(zhuǎn)發(fā),從其它接口過來的數(shù)據(jù)被認(rèn)為是無效的。
- PIM基本概念:PIM-Dense Mode(密集模式 )和PIM-Sparse Mode(稀疏模式)
- PIM要為路由器學(xué)習(xí)組播路由表從而建 立組播樹,有兩種不同的方式,這兩種 不同方式在PIM中分兩種模式來運(yùn)行, 為PIM-DM(密集模式)和PIM-SM(稀疏 模式)
- PIM-DM模式中,組播源會(huì)向所有PIM鄰 居發(fā)出查詢,查詢數(shù)據(jù)包中包含組的地 址,下一跳PIM鄰居還會(huì)繼續(xù)向它的鄰 居發(fā)出查詢數(shù)據(jù)包,這些查詢數(shù)據(jù)包會(huì) 在所有PIM鄰居之間傳遞。
- 如果查詢數(shù)據(jù)包發(fā)向一個(gè)連接了組成員 的網(wǎng)絡(luò),這時(shí)路由器收到組成員的報(bào)告 之后,就會(huì)向自己上一跳鄰居(RPF接 口方向的鄰居)發(fā)送加入組的消息,以 宣布自己要接收組播,從而將組播轉(zhuǎn)發(fā) 到組成員
-
PIM基本概念:PIM-DM(密集模式)
如果網(wǎng)絡(luò)中有一個(gè)組,地址為:224.1.1.1,發(fā)送者為100.1.1.1,那么就 應(yīng)該記錄路由為(100.1.1.1,224.1.1.1),還要記錄的就是組播的出口 ,這些信息構(gòu)成組播路由表。
路由器收到的224.1.1.1組播就會(huì)指定出口發(fā)出去。PIM-DM模式中這樣記 錄組播路由的方式被稱為(S,G),其中S就是組播源地址,G就是組地址, 而出口則會(huì)被標(biāo)為forwarding。
如果只有一個(gè)組224.1.1.1,而發(fā)送者除了100.1.1.1之外,還有 100.1.1.2和100.1.1.3,那么依照(S,G)的記錄方式,就需要同時(shí)記錄 (100.1.1.1,224.1.1.1),(100.1.1.2,224.1.1.1),(100.1.1.3 ,224.1.1.1),也就是說(S,G)的路由記錄方式,會(huì)因?yàn)榻M源地址的增加 而增加記錄條目。
對(duì)于不需要接收組播的PIM接口,PIM-DM模式照樣會(huì)將其記錄在路由表中 ,但被標(biāo)為pruning。
在PIM-DM模式下,組播發(fā)送源將數(shù)據(jù)發(fā)給組播路由器,然后路由器依照組 播路由表朝著接收者的方向轉(zhuǎn)發(fā),這樣的路徑,是依靠單播路由表計(jì)算出 來的最短路徑,也就是說從發(fā)送者到接收者之間的路徑,總是最短的,所 以PIM-DM模式建立起來的組播樹,如(S,G)記錄的組播樹被稱為最短路 徑樹shortest-path tree (SPT),因?yàn)镾PT中記錄個(gè)每個(gè)組播發(fā)送者的源 地址,故又被稱為源樹。
-
PIM基本概念:PIM-SM(稀疏模式)
- PIM-SM模式的工作過程和PIM-DM模式是不同的,在建立組播樹時(shí),PIM-SM 并不會(huì)讓路由器發(fā)送查詢數(shù)據(jù)包去查詢組成員,而組成員的發(fā)現(xiàn)是靠組成 員自己主動(dòng)向路由器發(fā)送報(bào)告。
- 當(dāng)一臺(tái)路由器從接口上收到組成員的報(bào)告之后,就會(huì)向自己的上一跳鄰居 發(fā)送加入消息,以通告自己需要接收組播,如果上一跳鄰居還不是組播發(fā) 送者,那么上一跳鄰居會(huì)繼續(xù)再向上一跳鄰居發(fā)送加入消息,直到組播源 收到加入消息為止。
- 通過這樣的方式,就可以建立組播源到組成員之間的組播樹。
- PIM-SM模式和PIM-DM模式除了在發(fā)現(xiàn)組成員的方式上不同之外,記錄路由 表的方式也不一樣
- 例如網(wǎng)絡(luò)中有一個(gè)組,地址為:224.1.1.1,發(fā)送者為100.1.1.1,PIM-SM 模式路由器記錄為(,224.1.1.1),可以看出,PIM-SM模式并不關(guān)心組 播的源地址,而統(tǒng)統(tǒng)將源地址使用星號(hào)來表示
- 這樣一來,PIM-SM為一個(gè)組只記錄一個(gè)條目,而不管這個(gè)組有多少個(gè)發(fā)送 者。這樣的記錄方式稱為(,G) ,其中就是組播源地址,G就是組地址 。如果有10個(gè)組,每個(gè)組有5個(gè)發(fā)送者,使用(S,G)的記錄方式,需要 記錄10×5=50條,而使用(*,G)的記錄方式,則只需要10條,所以使用 PIM-SM模式,可以大大縮減組播路由表的空間,從而大大節(jié)省系統(tǒng)資源。
- PIM-SM RP(Rendezvous Point)
在PIM-SM模式中,由于記錄組播信息 采用(*,G)的方式,而并不關(guān)心組播 源地址,因此造成路由器不知道組播 發(fā)送者的IP地址是什么,也就無法完 成RPF反向路徑檢測(cè)。
在這種情況下,PIM-SM在網(wǎng)絡(luò)中選出 一個(gè)組播會(huì)聚點(diǎn),即Rendezvous Point (RP)
RP就是組播網(wǎng)絡(luò)的核心,發(fā)送者統(tǒng)一 將組播數(shù)據(jù)發(fā)送到RP,然后RP再將數(shù) 據(jù)發(fā)到接收者,也就是說接收者收到 的數(shù)據(jù),都是由RP轉(zhuǎn)發(fā)過來的。
路由器也就認(rèn)為RP的地址,就是組播 源的IP地址。
因?yàn)镽P在PIM-SM中被當(dāng)作核心,而(* ,G)的記錄方式中并不知道組播源的 地址,大家都會(huì)認(rèn)為RP就是組播源
最后PIM-SM中的組播樹,即(*,G)形 式的樹被稱為共享樹(RPT)。

-
PIM DR(在PIM-DM和PIM-SM模式下都會(huì)選舉)
- 因?yàn)镮GMP V1不選舉IGMP查詢器,如果有多臺(tái)路由器連接同一 個(gè)多路訪問網(wǎng)段(以太網(wǎng))時(shí),就必須選舉PIM Designated Router(DR)來避免重復(fù)查詢
- 這個(gè)DR的選舉,是由PIM協(xié)議進(jìn)行的,選擇IP地址高的為DR。 PIM DR路由器在IGMP v1中充當(dāng)IGMP查詢器的功能,來向主機(jī) 發(fā)送IGMP查詢
- 在PIM-SM中,組播源沒有機(jī)制用來宣 告自己的存在,又因?yàn)镻IM路由器都認(rèn) 為RP才是組播源,而當(dāng)直接的組播源 向RP發(fā)送組播時(shí),會(huì)導(dǎo)致某些路由器 RPF檢測(cè)失敗。
- 例如圖中R2只會(huì)接收從接口F0/1發(fā)進(jìn) 來的組播,從其它接口發(fā)進(jìn)來的,都 會(huì)被認(rèn)為是環(huán)路而被丟棄。因此在真 正的源12.1.1.1將組播從R2的F0/0發(fā) 進(jìn)來時(shí),R2會(huì)因?yàn)镽PF檢測(cè)失敗,從而 丟棄所有的組播數(shù)據(jù),這樣一來,組 播也就無法通信了。
- 因此在PIM網(wǎng)絡(luò)中,真正的源需要向RP 發(fā)送注冊(cè)消息,以宣告自己的存在, 而發(fā)送注冊(cè)消息在多路訪問的網(wǎng)絡(luò)中 則是由DR來代為完成的。
- 真正的源向RP發(fā)出第一個(gè)組播包時(shí), DR將此包封裝在單播中發(fā)向RP,這稱 為注冊(cè),發(fā)送的注冊(cè)消息會(huì)從DR到RP 之間建立一條源樹,也就是(S,G) 的記錄,這樣,在源到RP之間創(chuàng)建的 源樹就可以幫助避免RPF檢測(cè)失敗
- 當(dāng)RP和真正的源之間創(chuàng)建(S,G)條 目之后,就會(huì)通知DR停止以單播發(fā)送 ,從而轉(zhuǎn)回發(fā)送真正的組播。
- 誤認(rèn)為RP是源而導(dǎo)致RPF檢測(cè)失敗的情 況,只有在RP到源這段上游網(wǎng)絡(luò)中的 路由器才會(huì)存在,而RP到組成員的這 段網(wǎng)絡(luò)中是不會(huì)出現(xiàn)這種情況的。
- 選擇DR的數(shù)據(jù)包為30秒一次,105秒保 持時(shí)間,如果過了保持時(shí)間沒有收到 DR的數(shù)據(jù)包,則會(huì)重新選舉IP地址最 高的為DR
-
PIM-SM 前轉(zhuǎn)器(Forwarder)
- 選PIM前轉(zhuǎn)器的規(guī)則是,比較哪臺(tái)路由 器的路由表中,到組播源的路由的AD( Administrative Distance)值最小, 如果AD值相同(如使用同一種路由協(xié)議 ),再比較誰到源的metric值最小,如 果metric值還相同,則選擇IP地址大的 。
- 在圖中,如果R3和R4到組播源R1的路由 條目中是使用同一個(gè)路由協(xié)議學(xué)到的, 則比較metric值,如果metric值相同, 則比較R3和R4的IP地址,這個(gè)IP地址是 同網(wǎng)段相互建PIM鄰居所使用的IP地址 ,因?yàn)?4.1.1.4比34.1.1.3要大,所以 前轉(zhuǎn)器為R4,因此R2會(huì)選擇從R4到達(dá)組 成員,并且把到R3的出口剪除。

正文之后
這后面幾節(jié)確實(shí)沒前面做的用心了。。。沒轍啊,當(dāng)時(shí)都要考試了,怎么可能一點(diǎn)點(diǎn)的把后面的也做出來啊。。昨晚我都沒時(shí)間刷題了。。
