• 
    

    
    

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

      網(wǎng)絡(luò)監(jiān)控系統(tǒng)控制命令傳輸方案的設(shè)計

      2012-07-18 07:40:42徐佳健
      關(guān)鍵詞:字節(jié)命令消息

      徐佳健

      (浙江工業(yè)大學信息工程學院,浙江杭州310023)

      0 引言

      隨著網(wǎng)絡(luò)通信和多媒體技術(shù)的快速發(fā)展,視頻監(jiān)控技術(shù)也得到了飛速發(fā)展,視頻監(jiān)控進入到了網(wǎng)絡(luò)時代,網(wǎng)絡(luò)監(jiān)控系統(tǒng)已成為了主流。網(wǎng)絡(luò)監(jiān)控系統(tǒng)是一個集多媒體信息的綜合性、通信的分布性和監(jiān)控的實時性等于一體的綜合系統(tǒng)。網(wǎng)絡(luò)監(jiān)控系統(tǒng)的基本原理是:視頻采集前端對采集的數(shù)據(jù)壓縮轉(zhuǎn)換并發(fā)送到網(wǎng)上,一個專門的服務(wù)器對視頻資源和用戶操作進行管理,客戶端通過網(wǎng)絡(luò)連接到服務(wù)器可以觀看視頻和控制操作[1]。網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)傳輸?shù)臄?shù)據(jù)根據(jù)數(shù)據(jù)特點可分成兩類:控制類數(shù)據(jù)和音視頻數(shù)據(jù)??刂茢?shù)據(jù)主要包括操作控制指令、用戶狀態(tài)查詢數(shù)據(jù)等,數(shù)據(jù)對傳輸可靠性要求比較高,數(shù)據(jù)傳輸量也比較少。監(jiān)控系統(tǒng)作為通信系統(tǒng)的一種,需要采用相應(yīng)的控制信令使系統(tǒng)內(nèi)的所有設(shè)備協(xié)同工作,使系統(tǒng)正常運行??刂菩帕钍峭ㄐ胖斜夭豢缮俚闹匾M成部分,客戶端和服務(wù)器相互交換各自狀態(tài)信息和提出對其他設(shè)備的控制要求,使網(wǎng)絡(luò)系統(tǒng)作為一個整體運行。目前對控制信令的要求主要有良好的可擴展性,簡單性,互操作和可重用性等??蓴U展性滿足了系統(tǒng)升級擴容的需求,簡單性和可重用性滿足易用,方便調(diào)試等需求[2]。針對系統(tǒng)要求,不同廠商也制定了相應(yīng)協(xié)議,在實現(xiàn)上也有各自獨特方式[3]。本文將根據(jù)監(jiān)控系統(tǒng)對傳輸命令的要求,分析傳輸層協(xié)議特點,提出傳輸方案:選取TCP協(xié)議,確定命令格式,用Socket實現(xiàn)控制命令的發(fā)送、接收和解析。將實現(xiàn)利用現(xiàn)有網(wǎng)絡(luò)資源,簡單準確可靠地傳輸命令,提高網(wǎng)絡(luò)監(jiān)控系統(tǒng)的效率。

      1 控制命令協(xié)議分析

      1.1 傳輸層協(xié)議選擇

      雖然不同的網(wǎng)絡(luò)監(jiān)控系統(tǒng)采用的系統(tǒng)結(jié)構(gòu)和實現(xiàn)方式等有所不同,但一般都包括監(jiān)控客戶端和遠程服務(wù)器,采用C/S(客戶/服務(wù)器)模式。服務(wù)器與客戶端之間的通信網(wǎng)絡(luò)是普通TCP/IP網(wǎng)絡(luò),由文獻4得到網(wǎng)絡(luò)在傳輸層提供了面向連接的TCP和無連接的UDP兩種協(xié)議。TCP可以提供可靠的字節(jié)流服務(wù),保證傳輸報文不會出錯、丟失、順序錯落等,適用與可靠性要求高的場合。而UDP沒有TCP的建立連接、擁塞控制等復(fù)雜機制,傳輸?shù)臄?shù)據(jù)可能出錯、丟失、混亂等,如果要保證可靠數(shù)據(jù)傳輸,需要在上層處理這些意外情況。

      在選擇通信協(xié)議時,從幾方面考慮:實時性、可靠性、數(shù)據(jù)傳輸量等??紤]到控制命令數(shù)據(jù)可靠性要求高,數(shù)據(jù)傳輸量少等特點,因此傳輸層控制命令可以有兩種方式:一種是采用TCP協(xié)議實現(xiàn)準確可靠發(fā)送;另一種是采用UDP協(xié)議數(shù)據(jù)報,針對可能發(fā)生的數(shù)據(jù)報丟失,可以采用多次重發(fā)來保證數(shù)據(jù)傳輸?shù)臏蚀_性。采用TCP協(xié)議容易實現(xiàn),而采用UDP則要求數(shù)據(jù)的基本格式中增加傳輸控制信息,并在通信的兩端做必要的處理,以保證其傳輸?shù)臏蚀_。同時對于多次重發(fā)的相同控制命令,要求接收端能夠識別并忽略重發(fā)的同一控制命令[4]。對兩種協(xié)議進行比較,從簡單可靠等方面考慮,確定在傳輸層采用TCP適應(yīng)傳輸要求。

      1.2 應(yīng)用層協(xié)議定義

      為了使服務(wù)器和客戶端軟件之間相互配合完成視頻監(jiān)控系統(tǒng)的各項功能,需要有一個統(tǒng)一的應(yīng)用層協(xié)議,考慮控制命令根據(jù)服務(wù)不同可分為幾種情況:(1)連接、登錄請求:用戶使用客戶端向服務(wù)器發(fā)出登錄請求,在登錄請求數(shù)據(jù)包中包括用戶名、密碼及客戶端所在網(wǎng)絡(luò)地址等。服務(wù)器對用戶身份確定,向用戶返回登錄的確認信息。如果登錄成功,同時得到監(jiān)控設(shè)備信息列表;(2)視頻監(jiān)控和設(shè)備操作請求:客戶端從監(jiān)控設(shè)備列表中選擇監(jiān)控設(shè)備,發(fā)送視頻監(jiān)控請求。服務(wù)器確認視頻信息,對監(jiān)控設(shè)備采集的視頻數(shù)據(jù)轉(zhuǎn)發(fā)??蛻舳税l(fā)出對設(shè)備具體操作控制命令,服務(wù)器執(zhí)行操作返回結(jié)果。

      針對控制命令內(nèi)容的特點和系統(tǒng)的簡單性和可擴展性要求,在借鑒已有協(xié)議的基礎(chǔ)上如圖1所示定義以下傳輸命令格式。

      圖1 控制命令傳輸格式

      消息長度:2字節(jié),標識此字段以后有效數(shù)據(jù)的長度,按字節(jié)計數(shù)。數(shù)據(jù)類型:1字節(jié),標識數(shù)據(jù)為何種類型數(shù)據(jù)。客戶端標示:4字節(jié),客戶端方的唯一身份標識。服務(wù)器標示:4字節(jié),服務(wù)器方的身份標示。消息體:實際數(shù)據(jù)以字符串的形式存儲,根據(jù)需求分成幾個字段,每個字段以空格分隔。

      這種格式傳輸方法的優(yōu)點是比較簡潔地實現(xiàn)了傳輸,簡化了命令數(shù)據(jù)的接收端解析和發(fā)送端生成,同時保證了傳輸?shù)目煽?,減少了字節(jié)開銷,提高傳輸效率。但同時無法與其他系統(tǒng)進行互通,依賴專用監(jiān)控系統(tǒng)。

      2 控制命令傳輸方案設(shè)計

      2.1 控制命令傳輸方案總體設(shè)計

      在確定了傳輸協(xié)議后,給出控制命令傳輸?shù)目傮w設(shè)計,如圖2所示。采用Socket編程實現(xiàn),分成發(fā)送和接收兩部分。發(fā)送端根據(jù)消息格式生成要發(fā)送的數(shù)據(jù)結(jié)構(gòu),通過Socket發(fā)送。接收端接收時對接收數(shù)據(jù)重組處理,組成完整消息再進行解析得到實際命令數(shù)據(jù)。

      圖2 控制命令傳輸總體設(shè)計

      2.2 Socket和多線程實現(xiàn)

      在網(wǎng)絡(luò)編程中,可以不必考慮TCP/IP的實現(xiàn)細節(jié),只需利用協(xié)議的網(wǎng)絡(luò)編程接口Socket(套接字)即可。在Windows中,網(wǎng)絡(luò)編程接口是Windows Socket,它包含提供了幾種類型套接字,流式套接字、數(shù)據(jù)報套接字和原始套接字,基于TCP的編程是采用流式套接字。

      套接字又有阻塞和非阻塞模式,在阻塞模式下,調(diào)用函數(shù)只有在完成操作后才返回,在單線程下整個進程都會阻塞沒有響應(yīng)。而在非阻塞模式下,函數(shù)立即返回。考慮到有時候接收的數(shù)據(jù)比較大,用非阻塞接收到的一個包可能不完整,只有前面部分數(shù)據(jù),再接收接下來的包不太好處理。所以采用阻塞模式加多線程實現(xiàn)[5]。

      為了利用面向?qū)ο蠹夹g(shù)編程的抽象封裝等特點,本文自定義了一個叫CComm的新類,封裝了一些函數(shù),如CreateSocket、ConnectToServer、SendMsg、Recv等,這些函數(shù)屏蔽了面向連接的通信程序的實現(xiàn)細節(jié),如創(chuàng)建、連接、發(fā)送和接收等,在這些函數(shù)里,動態(tài)創(chuàng)建輔助線程。可以在主程序里建立一個CComm的對象,通過調(diào)用成員函數(shù)來實現(xiàn)通信功能。

      2.3 固定格式二進制數(shù)據(jù)的發(fā)送

      發(fā)送的消息頭是按照固定字節(jié)字節(jié)的,可以通過定義一個結(jié)構(gòu)體來表示。由于結(jié)構(gòu)體對象在內(nèi)存中分配的空間都是連續(xù)的,所以可以將整個結(jié)構(gòu)體直接按二進制發(fā)送。而在定義過程中要注意結(jié)構(gòu)體內(nèi)存字節(jié)對齊,為了提高存取速度編譯器可能會自動填充字節(jié)滿足對齊[6]。結(jié)構(gòu)體實際占用的值并不是其中各元素所占字節(jié)相加。為了實現(xiàn)數(shù)據(jù)頭按定義的固定長度發(fā)送,在結(jié)構(gòu)體定義時設(shè)置使用#pragma pack設(shè)置字節(jié)對齊方式。#pragma pack(1)將對齊方式設(shè)為1字節(jié)對齊,那么結(jié)構(gòu)體內(nèi)元素就不會填充字節(jié),實現(xiàn)數(shù)據(jù)準確發(fā)送。

      2.4 控制命令數(shù)據(jù)的接收和解析

      數(shù)據(jù)的接收實現(xiàn)是在建立連接后建立新線程進行接收處理。在接收線程中通過無限循環(huán)接收,當程序退出時循環(huán)線程也自動退出。由參考文獻4得到TCP是一種流協(xié)議,是以字節(jié)流的形式傳送給接收者的,沒有固定的報文或報文邊界概念。所以接收時如果對方發(fā)送過快,可能同時發(fā)送過來的好幾個消息都在一個TCP數(shù)據(jù)包中?;蛘甙l(fā)送方發(fā)送的消息太大,分成幾個TCP包發(fā)送。為了確定消息邊界,所以在消息頭中加入數(shù)據(jù)長度,接收時先接收固定字節(jié)數(shù)據(jù),確定接下來的消息長度,再根據(jù)這個長度接收完整個消息。通過實際接收的長度與在包頭定義的長度比較,判斷消息是否完整,如果不完整繼續(xù)接收下一個包接在已有消息后面[7]。

      當消息接收完整以后,按照定義的格式轉(zhuǎn)換成特定的數(shù)據(jù)類型和結(jié)構(gòu)體,通過對消息頭里數(shù)據(jù)的校驗,對不同類型的消息做不同處理。具體消息內(nèi)容在消息體里以字符串的形式存儲。通過對字符串的分割查找等處理后最后得到需要的數(shù)據(jù),在主程序中顯示。解析分成幾層,第一層:跟據(jù)固定頭長度分割為消息頭與消息體兩部分;第二層:解析出消息體中的回車換行符,并以此為界將消息頭和消息體分割成一行行的字段;第三層:根據(jù)格式解析各行的字段名,按照不同的字段名調(diào)用不同的解析函數(shù),最終解析出各個頭字段中的參數(shù)值。

      3 結(jié)束語

      本文在分析和比較傳輸層協(xié)議基礎(chǔ)上,根據(jù)監(jiān)控系統(tǒng)對控制命令的要求,提出了網(wǎng)絡(luò)監(jiān)控系統(tǒng)控制命令的傳輸方案。采用Socket編程實現(xiàn),對發(fā)送接收和解析部分,介紹了解決辦法。

      [1] 余臘生,劉勇.基于網(wǎng)絡(luò)的智能視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2009,30(16):3 879-3 880.

      [2] 王艷艷,房子河,郅晨,等.基于數(shù)字網(wǎng)絡(luò)視頻監(jiān)控的SIP信令系統(tǒng)設(shè)計[J].電視技術(shù),2008,32(5):77-78.

      [3] 郭洪娜.網(wǎng)絡(luò)化數(shù)字視頻監(jiān)控系統(tǒng)的研究與開發(fā)[D].武漢:武漢理工大學,2004.

      [4] Stevens W Richard.TCP/IP Illustrated,Volume 1:The Protocols[M].北京:人民郵電出版社,2010:215 -220.

      [5] 李洪,彪廖,玲俐,等.基于Socket的遠程無線監(jiān)控系統(tǒng)設(shè)計及應(yīng)用[J].自動化與儀器儀表,2009,(3):19-21.

      [6] 郭政慧,王巖.內(nèi)存對齊對網(wǎng)絡(luò)通信程序的影響[J].實驗室研究與探索,2010,29(5):68-70.

      [7] 王宏偉..NET中數(shù)據(jù)加密與網(wǎng)絡(luò)安全傳輸問題[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005,(2):12-14.

      猜你喜歡
      字節(jié)命令消息
      只聽主人的命令
      No.8 字節(jié)跳動將推出獨立出口電商APP
      一張圖看5G消息
      No.10 “字節(jié)跳動手機”要來了?
      移防命令下達后
      簡談MC7字節(jié)碼
      這是人民的命令
      消息
      消息
      消息
      高密市| 怀仁县| 望奎县| 应城市| 澄江县| 英山县| 敖汉旗| 城步| 美姑县| 赤城县| 修水县| 霞浦县| 蕲春县| 临高县| 同仁县| 阿城市| 宿州市| 平湖市| 游戏| 昌平区| 都江堰市| 宜丰县| 吴忠市| 白水县| 江油市| 汉源县| 辰溪县| 北流市| 泾川县| 常熟市| 内乡县| 溧水县| 集贤县| 霍林郭勒市| 盐城市| 同心县| 青州市| 巩留县| 枣庄市| 织金县| 邹平县|