• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于DSS的定制客戶端測試工具的實(shí)現(xiàn)

      2012-06-07 04:14:48玲,曾浩,肖
      電視技術(shù) 2012年1期
      關(guān)鍵詞:擴(kuò)展性信令客戶端

      楊 玲,曾 浩,肖 洋

      (1.重慶郵電大學(xué),重慶 400065;2.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

      蘋果公司的DSS提供了完整的流媒體服務(wù)器源代碼,同時(shí)支持 FreeBSD,Linux,Solaris,Windows NT 和 Windows 2000等多個(gè)操作系統(tǒng),是當(dāng)前所有同類產(chǎn)品中支持平臺最多的一個(gè)[1]。DSS支持多種主流音視頻格式,支持基于WEB的后臺管理,并具有完備的日志功能,又充分考慮了日后開發(fā)的可擴(kuò)展性,該服務(wù)器提供了一個(gè)基于模板的擴(kuò)展方法。利用DSS提供的API就可以很方便地編寫靜態(tài)或動(dòng)態(tài)的模塊,可以讓開發(fā)者加入自己的模塊,對其進(jìn)行功能上的修改和擴(kuò)充,所以,DSS成為很多流媒體軟件開發(fā)的基礎(chǔ),而DSS流媒體服務(wù)器的點(diǎn)播并發(fā)能力(對單一文件和不同文件點(diǎn)播并發(fā)的支持能力)成為對其性能評估的一個(gè)重要指標(biāo)。隨著用戶對流媒體要求的提高,很多人都根據(jù)自己的需求在DSS的基礎(chǔ)添加自定義模塊來實(shí)現(xiàn)擴(kuò)展需求,而在對DSS進(jìn)行二次開發(fā)之前需要對DSS本身進(jìn)行性能評估,隨著流媒體的普遍化和帶寬的緊缺化,流媒體服務(wù)器的并發(fā)性能成為性能測試的重點(diǎn)。DSS安裝包里自帶了一個(gè)壓力測試小工具Streaming-LoadTool,但StreamingLoadTool有一定的限制,只能實(shí)現(xiàn)多端口對單一文件(同一個(gè)文件)的并發(fā)模擬測試,所以需要定制客戶端模擬并發(fā)用戶實(shí)現(xiàn)多端口訪問多個(gè)不同文件的并發(fā)數(shù)測試。

      1 DSS媒體點(diǎn)播的流程

      DSS點(diǎn)播處理過程是客戶端經(jīng)由DSS中的RTP Session以及RTSP Session建立RTP/UDP/IP媒體流連接和RTSP/TCP/IP控制鏈路連接,媒體流經(jīng)由RTP連接傳到客戶端,以RTSP控制RTP媒體流的播放,如此完成整個(gè)流處理過程,即客戶端通過發(fā)起RTSP信令和流媒體服務(wù)器進(jìn)行交互,實(shí)現(xiàn)媒體流的發(fā)起和控制,運(yùn)行RTSP協(xié)議獲取客戶端可操作的方法,并建立客戶端與流媒體服務(wù)器的通信方式,同時(shí)RTSP附帶SDP描述媒體流的編解碼等信息。RTSP交互成功后,媒體流通過RTP進(jìn)行傳輸,RTCP反饋傳輸?shù)臓顟B(tài)信息。所以,定制客戶端的主要工作就是模擬用戶與DSS進(jìn)行RTSP交互。

      1.1 RTSP協(xié)議

      實(shí)時(shí)流協(xié)議(Real Time Streaming Protocol,RTSP)工作于實(shí)時(shí)傳輸協(xié)議之上,是一個(gè)多媒體播放控制協(xié)議,用來使用戶控制實(shí)時(shí)數(shù)據(jù)的播放,如播放/暫停、快進(jìn)、快退等。

      RTSP是基于文本的協(xié)議,采用ISO 10646字符集和UTF-8編碼方案,行以CRLF中斷[2]。RTSP消息由客戶端到服務(wù)器的請求和服務(wù)器到客戶端的響應(yīng)組成。請求消息的首行包括了應(yīng)用于資源的方法、資源的標(biāo)識符以及所使用的協(xié)議版本(如DESCRIBE rtsp://server IP:554/movie.xxx RTSP/1.0 ),響應(yīng)消息的第一行包含了表示請求是否成功或者失敗的狀態(tài)碼和原因短語(如RTSP/1.0200 OK ,表示請求成功)。表1為RTSP的方法列表,其中C表示RTSP客戶端,S表示RTSP服務(wù)器端。

      表1 RTSP方法列表

      下面是RTSP的一些重要頭字段參數(shù)[3]:

      1)Accept。用于指定客戶端可以接受的媒體描述信息類型。

      2)CSeq。指定了RTSP請求回應(yīng)對的序列號,在每個(gè)請求或回應(yīng)中都必須包括這個(gè)頭字段;對每個(gè)包含一個(gè)給定序列號的請求消息,都會(huì)有一個(gè)相同序列號的回應(yīng)消息;在客戶端發(fā)送一個(gè)請求命令,得到成功的應(yīng)答后,再發(fā)送下一條命令,CSeq的值要加1。

      3)Rang。用于指定一個(gè)時(shí)間范圍,可以使用SMPTE,NTP或clock時(shí)間單元,NPT通常用于指示播放、暫?;蛘咪洸サ拈_始/結(jié)束時(shí)間。

      4)Session。Session ID是由服務(wù)器收到SETUP信令并成功處理后生成的一個(gè)會(huì)話索引并通過響應(yīng)消息發(fā)送到客戶端,客戶端一旦得到Session ID后,后續(xù)對該媒體流的控制請求都需要帶上會(huì)話ID,會(huì)話ID是每個(gè)媒體流控制的全局標(biāo)志,Session頭字段標(biāo)識了一個(gè)RTSP會(huì)話。

      5)Transport。Transport頭字段包含客戶端可以接受的傳輸選項(xiàng)列表,包括傳輸協(xié)議、地址端口、TTL等,服務(wù)器端也通過這個(gè)頭字段返回實(shí)際選擇的具體選項(xiàng)。

      1.2 客戶端與DSS的RTSP請求處理過程

      客戶端與DSS的RTSP交互過程是:客戶端連接到流服務(wù)器并發(fā)送一個(gè)RTSP請求命令(描述命令為DESCRIBE),DESCRIBE和響應(yīng)DESCRIBE Response構(gòu)成了RTSP的媒體初始化階段,客戶端可以使用Accept頭域,聲明可以接受的格式,流媒體服務(wù)器通過一個(gè)SDP描述來進(jìn)行反饋,反饋信息包括流數(shù)量(video stream/audio stream)、請求的媒體類型等信息??蛻舳朔治鲈揝DP描述,并為會(huì)話中的每一個(gè)流發(fā)送一個(gè)RTSP建立命令(SETUP),RTSP建立命令告訴服務(wù)器客戶端用于接收媒體數(shù)據(jù)的端口(音頻流和視頻流的端口不同)。在SETUP Response中,服務(wù)器產(chǎn)生Session ID,在Session頭域攜帶該信息,并返回會(huì)話相關(guān)信息。流媒體連接建立完成后,客戶端發(fā)送一個(gè)播放命令(PLAY),PLAY方法請求服務(wù)器使用SETUP建立的機(jī)制開始發(fā)送數(shù)據(jù),并且通過Range頭域設(shè)置了正常播放時(shí)間(NPT),播放從Range指定的開始位置開始播放,直到Range指定的結(jié)束位置結(jié)束播放,服務(wù)器就開始在UDP上傳送媒體流(RTP包)到客戶端。在播放過程中客戶端還可以向服務(wù)器發(fā)送命令進(jìn)行播放/暫停、快進(jìn)、快退等。最后,客戶端可發(fā)送一個(gè)終止命令(TERADOWN)來結(jié)束流媒體會(huì)話,服務(wù)器釋放已經(jīng)分配的資源。RTSP交互的示意時(shí)序圖如圖1所示。

      圖1 DSS的RTSP交互時(shí)序圖

      2 定制客戶端具體實(shí)現(xiàn)流程

      定制客戶端主要是用于對流媒體服務(wù)器的點(diǎn)播并發(fā)能力進(jìn)行測試,所以定制并發(fā)模擬客戶端工具需滿足以下條件:

      1)客戶端工具需與DSS之間完成RTSP協(xié)議交互(DESCRIPTION,SETUP,PLAY 需走通)。

      2)客戶端可以不接收媒體服務(wù)器的流,但需與服務(wù)器之間保持持續(xù)的在線狀態(tài),并讓媒體服務(wù)器從網(wǎng)口發(fā)出流(在UDP上傳送媒體流RTP包)。

      3)客戶端工具請求的媒體文件需具有自動(dòng)循環(huán)的功能。

      4)客戶端工具能根據(jù)設(shè)定的系列文件名稱自動(dòng)去循環(huán)請求服務(wù)器上相應(yīng)的媒體文件。

      5)客戶端工具有一定的擴(kuò)展性,不局限于單純的DSS服務(wù)器,對修改了的DSS或者其他的流媒體軟件(只要是通過RTSP協(xié)議與客戶端進(jìn)行交互的)也能進(jìn)行模擬客戶端(要求是只做字符串級別的修改,就能實(shí)現(xiàn)對不同媒體服務(wù)器模擬客戶端)。

      根據(jù)以上對定制客戶端測試工具的要求和圖1所示的RTSP協(xié)議交互時(shí)序圖,具體實(shí)現(xiàn)過程如下:

      1)定制客戶端的輸入界面

      定制客戶端的總體設(shè)計(jì)以對話框的形式展現(xiàn),用對話框來實(shí)現(xiàn)對訪問的服務(wù)器IP地址、影片格式和多文件路徑的讀取。圖2是為訪問不同媒體文件的定制客戶端設(shè)計(jì)的輸入對話框界面。

      圖2 訪問不同媒體文件的定制客戶端界面(截圖)

      2)通過SOCKET發(fā)送RTSP信令與DSS進(jìn)行點(diǎn)播請求

      DSS源碼中應(yīng)用了大量的SOCKET和線程對流媒體服務(wù)器所涉及的信令協(xié)議進(jìn)行處理,所以該定制客戶端在模擬用戶與DSS進(jìn)行RTSP信令交互時(shí),也主要應(yīng)用到SOCKET和線程。具體信令實(shí)現(xiàn)流程如圖3所示。

      用SOCKET實(shí)現(xiàn)向服務(wù)器發(fā)起RTSP請求,就是先建立一個(gè)端口,類似于createsocket(),通過connect()將客戶端和服務(wù)器端連接,連接成功后,客戶端與流媒體服務(wù)器端進(jìn)行RTSP 信令交互:DESCRIBE->SETUP(video)-> SETUP(audio)->PLAY-> TERADOWN??蛻舳私邮茼憫?yīng)socket.recv(),分析接收到的響應(yīng)信息RTSP信令響應(yīng)消息,Response(RTSP/1.0200 OK…)表示信令請求成功。

      3)實(shí)現(xiàn)客戶端訪問多個(gè)媒體文件

      在實(shí)現(xiàn)訪問多個(gè)媒體文件時(shí),針對上文所描述的定制客戶端需滿足條件中的第3條和第4條,對訪問的多個(gè)不同媒體文件的文件命名有一定的限制,即文件命名必須遵循從1,2,3,…,N,…,當(dāng)對話框上輸入請求訪問的多文件路徑是N時(shí),定制客戶端就循環(huán)依次訪問1~N個(gè)媒體文件,這樣就實(shí)現(xiàn)了客戶端對不同文件的訪問。

      圖3 實(shí)現(xiàn)RTSP信令交互具體流程圖

      4)實(shí)現(xiàn)以多IP(虛擬IP)多端口形式訪問不同媒體文件

      圖4的程序段DifferentRequest()函數(shù)就是實(shí)現(xiàn)多IP多端口對不同媒體文件的訪問,其中代碼中設(shè)置的客戶端初始虛擬IP是192.168.211.10。

      圖4 功能擴(kuò)展部分程序段

      5)擴(kuò)展性開發(fā)

      在對其擴(kuò)展性進(jìn)行開發(fā)時(shí),對不同媒體服務(wù)器模擬客戶端,整體設(shè)計(jì)、程序的算法和信令發(fā)送方式都不需要修改,根據(jù)相應(yīng)的RTSP交互流程,實(shí)現(xiàn)時(shí)只須修改SOCKET中有關(guān)信令的部分字符串,即只是實(shí)現(xiàn)流程中的第2步中圖3所涉及到的RTSP協(xié)議信令字符串有所不同,其余步驟都不變。

      例如針對下面測試中用到的修改的DSS流媒體服務(wù)器(支持MPEG-2 TS流),在與客戶端進(jìn)行RTSP信令交互時(shí),具體流程是 OPTION->DESCRIBE->SETUP->PLAY->TEARDOMN,比未修改的DSS多了一條OPTION命令,并且只須通過一條SETUP命令發(fā)起音視頻請求,在實(shí)現(xiàn)定制客戶端時(shí)只需要通過SOCKET對信令發(fā)送的內(nèi)容做出相應(yīng)修改,其余部分都不變。

      3 對定制客戶端進(jìn)行測試及驗(yàn)證

      根據(jù)定制模擬客戶端工具需滿足的條件對其進(jìn)行測試,因?yàn)橛袛U(kuò)展性的要求,所以這里將針對兩種流媒體軟件進(jìn)行模擬客戶端,分別是蘋果公司的DSS流媒體軟件(支持MOV格式)和經(jīng)過修改后的DSS流媒體軟件(支持MPEG-2 TS 格式)。

      3.1 測試設(shè)備及環(huán)境

      因?yàn)橐槍煞N流媒體軟件進(jìn)行模擬客戶端,所以在寶德服務(wù)器上將安裝兩套流媒體軟件,先裝未修改的DSS,測試完成后,卸載未修改的DSS,再安裝修改的DSS對定制客戶端進(jìn)行擴(kuò)展性測試。所以在整個(gè)測試過程中所用到的主要測試設(shè)備如表2所示。

      表2 主要測試設(shè)備

      測試環(huán)境為寶德PT6220G服務(wù)器與PC客戶端通過交換機(jī)構(gòu)成一個(gè)完整的流媒體系統(tǒng),組建獨(dú)立局域網(wǎng)進(jìn)行測試,網(wǎng)絡(luò)拓?fù)鋱D如圖5所示。

      圖5 測試網(wǎng)絡(luò)拓?fù)鋱D

      3.2 測試過程及結(jié)果

      3.2.1 針對未修改的DSS模擬客戶端

      蘋果公司的DSS支持基于WEB的后臺管理,如果有用戶連接到DSS服務(wù)器,并且服務(wù)器向客戶端發(fā)出流,在其管理頁面的Connectted Users界面中就可以查看當(dāng)前連接用戶的地址、傳輸碼率、傳輸數(shù)據(jù)量、丟包比例、傳輸時(shí)間和連接文件等信息[4]??梢酝ㄟ^Connectted Users界面顯示的內(nèi)容對定制客戶端工具進(jìn)行檢驗(yàn),如果定制客戶端實(shí)現(xiàn)了模擬并發(fā)用戶,Connectted Users界面就會(huì)顯示當(dāng)前連接的用戶信息。

      運(yùn)行定制客戶端,在對話框上輸入服務(wù)器IP:192.168.111.211,影片格式為.mov,多文件路徑為20,(即定制客戶端模擬20個(gè)用戶同時(shí)訪問1.mov~20.mov這20個(gè)不同影片),查看DSS的WEB后臺管理端的Connectted Users界面顯示的內(nèi)容,顯示結(jié)果如圖6所示,顯示當(dāng)前有20個(gè)用戶連接到DSS服務(wù)器上,并且客戶端的IP地址是192.168.111.111,訪問的文件是1.mov~20.mov這20個(gè)不同的影片,并且流媒體服務(wù)器有向客戶端發(fā)出流,由此證明了針對蘋果公司的DSS流媒體服務(wù)器,此定制客戶端實(shí)現(xiàn)了模擬多個(gè)用戶(多端口)訪問多個(gè)不同的媒體文件。

      圖6 DSS的WEB管理界面(截圖)

      3.2.2 針對修改的DSS模擬客戶端

      因?yàn)樾薷牧说腄arwin流媒體服務(wù)器(支持MPEG-2 TS格式)修改了文件讀取模塊,所以DSS的WEB后臺管理頁面不能顯示當(dāng)前用戶連接數(shù),并且定制客戶端僅模擬用戶向服務(wù)器發(fā)起RTSP請求,不需要進(jìn)行播放流,所以對定制客戶端的擴(kuò)展性測試可以用Wirshark抓包工具進(jìn)行抓包,根據(jù)對抓包結(jié)果的分析,可以明確地檢驗(yàn)出該定制客戶端是否模擬了客戶與服務(wù)器進(jìn)行了RTSP交互。所以可以通過抓包的方式對定制客戶端工具的擴(kuò)展性進(jìn)行測試。

      對定制客戶端的擴(kuò)展性進(jìn)行測試,在服務(wù)器上安裝修改了的DSS流媒體軟件(支持MPEG-2 TS格式),模擬PC上運(yùn)行定制客戶端和Wirshark,如果模擬的并發(fā)數(shù)過多的話,抓包結(jié)果會(huì)很大,這里只需要證明定制客戶端能模擬用戶訪問修改了的DSS,所以在測試過程中對不同文件的模擬并發(fā)數(shù)定為3(即只模擬3個(gè)用戶同時(shí)訪問服務(wù)器)。

      在定制客戶端對話框中輸入服務(wù)器IP:192.168.111.211,影片格式為.ts,多文件路徑為3(即定制客戶端模擬3個(gè)用戶同時(shí)訪問1.ts,2.ts,3.ts這3個(gè)影片),圖7是RTSP協(xié)議的抓包截圖,圖8是UDP協(xié)議的抓包截圖。

      通過圖7可以看到定制客戶端(IP:192.168.111.111)與服務(wù)器端(IP:192.168.111.221)進(jìn)行了RTSP交互(請求了1.ts~3.ts這3個(gè)影片)。通過圖8可以看到服務(wù)器向 IP 為192.168.211.10,192.168.211.11,192.168.211.12這3個(gè)虛擬用戶IP發(fā)出了UDP包,即服務(wù)器有向客戶端提供媒體流。由此證明了針對修改了的DSS流媒體服務(wù)器,修改了的定制客戶端實(shí)現(xiàn)了模擬多個(gè)用戶(多IP)訪問多個(gè)不同的媒體文件,即本文所設(shè)計(jì)的定制客戶端還具有一定的擴(kuò)展性,能對不同流媒體軟件進(jìn)行模擬并發(fā)用戶。

      4 小結(jié)

      隨著流媒體技術(shù)的廣泛應(yīng)用和IPTV業(yè)務(wù)的發(fā)展,有關(guān)音視頻互動(dòng)的系統(tǒng)已轉(zhuǎn)變到以用戶為導(dǎo)向的互動(dòng)服務(wù)上來,因此對流媒體視頻點(diǎn)播性能也提出了更高的要求。本文就流媒體軟件點(diǎn)播并發(fā)能力的測試設(shè)計(jì)定制客戶端,測試結(jié)果顯示定制客戶端測試工具有很好的性能,如果要對單一媒體文件進(jìn)行訪問,定制客戶端的整體設(shè)計(jì)框架不變,只是循環(huán)訪問的對象不同,而且本文設(shè)計(jì)的客戶端不僅僅能針對DSS模擬客戶端,只要對信令部分稍加修改,還可以針對改進(jìn)了的DSS以及其他的服務(wù)器模擬客戶端,在對流媒體軟件的壓力測試中得到了廣泛應(yīng)用。

      [1]Apple Computer Inc.QuickTime streaming server modules programming guide[EB/OL].[2011-06-01].http://images.apple.com/quicktime/pdf/QTSS_Modules.pdf.

      [2]Real time streaming protocol(RTSP)[EB/OL].[2011-06-01].http://www.tml.tkk.fi/Studies/Tik-110.300/1998/Essays/rtsp.html.

      [3]RTSP 協(xié)議學(xué)習(xí)筆記[EB/OL].[2011-06-01].http://wenku.baidu.com/view/32a66e1c59eef8c75fbfb3c3.html.

      [4]Apple Computer Inc.QuickTime streaming/server darwin streaming server administrator’s guide[EB/OL].[2011-06-01].http://manuals.info.apple.com/en/quicktimestreamingsrvradminguide.pdf.

      [5]甘玲,邱勁,張璞.面向?qū)ο蠹夹g(shù)與Visual C++[M].北京:清華大學(xué)出版社,2006.

      猜你喜歡
      擴(kuò)展性信令客戶端
      SLS字段在七號信令中的運(yùn)用
      移動(dòng)信令在交通大數(shù)據(jù)分析中的應(yīng)用探索
      縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      提高初中階段學(xué)生英語擴(kuò)展性閱讀能力策略分析
      基于信令分析的TD-LTE無線網(wǎng)絡(luò)應(yīng)用研究
      高中物理如何充分利用擴(kuò)展性欄目
      LTE網(wǎng)絡(luò)信令采集數(shù)據(jù)的分析及探討
      比ITX還小華擎推首款Mini—STX主板
      電腦愛好者(2016年8期)2016-04-28 20:54:47
      色达县| 大邑县| 华宁县| 沾益县| 吕梁市| 罗平县| 浏阳市| 合作市| 台州市| 独山县| 泰安市| 五莲县| 旬阳县| 芦溪县| 济阳县| 尖扎县| 瑞金市| 册亨县| 镇平县| 白水县| 永宁县| 新绛县| 会东县| 遂平县| 遵义市| 夏津县| 海南省| 莱州市| 徐闻县| 仪陇县| 六枝特区| 云和县| 伊金霍洛旗| 固阳县| 三台县| 定远县| 抚松县| 建湖县| 临汾市| 普定县| 惠安县|