韋明萬 龐懷釗
(1.廣西廣播電視無線傳播樞紐臺;2.廣西廣播電視技術中心南寧分中心)
隨著廣播電視業務的擴大,如今無線覆蓋發射臺站的網絡設備隨之增多,遠程調試配置設備成為不可或缺的重要工作環節。但上級遠程監控系統訪問臺站局域網設備時,常常因受到局域網路由器的限制而不能直接通過IP、端口進行訪問,而是先需要進行IP、端口映射操作后方可遠程訪問,給遠程維護工作帶來諸多不便,影響維護工作的快速開展。為此而設計了此代理軟件,用以簡化路由映射功能,實現UDP、TCP數據報文的代理、轉發和實時監控設備在線情況等,最終提高工作效率。
本軟件可實現路由映射功能和UDP、TCP數據包的代理、轉發。軟件運行穩定無異常,數據傳輸安全可靠,功能便捷、配置簡單,代碼易維護。
1.開發平臺:Microsoft Visual Studio 2019
2.開發語言:C#、XML
目前使用路由器作為網絡出口設備的臺站要進行站內設備調試時主要方式有:
1. 遠端使用telnet命令進入路由器,映射網絡站內設備的IP、端口進行搭建通信網絡鏈路;
2. 現場人工接入網線到網絡設備,如發射機、碼流分析儀、音視頻服務器等。
以上兩種方式,均不太理想,在網絡條件允許的情況下,為盡可能的實現維護的簡單而設計了此軟件。客戶端要訪問設備時,先將欲訪問設備站內的IP及端口提供給運行于工控計算機上的代理轉發服務軟件,再由代理轉發軟件間接與設備建立好通訊鏈路,作為客戶端與設備間的通信中轉,其過程用戶看不見,摸不著,形成了訪問的虛擬直達。之后客戶端與設備通訊均先經過代理服務軟件進行雙向數據轉發,即用戶只看到訪問和回復。拓撲如圖1所示。

圖1 網絡拓撲圖
代理軟件分為客戶端和服務端,臺站電腦需運行服務端程序并開啟監聽功能,隨時等待來自客戶端的TCP/UDP會話請求。軟件均采用C#+WinForm窗體設計,并運行于C/S模式。設計過程使用模塊化、分功能、分層次類庫設計,實現低耦合,高維護。為適應臺站場景需要,服務端程序還增加了定期掃描網絡設備增減、在線、離線等情況,有助于臺站維護人員快速查找與解決設備通信故障問題,結果使用SQL Server進行數據存儲,以供日后查詢。
客戶端:初始化訪問目標設備的IP、端口并向服務端發起會話請求,另外與服務器同步數據,實時顯示來自服務器主動報送的發射機、電源復位器、切換器等網絡設備的通信狀態。
服務端:監聽來自客戶端的會話請求,從通信消息中提取目標設備的IP和端口,快速建立起虛擬直達設備的鏈路供客戶訪問。另外定期掃描臺站的各種網絡設備,把在線,離線、發現新設備等情況發送給已經建立起連接通道的客戶端。其最大的作用就是消息的接收、轉發,猶如快遞服務站。

圖2 軟件服務端流程圖
代理流程如圖2所示,首先代理服務端收到客戶端訪問設備請求后將數據包轉發給設備,若不是則結束會話;一定時間內若設備不響應則會話結束;若設備響應則代理服務端將數據包發給客戶端;客戶端再次請求時重復循環,若不再請求,則結束會話。
類似海康威視上位機請求畫面的時候,由于數據訪問頻繁,容易導致轉發處理能力差、畫面延遲、界面卡死等異常;為解決這些問題,軟件采用工廠模式設計來提供接口調用,同時還引入了多線程的概念。主要應用開發環境提供的多線程組件,即用BackGroundWorker組件執行后臺線程異步操作。其能完美解決前后臺數據交互,同時還能減少數據包的堆積和數據延遲問題,最終提高轉發處理能力。
應用結果如圖3所示,因網絡路由不允許直接訪問內部8000端口,僅開通9900端口出入站,此時海康威視上位機想直接遠程訪問臺站硬盤錄相機時,無法建立連接。這種情況下,客戶端只需要提前將硬盤錄相機的IP:192.168.1.X和端口:8000一起發給服務端,服務端收到后立即構建通訊鏈路,并開啟代理功能,此時海康威視上位機就可以通過對外IP和9900端口間接訪問到數據。經過多個場景應用及長時間測試,目前運行穩定,使用靈活、配置簡單。

圖3 上位機訪問實時畫面
本程序代理功能需要客戶端與服務端配合使用,無需在路由器上映射大量內部設備端口即可實現在站外網絡訪問站內設備,還可以實時掌握設備在線、離線等情況,為維護人員識別設備通信故障提供幫助。軟件輕小、免安裝,即用即運行,操作簡單方便,一定程度上提高了安全播出維護工作的效率。