SIP應(yīng)用層網(wǎng)關(guān)技術(shù)
引言
SIP(Session Initiation Protocol)稱(chēng)為會(huì)話(huà)初始協(xié)議[1][4],是一個(gè)與HTTP和SMTP類(lèi)似的、基于文本的協(xié)議,SIP獨(dú)立于傳輸層協(xié)議和其它會(huì)話(huà)控制協(xié)議,可以與其他協(xié)議(如RSVP,RTSP等)一起構(gòu)建多媒體通信系統(tǒng)如智能家居網(wǎng)絡(luò)、視頻會(huì)議[2]等。
NAT/防火墻(FW)為私網(wǎng)提供統(tǒng)一的對(duì)外出口,從而隱藏內(nèi)部網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),提高了私網(wǎng)的安全性[3]。但這也給私網(wǎng)的遠(yuǎn)程控制應(yīng)用帶來(lái)很大的麻煩。對(duì)于NAT,其功能是在公網(wǎng)IP地址及端口和私網(wǎng)IP地址及端口間進(jìn)行映射,工作在傳輸層,它只對(duì)TCP/UDP包頭中的地址、端口進(jìn)行修改,而SIP協(xié)議需要在信令消息中內(nèi)嵌IP地址和端口號(hào)[5],這些地址、端口在應(yīng)用層上才可見(jiàn),因此NAT不會(huì)對(duì)其中的地址信息進(jìn)行修改,導(dǎo)致信令消息中的IP地址和端口不能指向正確的地址,因而通信也不能正常進(jìn)行;對(duì)于FW,對(duì)公網(wǎng)打開(kāi)的端口通常是固定的(Fw不會(huì)在運(yùn)行過(guò)程中動(dòng)態(tài)的打開(kāi)或者關(guān)閉這些端口),且數(shù)目有限。而基于SIP構(gòu)建的私網(wǎng)的遠(yuǎn)程控制應(yīng)用要求FW不但能夠提供對(duì)信令協(xié)議的代理功能,而且要求FW能夠在通信過(guò)程中動(dòng)態(tài)的打開(kāi)一些端口進(jìn)行媒體流數(shù)據(jù)的交流,現(xiàn)有的FW難以滿(mǎn)足這個(gè)要求。
鑒于上述原因,本文提出了“SIP應(yīng)用層網(wǎng)關(guān)”技術(shù),并將其應(yīng)用于網(wǎng)絡(luò)通信中來(lái)建立相對(duì)合理、完善的SIP網(wǎng)絡(luò),以解決SIP私網(wǎng)遠(yuǎn)程控制中穿越NAT/FireWall的難題。
SIP私網(wǎng)穿越NAT/防火墻方法分析
由于所有NAT和Firewall都是對(duì)于TCP/IP層以下進(jìn)行處理和過(guò)濾的,而SIP是應(yīng)用層控制信令協(xié)議,SIP與下面的傳輸層和網(wǎng)絡(luò)層協(xié)議無(wú)關(guān)。所以必須采用其他的途徑來(lái)解決基于SIP的私網(wǎng)穿越NAT/防火墻這一問(wèn)題,主要有以下不同的解決方案: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)通過(guò)某種手段或協(xié)議在INVITE之前獲取自己的公網(wǎng)地址和端口。需要SIP Client提供額外支持,并且也不適應(yīng)所有的NAT方式。ALG(Application Layer Gateway)[2]適應(yīng)所有NAT方式,并不需要SIP Client做任何額外的支持。它對(duì)Application層的SIP信令進(jìn)行處理和修改,從而做到透明轉(zhuǎn)換地址。該思想的基本思路是通過(guò)在NAT/FW中加入?yún)f(xié)議認(rèn)知(Protocol Awareness)能力,使NAT/FW能夠在SIP信令消息通過(guò)時(shí)修改其內(nèi)容中的地址信息,ALG修改SIP消息里面的SIP地址和端口,并為分配給呼叫雙方的地址和端口進(jìn)行綁定,這樣,以后的媒體流數(shù)據(jù)能夠通過(guò)NAT/FW指定的端口穿過(guò)。本文主要討論的是基于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的問(wèn)題,實(shí)現(xiàn)私網(wǎng)內(nèi)的SIP用戶(hù)代理與公網(wǎng)上的SIP用戶(hù)代理之間的互連而提出的解決方案,從功能上來(lái)說(shuō),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)用。但是對(duì)于私網(wǎng)上和公網(wǎng)上的SIP應(yīng)用而言,ALG提供的功能并不完全相同:對(duì)于私網(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)行注冊(cè),因?yàn)橹挥型ㄟ^(guò)注冊(cè)才能使SIP終端明白ALG是它們的代理服務(wù)器,因此,SIP應(yīng)用層網(wǎng)關(guān)同時(shí)也是私網(wǎng)上的SIP注冊(cè)服務(wù)器。而對(duì)于公網(wǎng)上的SIP終端而言,私網(wǎng)內(nèi)部是不可見(jiàn)的,唯一可見(jiàn)的是處于公網(wǎng)上的SIP應(yīng)用層網(wǎng)關(guān),因此對(duì)它而言,ALG只是一個(gè)SIP終端,公網(wǎng)上的SIP設(shè)備就能夠直接對(duì)它進(jìn)行呼叫或者接收它的呼叫。
綜上所述,SIP應(yīng)用層網(wǎng)關(guān)功能在私網(wǎng)和公網(wǎng)上是非對(duì)稱(chēng)的,可劃分為:1.對(duì)內(nèi)功能:SIP應(yīng)用層網(wǎng)關(guān)是私網(wǎng)上的SIP注冊(cè)服務(wù)器和代理服務(wù)器,同時(shí),對(duì)于跨網(wǎng)呼叫的情況,SIP應(yīng)用層網(wǎng)關(guān)除需為私網(wǎng)終端提供SIP消息的代理,還須提供媒體流數(shù)據(jù)的代理,這種媒體數(shù)據(jù)的代理功能對(duì)通信雙方是透明的;對(duì)外功能:在公網(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)方式,軟件開(kāi)發(fā)平臺(tái)是Windows2000,開(kāi)發(fā)工具是Visua1C++ 6.0,采用的是OSIP協(xié)議棧,開(kāi)發(fā)的語(yǔ)言主要是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ù)庫(kù)放置在私網(wǎng)內(nèi)部的其它主機(jī)上運(yùn)行。兩部分之間通過(guò)UDP/TCP進(jìn)行通信,這樣可以減小來(lái)自外網(wǎng)上攻擊的風(fēng)險(xiǎn),從而提高數(shù)據(jù)信息的安全性。 由于ALG主體無(wú)法直接對(duì)SIPURI的數(shù)據(jù)信息進(jìn)行訪問(wèn),因此必須在這兩部分之間提供訪問(wèn)的接口,“信息數(shù)據(jù)庫(kù)接口”模塊就是為 ALG訪問(wèn)SIP URI信息管理系統(tǒng)的接口。
SIP應(yīng)用層網(wǎng)關(guān)的主要工作由一個(gè)SIP消息的監(jiān)聽(tīng)線程、一個(gè)與SIP URI信息管理系統(tǒng)進(jìn)行通信的線程、一個(gè)SIP消息處理線程(包括對(duì)話(huà)的管理和維護(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)聽(tīng)線程、URI信息數(shù)據(jù)庫(kù)訪問(wèn)線程和SIP消息處理線程。SIP消息監(jiān)聽(tīng)線程對(duì)ALG的所有SIP端口(包括私網(wǎng)和公網(wǎng))進(jìn)行監(jiān)聽(tīng),如果收到SIP消息,它把消息連同其源IP地址和端口以及消息本身的長(zhǎng)度封裝成一個(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)放入一個(gè)先入先出的隊(duì)列(FIFO)當(dāng)中,然后繼續(xù)監(jiān)聽(tīng),它不對(duì)消息進(jìn)行進(jìn)一步的處理。
一旦FIFO中有了SIP消息,SIP消息處理線程就被喚醒,并投入運(yùn)行,它從FIFO中取走消息,然后開(kāi)始對(duì)這個(gè)消息進(jìn)行處理:首先它對(duì)消息進(jìn)行解析以及例行的語(yǔ)法檢查,然后根據(jù)SIP消息的源地址和目的地址將其分成四類(lèi):
(1)內(nèi)部消息,其源地址和目的地址都在私網(wǎng)內(nèi)部。
(2)對(duì)外消息,其源地址是私網(wǎng)地址,目的地址是公網(wǎng)地址。
(3)對(duì)內(nèi)消息,其源地址是公網(wǎng)地址,目的地址是ALG的公網(wǎng)地址。
(4)外部消息,其源地址和目的地址都是公網(wǎng)地址。
SIP消息被分成以上四類(lèi)后,ALG對(duì)它們進(jìn)行不同的處理。第(1)類(lèi)消息稱(chēng)為“內(nèi)部消息”,第(2)類(lèi)和第(3)類(lèi)消息統(tǒng)稱(chēng)為“跨網(wǎng)絡(luò)消息”;第(4)類(lèi)消息稱(chēng)為“外部消息”,它會(huì)被無(wú)條件丟棄,ALG不對(duì)其作進(jìn)一步的處理。SIP消息處理線程在對(duì)“跨網(wǎng)絡(luò)消息”消息進(jìn)行處理的同時(shí),對(duì)呼叫的上下文環(huán)境進(jìn)行管理和維護(hù),并在必要的時(shí)候,啟動(dòng)新的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)線程,使其完成對(duì)跨網(wǎng)絡(luò)通信的RTP數(shù)據(jù)包的轉(zhuǎn)發(fā)工作。
基于SOCKET消息接收與應(yīng)答功能模塊
由于UDP包的接收是異步的,ALG無(wú)法預(yù)測(cè)何時(shí)會(huì)有SIP消息到來(lái),因此在SIP應(yīng)用層網(wǎng)關(guān)的設(shè)計(jì)中,用單獨(dú)的線程對(duì)SIP端口進(jìn)行監(jiān)聽(tīng)。由于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ò)上,都可以打開(kāi)一個(gè)或者多個(gè)與套節(jié)字(SOCKET)相聯(lián)系的SIP端口。并且每隔一定時(shí)間試圖從所有監(jiān)聽(tīng)的SIP端口相關(guān)聯(lián)的SOCKET上讀取數(shù)據(jù),如果讀到了數(shù)據(jù),就對(duì)數(shù)據(jù)做簡(jiǎn)單的封裝,然后把它放入應(yīng)用層網(wǎng)關(guān)的SIP消息FIFO當(dāng)中。
關(guān)鍵詞:
您可能也感興趣:
今日熱點(diǎn)
為您推薦
多款熱門(mén)隔離險(xiǎn)下架 “買(mǎi)易賠難”問(wèn)題面臨著較大爭(zhēng)議
五大上市險(xiǎn)企披露前兩月保費(fèi) 四家險(xiǎn)企同比均增長(zhǎng)
天津嚴(yán)打社保“代繳”“掛靠” 嚴(yán)重的將影響個(gè)人征信
更多
- 亞馬遜云科技提速安全合規(guī)服務(wù)落地中國(guó) 攜德勤推出安全運(yùn)營(yíng)中心
- 【AFG專(zhuān)題系列72變】之四:磁共振成像我搞定
- 海南發(fā)布創(chuàng)新型省份建設(shè)實(shí)施方案 打造“陸???rdquo;三大科技創(chuàng)...
- 北京強(qiáng)化隱患排查治理創(chuàng)新 對(duì)重點(diǎn)領(lǐng)域開(kāi)展專(zhuān)項(xiàng)整治
- 浪潮元宇宙服務(wù)器全面支持英偉達(dá)Omniverse
- 墨奇科技攜手浪潮信息共建元腦生態(tài),加速 AI 產(chǎn)業(yè)化應(yīng)用
- 是德科技助力香農(nóng)通信驗(yàn)證支持Open RAN的 5G 小型蜂窩基站性能
- 激光雷達(dá)在各行業(yè)應(yīng)用更加普遍, 加速起跑后迎來(lái)全面發(fā)展
更多
- 央行:2月債市共發(fā)行各類(lèi)債券超4.4萬(wàn)億元
- 蘋(píng)果:47億美元綠色債券用于支持綠色技術(shù)創(chuàng)新
- 保利置業(yè)劉忱:“三道紅線”陸續(xù)改善 但短期希望做一些土地拓展
- 陽(yáng)光集團(tuán)公司債價(jià)格異動(dòng) 面臨階段性流動(dòng)性問(wèn)題
- 大悅城控股30億元公司債券已獲深交所受理
- 惠譽(yù):下調(diào)融信中國(guó)的長(zhǎng)期發(fā)行人違約評(píng)級(jí)至“CCC”
- 高盛上調(diào)美債收益率預(yù)期,預(yù)計(jì)2年期和10年期美債收益率出現(xiàn)倒掛
- 美國(guó)國(guó)債恢復(fù)跌勢(shì) 30年與5年期收益率之差收至15年來(lái)最窄
排行
- 蕪湖加快構(gòu)建科技成果轉(zhuǎn)化運(yùn)用體系 科創(chuàng)驅(qū)動(dòng)力指數(shù)居長(zhǎng)三角第6
- 全球5G發(fā)展步伐都在加速
- 全球首次發(fā)現(xiàn)三維翼龍胚胎
- 空間站菌株對(duì)宇航員健康存在影響
- 我國(guó)氣象現(xiàn)代化整體水平邁入世界先進(jìn)行列
- 這一年,科技待解的謎題一籮筐
- 北斗系統(tǒng)正式邁入全球時(shí)代
- 國(guó)產(chǎn)C919大飛機(jī)突破100余項(xiàng)關(guān)鍵技術(shù)
- 北京軌道交通推出電子定期票
- 仿真機(jī)器人現(xiàn)已“進(jìn)軍”考古界
最近更新
- SIP應(yīng)用層網(wǎng)關(guān)技術(shù)
- 什么是系統(tǒng)仿真
- 調(diào)速器原理
- 燃?xì)鈭?bào)警器原理
- 做工精致易維修 三星Note3拆解圖文評(píng)測(cè)
- 貴州推進(jìn)全程網(wǎng)辦事項(xiàng)優(yōu)化 推動(dòng)簡(jiǎn)單事項(xiàng)秒批秒辦
- 海底撈去年?duì)I收同比增長(zhǎng)43.7% 全年關(guān)閉276家餐廳
- 眾安保險(xiǎn)去年保費(fèi)增長(zhǎng)21.9% 挖掘新型場(chǎng)景滿(mǎn)足多樣化保障需求
- 艷遇+賺錢(qián),一定是詐騙!
- 為了蠅頭小利,他從“受害人”變成了“害人者”
- 被騙數(shù)千元還被威脅“曝光”,這種事你還敢找人“幫忙”嗎?
- 男子卸載“國(guó)家反詐中心”APP后,當(dāng)天被騙6萬(wàn)元!
- 辦卡送禮有貓膩,廣西警方揪出10名通信公司“內(nèi)鬼”
- 達(dá)川區(qū)石梯初中:推門(mén)聽(tīng)課抓常態(tài),聚焦課堂促提升
- 達(dá)川區(qū)石梯鎮(zhèn)福壽中心小學(xué)開(kāi)展“厲行節(jié)約,反對(duì)浪費(fèi)”宣傳教...
- 那一刻,一聲“爸爸”揪住了在場(chǎng)所有人的心!
- 【AFG專(zhuān)題系列72變】之四:磁共振成像我搞定
- 亞馬遜云科技提速安全合規(guī)服務(wù)落地中國(guó) 攜德勤推出安全運(yùn)營(yíng)中心
- 河北省農(nóng)業(yè)農(nóng)村生態(tài)環(huán)境保護(hù)“十四五”規(guī)劃出爐
- 最大化消納新能源 青海取得突破性進(jìn)展
- 蘋(píng)果:47億美元綠色債券用于支持綠色技術(shù)創(chuàng)新
- 河北工業(yè)大學(xué):學(xué)科交叉為科技創(chuàng)新帶來(lái)新動(dòng)力
- 央行:2月債市共發(fā)行各類(lèi)債券超4.4萬(wàn)億元
- 深圳搭建“數(shù)字菜籃子” 探索蔬菜產(chǎn)供銷(xiāo)全鏈路溯源
- 被大股東掏空錢(qián)袋子,*ST新億退市,中國(guó)衛(wèi)浴第一股走向被告?
- 妙可藍(lán)多2021年凈利增長(zhǎng)160.6%達(dá)1.54億
- 五部門(mén):推動(dòng)全國(guó)脫貧人口務(wù)工規(guī)模不低于3000萬(wàn)人
- 瑞幸咖啡2021財(cái)年收入近80億元,門(mén)店超6000家
- 中國(guó)信通院:前兩月電子制造業(yè)繼續(xù)領(lǐng)跑全國(guó)工業(yè)
今日要聞
- 海底撈去年?duì)I收同比增長(zhǎng)43.7% 全年關(guān)閉276家餐廳
- 燃?xì)鈭?bào)警器原理
- 做工精致易維修 三星Note3拆解圖文評(píng)測(cè)
- 深圳搭建“數(shù)字菜籃子” 探索蔬菜產(chǎn)供銷(xiāo)全鏈路溯源
- 河北工業(yè)大學(xué):學(xué)科交叉為科技創(chuàng)新帶來(lái)新動(dòng)力
- 亞馬遜云科技提速安全合規(guī)服務(wù)落地中國(guó) 攜德勤推出安全運(yùn)營(yíng)中心
- 全國(guó)各地預(yù)制菜不斷崛起 “粵式預(yù)制菜”如何成功突圍?
- 湛江吳川機(jī)場(chǎng)正式投運(yùn) 將增強(qiáng)粵西地區(qū)整體競(jìng)爭(zhēng)力
- 妙可藍(lán)多2021年凈利增長(zhǎng)160.6%達(dá)1.54億
- 【AFG專(zhuān)題系列72變】之四:磁共振成像我搞定