VoIP協(xié)議標準淺析
目前在國際上,應用的標準協(xié)議包括ITU-T提出的H.323協(xié)議和IEEE提出的SIP協(xié)議。
1、H.323協(xié)議
H.323協(xié)議是目前在VoIP網(wǎng)絡中被用得最廣泛的一種信令協(xié)議,其作用范圍如圖1所示。這一體系結(jié)構(gòu)包括了H.323終端、網(wǎng)關(guān)、關(guān)守及多點控制單元(MCU)。H.323的總體目標實現(xiàn)H.323端點之間媒體流交換。
圖1 H.323的范圍及H.323終端的交互
其中,H.323終端是與其他H.323端點進行實時通信的端點; 網(wǎng)關(guān)是在H.323網(wǎng)絡和其他類型網(wǎng)絡之間提供轉(zhuǎn)換服務的H.323端點,網(wǎng)關(guān)兩側(cè)信令協(xié)議及媒體格式之間的轉(zhuǎn)換在網(wǎng)關(guān)內(nèi)部進行;關(guān)守在H.323網(wǎng)絡中,是一個可選實體,存在時,可以控制(指對來自一個或多個端點的訪問進行授權(quán),并可允許或拒絕端點發(fā)來的任何呼叫)許多H.323終端、網(wǎng)關(guān)和多點控制器;多點控制器(MC)是一個管理多個終端和/或網(wǎng)關(guān)之間多點會議的 H.323端點。MC指出可被各個實體共享的媒體,還可以改變資源的配置。MC的位置,可以被安置在一個獨立的MCU中,也可以與網(wǎng)關(guān)、關(guān)守或H.323 終端等實體結(jié)合在一起。
H.323協(xié)議是一個龐大的協(xié)議族,包括許多相關(guān)的協(xié)議,形成了一個協(xié)議棧,如圖2所示。媒體交換是通過運行在UDP上的RTP來實現(xiàn)的,只要有RTP則RTCP是不可少的。RTP協(xié)議為音頻、視頻等實時數(shù)據(jù)提供端到端的傳遞服務,可以向接收端點傳送恢復實時信號必需的定時和順序信息, RTCP協(xié)議能向收發(fā)雙方和網(wǎng)絡運營者提供QoS的監(jiān)測手段。
圖2 H.323協(xié)議棧
實際中在H.323端點之間交換的消息是由H.225.0和H.245這兩個協(xié)議定義。H.225.0協(xié)議包括兩個部分,一部分是IUT-T Q.931建議的變體,用于在H.323端點之間建立以及拆除連接,被稱作呼叫信令或是Q.931信令。另一部分被稱作登錄、許可和狀態(tài)(RSA)信令,用于端點和關(guān)守之間,使關(guān)守用該信令來許可或是拒絕端點對網(wǎng)絡資源的訪問。H.245是用于兩個或多個端點之間的控制協(xié)議,它可以確保一個實體只發(fā)送能夠被另一個實體接收和理解的媒體,其運行在端點之間的一條或多條邏輯信道上。
上述這三個信令協(xié)議——RAS,Q.931和H.245,可用來建立呼叫、維持呼叫和拆除呼叫。不同協(xié)議消息的傳遞是交替進行的,圖3簡單描述了一個呼叫的建立過程以及呼叫過程中各相關(guān)協(xié)議的控制作用??梢赃@樣理解:當一個端點想要與另一個端點建立呼叫時,首先,源端點使用RAS信令來從一個關(guān)守那里獲得許可;然后,源端點用Q.931信令來建立與目的端點的通信;最后,源端點使用H.245控制信令與目的端點協(xié)商媒體參數(shù)并建立媒體傳送。
圖3 呼叫過程與協(xié)議控制
2、SIP協(xié)議
SIP是由IETF開發(fā)的一種信令協(xié)議,用來處理多媒體會話的建立、更改、拆卸,與其他協(xié)議比較,SIP描述了潛在的會話參與者的會話特征。SIP中定義了兩類基本的網(wǎng)絡實體,客戶機和服務器??蛻魴C是指為了向服務器發(fā)送請求而與服務器建立連接的應用程序,服務器是用于向客戶機發(fā)出的請求提供服務并回送應答的應用程序。共有四種不同類型的服務器:
(1)用戶代理服務器:當接到SIP請求時它聯(lián)系用戶,并代表用戶返回響應。
(2)代理服務器:代表其他客戶機發(fā)起請求,既充當服務器又充當客戶機的媒介程序。在轉(zhuǎn)發(fā)請求之前,它可以改寫原請求消息中的內(nèi)容。
(3)重定向服務器:它接收SIP請求,并把請求中的原地址映射成零個或多個新地址,返回給客戶機。
(4)注冊服務器:它接收客戶機的注冊請求,完成用戶地址的注冊。
SIP網(wǎng)絡實體之間的溝通是由SIP消息來完成,其語法構(gòu)成是基于文本的,可以分為兩類消息類型,即請求消息和回應消息。
每個消息都是由一個起始行,零個或多個首部和任意的消息體組成。對于請求消息,起始行為請求行,規(guī)定了所提交請求的類型,語法結(jié)構(gòu)為: request-line=method SP Request URI SP SIP-Version CRLF,其中定義了7種方法,名稱和描述如表1所示。對于回應消息,起始行為狀態(tài)行,指出某個請求是成功還是失敗,語法結(jié)構(gòu)為status-line= SIP version SP status code DP reason-phrase CRLF,基中定義了狀態(tài)代碼,它的值在100和699之間,第一個數(shù)字表示回應的級別,不同級別的說明如表2所示。消息首部提供了關(guān)于請求或回應的更多信息以及用來承載額外信息的方式。消息體通常描述將要建立的會話類型,但SIP并不定義消息體的結(jié)構(gòu)或內(nèi)容,它是由另一個不同的協(xié)議來描述,最常見的為 SDP(會話描述協(xié)議)。
表1 SIP請求方法描述
方法 - 說明
INVITE - 用來回應呼叫用戶的一個請求
ACK - 用來初始化一個會話
BYE - 結(jié)束一個已連接的呼叫
CANCLE - 用于取消一個已發(fā)出但未連接的呼叫
REGISTER - 用于向注冊服務器注冊客戶端的相關(guān)信息
OPTI0N - 用于查詢服務器的相關(guān)信息和功能
INF0 - 用來送出通信中的資訊但并不改變?nèi)魏瓮ㄐ诺臓顟B(tài)
表2 SIP請求方法描述
狀態(tài)碼 - 描述
1XX - 通知
2XX - 成功
3XX - 重定向
4XX - 請求失敗
5XX - 服務器錯誤
6XX - 全局性錯誤
SIP協(xié)議支持三種呼叫方式,用戶代理客戶機向用戶代理服務器直接呼叫,用戶代理客戶機在重定向服務器輔助下重定向呼叫,由代理服務器代表用戶客戶機向被叫發(fā)起呼叫。以應用代理服務器為例,說明一個簡單呼叫的建立過程,如圖4所示。
圖4 代理服務器建立呼叫過程
3、H.323協(xié)議與SIP協(xié)議的比較
(1)兩種協(xié)議的編碼機制不同,H.323是使用二進制編碼方式,實現(xiàn)比較復雜,而SIP是基于文本的協(xié)議,實現(xiàn)簡單。
(2)SIP會話請求過程和媒體協(xié)商過程等是一起進行的,因此呼叫建立時間短,而在H.323中呼叫建立過程和進行媒體參數(shù)等協(xié)商的信令控制過程是分開進行的。
(3)H.323中定義了專門的協(xié)議用于補充業(yè)務,而SIP只要充分利用已定義的頭域,必要時對頭域進行簡單擴展就能很方便地支持補充業(yè)務或智能業(yè)務,可擴展性強。
(4)H.323進行集中,層次式控制,而SIP類似于其他的Internet協(xié)議,設計上就為分布式的呼叫模型服務的,具有分布的組播功能。
總之,H.323沿用的是傳統(tǒng)的電話信令模式,符合通信領域傳統(tǒng)的設計思想,已被廣泛接受,應用比較成熟。而SIP協(xié)議借鑒了互聯(lián)網(wǎng)的標準和協(xié)議的設計思想,簡單、靈活等特點正吸引著越來越多的設備廠商關(guān)注和支持,并逐漸成為未來發(fā)展的方向,但還不夠成熟。目前,這兩種協(xié)議都在積極的尋求改進,很長時間內(nèi)將在VoIP服務中共存。
評論