陳雪蓮
摘要:文章首先介紹了SIP協(xié)議的特點以及基本工作原理;然后詳細(xì)描述了SIP對應(yīng)用層移動性支持的工作過程,并著重分析了SIP對應(yīng)用程序提供的終端、個人、會話和服務(wù)移動性的支持。
關(guān)鍵詞:SIP協(xié)議;移動性;應(yīng)用層
1.移動性研究
隨著Internet的迅猛發(fā)展,用戶對移動性的要求越來越高,移動IP實現(xiàn)了對用戶移動的透明性的支持,但是也存在一些局限性,尤其在對延遲敏感的多媒體應(yīng)用上,如三角路由、三角注冊、需要home地址和隧道管理等。初始對話協(xié)議(Session Initiation Protocol,SIP)是一種應(yīng)用層協(xié)議,用于建立和釋放單播或多播的多媒體會話。IETF對其進(jìn)行標(biāo)準(zhǔn)化用于多播會議IP電話呼叫?;赟IP,本文提出一種獨立于底層技術(shù)的體系結(jié)構(gòu)來支持多媒體服務(wù)的移動性。
2.SIP基本原理
SIP是一個應(yīng)用層控制協(xié)議,它能夠允許兩方或多方建立、修改、終止多媒體流的會話或呼叫。媒體流可以是音頻、視頻或者任何基于Internet的通信機(jī)制,比如分布式游戲、共享應(yīng)用和共享的文本編輯器等。IETF等對SIP進(jìn)行了標(biāo)準(zhǔn)化,并在Internet電話有了很多的應(yīng)用。
SIP主要有兩種結(jié)構(gòu)元素:用戶代理uA和網(wǎng)絡(luò)服務(wù)器。uA駐留在SIP的終端站中,它包含兩個部分:用戶代理客戶端(User Agent Client,UAC),該部分負(fù)責(zé)發(fā)布SIP請求;用戶代理服務(wù)器(User Agent Server,UAS),它負(fù)責(zé)響應(yīng)SIP請求。其中,用戶代理服務(wù)器有3種不同類型:重定向服務(wù)器、代理服務(wù)器和注冊服務(wù)器。基本SIP呼叫不需要服務(wù)器,但其他一些增強(qiáng)特性需要服務(wù)器的支持。
3.SIP支持移動性的原理
SIP協(xié)議中所包含的SIP代理服務(wù)器和SIP重定向服務(wù)器,接受用戶的注冊并保存用戶的位置信息,為用戶提供移動性支持。用戶有一個公開的地址,如peter@domain.com,并在其家網(wǎng)絡(luò)中SIP服務(wù)器上注冊,當(dāng)用戶移動到其他網(wǎng)絡(luò)時,用戶會及時更新在自己家網(wǎng)絡(luò)中的SIP服務(wù)器上的注冊的位置信息,這樣,當(dāng)有對該用戶的呼叫時,服務(wù)器能夠找到該用戶。
當(dāng)一個會話建立起來以后,如移動用戶從一個網(wǎng)絡(luò)移動到一個新的網(wǎng)絡(luò),這時它的網(wǎng)絡(luò)接入點發(fā)生了變化,如IP地址,為了保持通信,移動用戶必須用原來的Call-ID向通信對方發(fā)出一個新的INVITE,并在contact字段中告訴對方自己現(xiàn)在所用的新的地址,同時在請求頭中的SDP的連接數(shù)據(jù)字段里,告訴對方將媒體流重定向到移動用戶的新地址。
4.終端移動性
終端移動性允許一個設(shè)備在IP子網(wǎng)中移動,使其所屬的子網(wǎng)改變時,仍然可以接收到請求的信息,并且保持會話,為了在子網(wǎng)改變以后,能夠再保持會話,這個子網(wǎng)需要DHCP和動態(tài)DNS。
在應(yīng)用層,SIP的注冊機(jī)制可以被看作是與移動IP的注冊機(jī)制等價的。移動IP綁定一個固定的IP地址到一個臨時的IP地址來標(biāo)識主機(jī),而SIP則給臨時的IP地址綁定一個用戶的標(biāo)識符。SIP對終端移動性的支持包括3個階段:呼叫前(pre-call)、呼叫中(mid-call)的移動性和從網(wǎng)絡(luò)分割中恢復(fù)。
4.1呼叫前的移動性(pre-call mobility)
SIP移動性最容易的部分是呼叫前的移動性。在接收和開始一個呼叫之前,移動主機(jī)需要一個新的地址。每獲得一個新的IP地址,移動主機(jī)都只需要重新向它的家網(wǎng)絡(luò)注冊新的IP地址,如圖2所示。具體的執(zhí)行流程為:
Step 1:通信主機(jī)向重定向服務(wù)器發(fā)送SIP請求。
Step 2:重定向服務(wù)器向通信主機(jī)返回一個302響應(yīng)消息。
Step 3:通信主機(jī)向移動主機(jī)發(fā)送一個SIP請求。
Step 4:移動主機(jī)向通信主機(jī)發(fā)送一個OK,向應(yīng)消息。
Step 5:通信主機(jī)向移動主機(jī)發(fā)送數(shù)據(jù)信息。
4.2呼叫中的移動性(mid-call mobility)
對呼叫中的移動性,正在移動的主機(jī)發(fā)送另一個INVITE消息給通信的主機(jī),而不通過任何中間的代理。在呼叫開始建立階段,如果SIP代理通過插入一個Record-Route來成為未來信令消息循環(huán)的一部分,這樣SIP代理就可以被穿越。這個INVITIE請求包含一個新的IP地址的更新的會話描述,因此當(dāng)移動主機(jī)的應(yīng)用程序發(fā)現(xiàn)它獲得了一個新的IP地址時,位置更新有一個單項的延遲。對寬帶接入,這個延遲可能等于傳播延遲加上幾毫秒,但是在低帶寬的系統(tǒng)中可能會增加幾十毫秒的延遲。
可以通過以下的方式實現(xiàn)快速移交。移動主機(jī)不通告它自己的地址作為媒體流的目的地址,而是采用代理或者代理相關(guān)的RTP轉(zhuǎn)換器的地址來代替。同樣,在包含INVITE請求的會話描述中,代理也可以重寫網(wǎng)絡(luò)地址,所以這種機(jī)制不一定需要終端系統(tǒng)的支持。RTP轉(zhuǎn)換器截取媒體包,然后把他們傳遞給移交后的新地址。此外,這樣一個轉(zhuǎn)換器也可以轉(zhuǎn)換媒體代碼為低帶寬或者增加進(jìn)一步的錯誤校驗。例如,sIP代理可以使用Megaco或者M(jìn)GCP。在實現(xiàn)中,SIP信令是分開的,網(wǎng)絡(luò)中的一個服務(wù)器可以在呼叫方終止呼叫,這個服務(wù)器然后再通知移動主機(jī)。RTP轉(zhuǎn)換器的插入減少了移交延遲。
在應(yīng)用層支持IP層的軟移交方法是比較困難的,通信主機(jī)必須分別發(fā)送兩個數(shù)據(jù)流給新的IP地址和原來的IP地址。采用RTP轉(zhuǎn)換器的方法能夠?qū)υ撘平徊僮饔袔椭榱吮WC軟交的安全性,SIP使用3種認(rèn)證機(jī)制:HTTP、使用共享密鑰和PGP的數(shù)字認(rèn)證、使用公共密鑰的加密。一個防止入侵者的根本方法是使用一個隨機(jī)產(chǎn)生的呼叫標(biāo)識符。
4.3網(wǎng)絡(luò)分割
如果網(wǎng)絡(luò)分割持續(xù)的時間少于30秒,SIP不需要其他的機(jī)制就可以恢復(fù),當(dāng)沒有回應(yīng)的消息時,只要重傳這個請求就可以了。如果網(wǎng)絡(luò)分割持續(xù)的時間更長,更新有可能丟失,而且其他主機(jī)也可能移動了位置。在這種情況下,為了重新建立連接,每一方都應(yīng)該將SIP的INVITE請求寫為規(guī)范的地址,發(fā)送給另一方的家代理。如果SIP的UA實現(xiàn)了SIP會話定時機(jī)制:可以根據(jù)用戶配置的間隔時間定時刷新會話。
4.4分級注冊
缺省情況下,注冊的請求是發(fā)給本地的SIP服務(wù)器的。任何位置的改變都會引起一個SIP注冊請求和應(yīng)答被發(fā)送。如果SIP服務(wù)器為很多主機(jī)服務(wù),那么這種注冊請求會增加服務(wù)器和網(wǎng)絡(luò)的負(fù)載,因此可以采用分級注冊的方法。在一個最近的SIP服務(wù)器注冊,而它指導(dǎo)應(yīng)該如何轉(zhuǎn)發(fā)或重定向注冊請求。分級注冊請求原理如圖3所示。
5.結(jié)語
本文介紹了應(yīng)用層的移動性可以部分或全部代替網(wǎng)絡(luò)的移動性,包括終端、個人、會話和服務(wù)移動性。本文提出的算法適用于所有基于IP的應(yīng)用程序,而不僅是針對Internet電話和會議。