亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Twisted架構(gòu)的GPS協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)

        2013-05-11 09:47:50徐志江阮正杰
        浙江工業(yè)大學學報 2013年2期
        關(guān)鍵詞:設(shè)備設(shè)計

        王 亢,徐志江,阮正杰

        (1.浙江警察學院計算機與信息技術(shù)系,浙江杭州310053;2.浙江工業(yè)大學信息工程學院,浙江杭州310032)

        基于Twisted架構(gòu)的GPS協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)

        王 亢1,徐志江2,阮正杰2

        (1.浙江警察學院計算機與信息技術(shù)系,浙江杭州310053;2.浙江工業(yè)大學信息工程學院,浙江杭州310032)

        提出了一種服務(wù)器端可擴展的基于SIP協(xié)議的GPS設(shè)備協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)架構(gòu),以解決不同廠商GPS設(shè)備私有協(xié)議而導致的兼容性差、服務(wù)器端軟件復(fù)雜等問題.軟網(wǎng)關(guān)基于Python的Twisted開源網(wǎng)絡(luò)框架構(gòu)建,保證了軟件的健壯性和代碼的簡潔性.軟網(wǎng)關(guān)采用SIP協(xié)議對通信會話過程的統(tǒng)一管理,從而分擔了服務(wù)器解析不同私有協(xié)議的系統(tǒng)開銷,簡化了服務(wù)器端軟件的復(fù)雜性,同時加強了通信會話管理與多媒體數(shù)據(jù)擴展能力.

        協(xié)議轉(zhuǎn)換;SIP協(xié)議;Python;Twisted網(wǎng)絡(luò)框架

        近年來,伴隨著GPS技術(shù)的成熟,目前不少設(shè)備廠商對GPS設(shè)備進行了一定深度的開發(fā),對GPS功能進行了擴展.其中較為常見的是,當GPS設(shè)備與服務(wù)器通信會話時,不再是發(fā)送簡單的定位數(shù)據(jù)報,而是對其進行了私有協(xié)議下的數(shù)據(jù)封裝,有時還整合了額外數(shù)據(jù),最后上傳服務(wù)器[1-2].但是在車載定位、錄像采集、車輛管理等大應(yīng)用數(shù)據(jù)整合的背景下[3],目前已有車載GPS設(shè)備與服務(wù)器之間進行通信會話管理和數(shù)據(jù)交互時,往往采用自身私有協(xié)議.不同的GPS設(shè)備有不同的通信協(xié)議,一個運營商擁有多個不同廠家的GPS設(shè)備,這導致了兼容性差、服務(wù)器端軟件復(fù)雜、擴展不便等不足.這使得設(shè)備在與服務(wù)器通信過程中,需要解析處理不同協(xié)議報文,對運營商的管理造成困難.因此,在車載GPS設(shè)備與服務(wù)器會話過程中,通過某種會話管理協(xié)議,對不同類型協(xié)議類型數(shù)據(jù)進行統(tǒng)一管理顯得十分重要.

        針對以上問題,筆者設(shè)計了一種在設(shè)備與服務(wù)器之間架設(shè)的協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān),將不同私有協(xié)議數(shù)據(jù)報文轉(zhuǎn)換為統(tǒng)一的SIP(Session initiation protocol)協(xié)議報文.該軟網(wǎng)關(guān)基于由純Python語言的Twisted開源網(wǎng)絡(luò)框架編寫,將SIP協(xié)議引入GPS設(shè)備與服務(wù)器之間的通信會話[4],從而解決由于設(shè)備私有數(shù)據(jù)格式協(xié)議帶來的諸多問題,同時也為現(xiàn)有多媒體應(yīng)用中,如音視頻會話,常使用RTP/ RTCP等通信協(xié)議預(yù)留了擴展空間[5].

        1 軟網(wǎng)關(guān)的技術(shù)構(gòu)架

        1.1 SIP協(xié)議會話控制

        SIP協(xié)議是由IETF制定的一個應(yīng)用層的控制協(xié)議,可以用來建立、修改和終止多媒體會話.通過與RTP/RTCP,SDP,RTSP等協(xié)議及DNS配合,SIP協(xié)議支持語音、視頻、數(shù)據(jù)等,并已經(jīng)取得了廣泛的應(yīng)用[6].因此加入SIP協(xié)議管理很好地滿足了車載GPS設(shè)備與服務(wù)器通信的需求.為了對多種車載GPS設(shè)備進行統(tǒng)一會話管理,采用架設(shè)協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)的方式,對設(shè)備與服務(wù)器通信過程中的會話進行設(shè)備私有協(xié)議與SIP協(xié)議的轉(zhuǎn)換,避免了設(shè)備端的軟硬件修改,既保證了設(shè)備平臺的兼容性,又保證了服務(wù)器會話管理的統(tǒng)一性、擴展性.

        1.2 軟網(wǎng)關(guān)構(gòu)架方案

        車載GPS設(shè)備,上傳至服務(wù)器的信息,既可以通過GPRS,也可以通過短信.由此可見,每條信息一般在140字節(jié)之內(nèi).雖然每條信息的數(shù)據(jù)量少,但需要可靠上傳至服務(wù)器,因此大多采用TCP協(xié)議.同時,為了節(jié)省設(shè)備上網(wǎng)數(shù)據(jù)流量和減輕服務(wù)器和數(shù)據(jù)庫的壓力,車載GPS設(shè)備每次上報至服務(wù)器的時間間隔較長且可變.設(shè)計的軟網(wǎng)關(guān)采用了Python語言的Twisted網(wǎng)絡(luò)編程框架.Python語言具有簡潔、跨平臺等優(yōu)點,Twisted是一種基于異步I/O的事件驅(qū)動開源網(wǎng)絡(luò)框架.利用Twisted中的Server-Factory/Protocol架構(gòu),該架構(gòu)進行多個TCP連接處理的優(yōu)點在于既避免了分叉(forking)方案消耗內(nèi)存大,局限于UNIX/LINUX平臺的缺點,也克服了純粹的線程(threading)方案不同連接之間共享內(nèi)存,易造成內(nèi)存變量讀寫沖突的不足,保證了該軟網(wǎng)關(guān)的可靠性與有效性[7].

        由于SIP協(xié)議本身包含了會話層的握手過程,因此在與服務(wù)器的會話過程中,在傳輸層上采用UDP協(xié)議即可8-9.圖1為設(shè)計實現(xiàn)后的車載GPS設(shè)備協(xié)議軟網(wǎng)關(guān)的網(wǎng)絡(luò)框架結(jié)構(gòu).

        圖1 車載GPS協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)網(wǎng)絡(luò)框架Fig.1 Soft gateway network framework of Vehicle GPS device protocol conversion

        2 處理流程設(shè)計

        2.1 數(shù)據(jù)報文處理總流程

        軟網(wǎng)關(guān)采用Twisted開源網(wǎng)絡(luò)框架編寫.Twisted是用Python實現(xiàn)的基于事件驅(qū)動的網(wǎng)絡(luò)引擎框架,具有可擴展性高、基于事件驅(qū)動、跨平臺等優(yōu)勢,并且Twisted支持許多常見的傳輸及應(yīng)用層協(xié)議,包括TCP,UDP,SSL/TLS,HTTP,IMAP,SSH,IRC以及FTP.Twisted的核心就是reactor事件循環(huán).Reactor可以感知網(wǎng)絡(luò)、文件系統(tǒng)以及定時器事件.它等待然后處理這些事件,從特定于平臺的行為中抽象出來,并提供統(tǒng)一的接口,使得在網(wǎng)絡(luò)協(xié)議棧的任何位置對事件做出響應(yīng)都變得簡單.

        軟網(wǎng)關(guān)采用Twisted中的Server Factory/Protocol架構(gòu),其中Server Factory的工作是管理連接事件,并且創(chuàng)建Protocol對象處理每一個成功的連接.一旦連接建立,Protocol對象就接管下面的工作了,包括收發(fā)數(shù)據(jù)和決定是否關(guān)閉連接.圖2為軟網(wǎng)關(guān)在處理車載GPS數(shù)據(jù)報文的流程.軟網(wǎng)關(guān)reactor.run()之后,在設(shè)定的TCP端口等待車載GPS鏈接請求,其中:Server Factory派生出Dev2GateFactory對象單元,用以負責Protocol派生出的Dev2GateProtocol對象的管理、會話管理的方法實現(xiàn)、數(shù)據(jù)庫讀寫接口;Dev2GateProtocol對象單元,用以負責軟網(wǎng)關(guān)與每個GPS設(shè)備TCP連接超時管理、數(shù)據(jù)報文解析校驗、啟動/停止模擬設(shè)備、私有協(xié)議與SIP協(xié)議轉(zhuǎn)換,轉(zhuǎn)發(fā)設(shè)備請求/響應(yīng)等網(wǎng)絡(luò)處理的方法實現(xiàn)[10];Simu_dev對象單元,用以負責實例化軟網(wǎng)關(guān)中對應(yīng)車載GPS設(shè)備的模擬設(shè)備.通過該模擬設(shè)備,實現(xiàn)設(shè)備與服務(wù)器之間會話的具體方法.

        2.2 報文接收處理設(shè)計

        當車載GPS設(shè)備首次接入軟網(wǎng)關(guān)時,此時軟網(wǎng)關(guān)未知設(shè)備是否合法,所以先需要對其進行認證.只有通過認證的GPS設(shè)備,才能予以接入和提供服務(wù).為此,先對私有協(xié)議數(shù)據(jù)報進行預(yù)解析,提取設(shè)備序列號、密碼等驗證信息.軟網(wǎng)關(guān)采用sqlalchemy中間件,訪問數(shù)據(jù)庫,對接入設(shè)備進行數(shù)據(jù)庫校驗.如果驗證未通過,則拒絕服務(wù),斷開與設(shè)備的TCP鏈接;如果驗證通過,為合法設(shè)備,則記錄設(shè)備信息,在整個會話結(jié)束之前,不再需要訪問數(shù)據(jù)庫,直接提供協(xié)議轉(zhuǎn)換服務(wù).

        圖2 軟網(wǎng)關(guān)工作流程圖Fig.2 Work flow chart of soft gateway

        車載GPS設(shè)備在某些情況下可能突發(fā)數(shù)據(jù),導致服務(wù)器負荷增大,降低響應(yīng)速度.為了解決這個問題,在程序中添加了一個列表用于車載GPS上發(fā)數(shù)據(jù)的緩沖存儲和基于defer To Thread的定時發(fā)送機制.具體而言,在數(shù)據(jù)接收處理事件dataReceived()中,把接收到的車載GPS設(shè)備上發(fā)數(shù)據(jù)添加到列表中,該事件調(diào)用函數(shù)defer To Thread()進入延遲對象Deferred子線程中,按照設(shè)定的時間間隔,定時從列表緩存中讀取處理私有協(xié)議報文,經(jīng)私有協(xié)議解析和SIP協(xié)議轉(zhuǎn)換之后發(fā)送至服務(wù)器.由于采用了Deferred對象,并通過函數(shù)Deferred.callback()回調(diào),該函數(shù)中的阻塞行為不會阻塞dataReceived()事件的快速退出.這種緩存和定時機制,保證了當大量突發(fā)設(shè)備上發(fā)數(shù)據(jù)時可以將服務(wù)器負荷控制在安全范圍內(nèi).

        由于純Python腳本語言在處理字節(jié)或者比特上效率明顯不足,而C語言有這方面的優(yōu)勢,因此私有協(xié)議解析函數(shù)采用C語言編寫,再通過擴展接口Python可以調(diào)用.加入了C語言擴展模塊后,一方面加快處理速度;另一方面不同的私有協(xié)議采用不同的動態(tài)鏈接庫DLL(Linux中為so文件),隱藏了私有協(xié)議的具體解析細節(jié),加強了協(xié)議的保密性.

        以函數(shù)QCdev2ser()為例,C語言函數(shù)QC-dev2ser()擴展接口[11]如下:

        //從Python中獲得調(diào)用函數(shù)Qcdev2ser()傳入的字符串

        //具體的基于字節(jié)/比特的私有協(xié)議解析和轉(zhuǎn)換,并以字符串的方式保存在ret_str數(shù)組中

        由于車載GPS設(shè)備上發(fā)的TCP數(shù)據(jù)報中可能包含C語言中標志字符串結(jié)束的0x00字符,因此Python的C語言擴展接口函數(shù)Py Arg_Parse Tuple()中,格式化字符串必須采用“z#”而不能直接用“s”,這是一個關(guān)鍵點.

        2.3 報文轉(zhuǎn)發(fā)處理設(shè)計

        為了實現(xiàn)設(shè)備與服務(wù)器之間的會話過程中的報文轉(zhuǎn)發(fā),必須在每個設(shè)備第一次接入時,注冊啟動模擬設(shè)備simu_dev()對象實例.每個GPS設(shè)備對應(yīng)一個模擬設(shè)備實例,通過該實例經(jīng)過UDP鏈路向SIP服務(wù)器發(fā)送請求或響應(yīng).同時也可以根據(jù)需要將服務(wù)器的請求與響應(yīng)轉(zhuǎn)發(fā)給GPS設(shè)備,以達到建立并完成會話目的.所述模擬設(shè)備實例中,實例化sip.Base類對象rvsip_endpoint,模擬設(shè)備端點,用于上發(fā)服務(wù)器設(shè)備請求,或者服務(wù)器下發(fā)指令;實例化sip.Request類對象rvsip_request,用于組成上發(fā)服務(wù)器的相應(yīng)SIP協(xié)議請求報文.此外,模擬設(shè)備還實現(xiàn)了啟動心跳包?;?,向設(shè)備轉(zhuǎn)發(fā)服務(wù)器請求或響應(yīng)等功能的方法,從而對GPS設(shè)備與服務(wù)器之間的會話過程進行有效處理.

        3 設(shè)計驗證與結(jié)果

        由于目前大多數(shù)GPS設(shè)備與SIP服務(wù)器通信目的主要是上傳私有協(xié)議封裝的定位數(shù)據(jù).因此可以模擬實現(xiàn)該基本功能,驗證該設(shè)計的是否能達到其要求.

        軟網(wǎng)關(guān)部署在聯(lián)通IP地址為123.157.8.243的服務(wù)器上,端口為8 000;遠程SIP服務(wù)器部署在電信IP為122.224.250.36的服務(wù)器上,端口為6 060;GPS設(shè)備用TCP調(diào)試工具(Socket Tool)來模擬.臺式機通過TP-Link路由器、電信ADSL撥號上網(wǎng),本地網(wǎng)絡(luò)IP為192.168.1.100,外網(wǎng)IP由電信動態(tài)分配.軟網(wǎng)關(guān)服務(wù)器和SIP服務(wù)器均采用Red Hat Enterprise Linux Server 5.5操作系統(tǒng)(x86 64位),自帶Python版本為2.4,Twisted版本為8.2.0,Wireshark版本為1.0.15.GPS模擬設(shè)備以TCP client向軟網(wǎng)關(guān)發(fā)送16進制私有協(xié)議報文:

        “2842390000241038027A030A51680300000107 4536A13013633470A5012001911410A60000200032 090312C5F0CE0000000009B901E240FF00003CFF FF”,其解析內(nèi)容分析如表1所示.

        表1 私有報文解析表Table 1 Private message parsing

        在軟網(wǎng)關(guān)接收到模擬GPS私有報文報文后,通過Wireshark抓包軟件,如表2所示,可以觀察到軟網(wǎng)關(guān)在經(jīng)過TCP三次握手建立連接后,軟網(wǎng)關(guān)收到私有協(xié)議報文.之后軟網(wǎng)關(guān)首先發(fā)送了對應(yīng)的注冊SIP服務(wù)器請求報文,并在得到200OK的成功響應(yīng)后,發(fā)送了轉(zhuǎn)換成SIP協(xié)議的XML格式報文請求.

        表2 Wireshark抓包軟件獲取的軟網(wǎng)關(guān)與SIP服務(wù)器會話過程摘錄Table 2 Session between soft gateway and SIP server captured by Wireshark protocol analyzer

        Wireshark抓包軟件捕獲的對應(yīng)私有協(xié)議報文的轉(zhuǎn)換后SIP協(xié)議報文:

        消息頭:

        消息體:

        分析Wireshark抓包結(jié)果表明:模擬GPS設(shè)備向軟網(wǎng)關(guān)發(fā)送私有協(xié)議數(shù)據(jù),軟網(wǎng)關(guān)轉(zhuǎn)換成SIP協(xié)議后,向SIP服務(wù)器發(fā)送了正確的SIP協(xié)議報文.同時,通過1臺PC模擬10臺GPS設(shè)備,多臺PC同時向軟網(wǎng)關(guān)發(fā)送數(shù)據(jù),以驗證軟網(wǎng)關(guān)的并發(fā)性能,測試表明達到了系統(tǒng)的設(shè)計要求.

        4 結(jié) 論

        通過車載GPS協(xié)議轉(zhuǎn)換軟網(wǎng)關(guān)的設(shè)計,能夠使GPS設(shè)備與服務(wù)器通信過程中,私有協(xié)議與SIP協(xié)議的相互轉(zhuǎn)換.該設(shè)計在確保不對設(shè)備進行大幅軟硬件修改前提下,實現(xiàn)在應(yīng)用層上對利用SIP協(xié)議對設(shè)備與服務(wù)器會話通信的有效管理,既保證了設(shè)備平臺的兼容性,又保證了服務(wù)器會話管理的統(tǒng)一性,擴展性.經(jīng)過長時間、幾百臺GPS設(shè)備的測試運行表明,設(shè)計的軟網(wǎng)關(guān)架構(gòu)是可靠、穩(wěn)定和可擴展的.

        本文得到了浙江警察學院科研項目(201206017)的資助.

        [1] DUTTA A,MADHANI S,CHEN WAI,et al.GPS-IP based fast-handoff for mobiles[EB/OL].[2003-09-12].http:// www.nyman-workshop.org/2003/program.html.

        [2] 毛俊,彭宏,孟利民.基于Django框架的車載定位系統(tǒng)PDF報表下載軟件的設(shè)計與實現(xiàn)[J].浙江工業(yè)大學學報,2012,40(4):446-449.

        [3] 曹沖.國內(nèi)外車載GPS系統(tǒng)的應(yīng)用現(xiàn)狀和發(fā)展趨勢[J].全球定位系統(tǒng),2000(1):4-8.

        [4] 楊建鋒,孟利民.視頻監(jiān)控系統(tǒng)中實時流媒體傳輸控制方法的設(shè)計[J].浙江工業(yè)大學學報,2012,40(4):450-453.

        [5] 司端鋒,韓心慧,龍勤.SIP標準中的核心技術(shù)與研究進展[J].軟件學報,2005,16(2):235-250.

        [6] 互聯(lián)網(wǎng)工程任務(wù)組(IETF).RFC 3261 SIP:session initiation protocol[EB/OL].[2002-07-01].http://www.ietf.org/rfc/ rfc3261.txt.

        [7] MAGUS L H.Python基礎(chǔ)教程[M].2版.司維,曾軍崴,譚穎華,譯.北京:人民郵電出版社,2010.

        [8] 傅志輝,梁榮華.基于SIP協(xié)議遠程教學系統(tǒng)模型[J].浙江工業(yè)大學學報,2007,35(2):159-162.

        [9] 李凈,華驚宇,孟利民.SIP協(xié)議在GPS中的應(yīng)用設(shè)計[J].有線電視技術(shù),2012(5):51-53.

        [10] JOHN G.Python網(wǎng)絡(luò)編程基礎(chǔ)[M].莫遲,譯.北京:電子工業(yè)出版社,2007.

        [11] WESLEY J C.Python核心編程[M].2版.宋吉廣,譯.北京:人民郵電出版社,2008.

        (責任編輯:劉 巖)

        Twisted framework based soft gateway for vehicle GPS device protocol conversions

        WANG Kang1,XU Zhi-jiang2,RUAN Zheng-jie2

        (1.Dept.of Computer and Information Tecnology,Zhejiang Police College,Hangzhou 310053,China;2.College of Information Engineering,Zhejiang University of Technology,Hangzhou 310032,China)

        A GPS device protocol conversion soft gateway architecture based on SIP protocol with server-side scalability is proposed in this paper in order to resolve the poor compatibility and complexity of server-side software caused by different protocols from different vendors.The soft gateway is built on the Twisted open network framework based on Python.It ensures the robustness of the software and simplicity of the code.In the soft gateway,the communication session is managed with the SIP protocol and the system overhead for parsing different private protocols can be shared.It also reduces the complexity of the server-side application software,and strengthens the management of the communication session and the expansion capability of multimedia data.

        protocol conversions;SIP protocol;Python;Twisted network framework

        TP393.04

        A

        1006-4303(2013)02-0232-05

        2012-09-11

        浙江省重點科技創(chuàng)新團隊項目(2012R10011-03)

        王 亢(1978-),女,河南開封人,講師,研究方向為計算機網(wǎng)絡(luò)及應(yīng)用,E-mail:wangkang@zjjcxy.cn.

        猜你喜歡
        設(shè)備設(shè)計
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        何為設(shè)計的守護之道?
        《豐收的喜悅展示設(shè)計》
        流行色(2020年1期)2020-04-28 11:16:38
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        瞞天過?!律O(shè)計萌到家
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        500kV輸變電設(shè)備運行維護探討
        如何在設(shè)備采購中節(jié)省成本
        av蜜桃视频在线观看| 欧美巨大巨粗黑人性aaaaaa| 麻豆精产国品| 一区二区三无码| 国产夫妻精品自拍视频| 精品人妻一区二区三区四区在线| 日本aⅴ大伊香蕉精品视频| 成年女人A级毛片免| av一区二区三区高清在线看| 国产精品一区二区av麻豆日韩| 一区二区三区乱码在线 | 欧洲| 美女胸又www又黄的网站| 国产精品国产三级国产an| 亚洲精品第四页中文字幕| 性按摩xxxx在线观看| 久草热8精品视频在线观看| 超清无码AV丝袜片在线观看| 国产人妖视频一区二区| 成人做爰69片免费看网站野花| 综合三区后入内射国产馆| 亚洲色欲色欲欲www在线| 日韩中文字幕不卡在线| 成年女人黄小视频| 三上悠亚免费一区二区在线| 狼人av在线免费观看| 女色av少妇一区二区三区 | 乌克兰少妇xxxx做受野外| 欧美人成在线播放网站免费| 亚洲av中文字字幕乱码软件| 久久精品成人一区二区三区| 日本高清色倩视频在线观看| 国产超碰人人一区二区三区| 女女同女同一区二区三区| 久久久久99精品成人片直播| 色吧综合网| 18禁成人免费av大片一区 | 免费高清av一区二区三区| 欧美色图中文字幕| 美国又粗又长久久性黄大片| 97久久国产亚洲精品超碰热| 国产性猛交╳xxx乱大交|