VoIP協(xié)議標準淺析
目前在國際上,應用的標準協(xié)議包括ITU-T提出的H.323協(xié)議和IEEE提出的SIP協(xié)議。
1、H.323協(xié)議
H.323協(xié)議是目前在VoIP網(wǎng)絡中被用得最廣泛的一種信令協(xié)議,其作用范圍如圖1所示。這一體系結構包括了H.323終端、網(wǎng)關、關守及多點控制單元(MCU)。H.323的總體目標實現(xiàn)H.323端點之間媒體流交換。
圖1 H.323的范圍及H.323終端的交互
其中,H.323終端是與其他H.323端點進行實時通信的端點; 網(wǎng)關是在H.323網(wǎng)絡和其他類型網(wǎng)絡之間提供轉換服務的H.323端點,網(wǎng)關兩側信令協(xié)議及媒體格式之間的轉換在網(wǎng)關內部進行;關守在H.323網(wǎng)絡中,是一個可選實體,存在時,可以控制(指對來自一個或多個端點的訪問進行授權,并可允許或拒絕端點發(fā)來的任何呼叫)許多H.323終端、網(wǎng)關和多點控制器;多點控制器(MC)是一個管理多個終端和/或網(wǎng)關之間多點會議的 H.323端點。MC指出可被各個實體共享的媒體,還可以改變資源的配置。MC的位置,可以被安置在一個獨立的MCU中,也可以與網(wǎng)關、關守或H.323 終端等實體結合在一起。
H.323協(xié)議是一個龐大的協(xié)議族,包括許多相關的協(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)信令,用于端點和關守之間,使關守用該信令來許可或是拒絕端點對網(wǎng)絡資源的訪問。H.245是用于兩個或多個端點之間的控制協(xié)議,它可以確保一個實體只發(fā)送能夠被另一個實體接收和理解的媒體,其運行在端點之間的一條或多條邏輯信道上。
上述這三個信令協(xié)議——RAS,Q.931和H.245,可用來建立呼叫、維持呼叫和拆除呼叫。不同協(xié)議消息的傳遞是交替進行的,圖3簡單描述了一個呼叫的建立過程以及呼叫過程中各相關協(xié)議的控制作用??梢赃@樣理解:當一個端點想要與另一個端點建立呼叫時,首先,源端點使用RAS信令來從一個關守那里獲得許可;然后,源端點用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ā)起請求,既充當服務器又充當客戶機的媒介程序。在轉發(fā)請求之前,它可以改寫原請求消息中的內容。
(3)重定向服務器:它接收SIP請求,并把請求中的原地址映射成零個或多個新地址,返回給客戶機。
(4)注冊服務器:它接收客戶機的注冊請求,完成用戶地址的注冊。
SIP網(wǎng)絡實體之間的溝通是由SIP消息來完成,其語法構成是基于文本的,可以分為兩類消息類型,即請求消息和回應消息。
每個消息都是由一個起始行,零個或多個首部和任意的消息體組成。對于請求消息,起始行為請求行,規(guī)定了所提交請求的類型,語法結構為: request-line=method SP Request URI SP SIP-Version CRLF,其中定義了7種方法,名稱和描述如表1所示。對于回應消息,起始行為狀態(tài)行,指出某個請求是成功還是失敗,語法結構為status-line= SIP version SP status code DP reason-phrase CRLF,基中定義了狀態(tài)代碼,它的值在100和699之間,第一個數(shù)字表示回應的級別,不同級別的說明如表2所示。消息首部提供了關于請求或回應的更多信息以及用來承載額外信息的方式。消息體通常描述將要建立的會話類型,但SIP并不定義消息體的結構或內容,它是由另一個不同的協(xié)議來描述,最常見的為 SDP(會話描述協(xié)議)。
表1 SIP請求方法描述
方法 - 說明
INVITE - 用來回應呼叫用戶的一個請求
ACK - 用來初始化一個會話
BYE - 結束一個已連接的呼叫
CANCLE - 用于取消一個已發(fā)出但未連接的呼叫
REGISTER - 用于向注冊服務器注冊客戶端的相關信息
OPTI0N - 用于查詢服務器的相關信息和功能
INF0 - 用來送出通信中的資訊但并不改變任何通信的狀態(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é)議的設計思想,簡單、靈活等特點正吸引著越來越多的設備廠商關注和支持,并逐漸成為未來發(fā)展的方向,但還不夠成熟。目前,這兩種協(xié)議都在積極的尋求改進,很長時間內將在VoIP服務中共存。
評論