杜 經(jīng) 緯
(運城學院 計算機科學與技術(shù)系,山西 運城 044000)
基于SIP的P2P VoIP技術(shù)研究
杜 經(jīng) 緯
(運城學院 計算機科學與技術(shù)系,山西 運城 044000)
隨著三網(wǎng)融合的推進,將會給VoIP帶來廣闊的發(fā)展空間。針對目前常用的VoIP系統(tǒng)存在的網(wǎng)絡(luò)開銷高、呼叫接通率低、信令過于復雜等問題,在對SIP協(xié)議在P2P網(wǎng)絡(luò)環(huán)境下實現(xiàn)VoIP的關(guān)鍵技術(shù)進行認真分析的基礎(chǔ)上,提出了基于SIP的P2P VoIP。通過給出基于SIP的P2P VoIP的基本體系結(jié)構(gòu),分析了該系統(tǒng)中對等點的發(fā)現(xiàn)、用戶注冊及離線、呼叫建立等功能的實現(xiàn)方法,最后提出了基于SIP的P2P VoIP系統(tǒng)還應(yīng)該考慮的一些問題。
對等網(wǎng)絡(luò);VoIP;信令;SIP;網(wǎng)絡(luò)地址轉(zhuǎn)換
VoIP,即Voice over IP,也稱為IP電話。VoIP的基本工作原理是:通過模數(shù)轉(zhuǎn)換將電話系統(tǒng)的模擬信號轉(zhuǎn)換為數(shù)字信號,再經(jīng)過語音壓縮算法對普通模擬語音信號進行壓縮編碼后,再把這些數(shù)字語音信號利用TCP/IP網(wǎng)絡(luò)體系中的相關(guān)協(xié)議進行封裝,最后通過因特網(wǎng)把語音信號數(shù)據(jù)包發(fā)送到接收端,接收方將收到的數(shù)據(jù)包進行合并,經(jīng)過數(shù)模轉(zhuǎn)換后恢復出原來的模擬語音信號,從而實現(xiàn)通過因特網(wǎng)傳輸模擬語音信號的目的。每個傳統(tǒng)的電話數(shù)據(jù)傳輸率為64kb/s,但在IP電話中語音信號經(jīng)過轉(zhuǎn)換和壓縮,每部電話在IP網(wǎng)中的數(shù)據(jù)傳輸率僅需要8-11kb/s,實現(xiàn)了廉價便捷的通信方式。所以,IP電話的出現(xiàn)使長途電話的費用大幅下降。
VoIP系統(tǒng)主要是由通信終端設(shè)備、網(wǎng)關(guān)設(shè)備及網(wǎng)守設(shè)備等幾部分構(gòu)成。[1]通信終端設(shè)備負責語音信號的轉(zhuǎn)換及壓縮,網(wǎng)關(guān)負責信道編碼的轉(zhuǎn)換及信令控制的轉(zhuǎn)換、接續(xù)等,呼叫用戶所需的地址解析及資源管理等工作由網(wǎng)守負責完成。VoIP目前的主要用途為實現(xiàn)在PC間的通信、PSTN電話間的通信、PSTN電話與PC機間的通信等三種場合。
傳統(tǒng)VoIP是基于C/S模式,用集中式的專用服務(wù)器處理用戶的請求。P2P VoIP是建立在P2P網(wǎng)絡(luò)上的IP電話,具有P2P結(jié)構(gòu)的特點,充分利用了對等實體的資源及處理能力,減少了對集中式資源的需求,網(wǎng)絡(luò)開銷比較低,成為IP電話的發(fā)展趨勢。
與PSTN網(wǎng)絡(luò)不同,VoIP是通過分組交換網(wǎng)IP網(wǎng)傳輸語音信號的,但IP網(wǎng)設(shè)計之初是用來傳輸數(shù)據(jù)業(yè)務(wù)的,采用的是無連接的、盡最大努力交付的不可靠的通信方式。因特網(wǎng)中普通的數(shù)據(jù)業(yè)務(wù)對數(shù)據(jù)到達的實時性要求并不是很高,但通話所需的語音信號對傳輸?shù)膶崟r性要求非常高,并且對傳輸?shù)臅r序及相關(guān)時延也有嚴格的要求。因此,VoIP必須通過其他機制來滿足語音通話的業(yè)務(wù)質(zhì)量要求。在因特網(wǎng)上實現(xiàn)語音傳輸?shù)年P(guān)鍵技術(shù)主要包括信令技術(shù)、通話產(chǎn)生的語音信號的處理技術(shù)、語音模擬信號經(jīng)過數(shù)字化后的數(shù)據(jù)的即時傳輸技術(shù)等。[2]
2.1 信令技術(shù)
信令技術(shù)是用來確保用戶呼叫成功和提供語音質(zhì)量保障的,主要包括ITU-T的H.323和IETF的SIP兩種。
(1)H.323協(xié)議
H323協(xié)議棧的整體結(jié)構(gòu)如圖1所示。呼叫控制采用H.225和Q.931結(jié)合在一起構(gòu)成的呼叫信令協(xié)議實現(xiàn)。通信過程中的信道信令控制、模式選擇等過程規(guī)范由H.245協(xié)議負責。在語音通信時,首先通過Q.931來建立通話,控制信息通過H.245在用戶間傳遞,最后語音數(shù)據(jù)通過RTP進行傳輸,使用RTCP來控制媒體流的傳輸。其中,Q.931和H.245都是基于TCP協(xié)議的可靠傳輸。
圖1 H323協(xié)議棧整體結(jié)構(gòu)
(2)SIP協(xié)議
由IETF提出的SIP協(xié)議是一種基于文本的協(xié)議,類似于HTTP協(xié)議,支持單點和多點傳輸,具有了多播的功能,能夠?qū)崿F(xiàn)一對多的通信。SIP的體系結(jié)構(gòu)如圖2所示。
圖2 SIP體系結(jié)構(gòu)
SIP協(xié)議相比H.323協(xié)議在VoIP通信中更具優(yōu)勢。H.323采用電話網(wǎng)中的信令,非常龐大,實現(xiàn)和管理都非常復雜。而SIP協(xié)議則是以現(xiàn)有的因特網(wǎng)為基礎(chǔ)構(gòu)建的計算機網(wǎng)絡(luò)電話專用的應(yīng)用層協(xié)議,支持單播和多播通信,和IP網(wǎng)一樣,將網(wǎng)絡(luò)設(shè)備的復雜性推向了網(wǎng)絡(luò)邊緣,使核心網(wǎng)成為一個盡最大努力交付的傳輸通道,大大提高了網(wǎng)絡(luò)核心設(shè)備的數(shù)據(jù)處理能力。
2.2 語音處理技術(shù)
常用的語音處理技術(shù)有ITU-T定義的G.729協(xié)議、G.729a協(xié)議及G.723.1協(xié)議等。G.729可以在幾乎不失真的情況下將語音信號壓縮到8kbit/s;G.723.1是采用5.3kbit/s和6.3kbit/s兩種速率的語音編碼,數(shù)據(jù)壓縮率非常高而且語音質(zhì)量也非常好,但缺點是處理時延較大。
2.3 實時傳輸技術(shù)
實時傳輸協(xié)議RTP(Real-time Transport Protocol)是由IETF制定的應(yīng)用層標準協(xié)議,提供端到端的實時多媒體傳輸服務(wù)[3],通常使用UDP協(xié)議進行通信,但也可以通過TCP或者ATM等協(xié)議進行通信。RTP有實時傳輸協(xié)議和實時控制協(xié)議兩部分組成。
2.4 QoS保障技術(shù)
由IP網(wǎng)的工作原理決定了IP電話在其上面?zhèn)鬏敃r容易導致通話產(chǎn)生較大的時延和抖動從而影響通話質(zhì)量,利用QoS可以通過資源預(yù)留協(xié)議來避免IP網(wǎng)絡(luò)的擁塞和保障語音通話的質(zhì)量。
除了VoIP本身涉及的關(guān)鍵技術(shù)外,還應(yīng)考慮P2P網(wǎng)絡(luò)中涉及的一些關(guān)鍵技術(shù),包括用戶注冊、用戶定位、全球索引技術(shù)、對等發(fā)現(xiàn)和呼叫建立、網(wǎng)絡(luò)地址轉(zhuǎn)換和穿越防火墻等技術(shù)。[4]
當前基于SIP的VoIP采用的都是C/S結(jié)構(gòu),SIP服務(wù)器在其中起著關(guān)鍵作用,其擴展性和容錯性同C/S結(jié)構(gòu)一樣比較脆弱,并且存在著很多缺點。如果采用完全P2P結(jié)構(gòu)而不用再維護SIP服務(wù)器作為靜態(tài)超級節(jié)點可以提高系統(tǒng)的可靠性,實現(xiàn)低成本高可靠的VoIP系統(tǒng)。[5]
基于SIP的P2P VoIP是指每個SIP終端都是一個節(jié)點,既作為服務(wù)器也作為客戶端,利用P2P實現(xiàn)用戶的注冊、加入、注銷、查找定位和信令的路由等功能。
基于SIP的P2P VoIP終端節(jié)點包括用戶注冊模塊、用戶定位模塊、DHT網(wǎng)絡(luò)模塊、SIP協(xié)議模塊、媒流體控制模塊、防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換探測模塊等,如圖3所示。
圖3 終端節(jié)點
下面將具體分析基于SIP的P2P VoIP系統(tǒng)的工作過程。
3.1 結(jié)點啟動及對等點發(fā)現(xiàn)
當SIP的終端節(jié)點啟動之后,用戶首先輸入標識碼,如abc@ycu.edu.cn,節(jié)點將會通過本地域名服務(wù)器找到SIP服務(wù)器的IP地址,并發(fā)送SIP注冊消息給SIP服務(wù)器,如圖4所示。
圖4 結(jié)點啟動及對等點發(fā)現(xiàn)
終端節(jié)點也可以通過發(fā)現(xiàn)網(wǎng)絡(luò)中可能的超級節(jié)點從而加入到P2P VoIP網(wǎng)絡(luò)中,終端節(jié)點一旦發(fā)現(xiàn)一個Chord中的節(jié)點,就可以通過Chord節(jié)點的關(guān)鍵字加入到Chord DHT網(wǎng)絡(luò)中,從而便加入到了P2P VoIP網(wǎng)絡(luò)。[6]
3.2 用戶注冊
終端節(jié)點在探測到超級節(jié)點的地址后,會選擇其中的兩個(選擇兩個是為了做冗余備份)發(fā)送SIP REGISTER消息,進行注冊。普通節(jié)點還會周期性地發(fā)送REGISTER消息探測超級節(jié)點是否有效,而超級節(jié)點是通過OPTIONS消息來確保附屬節(jié)點存活并不斷的監(jiān)控其狀態(tài)。
3.3 結(jié)點離線或失效
當一個普通節(jié)點需要退出某個P2P VoIP系統(tǒng)時,需要發(fā)送注銷消息給它所依附的超級節(jié)點,而超級節(jié)點會將這個消息發(fā)送給保存了這個節(jié)點關(guān)鍵字信息的那些節(jié)點。
當一個超級節(jié)點需要退出某個P2P VoIP系統(tǒng)時,它的所有附屬節(jié)點和DHT中的鄰居都將要更新這個節(jié)點的狀態(tài),其附屬節(jié)點會在下次注冊更新時自動調(diào)整并發(fā)現(xiàn)新的超級節(jié)點,而DHT中的鄰居節(jié)點會調(diào)整DHT網(wǎng)絡(luò)信息從而接收管理失效節(jié)點保存的節(jié)點信息,如圖5所示。
圖5 結(jié)點離線或失效
3.4 用戶定位與呼叫建立
節(jié)點在呼叫其他用戶時,基于SIP的查找和P2P網(wǎng)絡(luò)的查找會同時進行。采用P2P網(wǎng)絡(luò)查找時,普通節(jié)點會向它所依附的超級節(jié)點發(fā)送一個Invite或Message消息,而超級節(jié)點充當SIP代理服務(wù)器,通過掌握的DHT關(guān)鍵字信息來定位目的節(jié)點的位置。當通信線路確定以后,超級節(jié)點通過重新定向數(shù)據(jù)包使兩個節(jié)點之間建立連接,從而實現(xiàn)語音數(shù)據(jù)的通信。但是當需要穿越防火墻或有網(wǎng)絡(luò)地址轉(zhuǎn)換時,就只能通過超級節(jié)點的代理轉(zhuǎn)發(fā)實現(xiàn)了。
為了保障基于SIP的P2P VoIP系統(tǒng)的連接暢通、功能完善等還有一些其他問題需要解決。這些問題包括穿越防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換、離線消息分發(fā)以及多點會話等。[7]
4.1 穿越防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換
基于SIP的P2P VoIP中穿越防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換包括兩個步驟:自動檢測防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換的類型,建立完成輸入和輸出消息的NAT穿越隧道。應(yīng)用程序啟動后向超級節(jié)點進行連接注冊,同時完成防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換類型的檢測??梢酝ㄟ^中繼節(jié)點中轉(zhuǎn)傳輸實現(xiàn)NAT穿越隧道的建立。
4.2 離線消息分發(fā)
在VoIP通信中,可能會出現(xiàn)一方呼叫另一方,但另一方不在線的情況,為了使另一方能夠知道有誰呼叫過自己,就需要增加離線消息的存儲和分發(fā)??梢酝ㄟ^在存儲普通節(jié)點信息的DHT節(jié)點中存儲用戶的離線消息,當用戶向DHT節(jié)點注冊信息時,DHT節(jié)點就將離線消息發(fā)送給用戶。
4.3 多點會話及設(shè)備獨立性
可以通過建立分布式多播樹實現(xiàn)多點會話,可以在P2P網(wǎng)絡(luò)中分布存儲加密的用戶信息,用戶登錄后可以直接從P2P覆蓋網(wǎng)中獲得并使用這些用戶信息,既避免了使用中心服務(wù)器同時有提高了設(shè)備的獨立性。
基于SIP的P2P VoIP技術(shù)是VoIP系統(tǒng)的一種全新應(yīng)用。目前VoIP系統(tǒng)普遍采用的是基于H.323的P2P VoIP系統(tǒng)和基于SIP C/S結(jié)構(gòu)的VoIP系統(tǒng),隨著IP網(wǎng)絡(luò)的普及和VoIP網(wǎng)絡(luò)的大規(guī)模推廣應(yīng)用,這兩種系統(tǒng)都無法滿足人們對VoIP系統(tǒng)既要經(jīng)濟實用又要穩(wěn)定可靠的要求?;赟IP的P2P VoIP系統(tǒng)能夠?qū)崿F(xiàn)低成本高性能的網(wǎng)絡(luò)電話系統(tǒng),將會在VoIP市場中占據(jù)重要地位,具有極高的應(yīng)用和推廣價值。
[1] 張春紅等編著.P2P技術(shù)全面解析[M].北京:人民郵電出版社,2010.
[2] 劉冰.提高VoIP語音通信質(zhì)量方法的研究[J].計算機時代,2013(7).
[3] 唐豐收,王志剛,李釩.IP網(wǎng)的實時視頻傳輸技術(shù)[J].計算機與現(xiàn)代化,2008(3).
[4] 武靜.P2P VoIP關(guān)鍵技術(shù)分析[J].中國多媒體通信,2006(04).
[5] Wookyun Kho, Salman Baset, Henning Schulzrinne. Skype relay calls:Measurements and experiments[J]. In Proc.INFOCOM,2008.
[6] 商文濤. SIP協(xié)議及其在下一代互聯(lián)網(wǎng)中的應(yīng)用[J].數(shù)據(jù)通信,2010(5).
[7] 楊建華,余永佳.SIP協(xié)議在異常狀態(tài)下的工作策略研究[J].信息通信,2013(7).
【責任編輯 馬太來】
Research on P2P VoIP Technology Based on SIP
DU Jing-wei
(DepartmentofComputerScienceandTechnology,YunchengUniversity,Yuncheng044000,China)
With the progress in the convergence of the telecommunication, internet and broadcasting networks, VoIP will be presented with broad space for development. However, existing VoIP systems usually suffer from high network overhead, low call completing rate, complex signaling, etc. To solve these problems, this paper, based on a thorough analysis of key technologists involved in VoIP using SIP protocol in the P2P network scenario, proposed the SIP-based P2P VoIP system. By introducing the basic architecture of the SIP-based P2P VoIP system, this paper also analyzes the implementation of functions including peer discovery, user registration and getting offline and call establishment, and points out some questions that should be considered in this system.
Peer-to-Peer network; VoIP; Signaling; SIP; NAT
2015-02-21
山西省自然科學基金資助項目(2009011022-2)
杜經(jīng)緯(1979-),男,山西芮城人,運城學院計算機科學與技術(shù)系講師,研究方向為計算機網(wǎng)絡(luò)技術(shù)。
TP393
A
1008-8008(2015)03-0017-04