組播的相關(guān)概念
D類地址是用于組播,也就是以1110開頭,剩下28位用于鑒別組播地址(剩下的這28是個無結(jié)構(gòu)的地址), 以01005e開頭的MAC地址用于表示MAC的組播地址,剩下的23位用于標(biāo)識組播,IP組播地址對于MAC地址有一個映射關(guān)系,也就是IP組播的后23對應(yīng)Mac組播的后23位,這樣就有可能出現(xiàn)多個IP對應(yīng)一個MAC的現(xiàn)象,它們之間用Arp來解析。
如果一個局域網(wǎng)使用組播,那么所有的主機必須加入一個all-host組(組播地址為224.0.0.1),但是Host可以決定是否去接受組播。當(dāng)一個組播交通決定傳輸之前,router需要知道那個Host想接收組播,IGMPv1, IGMPv2用于發(fā)現(xiàn)是否有這個組播組的成員在它直連的子網(wǎng)里,IGMP用一個querying device去請求和報告Host加入和離開組播組,它有兩種message, 一個是query messages 用于組播路由器去發(fā)現(xiàn)Member, 還有一個是report message,它是由主機發(fā)送,報告那個主機想加入組播組,IGMP間斷的發(fā)送query message到224.0.0.1(用于標(biāo)識所有主機), 直連網(wǎng)段中的其中一臺Host發(fā)送report message來報告誰想接收組播,但是如果Host 想加入組播組,它可不必等待query message, Host 可以主動的發(fā)送一個report message到224.0.0.2(標(biāo)識組播組中的所有組播路由器)
IGMPv2 提供了leave meassage,主機主動發(fā)送這個離開信息到224.0.0.2,表明這臺主機想離開這個組播組,query router發(fā)送一個query message ( specific-group)的信息從那個接收離開組的端口,如有其它的主機還想加入這個組播組,則向這個query device發(fā)送一個specific-group 的report message, 如果在一定時間內(nèi)沒有主機反應(yīng)這個group-specific query message, 則表明沒有本地成員在這個組里面
在交換機轉(zhuǎn)發(fā)組播中,由于IP組播映射到一個Layer 2 multicast address, 所以組播必須發(fā)送到所有的交換機端口,當(dāng)一臺主機向組播路由器報告成員信息,組播由路由器發(fā)送到交換機,由于組播使用組播地址傳送流量,所以它不知道實際的目的mac地址,因而它將它發(fā)送到所有的交換機端口,可以使用劃分VLAN來解決這個問題,但是使用VLAN不能動態(tài)的添加和刪除成員,這樣,交換機必須處理每一個組播包,加大了處理延時,降低了交換機的性能,這樣就出現(xiàn)了一個router to switch的解決方法---CGMP, CGM允許交換機向組播路由器學(xué)習(xí)有關(guān)組成員的信息,在這個環(huán)境里,rotuer是一個CGMP服務(wù)器,switch是一個Client, 當(dāng)router 接收一個組播包,它立即創(chuàng)建一個CGMP包,這個包發(fā)送到一個well-know地址,所交換機都能收到這個包,然后交換機解釋這個包,創(chuàng)建一個forwarding table。
在每個物理段中,一個指明路由器被選擇,指明路由器構(gòu)造一個分布樹,連接一個組播組有所有的成員,以保證高效的傳輸。這個router可copy所有進入的包,然后把它發(fā)送到它的分支樹,因為組播組是動態(tài)的所以分布樹也必須是動態(tài)的升級,一個分支加入一個分布樹就像一個新的成員加入組播組,相反的說,如果這個分支沒有接收者,剛這個分支被刪除。
有兩種分布樹可以在組播路由中使用:1.源指定(source specific) 2.共享(shared), 指定源的方式針對于每個組播組的源 處理Spanning tree,例如,如果10個成員在10個分離的子網(wǎng),創(chuàng)建基于10個組播組的10個不同的路由樹被, 源指定使用從源到目的的最短路徑最小化了延時,source-based 的分布樹使用一個叫相反路徑轉(zhuǎn)發(fā)的機制(Reverse Path Forwarding RPF), 當(dāng)一個router接收一個帶源的組播包,它在它所有的端口轉(zhuǎn)發(fā)這個包,除了接收這個包的端口,然而,轉(zhuǎn)發(fā)只發(fā)生在提供最短路徑返回發(fā)送者的鏈路,如果這個包到達(dá)了一個不是最短的路徑上,則這個包被discard。
提供一個到組播指明路由器和源之間的鏈路叫作父鏈路,router的處出端口叫子鏈路。
在共享樹(shared-tree)的方式, 所有的包沿著分布樹發(fā)送到組播組,不考慮發(fā)送的源,這種方式削減了處理時間,但是導(dǎo)致了較大的端到端的延時
然而,不同于spanning-tree機制,不同的組播組定義了不同的分布樹,如果一個設(shè)備想接收數(shù)據(jù),它必須加入這個組的共享樹,組播路由協(xié)議通過檢測一個點播的路由可達(dá)來建交分布樹。
組播包使用IP Header的TTL域來限制它的可達(dá)范圍,每經(jīng)過一個路由器,TTL的值減1,如果TTL過期,則這個包被拋棄,Packet的TTL大于接口的TTL門限,則被轉(zhuǎn)發(fā),如果等于小于接口的門限則拋棄。
0 限制在同一個主機,從來不被發(fā)送到任何接口
1 限制在相同的子網(wǎng),從來不被router轉(zhuǎn)發(fā)
15限制在相同的site, 組織,或部門
63限制在相同的區(qū)域
127worldwide
191workwide, limited bandwidth
255unrestricted in scope ; global
IP組播路由協(xié)議用于發(fā)現(xiàn)組播組和建立每個組播組的分布樹
client to router : IGMP
Router to Switch: CGMP
Router to Router : DVMRP, PIM, MOSPF, CBT
組播路由協(xié)議有以下兩種方式: 密集方式路由(dense-mode routing)和稀疏方式路由(sparse-mode routing)
怎樣選用這兩種方式,取決于組播組的成員在整個網(wǎng)絡(luò)中的分布,如果網(wǎng)絡(luò)中幾乎所有的路由器都為每個組播組分發(fā)組播信息則使用Dense-mode, 為了維護分布樹,Dense-mode組播路由協(xié)議間歇的flood網(wǎng)絡(luò)組播信息,Dense-mode適用于組成員密集的分布在整個網(wǎng)絡(luò),而且有足夠的帶寬來容忍flood。
sparse-mode路由協(xié)議用于每個組播只有很少的幾個路由器(并不意味著每個組播組只有很少的成員),它意味著組播組成員被廣泛的分散,例如Internet Muticast, sparse-mode也假設(shè)網(wǎng)絡(luò)帶寬很有限,sparse-mode不使用flood, 開始時它先建立一個空的分布樹,只有當(dāng)成員請求加入組播組時,它才向分布樹添加一個分支。
dense-mode路由協(xié)議包括: Distance Vector Multicast Routing Protocol (DVMRP), Multicast Open Shortest Path First (MOSPF), Protocol Independent Multicast Dense Mode(PIMDM)
DVMRP大多數(shù)用于組播主干(MBONE)路由器, 它使用反路徑flood(reverse path flooding), 當(dāng)DVMRP接收一個包時,它在它連接的所有路徑上flood這個包,除了接收路徑,這樣,這個包可以到達(dá)所有的LAN, 如果某個網(wǎng)段沒有任何組播組的成員,則路由器發(fā)送一個削減信息返回分布樹,這人削減信息防止后來的包發(fā)送到這個沒有成員的區(qū)域,DVMRP使用它自己集成的路由協(xié)議去決定包返回源的路徑, 這個點播路由協(xié)議很像RIP,它基于hop counts, 為了可以讓新的主機加入組播組,DVMRP間斷的flood, DVMRP很少在大的網(wǎng)絡(luò)中使用。DVMRP的擴展性不好,因為它依靠Flood.
MOSPF(Cisco不支持)依賴于它集成的OSPF, MOSPF適用于單獨的路由域,例如一個網(wǎng)絡(luò)被一個單獨的組織控制, OSPF是一個鏈路狀態(tài)路由協(xié)議, MOSPF把組播信息加入OSPF鏈路狀態(tài)廣告, 在一個OSPF/MOSPF網(wǎng)絡(luò)中,每個路由器基于鏈路狀態(tài)信息維護一個詳細(xì)的網(wǎng)絡(luò)拓補, 一個MOSPF路由器使用鏈路狀態(tài)廣告去學(xué)習(xí)在連接LAN中有那個組播組被激活,它通過這個信息構(gòu)造分布樹,MOSPF基于包的源和目的地址來轉(zhuǎn)發(fā)包,一個基于每source-group 的分離最短路徑分布樹被建立,分布樹當(dāng)網(wǎng)絡(luò)拓補發(fā)生變化以及cache過期時被重新計算,MOSPF適用于在同一時間只有少量的soure-group被激活,不推薦MOSPF使用于不穩(wěn)定的環(huán)境中。
PIM DM和DVMRP相似,都使用相反路徑flooding(reverse path flooding), 當(dāng)PIM DM接收一個包時,它在它連接的所有路徑上flood這個包,除了接收路徑,如果某個網(wǎng)段沒有任何組播組的成員,則路由器發(fā)送一個削減信息返回分布樹, 協(xié)議獨立意味著它不依賴任何一個指定的點播路由協(xié)議,這個原則適用于dense-mode和sparse-mode,PIM可以使用所有的點播路由協(xié)議,PIM適用于發(fā)送者和接收者的距離很近,也適用于很少的發(fā)送者和很多的接收者,以及流量很高的情況.
Sparse-mode的兩種組播路由協(xié)議:
Protocol Independent Multicast Sparse Mode (PIM SM) 和 Core-Based Trees (CBT)
PIM SM適用于只有較少的接收者,以及流量不頻繁,這個協(xié)議可以同時處理幾個組播數(shù)據(jù)流,非常適合應(yīng)用于WAN 或者是Internet, 它定義一個集合點(rendezvous point), 一個發(fā)送者必須發(fā)送數(shù)據(jù)到這個集合點,接收者在接收數(shù)據(jù)之前要先在集合點登記, 路由器自動的優(yōu)化路徑, PIM可以在某些組播組中使用dense-mode的同時,在另外一些組中使用sparse-mode.
在CBT環(huán)境中,所有的組成員共享一個單獨的樹,組播流在相同的分布樹上傳輸,不考慮源, CBT和Spanning-tree相似,除了為每個組播組創(chuàng)建一個分離的樹,一個基于Core的樹可以使用一個單獨的路由器,或是一組路由器做為核心,路由器通過發(fā)送一個加入信息加入核心,核心發(fā)送一個確認(rèn)返回路由器,一個加入信息不需要必須被核心確認(rèn),這臺路由器成為分布樹的一個分支
例子:
一個client發(fā)送一個IGMP 加入信息,下一跳的router接收這個信息,記錄IGMP的源MAC地址, 然后產(chǎn)生一個CGMP包發(fā)送到switch, 交換機使用這個CGMP信息動態(tài)的在switch talbe中建立一個表項,這個表項是實際組播Host地址到交換機端口映射
相關(guān)文章
根據(jù)IP地址查所連交換機端口CISCO網(wǎng)絡(luò)適用
根據(jù)IP地址查所連交換機端口CISCO網(wǎng)絡(luò)適用...2007-09-09交換機基礎(chǔ)知識與常見相關(guān)術(shù)語
交換機基礎(chǔ)知識與常見相關(guān)術(shù)語...2007-09-09