(鄭州大學 a.信息工程學院 計算機系; b.河南省信息網絡重點學科開放實驗室, 鄭州 450052)
摘要:
組播可以有效實現多點之間通信,如何利用網絡層組播技術實現流媒體直播系統,是當前的研究熱點之一。基于MixCast模型,提出并實現了一種新的基于網絡層的安全組播模型。針對當前組管理協議IGMP不提供接入控制,任何端點用戶可自由地加入組播組,缺乏安全控制問題提出了依靠應用層單播對接收者認證,提出一種解決網絡層組播的安全性問題和可控性問題的方法。實驗結果表明,本系統具有良好的安全通信效率和可控性。
關鍵詞:網絡層組播; 組播安全; 流媒體; 應用層組播
中圖分類號:TP393文獻標志碼:A
文章編號:10013695(2009)03103903
Design and implementation of network multicast in streamingmedia direct broadcast system
WANG Shuhuia, b, LIN Yusonga, WANG Zongmina
(a.Dept. of Computer, College of Information Engineering, b.Henan Provincial Key Laboratory of Information Network, Zhengzhou University, Zhengzhou 450052,China)
Abstract:
Network layer multicast can effectively implement the onetomany communication, and how to use network layer multicast technology to carry out the stream media living broadcast system is one of the currently hotspots. The paper advanced and had achieved a new interdomain secure multicast model, and aiming at the problem of lacking of secure control that IGMP didnt provide access control so that any end user could freely join the multicast group, advanced one of the resolutions of security and controllability of network layer multicast based on the thinking that the application layer unicast gave the recipients verification. The experiments show that the system has good secure communication efficiency and controllability.
Key words:network layer multicast; multicast security; media streaming; application multicast
網絡技術和多媒體技術[1,2]的發展,促進了通信技術的綜合化、數字化、智能化和個人化的發展,使在單一的網絡平臺上實現語音、數據、圖像等多種業務成為可能。有許多Internet的視頻應用需要在Internet網絡上直播,如現場直播、遠程教育、視頻點播、視頻會議等直播業務,它們都要求讓大范圍的觀眾觀看高質量的節目,像看電視直播一樣來滿足觀眾的需求。
在計算機網絡上傳輸多媒體已經成為當前計算機通信技術和多媒體技術研究的前沿課題,如何使得實時多媒體信息在網絡上更高效地傳輸成為當前多媒體技術和計算機通信技術的一個研究熱點。目前的流媒體直播系統的通信方式有單播、網絡層組播和應用層組播[3]。單播通信是一種點對點的通信方式。在一對多的通信需求下,每個報文均被重復傳遞多次,當接收主機數目增多之后,由于受到服務器處理能力和網絡帶寬的限制,無法支持大規模的接收用戶。網絡層組播在滿足一對一和一對多的通信場合下,數據流在每條分支上只需傳播一次,能夠大大地節省服務器資源和網絡帶寬,但同時也需要路由器的支持。應用層組播在主機之間構造轉發樹,通過主機之間的單播進行數據傳遞,易于部署,缺點是可靠性差,不穩定。
針對現有的流媒體直播系統的數據傳輸方式的問題,文獻[4]給出了MixCast通信模型。MixCast是一種新型的混合了單播和組播的組通信模型,其核心思想是在域間使用單播通信,域內使用組播通信,域間數據通過應用層組播技術構造的轉發樹進行轉發,域內數據使用網絡層組播技術進行數據分發[5],以滿足大規模用戶的實時數據分發要求。本文針對MixCast通信思想,在域內給出網絡層組播流媒體直播系統的設計和實現,提出一種解決網絡層組播的安全性問題[6]的一種方案。
1系統架構
MixCast系統是一個支持大規模用戶的流媒體解決方案,系統采用二級轉發結構,第一級是在域間進行數據轉發,第二級是在域內進行轉發,如圖1所示。
本文主要研究域內網絡層組播的實現方法,如圖2所示。
在每個域內,都有一個節點服務器充當該域的MixCast 數據代理(MixCast data proxy MDP),客戶端用MP(MixCast peer)表示,來自數據源的數據首先沿著第一級數據轉發樹將流媒體數據轉發給域內的每一個MDP,MDP采用主動部署的方式,只要一個MDP加入MixCast之后,無論其域內是否有接收者都不允許其主動離開,以增強MDP的可靠性;然后域內的MDP再負責將流媒體數據用網絡層組播方式轉發到域內的每一個接收者。
2系統的設計和實現
2.1系統總體框架
整個系統分為組播安全控制模塊、消息處理模塊、組播數據轉發模塊、流媒體控制模塊等,如圖3所示。
2.2消息處理模塊
由于MDP既是域間各MDP的轉發者,又是域內網絡的管理者和數據發送者的多重身份,具有特殊的權限。而普通MP與傳統意義上的客戶端一樣,它沒有特殊功能,權限也受了較大的限制。MDP設置安全審查策略ACL(access control list),負責審核域內MP的身份驗證,只有通過MDP驗證的才可以申請加入組播組。MDP維護域內各MP節點的狀態信息、IP地址等資源,體現了系統的可控性。
MDP的組播組是不對外公開的,只有通過身份驗證的MP用戶才能得到MDP發送給的組播地址和端口號等信息。因此,這里有兩類消息:a)MP向MDP發出的加入請求消息和MDP驗證應答的確認消息;b)通過身份驗證的MP發出的加入組播消息和MDP的確認消息。本文把它定義為Mp_JoinRequest_Ask、Mdp_JoinRequest_Resp和Mp_JoinGroup_Ask、Mdp_JoinGroup_Resp,并且這四個消息均以單播的形式發送。MpJoinRequestAsk消息主要是普通MP向MDP發出的驗證請求消息,包括該MP的IP地址、用戶名等消息。Mdp_JoinRequest_Resp主要針對Mp_JoinRequest_Ask的應答消息,MDP根據ACL檢查用戶能否加入組播組(如檢查組播用戶目錄,根據域內IP地址檢查或者是否是黑名單等情況)。只有通過身份驗證的MP向MDP發送Mp_JoinGroup_Ask請求,MDP通過Mdp_JoinGroup_Resp將組播組地址、端口號等消息發送給MP。
為了方便統一和以后的擴展,本文將消息設計成統一的格式,如圖4所示。
從圖4 可以看到,消息主要分為兩部分,即消息頭(messageHead)和消息內容(messageBody)。消息頭又分為四部分,分別是消息類型(messageType)、節點類型(peerType)、節點IP地址(IPAddr)、端口號(port)。其中消息類型是前面提到的四種消息,消息類型用二進制編碼表示,為了今后的擴展用四位二進制編碼表示;節點類型有MDP和MP兩種格式,用兩位二進制編碼表示;IP地址(IPAddr)和端口號是發送消息MP的地址和端口號,因為在各個終端初始化時用戶可以自己選擇端口號,所以IP地址長度為32 bit,端口號8 bit就夠了。
消息內容的結構與不同的消息類型有關,因此它的長度是不固定的,本文將它設計成可變長度。
2.3組播安全控制模塊
所有網絡安全協議的主要目的都是為了讓授權的節點或者用戶之間在不安全的網絡上進行安全通信。對單播來說,當兩個節點開始通信時建立這種安全關聯,當結束通信時安全關聯斷開。單播安全關聯的兩個節點是完全確定的。相比之下,組播安全關聯的成員是動態的,隨時可能發生組播成員的加入/離開。現有的組播相關協議,如距離矢量組播路由協議(distance vector multicast routing protocol, DVMPR)、Internet組管理協議(Internet group management protocol,IGMP)均沒有提供組播源和接收者認證功能。本系統數據源到達域內的MDP,MDP是可靠的,因此主要考慮接收者的身份安全認證。
2.3.1MDP和用戶之間的身份認證
域內支持網絡層組播的客戶端,希望加入本域內的組播組,首先通過MDP發出請求,每個域內的MDP對域內的客戶端是透明的。
2.3.2創建組播組GROUP MDP
域內MDP首先要提供設置安全策略時用到的ACL,它一旦啟動,域內客戶端用戶就可以申請加入GROUP MDP。
2.3.3用戶加入過程
如圖5所示,希望加入組播組GROUP MDP的用戶首先找到本域內的MDP,MDP根據ACL檢查用戶能否加入組播組(例如檢查組播用戶目錄,根據域內IP地址檢查或者是否是黑名單等情況)。如果符合條件,MDP允許這個用戶加入GROUP MDP,向用戶發送GROUP MDP的地址和端口號,否則發送拒絕加入消息。客戶端只有通過MDP的安全認證之后,才能獲得組播組地址和端口號,從而加入組播組。
具體實現中用到的類NetModule類和相關函數如下:
a)主要成員變量
SOCKET ConnectSock;//請求套接字
SOCKET UdpSendSock;//多播發送套接字
SOCKET UdpRecvSock;//多播接收套接字
struct sockaddr_in localAddr;//本地地址
struct sockaddr_in multiAddr;//多播地址
struct sockaddr_in serverAddr;//服務器端地址
u_short recvPortTCP;
u_long multiIP;// 組播IP地址
u_short multiPort;//組播端口號
struct ip_mreq mcast;//多播組
b)主要接口函數
int NetModule::toConnect( u_short svPort, char* svIP )
//向服務器連接以請求認證
int NetModule::waitRelpy();//等待接收服務器的回復
int NetModule::CreateMultGroup();//創建多播組
int NetModule::toUnblock();//設置多播接收套接字為非阻塞
int NetModule::joinGroup();//加入多播組
2.4組播數據轉發模塊
發送模塊是流媒體直播系統的核心,服務器采用多線程技術,在播放流媒體文件的同時,還可以將流媒體轉發出去。數據轉發流程如圖6所示。
視頻發送的基本過程為:輸入組播的地址和相應的端口號,通過Winsock建立相應的組播套接字,啟動文件發送線程,每次讀取1 KB數據,以組播的方式發送出去,同時清空緩沖區中的音/視頻數據,以重新讀取下一輪數據。
3系統測試和實驗數據分析
本系統是基于Windows 2000/XP下開發的,開發工具采用Microsoft Visual C++6.0作為系統軟件的編程語言和編譯環境。經測試,系統能正常清晰流暢播放,并且提高了系統的安全性和可控制性。為了更好地理解本系統,下面給出方案的實現和對結果所作的分析。通過實現研究以下兩個問題:a)實現系統安全控制有多復雜,服務器的負載多大?b)通信效率如何?
為此本文給出以下幾個評價指標:
a)安全管理代價(secure management cost)。MDP加入安全功能的代價是本文要比較的一個性能結果,而網絡中的路由和傳輸延遲時間等則不予考慮,因此本文將上述安全功能的MDP的CPU處理時間作為性能的比較指標,這個指標說明MDP所消耗的時間代價。
b)加入控制負載(join control overhead)。MP從發出認證請求到加入組播組所用的控制報文的總和,這個指標說明MDP所消耗的網絡資源。
3.1安全管理代價
圖7表示MDP在一個小時內的時間代價,系統中MDP是組播源,負責MP用戶的安全身份認證檢查,從圖中可以看出其花費的時間代價是很小的,因此對MDP的負載是可以接受的。
3.2加入控制負載(圖8)
設每個控制報文的平均大小為100 Byte(其中:IP 報頭20 Byte;TCP 報頭20 Byte;控制報文60 Byte),從實驗數據中可以得到,對于一個5 000 節點規模,共需要45 629個加入控制報文,如果這5 000 節點在10 min之內加入了組播組,每秒傳輸的控制報文V 為:V= 45 629×100×8/600 = 60 839 bps。也就是說,產生了60 Kbps 的控制負載流量,如果將這些流量平均分配到5 000 條節點間的鏈路上,每條鏈路只需負載12 bps 的流量,假設網絡上傳輸的流媒體數據流量為256 Kbps,那么加入控制負載相對于數據負載而言,是微不足道的。
4結束語
本文創新點:針對MixCast模型,研究實現了一種改進的提高系統安全性和可控性的域內安全組播流媒體直播系統。對于接收端的身份認證,提出了一種改進的驗證方法,提出依靠應用層單播通信認證的方法實驗接收者加入組播組的思想。經實驗表明,該系統不僅可以實現流暢穩定播放、服務器端負載小、通信效率高的優點,而且增強了安全性和可控性。
參考文獻:
[1]
SRIPANIDKULCHAI K.The feasibility of supporting largescale live streaming applications with dynamic application endpoints[C]//Proc of ACM SIGCOMM. New York:ACM Press, 2004:107120.
[2]陸其明. Windows Media 編程導向[M].北京: 清華大學出版社,2005.
[3]DIOT C, LEVINE B N, LYLES B, et al. Deployment issues for the IP multicast service and architecture[J]. IEEE Network, 2000, 14(1):7888.
[4]LIN Yusong, WANG Binqiang,WANG Zongmin. MixCast: a new group communication model in largescale network[C]//Proc of the 19th IEEE International Conference on Advanced Information Networking and Applications. Taipei:IEEE Press, 2005:307310.
[5]KANGASHARJU J. Internet content distribution[D]. France: University of Nice Sophia Antipolis/Eurecom, 2002.
[6]ESKICIOGLU A. Multimedia security in group communications: recent progress in key management, authentication, and watermarking [J]. ACM Multimedia Systems Journal, Special Issue on Multimedia Security,2003,9(3):239248.