曹雪峰, 于萬(wàn)國(guó), 蔡永華, 朱會(huì)卿, 陳日升
(河北民族師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)系, 河北 承德 067000)
基于虛擬網(wǎng)絡(luò)的IP多播原理實(shí)驗(yàn)設(shè)計(jì)
曹雪峰, 于萬(wàn)國(guó), 蔡永華, 朱會(huì)卿, 陳日升
(河北民族師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)系, 河北 承德 067000)
采用GNS3中整合的IOU和VirtualBox構(gòu)建虛擬網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境,設(shè)計(jì)了IP多播原理實(shí)驗(yàn)方案。利用Wireshark協(xié)議分析軟件捕獲報(bào)文,通過(guò)對(duì)報(bào)文的分析闡述了IGMP協(xié)議加入、離開(kāi)多播組的工作過(guò)程,PIM-SM協(xié)議共享樹(shù)和最短路徑樹(shù)的加入、剪枝過(guò)程,多播源注冊(cè)過(guò)程,共享樹(shù)和最短路徑樹(shù)之間的切換過(guò)程。驗(yàn)證了IGMP和PIM-SM協(xié)議的工作過(guò)程,使學(xué)生從理論和實(shí)踐兩方面更好地理解IP多播的工作原理。
虛擬網(wǎng)絡(luò); IP多播; PIM-SM; 共享樹(shù); 最短路徑樹(shù)
隨著數(shù)據(jù)通信技術(shù)的發(fā)展,IP多播技術(shù)支持下的視頻點(diǎn)播、網(wǎng)絡(luò)電視和視頻會(huì)議等點(diǎn)到多點(diǎn)業(yè)務(wù)已經(jīng)被廣泛應(yīng)用[1-2],成為計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)的一個(gè)重要內(nèi)容。而學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的最好方法,就是通過(guò)對(duì)網(wǎng)絡(luò)中捕獲報(bào)文的分析,理解協(xié)議的報(bào)文格式、協(xié)議的工作原理和交互過(guò)程[3-4]。思科模擬軟件GNS3是一款開(kāi)源的網(wǎng)絡(luò)模擬軟件[5-7],適用于多種操作系統(tǒng),其整合的IOU占用物理機(jī)資源非常少,配合GNS3中集成的VirtualBox虛擬機(jī),能夠完成一些非常復(fù)雜的網(wǎng)絡(luò)環(huán)境模擬配置,然后利用Wireshark分析虛擬網(wǎng)絡(luò)中捕獲的報(bào)文,以輔助學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議。
1.1 因特網(wǎng)組管理協(xié)議
因特網(wǎng)組管理協(xié)議(internet group management protocol,IGMP)是一個(gè)組成員關(guān)系管理協(xié)議,主機(jī)通過(guò)此協(xié)議告訴本地路由器希望加入某個(gè)特定多播組的信息[8-11]。同時(shí),路由器通過(guò)此協(xié)議周期性地查詢局域網(wǎng)內(nèi)是否仍有屬于某個(gè)多播組的成員,實(shí)現(xiàn)所連網(wǎng)絡(luò)組成員關(guān)系的收集與維護(hù)。
主機(jī)發(fā)送組成員報(bào)告報(bào)文請(qǐng)求加入多播組,此報(bào)文有時(shí)也用于響應(yīng)本地路由器發(fā)出的組成員查詢報(bào)文。當(dāng)主機(jī)退出組時(shí),向組地址224.0.0.2發(fā)送離開(kāi)組報(bào)文,通知本地網(wǎng)絡(luò)中的所有路由器。
路由器只發(fā)送IGMP查詢報(bào)文,包括General Query和Group-Specific Query。路由器通過(guò)General Query報(bào)文向與其連接的所有網(wǎng)絡(luò)進(jìn)行輪詢,來(lái)檢測(cè)網(wǎng)絡(luò)中有沒(méi)有組成員的情況。
通過(guò)上述機(jī)制,在多播路由器里建立起一張表,其中包含路由器的各個(gè)端口以及端口所對(duì)應(yīng)的子網(wǎng)上都有哪些組的成員。當(dāng)路由器接收到某個(gè)組G的多播報(bào)文后,只向那些有組G成員的端口上轉(zhuǎn)發(fā)多播報(bào)文。
1.2 多播路由選擇協(xié)議
協(xié)議無(wú)關(guān)多播稀疏模式(PIM-SM)是常用的多播路由選擇協(xié)議[12-14],適用于組成員分布相對(duì)分散而且范圍較廣,或者網(wǎng)絡(luò)帶寬資源有限等情況。運(yùn)行PIM-SM協(xié)議的路由器周期性地發(fā)送Hello報(bào)文,用以發(fā)現(xiàn)鄰接的PIM-SM路由器,維護(hù)鄰居關(guān)系,并且負(fù)責(zé)在多路訪問(wèn)網(wǎng)絡(luò)中進(jìn)行指定路由器(DR)的選舉,通過(guò)建立多播分發(fā)樹(shù)來(lái)進(jìn)行多播報(bào)文的轉(zhuǎn)發(fā)。多播分發(fā)樹(shù)包括以組G的匯聚點(diǎn)RP(RP可以通過(guò)手工指定或利用自舉機(jī)制動(dòng)態(tài)選舉)為根的共享樹(shù)(RPT)和以多播源為根的基于源的樹(shù),也稱為最短路徑樹(shù)(SPT)。
當(dāng)主機(jī)加入一個(gè)多播組G 時(shí),就發(fā)送組成員報(bào)告報(bào)文給DR,DR在多播路由表中生成了(*,G)表項(xiàng),將接收到多播報(bào)文的接口IP地址加入該多播組的出站接口列表,并向該組所對(duì)應(yīng)的RP方向發(fā)送join/prune加入報(bào)文。上游路由器如果沒(méi)有加入RPT,先在轉(zhuǎn)發(fā)表中生成(*,G)表項(xiàng),將接收到加入報(bào)文的接口IP地址加入多播組的出站接口列表,并向該組的RP方向繼續(xù)發(fā)送加入報(bào)文,否則只需將收到加入報(bào)文的接口IP地址加入多播組的出站接口列表。重復(fù)此操作直到到達(dá)RP。這樣從DR到RP所經(jīng)過(guò)的路由器就形成了RPT。當(dāng)有多播組G的多播報(bào)文到達(dá)RP時(shí),就會(huì)沿著已建立好的RPT到達(dá)DR,進(jìn)而到達(dá)接收者。
當(dāng)組成員離開(kāi)多播組G時(shí),與其直連的DR會(huì)逆著RPT向該組的RP方向逐跳發(fā)送join/prune剪枝報(bào)文;上游節(jié)點(diǎn)收到該報(bào)文后,在其出站接口列表中刪除與下游節(jié)點(diǎn)相連的接口,并檢查自己是否擁有該多播組的接收者,如果沒(méi)有,則繼續(xù)向其上游轉(zhuǎn)發(fā)該剪枝報(bào)文。另外,RPT建立后,路由器周期性向上游鄰居發(fā)送join/prune報(bào)文,以保持激活。如果在保持時(shí)間內(nèi)沒(méi)有收到下游鄰居的join/prune加入報(bào)文,則將下游鄰居從其多播組的出站接口列表中刪除,從而完成剪枝。
多播源通過(guò)多播源注冊(cè)向RP通知多播源的存在。當(dāng)多播源S向多播組G發(fā)送第一個(gè)多播報(bào)文時(shí),連接多播源的DR就將收到的多播報(bào)文封裝成注冊(cè)報(bào)文,并以單播方式發(fā)送給對(duì)應(yīng)的RP。RP收到該報(bào)文解封裝后,將其中的多播報(bào)文沿著RPT轉(zhuǎn)發(fā)給組成員,同時(shí)向多播源逐跳發(fā)送源為S的組G的join/prune加入報(bào)文,這樣從RP到多播源所經(jīng)過(guò)的路由器就構(gòu)建了SPT。然后,多播源沿著已建立好的SPT,在發(fā)送源注冊(cè)報(bào)文的同時(shí)也直接轉(zhuǎn)發(fā)對(duì)應(yīng)的多播報(bào)文。RP收到直接轉(zhuǎn)發(fā)來(lái)的多播報(bào)文后,向與多播源直連的DR單播發(fā)送注冊(cè)停止報(bào)文,多播源注冊(cè)過(guò)程結(jié)束。此后,多播源沿SPT只轉(zhuǎn)發(fā)多播報(bào)文,不再封裝發(fā)送源注冊(cè)報(bào)文。
當(dāng)連接接收者的DR發(fā)現(xiàn)從RP發(fā)往多播組G的多播報(bào)文速率超過(guò)了一定的閾值時(shí),將由其發(fā)起從RPT向SPT的切換。首先是連接接收者的DR向多播源S逐跳發(fā)送(S,G)加入報(bào)文,并最終送達(dá)連接多播源的DR,沿途經(jīng)過(guò)的所有路由器在其多播路由表中都生成了(S,G)表項(xiàng)和出站接口列表,從而建立了SPT;然后連接接收者的DR向RP逐跳發(fā)送包含RP位的剪枝報(bào)文。如果只有一個(gè)接收者,這時(shí)RP收到該報(bào)文后會(huì)向多播源方向繼續(xù)發(fā)送剪枝報(bào)文,從而最終實(shí)現(xiàn)從RPT向SPT的切換。從RPT切換到SPT后,多播報(bào)文直接從多播源發(fā)送到接收者。
1.3 多播高層協(xié)議
RTP是針對(duì)多媒體數(shù)據(jù)流的一種傳輸協(xié)議,位于UDP協(xié)議之上來(lái)傳輸單播或多播數(shù)據(jù)流,允許應(yīng)用傳送音頻和視頻的實(shí)時(shí)負(fù)載,主要提供了時(shí)間信息和實(shí)現(xiàn)流同步。RTCP屬于RTP協(xié)議的一部分,它提供了流量控制和擁塞控制服務(wù)。
2.1 實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)
按圖1所示拓?fù)浣Y(jié)構(gòu)搭建基于虛擬網(wǎng)絡(luò)的IP多播原理實(shí)驗(yàn)網(wǎng)絡(luò)[14-15]。其中7臺(tái)路由器是IOU Router,4臺(tái)主機(jī)是安裝了Windows XP操作系統(tǒng)的VirtualBox虛擬機(jī),設(shè)備端口IP地址分配見(jiàn)表1。
圖1 IP多播原理實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
表1 虛擬機(jī)及路由器端口IP地址分配表
2.2 設(shè)備配置
R2路由器主要配置如下[15]:
R2#configure terminal R2(config)#interface ethernet 0/0 R2(config-if)#ip address 172.16.20.1 255.255.255.0 R2(config-if)#ip pim sparse-mode ! 配置PIM的模式為稀疏模式 R2(config-if)#no shutdown R2(config-if)#interface ethernet 0/1 R2(config-if)#ip address 172.16.21.1 255.255.255.0 R2(config-if)#ip pim sparse-mode R2(config-if)#no shutdown R2(config-if)#interface ethernet 0/2 R2(config-if)#ip address 172.16.22.1 255.255.255.0 R2(config-if)#ip pim sparse-mode R2(config-if)#no shutdown R2(config-if)#exit R2(config)#router ospf 1 R2(config-router)#network 172.16.11.0 0.0.0.255 area 0R2(config-router)#network 172.16.12.0 0.0.0.255 area 0R2(config-router)#network 172.16.13.0 0.0.0.255 area 0 R2(config)#ip multicast-routing !啟用多播路由功能 R2(config)#ip pim rp-address 1.1.1.1 !指定RP地址
其他路由器參考R2路由器進(jìn)行配置。在4臺(tái)虛擬機(jī)上安裝VLC播放器,配置PC1為多播源。在VLC的“流輸出”對(duì)話框中,添加要播放的媒體文件,“新目標(biāo)”選擇“RTP/MPEG Transport Stream”,設(shè)置地址為225.0.0.1,基本端口為5004。
在各鏈路段上執(zhí)行捕獲報(bào)文命令,啟用Wireshark軟件開(kāi)始抓包。在PC3虛擬機(jī)上選擇“打開(kāi)網(wǎng)絡(luò)串流”選項(xiàng),輸入地址RTP://225.0.0.1:5004,準(zhǔn)備接收多播視頻。在虛擬機(jī)PC4、PC2上依序執(zhí)行相同的操作。在虛擬機(jī)PC1上播放視頻,在另外3臺(tái)虛擬機(jī)上都能接收多播視頻后,按PC3、PC4、PC2和PC1的順序依次退出虛擬機(jī)上的VLC程序,并停止抓包。把各鏈路段上捕獲報(bào)文的文件進(jìn)行合并,通過(guò)設(shè)置顯示過(guò)濾規(guī)則,可以只顯示與多播工作原理分析相關(guān)協(xié)議的報(bào)文。
3.1 IGMP協(xié)議工作過(guò)程分析
主機(jī)PC3發(fā)送9171號(hào)組成員報(bào)告報(bào)文,請(qǐng)求加入組地址為225.0.0.1的多播組,如圖2所示。路由器R5和R3發(fā)送9175、6132和6308號(hào)普通組成員查詢報(bào)文;當(dāng)PC3離開(kāi)多播組時(shí),發(fā)送10796號(hào)離開(kāi)組報(bào)文,連接PC3的R5發(fā)送10797號(hào)特殊組查詢報(bào)文,以確定在地址為225.0.0.1的多播組中是否還有其他的組成員。因此IGMP是用來(lái)在主機(jī)和與其直接相連的多播路由器之間建立、維護(hù)多播組成員關(guān)系的。
圖2 捕獲的IGMP報(bào)文
3.2 加入RPT過(guò)程分析
路由器R5收到PC3發(fā)送加入組成員的報(bào)告報(bào)文后,因?yàn)樽约翰皇荝P,又沒(méi)在RPT上,所以先在多播路由表中創(chuàng)建(*,225.0.0.1)表項(xiàng),將Ethernet0/0加入出站接口列表,然后向RP方向發(fā)送15615號(hào)join/prune加入報(bào)文,如圖3所示。組地址為225.0.0.1,RP地址為1.1.1.1。路由器R6收到此報(bào)文后,同樣先創(chuàng)建(*,225.0.0.1)表項(xiàng),并將Ethernet0/3加入出站接口列表,再向上游發(fā)送6455號(hào)join/prune加入報(bào)文;此報(bào)文到達(dá)R3(RP)后,由于路由器中沒(méi)有225.0.0.1多播組的路由表項(xiàng),先創(chuàng)建(*,225.0.0.1)表項(xiàng),并將Ethernet0/2加入出站接口列表,構(gòu)建了一條以R3為根的RPT分支。
圖3 捕獲的PIM-SM加入或剪枝報(bào)文
路由器R7收到PC4發(fā)送加入組成員報(bào)告報(bào)文后,創(chuàng)建(*,225.0.0.1)表項(xiàng),將Ethernet0/0加入出站接口列表,向上游發(fā)送13486號(hào)join/prune加入報(bào)文;路由器R6收到此報(bào)文后,因?yàn)橐呀?jīng)加入了共享樹(shù),因此只將Ethernet0/2加入(*,225.0.0.1)表項(xiàng)的出站接口列表,不再向上游發(fā)送join/prune加入報(bào)文,RPT又增加了一個(gè)分支。路由器R4收到PC2發(fā)送加入組成員報(bào)告報(bào)文后,創(chuàng)建(*,225.0.0.1)表項(xiàng),將Ethernet0/0加入出站接口列表,向RP方向發(fā)送6314號(hào)join/prune加入報(bào)文,R3收到此報(bào)文后,只將Ethernet0/1加入(*,225.0.0.1)表項(xiàng)的出站接口列表,至此構(gòu)建了完整的RPT,如圖4所示。
圖4 構(gòu)造RPT和SPT示意圖
3.3 多播源注冊(cè)過(guò)程分析
通過(guò)對(duì)捕獲報(bào)文分析可以看到,多播源PC1發(fā)送的RTP報(bào)文封裝在42號(hào)UDP報(bào)文中,其源IP地址為172.16.20.10,目的IP地址為225.0.0.1。R2路由器收到此報(bào)文后,先把它封裝在3206號(hào)多播源注冊(cè)報(bào)文中,此報(bào)文源IP地址為172.16.20.1,目的IP地址為1.1.1.1,如圖5所示。
圖5 多播源注冊(cè)過(guò)程捕獲的報(bào)文
此注冊(cè)報(bào)文以單播方式傳送到R1,R1再通過(guò)6155號(hào)注冊(cè)報(bào)文轉(zhuǎn)發(fā)給R3。R3收到此報(bào)文后解封裝注冊(cè)報(bào)文,并將封裝在其中的多播報(bào)文沿著RPT轉(zhuǎn)發(fā)給R6和R4,這就是圖5中的6484和6331號(hào)報(bào)文。
R3收到6155號(hào)第一個(gè)注冊(cè)報(bào)文后,在沿著RPT轉(zhuǎn)發(fā)多播報(bào)文的同時(shí),向多播源方向發(fā)送6156號(hào)join/prune加入SPT報(bào)文;R1收到此報(bào)文后,在多播路由表中創(chuàng)建(172.16.20.10,255.0.0.1)表項(xiàng),將Ethernet0/1加入出站接口列表,同時(shí)R1向多播源方向發(fā)送3207號(hào)join/prune加入SPT報(bào)文;R2收到此報(bào)文后,向多播路由表中(172.16.20.10,255.0.0.1)表項(xiàng)的出站接口列表添加Ethernet0/1。至此,從RP到多播源所經(jīng)過(guò)的路由器就構(gòu)建了SPT。
此時(shí)R2收到PC1發(fā)送的第60號(hào)多播報(bào)文,既沿著SPT向R1發(fā)送3226號(hào)多播源注冊(cè)報(bào)文,同時(shí)也發(fā)送3227號(hào)直接轉(zhuǎn)發(fā)多播報(bào)文,R1收到這兩個(gè)報(bào)文后又轉(zhuǎn)發(fā)到R3,這就是圖5中的6176和6177號(hào)報(bào)文。R3在收到注冊(cè)報(bào)文的同時(shí)又收到了同一個(gè)UDP多播報(bào)文后,向與多播源直連的R2發(fā)送6179號(hào)多播源注冊(cè)停止報(bào)文,此報(bào)文的源IP地址是1.1.1.1,目的IP地址是172.16.21.1。R1收到此報(bào)文后向R2轉(zhuǎn)發(fā),這就是圖5中的3229號(hào)多播源注冊(cè)停止報(bào)文。R2收到此報(bào)文后停止發(fā)送多播源注冊(cè)報(bào)文,多播源注冊(cè)過(guò)程結(jié)束,以后R2直接沿SPT轉(zhuǎn)發(fā)多播報(bào)文。
3.4 SPT切換過(guò)程分析
引起RPT向SPT切換的條件是DR發(fā)現(xiàn)從RP發(fā)往多播組G的多播報(bào)文速率超過(guò)了一定的閾值,在思科路由器上,這個(gè)值被默認(rèn)設(shè)置為0,因此R5收到從R3轉(zhuǎn)發(fā)的第一個(gè)多播報(bào)文后,就向多播源方向的R2發(fā)送3390號(hào)join/prune加入SPT報(bào)文(見(jiàn)圖3),R2收到此報(bào)文,將Ethernet0/2加入(172.16.20.10,255.0.0.1)表項(xiàng)的出站接口列表。同樣,R7向多播源方向的R6發(fā)送13510號(hào)join/prune加入SPT報(bào)文。R6收到此報(bào)文,創(chuàng)建(172.16.20.10,255.0.0.1)表項(xiàng),將Ethernet0/2加入出站接口列表,R6向R5發(fā)送15654號(hào)join/prune加入報(bào)文。R5收到此報(bào)文,將Ethernet0/1加入(172.16.20.10,255.0.0.1)表項(xiàng)的出站接口列表。R4向R6發(fā)送10891號(hào)join/prune加入報(bào)文,R6收到此報(bào)文后將Ethernet0/1加入(172.16.20.10,225.0.0.1)表項(xiàng)的出站接口列表。此時(shí)在R6路由器上顯示多播路由表內(nèi)容如下:
R5#show ip mroute IP Multicast Routing Table Flags: D-Dense, S-Sparse, B-Bidir Group, s-SSM Group, C-Connected, L-Local, P-Pruned, R-RP-bit set, F-Register flag, T-SPT-bit set, J-Join SPT, M-MSDP created entry, E-Extranet, Outgoing interface flags: H-Hardware switched, A-Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 225.0.0.1), 00:02:41/00:02:57, RP 1.1.1.1, flags: S Incoming interface: Ethernet0/0, RPF nbr 172.16.32.1 Outgoing interface list: Ethernet0/2, Forward/Sparse, 00:02:30/00:02:57 Ethernet0/3, Forward/Sparse, 00:02:41/00:02:47 (172.16.20.10, 225.0.0.1), 00:00:49/00:02:10, flags: T Incoming interface: Ethernet0/3, RPF nbr 172.16.63.2 Outgoing interface list: Ethernet0/1, Forward/Sparse, 00:00:49/00:02:40 Ethernet0/2, Forward/Sparse, 00:00:49/00:02:57
至此完成了從RPT向SPT切換后的SPT的構(gòu)建。
但是這時(shí)RP還通過(guò)RPT向接收者轉(zhuǎn)發(fā)多播報(bào)文,造成接收者收到重復(fù)的多播報(bào)文,因此R4向R3發(fā)送6347號(hào)join/prune剪枝報(bào)文,通知R3不再通過(guò)Ethernet0/1接口轉(zhuǎn)發(fā)源地址為172.16.20.10的多播報(bào)文;同樣R5向R6發(fā)送15655號(hào)剪枝報(bào)文,R6繼續(xù)向R3方向發(fā)送6501號(hào)剪枝報(bào)文,R3收到該報(bào)文后向多播源方向的R1發(fā)送6192號(hào)剪枝報(bào)文,R1繼續(xù)向R2發(fā)送3242號(hào)剪枝報(bào)文,至此實(shí)現(xiàn)從RPT向SPT的切換。
當(dāng)PC2、PC3和PC4離開(kāi)多播組時(shí),采用類似的join/prune剪枝報(bào)文剪枝SPT和RPT,在此不再贅述。
通過(guò)實(shí)驗(yàn),初步驗(yàn)證了IGMP協(xié)議加入、離開(kāi)多播組的工作過(guò)程,PIM-SM協(xié)議共享樹(shù)和最短路徑樹(shù)的加入、剪枝過(guò)程,多播源注冊(cè)過(guò)程,共享樹(shù)和最短路徑樹(shù)之間的切換過(guò)程等內(nèi)容,體會(huì)了IP多播技術(shù)的實(shí)際應(yīng)用,使學(xué)生從理論和實(shí)踐兩方面加深了對(duì)IP多播原理的理解。
References)
[1] 童文,許勇,胡雯.IP多播技術(shù)在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(9):174-177.
[2] 李亮,黃石平,臧勝鯤.組播技術(shù)高清數(shù)字電視直播系統(tǒng)在校園網(wǎng)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2015,34(1):118-121,237.
[3] Sanders C. Wireshark數(shù)據(jù)包分析實(shí)戰(zhàn)[M].諸葛建偉,陳琳,許偉林,譯.2版.北京:人民郵電出版社,2013.
[4] Orebaugh A, Ramirez G, Burke J, et al. Wireshark & Ethereal Network Protocol Analyzer Toolkit[M].Rockland:Syngress Publishing Inc,2007.
[5] 李林林,孫良旭,吳建勝.基于GNS3與VirtualBxo構(gòu)建虛擬網(wǎng)絡(luò)工程實(shí)驗(yàn)室研究[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(9):144-148.
[6] 顧春峰,李偉斌,蘭秀風(fēng).基于VMware、GNS3實(shí)現(xiàn)虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室[J].實(shí)驗(yàn)室研究與探索,2012,31(1):73-75.
[7] Welsh C. GNS3 Network Simulation Guide[M]. Birmingham:Packt Publishing Ltd,2013.
[8] Williamson B.IP組播網(wǎng)絡(luò)設(shè)計(jì)開(kāi)發(fā):第1卷[M].顧金星,張擁軍,南親良,等譯.北京:電子工業(yè)出版社,2000.
[9] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].5版.北京:電子工業(yè)出版社,2008.
[10] 曹雪峰.計(jì)算機(jī)網(wǎng)絡(luò)原理:基于實(shí)驗(yàn)的協(xié)議分析方法[M].北京:清華大學(xué)出版社,2014.
[11] Weinstein F. Internet Group Management Protocol: Version 2[J].Work in Progress,1997,17(6):241-243.
[12] Doyle J, Carroll J D.TCP/IP路由技術(shù):第二卷[M].夏俊杰,譯.北京:人民郵電出版社,2009.
[13] Estrin D,Farinacci D,Helmy A,et al. Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification[S].IETF RFC 2362,1998.
[14] Fenner B,Handley M,Holbrook H,et al. Protocol Independent Multicast-Sparse Mode (PIM-SM):Protocol Specification (Revised)[S].IETF RFC 4601,2006.
[15] Solie K, Lynch L.CCIE實(shí)驗(yàn)指南:第2卷[M].姚軍玲,顧彬,梅洪濤,等譯.北京:人民郵電出版社,2006.
Experimental design for principle of IP multicast based on virtual network
Cao Xuefeng, Yu Wanguo, Cai Yonghua, Zhu Huiqing, Chen Risheng
(Department of Mathematics and Computer,Hebei Normal University for Nationalities,Chengde 067000,China)
By using integrated IOU in GNS3 and VirtualBox software to build a virtual network experimental environment in a single computer, this paper designs the experimental scheme of IP multicast. Using Wireshark software to capture packets, through the analysis of packets, this paper expounds on the working processes of the IGMP protocol to join and leave the multicast group, the joining process and the pruning process of the PIM-SM(Protocol Independent Multicast-Sparse Mode) rendezvous point tree and the shortest path tree, the registration process of the multicast source, the switchover process between the rendezvous point tree and the shortest path tree. This paper verifies the IGMP protocol and the PIM-SM protocol’ working process, and can let students better understand the working principle of IP multicast from both theoretical and practical aspects.
virtual network; IP multicast; PIM-SM; rendezvous point tree; the shortest path tree
10.16791/j.cnki.sjg.2016.12.033
2016-06-28
國(guó)家民委高等教育教學(xué)改革研究項(xiàng)目(15114);河北民族師范學(xué)院科研項(xiàng)目(201406)
曹雪峰(1967—),男,河北隆化,碩士,副教授,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)技術(shù).
E-mail:cxf_cd@163.com
TP391.9
: A
: 1002-4956(2016)12-0132-05