許翔宇,李隱峰,董 濤
(西安電子科技大學 電子工程學院,陜西 西安710071)
隨著科技的發(fā)展,虛擬化、軟件路由、組播網(wǎng)絡等新興技術(shù)發(fā)展逐漸成熟,在計算機網(wǎng)絡領(lǐng)域產(chǎn)生了較大的影響。許多單位、企業(yè)需要組建內(nèi)部網(wǎng)絡,實現(xiàn)數(shù)據(jù)共享,并在此基礎(chǔ)上實現(xiàn)如視頻會議、在線音視頻播放等功能。為實現(xiàn)網(wǎng)絡的充分利用和數(shù)據(jù)的高效傳輸,在虛擬化、軟件路由的基礎(chǔ)上搭建組播網(wǎng)絡是一個理想的選擇。
虛擬化技術(shù)是云計算的基礎(chǔ),將原本直接安裝在個人計算機硬件上的OS轉(zhuǎn)換為虛擬機,在一臺實體機器上同時運行多個不同的操作系統(tǒng)[1]。文中采用VMware公司的虛擬操作系統(tǒng)ESXi5.0,通過配套的VMware vSphere Client 5.0控制虛擬機及其子操作系統(tǒng)的安裝和網(wǎng)絡配置。
Router OS是一個基于Linux的路由操作系統(tǒng),可以安裝在計算機硬件上作為一個普通路由器。軟件經(jīng)歷了多次更新和改進,使其功能不斷增強和完善。特別在無線、認證、策略路由、帶寬控制和防火墻過濾等功能上有著突出的功能[2]。
文中使用的是ROS3.30版本,并安裝Multicast組播功能包,設(shè)置其組播功能。在虛擬機上安裝6個ROS路由器,通過ESXi內(nèi)部網(wǎng)絡設(shè)置搭建一個組播網(wǎng)絡[1]。
組播是主機之間“一對一組”的通訊模式,加入了同一個組的主機可以接收到此組內(nèi)的所有數(shù)據(jù),網(wǎng)絡中的交換機和路由器只向有需求者復制并轉(zhuǎn)發(fā)其所需數(shù)據(jù)。主機可以向路由器請求加入或退出某個組,網(wǎng)絡中的路由器和交換機有選擇地復制并傳輸數(shù)據(jù),即只將組內(nèi)數(shù)據(jù)傳輸給那些加入組的主機。這樣既能一次將數(shù)據(jù)傳輸給多個有需要(加入組)的主機,又能保證不影響其他不需要(未加入組)的主機的其他通訊[3]。
組播網(wǎng)絡中有幾個比較重要的協(xié)議,如IGMP(組播管理協(xié)議)、PIM-DM(協(xié)議無關(guān)組播密集模式)、PIM-SM(協(xié)議無關(guān)組播稀疏模式)等[4]。
文中通過2種方法測試組播網(wǎng)絡:(1)通過組播測試工具Wsend和Wlisten,在服務器端利用Wsend發(fā)送組播數(shù)據(jù)包,在客戶機端利用Wlisten接收組播數(shù)據(jù)包,查看接收速率和掉包率等,以判斷組播網(wǎng)絡的連通性和穩(wěn)定性。(2)利用視頻播放軟件VLC在服務器端搭建視頻服務器,并發(fā)送組播數(shù)據(jù)包,同時在多個客戶機端輸入組播地址收看視頻,查看視頻播放情況。
ESXi5.0安裝好之后,通過vSphere Client登錄到管理界面,創(chuàng)建操作系統(tǒng),在操作系統(tǒng)安裝完成后,仍可以通過管理工具修改操作系統(tǒng)上硬件的數(shù)量和參數(shù)。安裝好6個ROS系統(tǒng)、1個基于Windows Server 2003的視頻服務器、3個基于Windows Server 2003的客戶機。
虛擬設(shè)備網(wǎng)絡連接如圖1所示,每個ROS都有2個網(wǎng)卡,每個終端都有一個網(wǎng)卡,根據(jù)設(shè)計的設(shè)備連接圖,配置虛擬機的網(wǎng)絡。ESXi的網(wǎng)絡設(shè)置中,將每個實體網(wǎng)卡當作一個交換機,虛擬的操作系統(tǒng)通過交換機組建內(nèi)部網(wǎng)絡[1],設(shè)置好的網(wǎng)絡如圖2所示。
圖1 虛擬網(wǎng)絡設(shè)備連接圖
圖2 ESXi5.0內(nèi)部網(wǎng)絡配置
配置好網(wǎng)絡后,需要配置各ROS及主機客戶機的IP地址,以達到主機與客戶機的數(shù)據(jù)連通[2],如圖3所示。
圖3 IP地址配置
根據(jù)設(shè)計好的IP地址,登入ROS操作系統(tǒng)內(nèi)部配置好相對應的IP地址。并在路由器上指定相應的IP網(wǎng)關(guān)。各ROS路由器及客戶機的網(wǎng)關(guān)如下
ROS1:192.168.1.1;ROS2:192.168.2.1;ROS3:192.168.2.1。
ROS4:192.168.2.1;ROS5:192.168.3.1;ROS6:192.168.5.1。
Client1:192.168.4.1;Client2:192.168.6.1;Client3:192.168.7.1。
設(shè)置好IP地址及網(wǎng)關(guān)后,仍需要設(shè)置各路由器的網(wǎng)絡地址轉(zhuǎn)換(NAT)的方式,將所有路由器IP模塊的firewall中nat部分設(shè)置為chain=srcnat,action=masquerade[2]。
登入每個路由器及客戶機中,使用ping命令連接服務器的IP地址,全部可以ping通,至此ROS路由器的初步設(shè)置基本完成,在此基礎(chǔ)上進行組播網(wǎng)絡的配置。
組播網(wǎng)絡中需要將一個路由器設(shè)置為RP匯聚點(Rendezvous Point),其作用是告訴周圍路由器組播源的方位,從而形成一個從組播源到接收者的通道[4]。本文將ROS1作為整個組播網(wǎng)絡的RP,其他的路由器通過ROS1訪問組播源。
文中ROS3.30采用PIM-SM稀疏模式協(xié)議和IGMPv2協(xié)議。安裝好multicast擴展包之后,在routing模塊中的PIM進行設(shè)置,具體設(shè)置如下[5]。
設(shè)置ROS1:
[admin@ROS1]>routing pim interface add ether1,ether2//使ether1和ether2支持PIM和IGMP協(xié)議
[admin@ROS1]>routing pim interface p//查看各網(wǎng)卡及其支持的組播協(xié)議
[admin@ROS1]>routing pim rp add address=192.168.1.251 group=239.255.255.0/24//設(shè)置組播網(wǎng)絡的RP,并設(shè)置IP地址為ROS 1上ether1的IP地址,并劃定了組播地址范圍。
其他5個ROS的設(shè)置基本相同,需要在設(shè)置RP時將RP的IP地址寫為ROS1的ether1的地址192.168.1.251。當所有的路由器設(shè)置完成后,組播網(wǎng)絡搭建完畢。
在路由器的配置階段,已經(jīng)證實了各子網(wǎng)間的連通性,需要測試的是組播網(wǎng)絡是否已經(jīng)正常工作。在視頻服務器Video Server上運行Wsend程序,添加一個組播地址,這個地址需要在之前設(shè)置的RP的組播組內(nèi)。設(shè)置過程如圖4所示。
圖4 設(shè)置Wsend發(fā)送組播數(shù)據(jù)包
在客戶機Client1上運行Wlisten程序,設(shè)置要接收數(shù)據(jù)包的組播地址。設(shè)置過程如圖5所示。服務器Video Server上Wsend程序開始發(fā)送數(shù)據(jù)包,如圖6所示。
圖5 設(shè)置Wlisten接收組播數(shù)據(jù)包
圖6 Wsend發(fā)送組播數(shù)據(jù)包
客戶機Client1上Wlisten接收組播數(shù)據(jù)包,如圖7所示。
圖7 Wlisten接收組播數(shù)據(jù)包
可以看到,數(shù)據(jù)包的延遲微小,丟包率幾乎為0,說明此組播網(wǎng)絡穩(wěn)定。另外2個客戶機的測試方法和Client1相同,經(jīng)過測試,組播網(wǎng)絡已經(jīng)連通,效果較為理想。
本文使用一個開源視頻播放軟件VLC video player,它既是一個視頻播放器,也可以通過配置,作為一個視頻服務器,發(fā)送視頻數(shù)據(jù),從其他客戶端接收數(shù)據(jù),實現(xiàn)實時的視頻數(shù)據(jù)傳輸。
將本地視頻文件通過組播方式將視頻流發(fā)送出去的設(shè) 置 為:File——Wizard——Stream to network——Choose——從本地選擇相應的視頻文件——選擇Streaming method為UDP Multicast,組播地址為239.255.255.254,默認端口1234——轉(zhuǎn)碼格式為MPEG TS——Time-to-Live(TTL)設(shè) 為128——Finsh。還需要在Setting——Preferences——Sreaming Output中將Time-to-Live設(shè)置為128。
設(shè)置完成后,服務器端視頻播放不顯示,只顯示進度條,如圖8所示。
圖8 視頻服務器開始組播視頻傳輸
在客戶機Client1端,打開VLC播放器,輸入組播播放地址,F(xiàn)ile——Open Network Sream在Network選項中選擇UDP/RTP Multicast,IP地址239.255.255.254,Port1234——Finsh。設(shè)置完成后開始播放視頻軟件,如圖9所示。
圖9 客戶端組播視頻播放
其他客戶端Client2,Client3與Client1設(shè)置完全相同,經(jīng)過測試,均可正常播放。測試視頻播放的流暢度方面,采取的方式是對視頻文件在本地直接播放的速率、組播服務器發(fā)送組播視頻流的速率及客戶端接收視頻流的速率進行對比。
如圖10~圖12所示,組播視頻服務器的輸入比特率為1 171 kbit·s-1,而客戶端接收組播視頻的輸入比特率為900 kbit·s-1,說明在傳輸過程中,視頻的傳輸速率降低很小;客戶端播放過程丟幀數(shù)很小;經(jīng)過長時間的播放,視頻出現(xiàn)的卡頓現(xiàn)象較少。以上現(xiàn)象都說明視頻數(shù)據(jù)在組播網(wǎng)絡的傳輸較順暢,視頻播放效果良好。
圖10 視頻文件本地播放信息
圖11 組播視頻服務器視頻流信息
圖12 客戶端接收組播流視頻信息
測試視頻服務器的負載方面,對視頻服務器的CPU負載進行記錄:當3個客戶端同時采用點播方式播放視頻流時,視頻服務器的負載達到100%;當3個客戶端采用組播方式播放視頻流時,視頻服務器的負載約降低了80%。這說明組播對視頻服務器的負載有一定的減小。當組播網(wǎng)絡進一步放大,有更多的路由器、服務器、客戶端時,對服務器負載減小、視頻流傳輸?shù)乃俣葘懈蟮奶嵘?,組播的優(yōu)勢也會更明顯地顯現(xiàn)出來。
虛擬化、軟件路由、組播網(wǎng)絡都是近些年來發(fā)展較為迅速的技術(shù),文中將這3種技術(shù)結(jié)合,提出了一種組播的解決方案,并進行測試。用較小的成本實現(xiàn)了組播網(wǎng)絡,具有一定的實用性。從實驗結(jié)果來看,方案較好地完成了預期的目標,由于將數(shù)據(jù)傳輸?shù)呢撦d轉(zhuǎn)移到了路由器上,大幅減輕了視頻服務器的負載,證實了組播網(wǎng)絡對多用戶視頻播放性能有較大的提升。
[1] 熊信彰.VMware vSphere 4云操作系統(tǒng)搭建配置入門與實戰(zhàn)[M].北京:中國水利水電出版社,2011.
[2] 崔北亮.Router OS全攻略[M].北京:電子工業(yè)出版社,2010.
[3] 周賢偉,楊軍,薛楠,等.IP組播與安全[M].北京:國防工業(yè)出版社,2006.
[4] 巖延,郭江濤.組播路由協(xié)議設(shè)計及應用[M].北京:人民郵電出版社,2002.
[5]Mikrotik Conpration.Router OS multicast detailed example[EB/OL].(2009-08-12)[2012-05-19]http://wiki.mikrotik.com/wiki/Manual:Multicast_detailed_example.