李岳
(91941 部隊45 分隊,遼寧 葫蘆島125000)
目前市場上的導播系統多數具備聯網控制功能,從最開始的單一形態過渡到現階段的智能形態,實現了本地控制向聯網導播的轉變[1]。文件傳輸成為導播系統的基本通信功能,隨著網絡技術的更新,傳統文件傳輸方式已經不能適應網絡化時代的需求。目前大多數的導播系統采用的網絡協議占用CPU 內存較高,文件發送傳輸速度較慢,對于視頻文件更需要很高的帶寬要求,為系統運行增加的負擔,需要針對此問題進行改善。UDP 協議具有無連接的特點,可降低系統開銷,加快傳輸速度[2]。因此本文基于UDP 設計導播系統文件傳輸模塊,提高文件傳輸效率,使導播系統更好地適應復雜網絡環境變化。
文件傳輸服務通常是對服務模塊的抽象化處理,將其功能獨立出來完成單獨服務,方便系統對文件的調用。為確保文件傳輸模塊提供良好的傳輸方案,首先對接收系統傳輸服務的文件請求進行設計,維護文件狀態。文件傳輸服務通過任務XML文件提供服務接口,與具體的語言無關,傳輸的節點不必建立直接的通信關聯,減少了不同節點間的耦合度,保證傳輸的獨立性[3]。設計兩個目錄,一個目錄(T)用于存放程序指定任務,另一個目錄(R)存放傳輸服務的狀態和結果。外源程序在傳輸服務請求階段,生成任務XML 文件,文件名由字符串和時間構成,用于描述傳輸文件位置和必要信息。監控模塊動態檢測T 目錄內容,一旦檢測到傳輸任務,提取任務信息并啟動傳輸,在R 目錄中記錄同名結果文件,并根據傳輸的不同階段記錄文件狀態標識。傳輸模塊通過文件配置請求,展現系統擁有的功能,而外源程序可將需求寫入文件配置請求中,導播系統通過配置請求獲知文件傳輸要求,進行相應的操作。文件配置請求功能作為傳輸服務和外源程序的接口,在保證二者獨立性的同時,實現了相互的連通,為后續文件數據的交換提供基礎。
文件傳輸處理主要是根據外源程序的請求,進行文件數據的交換與傳輸。總體的功能主要包括三部分,首先是對各子模塊進行中樞調度,其次在各子模塊與外部模塊間進行數據接收和發送,最后對文件進行傳輸調度處理。文件傳輸處理首先考慮對網絡傳輸協議的選取,本文選取UDP 協議負責文件數據的發送與接收。UDP 主要完成兩方面任務,一是發送接收數據,二是控制擁塞。發送窗口受接收端的反饋調節,在一個周期內確認數據包并將其發送至接收端,并將反饋結果傳回至發送端。UDP 啟動時,設定其發送窗口的初始大小為2。在文件數據傳輸過程中,傳輸模塊接收到數據包,發送端調整發送窗口大小,可以表示為:

式(1)中,Cud表示發送后的更新窗口大小;Cpr表示更新前的窗口大小;P 表示確認反饋的文件數據包數量。UDP 啟動階段,數據包發送間隔幾乎為零,能夠充分利用帶寬資源快速啟動,減少了其它協議反復進入啟動階段的時間,提高數據傳輸效率。提取發送和接收最大窗口的較小值,作為更新窗口的限制值,當窗口達到限制值,說明啟動階段結束,進入擁塞控制階段。在控制階段,接收端能夠接收到發送的數據,說明帶寬存在可被利用空間,發送速率在固定時間間隔的增量,控制了文件傳輸的效率與穩定性,有利于網絡的平衡與穩定性。在數據持續發送階段,如果收到了接收端的反饋,則說明網絡開始出現擁塞,此時發送端降低速率,緩解鏈路擁堵。其它協議多采用重置窗口大小的方式,或重新進入啟動階段,影響數據傳輸速率。而本文方法可通過速率的自動調節變化,減緩網絡鏈路的飽和趨勢,為數據傳輸提供比較可靠的保障。
文件傳輸過程中,需要對發送類和接收類文件提供必要的序列化自定義,設置文件格式和傳輸的相應參數。類前需要增加可序列化標志,便于添加需要的參數。序列化是將狀態信息轉化為可存儲和可傳輸的過程,方便保存和傳輸數據,增加傳輸協議參數的靈活性。序列化標志主要定義了文件三個公共屬性,包括加密值、數據包和序列號,具體包含了加密值、文件名、數據包數量、長度和大小。在發送階段觸發相關事件,接收階段實現參數的傳遞,此時需要考慮數據丟包和超時重發的問題。對于數據丟包檢測,定義屬性為ReFileList,類型為<序列號,接收標識>,初始化全部為未被接受狀態。在此基礎上定義計時器類對象,判斷是否傳輸超時。當接收方同意文件時,啟動計時器,開始記錄傳輸時間。觸發超時事件,要求重新發送文件,此時在<序列號,接收標識>列表中進行查詢。文件接收時,首先創建臨時文件,對其進行安全文件包裝,并初始化列表。文件為接收狀態,不進行讀操作并返回;否則,接收文件數量增加1。在緩沖區進行異步讀寫操作,進入文件調回。文件傳輸完畢后,進行校驗,調用靜態加密值,加密值相同則為同一文件,結束寫文件操作。文件接收完畢后,釋放使用資源,以此完成數據通信。
為檢驗本文設計的文件傳輸模塊的應用效果,與傳統導播系統的文件傳輸模塊進行對比。傳統的導播系統主要采用TCP和RTP 協議,將采用TCP 協議的傳輸模塊設置為傳統模塊1,RTP 協議設定為傳統模塊2,測試文件傳輸效率。
首先對文件基本傳輸功能進行測試。從單個文件傳輸時間和任務并發度兩個方面,測試文件傳輸性能。
隨單個文件增大,文件傳輸時間相應增加,這是由于受到網絡帶寬的限制,文件傳輸速度隨文件增大而降低。由于本文模塊選擇的傳輸協議具有高帶寬優點,可進行路徑選擇,因此本文設計方法的傳輸時間明顯小于傳統方法,具有一定通信優勢。
任務并發度主要由導播系統的列隊大小決定,直接影響到單個文件的傳輸速度。根據表1 的測試結果,并發任務量的增加,文件傳輸時間增大,由于系統總帶寬固定,因此增加文件傳輸任務量后,傳輸速度相應降低,消耗的傳輸時間增加。本文模塊的傳輸時間隨文件數量增加的幅度小于傳統模塊,能夠有效并發處理多個發送和接收任務。綜合上述基本文件傳輸功能的測試結果,本文設計的導播系統文件傳播模塊具有一定的穩定性,能夠保證完整的文件傳輸。
在檢驗基本文件傳輸功能的基礎上,對導播系統文件傳輸效率進行測試。采用文件傳輸時間和速度,作為衡量傳輸效率的指標,分別測試不同客戶端條件下的傳輸效率。文件傳輸時間測試結果見表2,傳輸速度測試結果見表3。

表2 不同客戶端條件下文件傳輸時間測試結果

表3 不同客戶端條件下文件傳輸速度測試結果
根據表2 和表3 的測試結果,在單客戶端條件下,本文設計的文件傳輸模塊的傳輸時間低于傳統模塊,速度高于傳統模塊;在多客戶端條件下,本文傳輸時間和速度波動較小,基本可保持在較高的水平,而傳統模塊的傳輸時間增加,速度明顯下降。由于本文設計模塊可同時對多客戶端傳輸文件,效率相對較高;而傳統模塊缺少組播功能,在多客戶端時需采用多線程的逐一傳送方式,傳輸效率相對較低。綜合上述實驗結果,本文基于UDP 的導播系統文件傳輸模塊,可以實現基本的文件傳輸功能,與傳統方法相比,傳輸時間短速度快,因此具有較高的傳輸效率,可應用于實際導播系統中。
本文設計的文件傳輸模塊雖然在一定程度上提高了傳輸效率,但還存在不足之處。后續應針對文件傳輸的安全性進行研究,為保證用戶的隱私安全,添加有效的驗證機制,對文件傳輸進行安全保護。