SIP應(yīng)用層網(wǎng)關(guān)技術(shù)
信息數(shù)據(jù)庫(kù)接口模塊
出于安全性的考慮,SIP URI信息管理系統(tǒng)從SIP應(yīng)用層網(wǎng)關(guān)中分離出去,這個(gè)系統(tǒng)的功能并不復(fù)雜,一方面它接受來(lái)自ALG的訪問;另一方面,它必須對(duì)自身的信息數(shù)據(jù)庫(kù)進(jìn)行維護(hù)。ALG本身必須通過(guò)信息數(shù)據(jù)庫(kù)接口模塊對(duì)其進(jìn)行訪問。
ALG需要從SIP URI信息管理系統(tǒng)得到的信息有兩類:一類是用戶信息,包括用戶名和密碼;另一類是SIP URI綁定信息,這一類信息的交互是雙向的,不同的REGISTER請(qǐng)求會(huì)要求ALG添加、修改、刪除或者僅僅是獲取SIP URI的綁定信息。本文用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)來(lái)表示這兩類信息,這樣只需要一次訪問就能夠獲取所需全部信息,可以縮短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ù)庫(kù)中進(jìn)行動(dòng)態(tài)的訪問;而另外一些信息則是相對(duì)穩(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)的資源。
“消息處理及對(duì)話維護(hù)”模塊
這是SIP應(yīng)用層網(wǎng)關(guān)的核心模塊,它的功能是對(duì)收到的SIP消息進(jìn)行解析和處理,完成對(duì)SIP消息的代理,對(duì)跨網(wǎng)絡(luò)呼叫的上下文環(huán)境進(jìn)行維護(hù)以及在必要時(shí)啟動(dòng)對(duì)話的RTP代理。這些功能之間是相互關(guān)聯(lián)的,統(tǒng)一由SIP消息處理及對(duì)話的維護(hù)線程完成。圖2是SIP消息處理線程的工作流程圖。
本文小節(jié)
SIP協(xié)議憑借其簡(jiǎn)單、易于擴(kuò)展、便于實(shí)現(xiàn)等諸多優(yōu)點(diǎn)越來(lái)越得到業(yè)界的青睞,越來(lái)越多的基于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ò)對(duì)NAT/Firewall的穿越的關(guān)鍵技術(shù),但這一方案仍存在著不足之處,由于SIP應(yīng)用層網(wǎng)關(guān)必須對(duì)跨網(wǎng)絡(luò)的所有SIP消息進(jìn)行解析,導(dǎo)致這些消息須以明碼的形式傳輸,降低了SIP應(yīng)用的安全性,進(jìn)一步研究表明:這要求我們對(duì)SIP協(xié)議進(jìn)行適當(dāng)擴(kuò)展來(lái)實(shí)現(xiàn)信息的加密。
c++相關(guān)文章:c++教程
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論