摘 要:在基于流媒體流量均衡裝置的VOD應(yīng)用方案的基礎(chǔ)上,提出一種客戶端軟件。該客戶端軟件基于ip filter driver hook及原始套接字進行設(shè)計,從網(wǎng)絡(luò)底層實現(xiàn)用戶VOD點播請求的轉(zhuǎn)發(fā),配合改進的分級流量均衡裝置結(jié)構(gòu),優(yōu)化了該VOD應(yīng)用方案的結(jié)構(gòu),降低了流量均衡裝置的額外負載,提高了運行效率和應(yīng)用的靈活性,拓展了該VOD方案的應(yīng)用前景。
關(guān)鍵詞:VOD;客戶端軟件;流媒體流量均衡裝置;ip filter driver hook
中圖分類號:TN919.85文獻標識碼:A
文章編號:1004-373X(2009)20-100-03
Implementation of Client End Software for New VOD Scheme
YANG Zhenlun,JIANG Yajun,HUANG Zhongwei
(Guangzhou Panyu Polytechnic College,Guangzhou,511483,China)
Abstract:Based on VOD scheme of load balancing equipments in stream medium,a new client end software is proposed.The client end software is developed under ip filter driver hook and raw socket.It redirects the users′ VOD demand in the way of network drivers operation.Cooperating with the advanced graded application structure of load balancing equipments of stream medium,it optimizes the application structure of VOD scheme and decreases the additional load of load balancing equipments of stream medium,improves the flexibility,efficiency and application prospects of VOD scheme.
Keywords:VOD;client end software;load balancing equipments of stream medium;ip filter driver hook
0 引 言
針對中小型園區(qū)網(wǎng)VOD應(yīng)用中因網(wǎng)絡(luò)帶寬及點播服務(wù)器I/O帶寬不足導(dǎo)致的系統(tǒng)阻塞問題,作者前期的研究成果提出了一種新型網(wǎng)絡(luò)設(shè)備流媒體流量均衡裝置(以下簡稱流量均衡裝置),基于該裝置的VOD方案通過在VOD系統(tǒng)中添加多個流量均衡裝置,從而減輕點播服務(wù)器和主干網(wǎng)絡(luò)的負載,解決系統(tǒng)阻塞問題[1]。
該方案依賴流量均衡裝置內(nèi)部的均衡策略,通過各個單點設(shè)備之間的協(xié)同來實現(xiàn)全局流量均衡,而由于每個單點設(shè)備只能獲取對應(yīng)區(qū)域的點播狀況,因此實現(xiàn)全局均衡則需要各個設(shè)備進行頻繁且大量的信息交換,增加了每個單點設(shè)備的負載,也導(dǎo)致全局流量均衡收斂時間的延長,并且新的流量均衡設(shè)備加入后,需要一段時間才能融合到系統(tǒng)中,這限制了該VOD優(yōu)化方案的應(yīng)用。
為解決該問題,在此提出一種應(yīng)用于該VOD方案的客戶端軟件,前述的VOD應(yīng)用方案在引入了該客戶端軟件后,能進一步優(yōu)化VOD應(yīng)用結(jié)構(gòu),提高運行效率,增強該方案的實用性。
這里將分別對改進方案結(jié)構(gòu)以及客戶端軟件的設(shè)計進行說明。
1 改進方案結(jié)構(gòu)
通常的VOD系統(tǒng)都配有Web服務(wù)器,以提供節(jié)目列表[2],原來基于流量均衡裝置的VOD應(yīng)用方案的點播需要Web服務(wù)器修改客戶機上網(wǎng)頁插件的屬性,使得用戶的點播請求重定向到每個區(qū)域指定的流量均衡裝置中,再由流量均衡裝置為之提供服務(wù)。由于目前VOD系統(tǒng)有若干種主流的點播軟件方案,用戶可能使用Real player,Media player或QuickTime player等幾種客戶端中的一種[3]。該方式需要根據(jù)客戶機上的不同點播軟件提供不同的配置方式,而實現(xiàn)全局流量均衡需要各個單點的流量均衡裝置之間的交互來獲知整個園區(qū)網(wǎng)的點播狀況,為了達到較快的全局均衡收斂速度,這種信息交互的頻率較高,這給資源相對有限的流量均衡裝置帶來一定的額外負載。如果降低信息交互的頻率,則會導(dǎo)致收斂性能的降低。
改進的VOD應(yīng)用方案主要是在點播的客戶機上添加了一個與流量均衡裝置配合的客戶端軟件,該軟件除了能實現(xiàn)將客戶機的點播請求轉(zhuǎn)發(fā)到某個流量均衡裝置,實現(xiàn)各種點播軟件對流媒體流量均衡裝置的透明使用外,主要還提供一個額外的通信接口,流量均衡裝置可以通過該通信接口修改相應(yīng)點播客戶機的點播請求轉(zhuǎn)發(fā)方向。在這種情況下,全局流量均衡主要是通過將點播客戶機的點播請求,依據(jù)全局網(wǎng)絡(luò)狀況轉(zhuǎn)發(fā)到最合適的流量均衡裝置處而得到實現(xiàn)。
為了實現(xiàn)這個目的,對VOD應(yīng)用方案進行微調(diào),根據(jù)具體數(shù)量將網(wǎng)絡(luò)中的流量均衡裝置分為兩級或者三級,每一級的下一層流量均衡裝置將所屬區(qū)域的網(wǎng)絡(luò)狀況發(fā)到上一層的流量均衡裝置中。最終匯總到一個事先指定的主控流量均衡裝置中,該流量均衡裝置根據(jù)全局流量均衡策略以及實際網(wǎng)絡(luò)狀況控制所有點播客戶機上客戶端軟件的點播轉(zhuǎn)發(fā)方向,如圖1所示。
2 客戶端軟件設(shè)計
該改進方案的關(guān)鍵在于客戶端軟件??蛻舳塑浖枰獙崿F(xiàn)的最主要功能是將客戶機的點播請求重定向到流量均衡裝置中,并且引導(dǎo)服務(wù)器將流媒體數(shù)據(jù)發(fā)送到流量均衡裝置中。由于目前主流流媒體協(xié)議RTSP協(xié)議簇在發(fā)送流媒體數(shù)據(jù)前,必須在服務(wù)器及客戶端之間經(jīng)過多次RTSP協(xié)商,確定具體參數(shù),而后續(xù)的操作則根據(jù)RTSP協(xié)商的結(jié)果進行。如果在客戶機對點播軟件發(fā)起的RTSP協(xié)商過程進行干預(yù)時,則完全可實現(xiàn)點播全過程的重定向。本文客戶端軟件的設(shè)計思想正是基于這一點。實現(xiàn)RTSP協(xié)商數(shù)據(jù)包的重定向?qū)嵸|(zhì)是實現(xiàn)數(shù)據(jù)包的截獲、修改和轉(zhuǎn)發(fā),在客戶端發(fā)起連接時,從網(wǎng)絡(luò)底層將請求數(shù)據(jù)包攔截,并根據(jù)接收到的命令將其目的IP地址修改再發(fā)出去,接收到回復(fù)包再進行反向的處理,而這一切對于客戶機的點播軟件都是透明的。
由于目前VOD系統(tǒng)中的用戶端以采用Windows操作系統(tǒng)的微機為主,該客戶端軟件的設(shè)計面向Windows。在Windows下實現(xiàn)這些功能需要使用內(nèi)核模式驅(qū)動程序[4]。目前適用于該客戶端要求的可選內(nèi)核模式驅(qū)動模式包括:微端口NIC 驅(qū)動程序(Miniport NIC Drivers) 、中間層驅(qū)動程序( Intermediate Drivers) 、協(xié)議驅(qū)動程序(Protocol Drivers)以及過濾器鉤子驅(qū)動程序(IP Filter Driver Hook)等[5-7]。相比較而言,過濾器鉤子驅(qū)動程序具有處理流程簡單,效率較高的特點[8],并且從功能上能很好地滿足要求。該方案采用過濾器鉤子驅(qū)動程序進行設(shè)計。
過濾器鉤子驅(qū)動程序依賴于Microsoft 提供的IP 協(xié)議過濾驅(qū)動程序,在Windows 2000/XP 系統(tǒng)中,System 32\drivers目錄下的ipfltdrv.sys是Microsoft 提供的IP 協(xié)議過濾驅(qū)動程序,它允許用戶注冊自己的IP 數(shù)據(jù)包處理函數(shù),即過濾器鉤子函數(shù)[9]。本機所有進出的IP包都經(jīng)操作系統(tǒng)的IP過濾驅(qū)動程序處理,而IP過濾驅(qū)動程序調(diào)用用戶定義的過濾器鉤子函數(shù)進行處理,確定是丟棄或者傳送。
該客戶端軟件由處于內(nèi)核態(tài)的過濾器鉤子驅(qū)動程序和處于用戶態(tài)的應(yīng)用程序組成,應(yīng)用程序包括接收主控流量均衡裝置命令的監(jiān)聽線程和配合驅(qū)動程序工作的服務(wù)線程,如圖2所示。
圖1 改進方案結(jié)構(gòu)示意圖
圖2 客戶端軟件結(jié)構(gòu)圖
過濾器鉤子驅(qū)動程序中設(shè)計主要是進行過濾鉤子函數(shù)的編寫。該客戶端軟件過濾器鉤子驅(qū)動程序的鉤子函數(shù)完成的工作主要是比較本機進出的數(shù)據(jù)包是否符合設(shè)定的轉(zhuǎn)發(fā)方向設(shè)置,如果符合則攔截,進行改寫后傳送,具體流程如圖3所示。
圖3 過濾器鉤子驅(qū)動程序流程圖
過濾器鉤子驅(qū)動程序工作在IP層,只能改寫IP包的內(nèi)容,對于本機發(fā)送到其他機器的包,由于其MAC地址已經(jīng)設(shè)定好,只改寫IP地址不能實現(xiàn)數(shù)據(jù)包的重定向。為解決該問題,驅(qū)動程序修改目標IP為本機IP,端口號為約定傳送端口后傳送數(shù)據(jù)包。由于基于原始套接字能實現(xiàn)自由收發(fā)TCP包的功能[10]。應(yīng)用程序中的服務(wù)線程采用原始套接字方式與驅(qū)動程序配合進行二次處理:在約定的傳送端口進行監(jiān)聽,獲取驅(qū)動程序發(fā)送的需要,重定向的IP包,根據(jù)設(shè)定的規(guī)則改寫對應(yīng)IP地址及端口號,再通過原始套接字轉(zhuǎn)發(fā)至相應(yīng)的流量均衡裝置,其流程圖如圖4所示。
命令監(jiān)聽線程等待主控流量均衡裝置發(fā)送的命令,一旦接收到命令,則通過修改程序的配置來實現(xiàn)轉(zhuǎn)發(fā)方向的更改,具體流程如圖5所示。
圖4 應(yīng)用程序服務(wù)線程流程圖
圖5 應(yīng)用程序命令監(jiān)聽線程流程圖
3 結(jié) 語
本文在前期的研究成果即基于流媒體流量均衡裝置的VOD方案基礎(chǔ)上,提出一種改進方法。在點播的用戶計算機上添加一個客戶端軟件,減少了流量均衡裝置間的信息交互,降低了流量均衡裝置的負載,并且該軟件直接對用戶發(fā)送的點播請求網(wǎng)絡(luò)包進行攔截和改寫,能與各種不同的VOD客戶端配合使用,具有較高的靈活性和適用性,從而拓展了該新型VOD方案的應(yīng)用前景。
參考文獻
[1]楊震倫,蔣亞軍,黃中偉.基于MIPS的流媒體流量均衡設(shè)備的設(shè)計[J].計算機應(yīng)用與軟件,2008(11):125-127.
[2]胡斌.基于Web流媒體系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2009,32(2):111-113.
[3]薛元昕,韓維.論流媒體技術(shù)及流媒體服務(wù)器的建立[J].現(xiàn)代電子技術(shù),2004,27(16):28-31.
[4]王蘭英,居錦武.Windows內(nèi)核模式驅(qū)動程序運行環(huán)境的分析[J].微計算機信息,2005(23):201-202.
[5]廖永紅,李洛,黃戰(zhàn).基于Windows 200x的WDM體系的IP過濾實現(xiàn)技術(shù)[J].計算機工程與設(shè)計,2007,22(11):5 425-5 427.
[6]裴林,曹斌.基于NDIS中間層的網(wǎng)絡(luò)數(shù)據(jù)包攔截技術(shù)及實現(xiàn)[J].計算機安全,2008(12):13-15.
[7]李明欣,佘堃.基于NDIS中間驅(qū)動的入侵檢測[J].計算機工程與設(shè)計,2007(1):51-52.
[8]呂建軍,羅萬伯,陳蓉,等.基于過濾器鉤子驅(qū)動的數(shù)據(jù)包過濾研究與實現(xiàn)[J].四川大學學報:自然科學版,2005,41(4):754-757.
[9]莫向陽.基于Filter-Hook Drive設(shè)計個人防火墻[J].廣東技術(shù)師范學院學報,2007(10):18-20.
[10]盧建華,蔣明,陳淑芳.網(wǎng)絡(luò)數(shù)據(jù)包捕獲及分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009(2):16-18.