SIP應用層網關技術
信息數據庫接口模塊
出于安全性的考慮,SIP URI信息管理系統從SIP應用層網關中分離出去,這個系統的功能并不復雜,一方面它接受來自ALG的訪問;另一方面,它必須對自身的信息數據庫進行維護。ALG本身必須通過信息數據庫接口模塊對其進行訪問。
ALG需要從SIP URI信息管理系統得到的信息有兩類:一類是用戶信息,包括用戶名和密碼;另一類是SIP URI綁定信息,這一類信息的交互是雙向的,不同的REGISTER請求會要求ALG添加、修改、刪除或者僅僅是獲取SIP URI的綁定信息。本文用統一的數據結構來表示這兩類信息,這樣只需要一次訪問就能夠獲取所需全部信息,可以縮短ALG處理SIP消息所需的時間。
信息管理模塊
SIP應用層網關需要很多信息才能完成工作,有些信息是動態的,例如SIP URI的綁定信息,不同用戶不同時間的綁定信息是不同的,因此只有在需要的時候應用層網關才從數據庫中進行動態的訪問;而另外一些信息則是相對穩定的,如ALG本身的域名、IP地址等等。這些信息很多,但并不復雜,大多是字符串、數值或者布爾型的變量,信息管理模塊的功能就是維護和管理它們。
“媒體會話”模塊
當SIP應用層網關為跨網絡呼叫的終端之間建立起媒體會話(視頻、音頻)的連接后,雙方之間主要的交互將是RTP數據流(媒體數據被打包成RTP數據包)的交互,“媒體會話”模塊的功能主要就是在通信雙方之間進行RTP數據包的轉發工作,每一個RTP數據包轉發器能夠為多路RTP連接提供數據包轉發服務。
當ALG需要為一路RTP連接提供數據包轉發服務時,它試圖從轉發器環境中得到一個空閑的RTP數據包轉發器,如果環境中的轉發器都已經被占用,環境會試圖創建一個新的RTP數據包轉發器,并把它加入到環境當中,并將它返回給ALG使用。另一方面,當一個轉發器不再為任何RTP連接提供轉發服務時,環境會把它刪除,并釋放相應的資源。
“消息處理及對話維護”模塊
這是SIP應用層網關的核心模塊,它的功能是對收到的SIP消息進行解析和處理,完成對SIP消息的代理,對跨網絡呼叫的上下文環境進行維護以及在必要時啟動對話的RTP代理。這些功能之間是相互關聯的,統一由SIP消息處理及對話的維護線程完成。圖2是SIP消息處理線程的工作流程圖。
本文小節
SIP協議憑借其簡單、易于擴展、便于實現等諸多優點越來越得到業界的青睞,越來越多的基于SIP協議的網絡如VOIP、視頻會議、智能家居系統被開發實現,本文實現的SIP應用層網關正是SIP網絡對NAT/Firewall的穿越的關鍵技術,但這一方案仍存在著不足之處,由于SIP應用層網關必須對跨網絡的所有SIP消息進行解析,導致這些消息須以明碼的形式傳輸,降低了SIP應用的安全性,進一步研究表明:這要求我們對SIP協議進行適當擴展來實現信息的加密。
c++相關文章:c++教程
tcp/ip相關文章:tcp/ip是什么
評論