組播(multicast):解決了一個(gè)主機(jī)向特定的多個(gè)接收者發(fā)送消息的方法。 單播方式:?jiǎn)吸c(diǎn)發(fā)送多點(diǎn)接收的點(diǎn)對(duì)點(diǎn)傳輸。
單播方式不能適應(yīng)internet上諸如流媒體、視頻會(huì)議和視頻點(diǎn)播等多媒體業(yè)務(wù)類業(yè)務(wù)傳輸特性的需求。
區(qū)別:
單播:將一個(gè)分組發(fā)送到一臺(tái)主機(jī)上;
廣播:將一個(gè)分組發(fā)送給指定網(wǎng)絡(luò)中的所有主機(jī);
組播:將一個(gè)分組發(fā)送到一組主機(jī)上。
一、ip組播
ip組播:指一個(gè)ip報(bào)文向一個(gè)“主機(jī)組”的傳送,這個(gè)包含零個(gè)或多個(gè)主機(jī)的主機(jī)組由一個(gè)單獨(dú)的ip地址標(biāo)識(shí) 。
主機(jī)組的成員可以動(dòng)態(tài)變化:
主機(jī)有權(quán)選擇加入或者退出某個(gè)主機(jī)組;
主機(jī)可以加入多個(gè)主機(jī)組;
可以向自己沒(méi)加入的主機(jī)組發(fā)送數(shù)據(jù)。
“組播地址”:最高四位為“1110”,范圍從224.0.0.0開(kāi)始,到239.255.255.255結(jié)束,通常被稱為d類地址或主機(jī)組地址。
除目的地址部分外,組播報(bào)文與普通報(bào)文沒(méi)有區(qū)別,網(wǎng)絡(luò)盡力傳送但不保證送達(dá)!
ip組播地址可用作數(shù)據(jù)報(bào)的目的地址;不出現(xiàn)在源地址字段、源路由或記錄路由的選項(xiàng)中;不會(huì)生成關(guān)于組播數(shù)據(jù)報(bào)的icmp差錯(cuò)報(bào)文,發(fā)往組播地址的ping得不到回答。
ip組播使用數(shù)據(jù)報(bào)的目的地址來(lái)規(guī)定數(shù)據(jù)報(bào)必須通過(guò)組播進(jìn)行交付!
從ip組播地址中衍生第2層組播地址(組播mac地址)
計(jì)算方法:把ip地址的最后23位拷貝到mac地址的最后23位,然后把這23位前面的那一位置為0,mac地址的前24位必須為0x01-00-5e。
例如:組播ip地址224.0.1.128,其16進(jìn)制表示為0xe0-00-01-10,最低的23位為0x00-01-10,計(jì)算得出的mac地址為:0x01-00-5e-00-01-10。
“組播地址”分類:
永久ip組地址:是周知的,由internet管理機(jī)構(gòu)分配,用于internet上的主要服務(wù)以及基礎(chǔ)結(jié)構(gòu)維護(hù),是保留地址。
臨時(shí)ip組地址:除永久組地址外的非保留d類地址,相應(yīng)于瞬變組播群組,需要使用時(shí)則創(chuàng)建,群組成員為0時(shí)則丟棄。
臨時(shí)組地址:由網(wǎng)絡(luò)管理員選擇,需要保證該地址在一定的范圍內(nèi)沒(méi)有其它的主機(jī)組在使用這個(gè)組播地址。
永久組地址:從224.0.0.0到224.0.0.255的d類地址,專用于組播選路和群組維護(hù)協(xié)議,路由器禁止轉(zhuǎn)發(fā)發(fā)往該地址范圍的數(shù)據(jù)報(bào)。
224.0.0.1永久分配給全系統(tǒng)群組,包含一個(gè)網(wǎng)絡(luò)上的所有主機(jī)和路由器。
224.0.0.2永久分配給全路由器群組,只包含參與的路由器。
——都用于控制協(xié)議,不用于通常的數(shù)據(jù)交付;發(fā)往這些地址的數(shù)據(jù)報(bào)只到達(dá)與發(fā)送方處于同一本地網(wǎng)絡(luò)的機(jī)器,沒(méi)有對(duì)應(yīng)于互聯(lián)網(wǎng)中所有系統(tǒng)和路由器的ip組播地址。
ip組播分組的轉(zhuǎn)發(fā):由支持組播的路由器來(lái)處理,主機(jī)發(fā)出的ip組播分組在本子網(wǎng)內(nèi)被所有本組播組成員接收,同時(shí)與該子網(wǎng)直接相連的組播路由器會(huì)把組播報(bào)文轉(zhuǎn)發(fā)到所有包含該組播組成員的網(wǎng)絡(luò)上。
生存期值(ttl,time-to-live):決定組播報(bào)文傳遞的范圍,如果ttl值等于或者小于設(shè)置的路由器端口ttl門限值,路由器將不再轉(zhuǎn)發(fā)該報(bào)文。
組播系統(tǒng)的三個(gè)概念性組成部分:
①組播編址方法——必須適應(yīng)兩個(gè)相互沖突的目標(biāo):允許分配地址時(shí)的本地自治;同時(shí)定義具有全局含義的地址。
②有效的通知和交付機(jī)制——主機(jī)需要一種通知機(jī)制把自己參與的組播群組通知給路由器;路由器需要一種交付機(jī)制把組播分組傳輸給主機(jī)。
③有效的網(wǎng)絡(luò)轉(zhuǎn)發(fā)工具——組播轉(zhuǎn)發(fā)工具的設(shè)計(jì)目標(biāo)是既有效又具有動(dòng)態(tài)性,應(yīng)該能夠沿最短路徑路由組播分組;不應(yīng)該沿?zé)o法到達(dá)群組成員的路徑發(fā)送數(shù)據(jù)報(bào);應(yīng)該允許主機(jī)在任何時(shí)刻參加或退出群組。
二、internet群組管理協(xié)議 igmp
internet組管理協(xié)議igmp:是tcp/ip的標(biāo)準(zhǔn)之一,所有接收ip組播的機(jī)器都需要igmp,組播路由器和實(shí)現(xiàn)組播的主機(jī)用igmp來(lái)進(jìn)行群組成員信息的通信。
igmp的兩個(gè)工作階段:
第一階段:當(dāng)主機(jī)加入一個(gè)新組播群組時(shí),要把一個(gè)igmp報(bào)文發(fā)送給組播地址中的每個(gè)主機(jī),宣布其成員;本地組播路由器接收到這個(gè)報(bào)文后,向互聯(lián)網(wǎng)上其它組播路由器傳播這個(gè)群組成員信息,以建立必要的路由。
第二階段:為適應(yīng)動(dòng)態(tài)的成員,本地組播路由器周期性地輪詢本地網(wǎng)絡(luò)上的主機(jī),以便確定現(xiàn)在各個(gè)群組中有哪些主機(jī),若經(jīng)過(guò)若干次輪詢后,某個(gè)網(wǎng)絡(luò)內(nèi)始終沒(méi)有某群組中的成員,則組播路由器認(rèn)為該群組中不再有本網(wǎng)絡(luò)中的主機(jī),停止向其它組播路由器通告該群組的成員信息。
主機(jī)使用igmp消息通告本地的組播路由器其想接收組播流量的主機(jī)組地址。
主機(jī)組成員表:組播路由器通過(guò)igmp協(xié)議為其每個(gè)端口都維護(hù)一張主機(jī)組成員表,并定期探詢表中的主機(jī)組的成員,以確定該主機(jī)組是否存活。
群組參照計(jì)數(shù)器:igmp維護(hù)一個(gè)群組參照計(jì)數(shù)器,初始值為1,新應(yīng)用程序加入群組時(shí)給相應(yīng)項(xiàng)的計(jì)數(shù)器加1;一個(gè)應(yīng)用程序退出群組時(shí)該計(jì)數(shù)器值減1,當(dāng)該計(jì)數(shù)器的值為0時(shí),主機(jī)就通知組播路由器它將要退出這個(gè)群組。
igmp軟件響應(yīng)各種igmp報(bào)文的動(dòng)作:
igmp報(bào)文格式——每個(gè)igmp報(bào)文確切包含8個(gè)八位組
8八位組igmp報(bào)文格式
類型字段:
標(biāo)識(shí)報(bào)文的類型。
暫停時(shí)間:當(dāng)路由器輪詢?nèi)航M成員時(shí),容納了群組成員計(jì)算的最大隨機(jī)時(shí)延間隔,以0.1秒計(jì),群組中的每臺(tái)主機(jī)都延遲0到該指定值之間的一段隨機(jī)時(shí)間,然后進(jìn)行響應(yīng),默認(rèn)的最大值為10秒。
校驗(yàn)和:包含該報(bào)文的校驗(yàn)和。
群組地址:用于指定特定群組、包含0或表示所有群組,路由器向特定群組發(fā)送查詢時(shí),或主機(jī)發(fā)送成員報(bào)告時(shí)會(huì)填寫該字段。
在任何情況下igmp都不支持查找地址:igmp并未提供允許主機(jī)發(fā)現(xiàn)群組ip地址的機(jī)制,應(yīng)用程序在使用igmp加入群組之前必須知道群組地址。
三、組播選路
分布樹(shù):在傳送組播分組時(shí),指派路由器需要構(gòu)造一個(gè)連接所有組播組成員的樹(shù),根據(jù)這個(gè)樹(shù)路由器可以得出轉(zhuǎn)發(fā)分組的一條唯一路徑。
由于成員可以動(dòng)態(tài)的加入和退出,分布樹(shù)必須動(dòng)態(tài)更新!
分布樹(shù)分類——根據(jù)構(gòu)造方法的不同
源分布樹(shù):以組播源為根節(jié)點(diǎn),構(gòu)造到所有組播組成員的生成樹(shù),通常也稱為最短路徑樹(shù)(spt)。
共享分布樹(shù):也稱為rp樹(shù)或基于核心的樹(shù)(cbt),構(gòu)造方法是以網(wǎng)絡(luò)中的某一個(gè)指定的路由器為根節(jié)點(diǎn),該路由器稱為集合點(diǎn)或中心點(diǎn),由此節(jié)點(diǎn)生成包含所有組成員的樹(shù)。
使用共享分布樹(shù)時(shí),組播源需要首先把組播分組發(fā)送給集合點(diǎn)路由器,再由這個(gè)路由器轉(zhuǎn)發(fā)給其他的組成員。
組播路由協(xié)議的主要任務(wù):構(gòu)造組播的分布樹(shù),使組播分組能夠傳送
到相應(yīng)的組播組成員。
組播路由協(xié)議分類——根據(jù)對(duì)網(wǎng)絡(luò)中的組播成員的分布和使用的不同
密集模式路由協(xié)議(dm):通常用于組播成員較為集中、數(shù)量較多并且有足夠帶寬的網(wǎng)路環(huán)境,比如公司或園區(qū)的局域網(wǎng);用定期廣播組播報(bào)文的方法維護(hù)組播分布樹(shù),只使用源分布樹(shù)(spt)。
距離向量組播路由協(xié)議dvmrp:基于距離向量算法的組播路由協(xié)議,被pim和mospf所取代。
組播ospf協(xié)議mospf
協(xié)議無(wú)關(guān)組播協(xié)議-密集模式pim-dm:不需要單獨(dú)的組播協(xié)議,利用路由器上單播路由協(xié)議的路由表反向路徑轉(zhuǎn)發(fā)檢查,獲得組播分布樹(shù)。
——pim-dm的開(kāi)銷小很多,用于組播源和目的非??拷?、接收者數(shù)量大于發(fā)送者數(shù)量并且組播流量比較大的環(huán)境中效果很好。
稀疏模式路由協(xié)議(sm):通常應(yīng)用在網(wǎng)路稀疏分布、網(wǎng)絡(luò)沒(méi)有充足帶寬的情況,如廣域網(wǎng)環(huán)境;采用選擇性的建立和維護(hù)分布樹(shù)的方式,由空樹(shù)開(kāi)始,僅當(dāng)成員顯式的請(qǐng)求加入分布樹(shù)才做出修改。
基于中心的分布樹(shù)協(xié)議cbt:以一個(gè)中心路由器為根構(gòu)造一個(gè)共享分布樹(shù),所有的組播流量都經(jīng)由這個(gè)中心路由器轉(zhuǎn)發(fā)。
協(xié)議無(wú)關(guān)組播協(xié)議-稀疏模式pim-sm:工作原理與pim-dm類似,但專門針對(duì)稀疏環(huán)境優(yōu)化,定義了一個(gè)集合點(diǎn)(rp),所有的接收者在rp注冊(cè),組播分組由rp轉(zhuǎn)發(fā)給接收者。
——適用于組播組中接收者較少、間歇性組播流量的情況。