www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]引言  SIP (Session Initiation Protocol)稱為會(huì)話初始協(xié)議[1][4],是一個(gè)與HTTP和SMTP類似的、基于文本的協(xié)議,SIP獨(dú)立于傳輸層協(xié)議和其它會(huì)話控制協(xié)議,可以與其他協(xié)議(如RSVP,RTSP等)一起構(gòu)建多媒體通信系統(tǒng)如

引言

  SIP (Session Initiation Protocol)稱為會(huì)話初始協(xié)議[1][4],是一個(gè)與HTTP和SMTP類似的、基于文本的協(xié)議,SIP獨(dú)立于傳輸層協(xié)議和其它會(huì)話控制協(xié)議,可以與其他協(xié)議(如RSVP,RTSP等)一起構(gòu)建多媒體通信系統(tǒng)如智能家居網(wǎng)絡(luò)、視頻會(huì)議[2]等。

  NAT/防火墻(FW)為私網(wǎng)提供統(tǒng)一的對外出口,從而隱藏內(nèi)部網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),提高了私網(wǎng)的安全性[3]。但這也給私網(wǎng)的遠(yuǎn)程控制應(yīng)用帶來很大的麻煩。對于NAT,其功能是在公網(wǎng)IP地址及端口和私網(wǎng)IP地址及端口間進(jìn)行映射,工作在傳輸層,它只對TCP/UDP包頭中的地址、端口進(jìn)行修改,而SIP協(xié)議需要在信令消息中內(nèi)嵌IP地址和端口號(hào)[5],這些地址、端口在應(yīng)用層上才可見,因此NAT不會(huì)對其中的地址信息進(jìn)行修改,導(dǎo)致信令消息中的IP地址和端口不能指向正確的地址,因而通信也不能正常進(jìn)行;對于FW,對公網(wǎng)打開的端口通常是固定的(Fw不會(huì)在運(yùn)行過程中動(dòng)態(tài)的打開或者關(guān)閉這些端口),且數(shù)目有限。而基于SIP構(gòu)建的私網(wǎng)的遠(yuǎn)程控制應(yīng)用要求FW不但能夠提供對信令協(xié)議的代理功能,而且要求FW能夠在通信過程中動(dòng)態(tài)的打開一些端口進(jìn)行媒體流數(shù)據(jù)的交流,現(xiàn)有的FW難以滿足這個(gè)要求。

  鑒于上述原因,本文提出了“SIP應(yīng)用層網(wǎng)關(guān)”技術(shù),并將其應(yīng)用于網(wǎng)絡(luò)通信中來建立相對合理、完善的SIP網(wǎng)絡(luò),以解決SIP私網(wǎng)遠(yuǎn)程控制中穿越NAT/FireWall的難題。

  SIP私網(wǎng)穿越NAT/防火墻方法分析

  由于所有NAT和Firewall都是對于TCP/IP層以下進(jìn)行處理和過濾的,而SIP是應(yīng)用層控制信令協(xié)議,SIP與下面的傳輸層和網(wǎng)絡(luò)層協(xié)議無關(guān)。所以必須采用其他的途徑來解決基于SIP的私網(wǎng)穿越NAT/防火墻這一問題,主要有以下不同的解決方案:1.UpnP(通用即插即用);2.TURN(Traversal Using Relay NAT);3.STUN(Simple Traversal of UDP Through network Address Translators);4.ALG(Application Layer Gateway,應(yīng)用層網(wǎng)關(guān))。

  其中前3種都是由SIP Client(包括UA和Proxy)通過某種手段或協(xié)議在INVITE之前獲取自己的公網(wǎng)地址和端口。需要SIP Client提供額外支持,并且也不適應(yīng)所有的NAT方式。ALG(Application Layer Gateway)[2]適應(yīng)所有NAT方式,并不需要SIP Client做任何額外的支持。它對Application層的SIP信令進(jìn)行處理和修改,從而做到透明轉(zhuǎn)換地址。該思想的基本思路是通過在NAT/FW中加入?yún)f(xié)議認(rèn)知(Protocol Awareness)能力,使NAT/FW能夠在SIP信令消息通過時(shí)修改其內(nèi)容中的地址信息,ALG修改SIP消息里面的SIP地址和端口,并為分配給呼叫雙方的地址和端口進(jìn)行綁定,這樣,以后的媒體流數(shù)據(jù)能夠通過NAT/FW指定的端口穿過。本文主要討論的是基于SIP的應(yīng)用層網(wǎng)關(guān)方法。

  SIP應(yīng)用層網(wǎng)關(guān)原理分析

  “SIP應(yīng)用層網(wǎng)關(guān)”是為解決基于SIP的私網(wǎng)控制應(yīng)用穿越NAT/FW的問題,實(shí)現(xiàn)私網(wǎng)內(nèi)的SIP用戶代理與公網(wǎng)上的SIP用戶代理之間的互連而提出的解決方案,從功能上來說,SIP應(yīng)用層網(wǎng)關(guān)是一種為私網(wǎng)內(nèi)的SIP終端提供連接到公網(wǎng)的代理功能的SIP設(shè)備或軟件。下文中提及的“應(yīng)用層網(wǎng)關(guān)”和ALG(Application Level Gateway)都是指SIP應(yīng)用層網(wǎng)關(guān)。

  為了實(shí)現(xiàn)SIP應(yīng)用層網(wǎng)關(guān)的功能,同時(shí)保持與已有SIP應(yīng)用的兼容性,必須把ALG設(shè)計(jì)成一個(gè)SIP兼容的應(yīng)用。但是對于私網(wǎng)上和公網(wǎng)上的SIP應(yīng)用而言,ALG提供的功能并不完全相同:對于私網(wǎng)的SIP終端,SIP應(yīng)用層網(wǎng)關(guān)的角色是一個(gè)SIP意義上的代理服務(wù)器(Proxy),它不但需要為通往公網(wǎng)上的呼叫提供代理,同時(shí)還需要為私網(wǎng)內(nèi)部不同SIP終端之間的呼叫提供代理;另一方面ALG必須允許私網(wǎng)內(nèi)部SIP終端進(jìn)行注冊,因?yàn)橹挥型ㄟ^注冊才能使SIP終端明白ALG是它們的代理服務(wù)器,因此,SIP應(yīng)用層網(wǎng)關(guān)同時(shí)也是私網(wǎng)上的SIP注冊服務(wù)器。而對于公網(wǎng)上的SIP終端而言,私網(wǎng)內(nèi)部是不可見的,唯一可見的是處于公網(wǎng)上的SIP應(yīng)用層網(wǎng)關(guān),因此對它而言,ALG只是一個(gè)SIP終端,公網(wǎng)上的SIP設(shè)備就能夠直接對它進(jìn)行呼叫或者接收它的呼叫。

  綜上所述,SIP應(yīng)用層網(wǎng)關(guān)功能在私網(wǎng)和公網(wǎng)上是非對稱的,可劃分為:1.對內(nèi)功能:SIP應(yīng)用層網(wǎng)關(guān)是私網(wǎng)上的SIP注冊服務(wù)器和代理服務(wù)器,同時(shí),對于跨網(wǎng)呼叫的情況,SIP應(yīng)用層網(wǎng)關(guān)除需為私網(wǎng)終端提供SIP消息的代理,還須提供媒體流數(shù)據(jù)的代理,這種媒體數(shù)據(jù)的代理功能對通信雙方是透明的;對外功能:在公網(wǎng)上,SIP應(yīng)用層網(wǎng)關(guān)作為一個(gè)普通的SIP終端而存在,它能夠與公網(wǎng)上的其它SIP應(yīng)用建立互連關(guān)系,并隱藏ALG與私網(wǎng)內(nèi)部SIP應(yīng)用之間的關(guān)系。

SIP應(yīng)用層網(wǎng)關(guān)的實(shí)現(xiàn)

 

  本節(jié)前面部分詳細(xì)的介紹了SIP應(yīng)用層網(wǎng)關(guān)實(shí)現(xiàn)的理論基礎(chǔ),本節(jié)介紹ALG的軟件實(shí)現(xiàn)方式,軟件開發(fā)平臺(tái)是Windows2000,開發(fā)工具是Visua1C++ 6.0,采用的是OSIP協(xié)議棧,開發(fā)的語言主要是C。

  結(jié)構(gòu)及工作流程

  這里ALG被分成兩個(gè)部分:ALG主體部分和SIP URI信息管理系統(tǒng)部分,這兩部分被設(shè)計(jì)成是兩個(gè)相互獨(dú)立的程序。ALG主體部分的功能是處理各種流向上的SIP消息、管理呼叫環(huán)境以及跨網(wǎng)絡(luò)呼叫時(shí),在通信雙方之間進(jìn)行RTP數(shù)據(jù)包的轉(zhuǎn)發(fā);SIP URI信息管理系統(tǒng)部分的功能是負(fù)責(zé)私網(wǎng)內(nèi)部SIP URI及其綁定信息的管理和維護(hù),該系統(tǒng)及其維護(hù)的數(shù)據(jù)庫放置在私網(wǎng)內(nèi)部的其它主機(jī)上運(yùn)行。兩部分之間通過UDP/TCP進(jìn)行通信,這樣可以減小來自外網(wǎng)上攻擊的風(fēng)險(xiǎn),從而提高數(shù)據(jù)信息的安全性。 由于ALG主體無法直接對SIPURI的數(shù)據(jù)信息進(jìn)行訪問,因此必須在這兩部分之間提供訪問的接口,“信息數(shù)據(jù)庫接口”模塊就是為 ALG訪問SIP URI信息管理系統(tǒng)的接口。

  SIP應(yīng)用層網(wǎng)關(guān)的主要工作由一個(gè)SIP消息的監(jiān)聽線程、一個(gè)與SIP URI信息管理系統(tǒng)進(jìn)行通信的線程、一個(gè)SIP消息處理線程(包括對話的管理和維護(hù))和數(shù)量不定的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)線程完成。RTP數(shù)據(jù)包轉(zhuǎn)發(fā)線程能夠根據(jù)需要而動(dòng)態(tài)的生成和釋放,因此數(shù)量不定。

  SIP應(yīng)用層網(wǎng)關(guān)的基本工作流程如下:

  應(yīng)用程序初始化完畢以后,啟動(dòng)SIP消息監(jiān)聽線程、URI信息數(shù)據(jù)庫訪問線程和SIP消息處理線程。SIP消息監(jiān)聽線程對ALG的所有SIP端口(包括私網(wǎng)和公網(wǎng))進(jìn)行監(jiān)聽,如果收到SIP消息,它把消息連同其源IP地址和端口以及消息本身的長度封裝成一個(gè)簡單的數(shù)據(jù)結(jié)構(gòu)放入一個(gè)先入先出的隊(duì)列(FIFO)當(dāng)中,然后繼續(xù)監(jiān)聽,它不對消息進(jìn)行進(jìn)一步的處理。

  一旦FIFO中有了SIP消息,SIP消息處理線程就被喚醒,并投入運(yùn)行,它從FIFO中取走消息,然后開始對這個(gè)消息進(jìn)行處理:首先它對消息進(jìn)行解析以及例行的語法檢查,然后根據(jù)SIP消息的源地址和目的地址將其分成四類:

  (1)內(nèi)部消息,其源地址和目的地址都在私網(wǎng)內(nèi)部。

  (2)對外消息,其源地址是私網(wǎng)地址,目的地址是公網(wǎng)地址。

  (3)對內(nèi)消息,其源地址是公網(wǎng)地址,目的地址是ALG的公網(wǎng)地址。

  (4)外部消息,其源地址和目的地址都是公網(wǎng)地址。

  SIP消息被分成以上四類后,ALG對它們進(jìn)行不同的處理。第(1)類消息稱為“內(nèi)部消息”,第(2)類和第(3)類消息統(tǒng)稱為“跨網(wǎng)絡(luò)消息”;第(4)類消息稱為“外部消息”,它會(huì)被無條件丟棄,ALG不對其作進(jìn)一步的處理。SIP消息處理線程在對“跨網(wǎng)絡(luò)消息”消息進(jìn)行處理的同時(shí),對呼叫的上下文環(huán)境進(jìn)行管理和維護(hù),并在必要的時(shí)候,啟動(dòng)新的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)線程,使其完成對跨網(wǎng)絡(luò)通信的RTP數(shù)據(jù)包的轉(zhuǎn)發(fā)工作。

  基于SOCKET消息接收與應(yīng)答功能模塊

  由于UDP包的接收是異步的,ALG無法預(yù)測何時(shí)會(huì)有SIP消息到來,因此在SIP應(yīng)用層網(wǎng)關(guān)的設(shè)計(jì)中,用單獨(dú)的線程對SIP端口進(jìn)行監(jiān)聽。由于SIP應(yīng)用層網(wǎng)關(guān)處在兩個(gè)網(wǎng)絡(luò)的邊界上,并在兩網(wǎng)之間轉(zhuǎn)發(fā)數(shù)據(jù),因此ALG的SIP端口也相應(yīng)的分為私網(wǎng)和公網(wǎng)兩部分,在任何一邊的網(wǎng)絡(luò)上,都可以打開一個(gè)或者多個(gè)與套節(jié)字(SOCKET)相聯(lián)系的SIP端口。并且每隔一定時(shí)間試圖從所有監(jiān)聽的SIP端口相關(guān)聯(lián)的SOCKET上讀取數(shù)據(jù),如果讀到了數(shù)據(jù),就對數(shù)據(jù)做簡單的封裝,然后把它放入應(yīng)用層網(wǎng)關(guān)的SIP消息FIFO當(dāng)中。

  信息數(shù)據(jù)庫接口模塊

  出于安全性的考慮,SIP URI信息管理系統(tǒng)從SIP應(yīng)用層網(wǎng)關(guān)中分離出去,這個(gè)系統(tǒng)的功能并不復(fù)雜,一方面它接受來自ALG的訪問;另一方面,它必須對自身的信息數(shù)據(jù)庫進(jìn)行維護(hù)。ALG本身必須通過信息數(shù)據(jù)庫接口模塊對其進(jìn)行訪問。

  ALG需要從SIP URI信息管理系統(tǒng)得到的信息有兩類:一類是用戶信息,包括用戶名和密碼;另一類是SIP URI綁定信息,這一類信息的交互是雙向的,不同的REGISTER請求會(huì)要求ALG添加、修改、刪除或者僅僅是獲取SIP URI的綁定信息。本文用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)來表示這兩類信息,這樣只需要一次訪問就能夠獲取所需全部信息,可以縮短ALG處理SIP消息所需的時(shí)間。

  信息管理模塊

  SIP應(yīng)用層網(wǎng)關(guān)需要很多信息才能完成工作,有些信息是動(dòng)態(tài)的,例如SIP URI的綁定信息,不同用戶不同時(shí)間的綁定信息是不同的,因此只有在需要的時(shí)候應(yīng)用層網(wǎng)關(guān)才從數(shù)據(jù)庫中進(jìn)行動(dòng)態(tài)的訪問;而另外一些信息則是相對穩(wěn)定的,如ALG本身的域名、IP地址等等。這些信息很多,但并不復(fù)雜,大多是字符串、數(shù)值或者布爾型的變量,信息管理模塊的功能就是維護(hù)和管理它們。

  “媒體會(huì)話”模塊

  當(dāng)SIP應(yīng)用層網(wǎng)關(guān)為跨網(wǎng)絡(luò)呼叫的終端之間建立起媒體會(huì)話(視頻、音頻)的連接后,雙方之間主要的交互將是RTP數(shù)據(jù)流(媒體數(shù)據(jù)被打包成RTP數(shù)據(jù)包)的交互,“媒體會(huì)話”模塊的功能主要就是在通信雙方之間進(jìn)行RTP數(shù)據(jù)包的轉(zhuǎn)發(fā)工作,每一個(gè)RTP數(shù)據(jù)包轉(zhuǎn)發(fā)器能夠?yàn)槎嗦稲TP連接提供數(shù)據(jù)包轉(zhuǎn)發(fā)服務(wù)。

  當(dāng)ALG需要為一路RTP連接提供數(shù)據(jù)包轉(zhuǎn)發(fā)服務(wù)時(shí),它試圖從轉(zhuǎn)發(fā)器環(huán)境中得到一個(gè)空閑的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)器,如果環(huán)境中的轉(zhuǎn)發(fā)器都已經(jīng)被占用,環(huán)境會(huì)試圖創(chuàng)建一個(gè)新的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)器,并把它加入到環(huán)境當(dāng)中,并將它返回給ALG使用。另一方面,當(dāng)一個(gè)轉(zhuǎn)發(fā)器不再為任何RTP連接提供轉(zhuǎn)發(fā)服務(wù)時(shí),環(huán)境會(huì)把它刪除,并釋放相應(yīng)的資源。

  “消息處理及對話維護(hù)”模塊

  這是SIP應(yīng)用層網(wǎng)關(guān)的核心模塊,它的功能是對收到的SIP消息進(jìn)行解析和處理,完成對SIP消息的代理,對跨網(wǎng)絡(luò)呼叫的上下文環(huán)境進(jìn)行維護(hù)以及在必要時(shí)啟動(dòng)對話的RTP代理。這些功能之間是相互關(guān)聯(lián)的,統(tǒng)一由SIP消息處理及對話的維護(hù)線程完成。圖2是SIP消息處理線程的工作流程圖。

  本文小節(jié)

  SIP協(xié)議憑借其簡單、易于擴(kuò)展、便于實(shí)現(xiàn)等諸多優(yōu)點(diǎn)越來越得到業(yè)界的青睞,越來越多的基于SIP協(xié)議的網(wǎng)絡(luò)如VOIP、視頻會(huì)議、智能家居系統(tǒng)被開發(fā)實(shí)現(xiàn),本文實(shí)現(xiàn)的SIP應(yīng)用層網(wǎng)關(guān)正是SIP網(wǎng)絡(luò)對NAT/Firewall的穿越的關(guān)鍵技術(shù),但這一方案仍存在著不足之處,由于SIP應(yīng)用層網(wǎng)關(guān)必須對跨網(wǎng)絡(luò)的所有SIP消息進(jìn)行解析,導(dǎo)致這些消息須以明碼的形式傳輸,降低了SIP應(yīng)用的安全性,進(jìn)一步研究表明:這要求我們對SIP協(xié)議進(jìn)行適當(dāng)擴(kuò)展來實(shí)現(xiàn)信息的加密。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉