劉海鵬,廖建新,朱曉民
(北京郵電大學 網絡與交換技術國家重點實驗室,北京 100876)
隨著NGN(next generation network)、IMS(IP multimedia subsystem)以及移動互聯網等技術的快速發展,以這些技術作為運行平臺的各種新業務層出不窮。基于IMS平臺的PoC (push to talk over cellular)業務是一種半雙工的集群通信技術,在移動網絡信號范圍內無需撥號就可以快速建立起即時群組多媒體通信。會話建立時延和媒體流傳輸時延過長是目前困擾PoC技術發展的難題。考慮到PoC系統先天局限性以及現有網絡狀況,在保證網絡負載均衡的前提下,如何最大限度優化控制信令和媒體流傳輸是PoC技術能否大規模應用的關鍵。
目前PoC技術的研究成果主要集中在PoC功能實現、通信機理分析等方面[1~7],從應用層面對PoC系統進行控制信令及媒體流量優化分析的則很少。文獻[2]分析了PTT(push to talk)數據分組在網絡傳輸中的平均時延及其與普通 GPRS(general packet radio service)數據的相互影響。文獻[3]對PoC中發言權控制協議 TBCP(talk burst control protocol)進行了建模分析。文獻[4]提出了針對智能交通系統ITS(intelligent transportation systems)的一套PTT通信機制。文獻[5]通過將PoC系統部署在美國現有的3張3G通信網絡中進行實驗,進而對 PoC技術的可行性進行分析。文獻[6]針對在CDMA系統中 PoC的注冊流程進行了改進,在一定程度上減少了注冊等待時間。文獻[7]將上下文感知技術應用在PoC系統中,從而在一定程度上減少了系統中冗余的控制信令和媒體流量。本文基于負載均衡和時延優化的原理以及分布式控制的思想,對OMA(open mobile alliance)提出的PoC服務器媒體流量轉發機制進行了改進,有效地平衡了網絡負載并降低了媒體流的傳輸時延。
本文后續章節的安排如下:第2節簡要介紹了PoC 服務器的工作機制;第3節分別介紹了新舊2種RTP(real-time transport protocol)媒體流轉發機制并舉例說明;第4節分別對2種機制進行數據建模、仿真和分析對比;第5節是結束語。
如圖1所示為OMA規范[8~11]中基于IMS系統的PoC系統架構,PoC客戶端是移動終端上運行的PoC客戶端軟件,PoC服務器是PoC會話中完成會話集中控制、發言權控制、媒體流轉發控制等功能的網絡實體。控制模式(controlling)和參與模式(participating)是PoC服務器的2種工作模式。控制模式下 PoC服務器主要進行控制信令和媒體流的集中控制和轉發等;參與模式下則更多地行使轉發功能。為方便起見,本文中定義工作在控制模式下的 PoC服務器為控制服務器(CS,controlling server);工作在參與模式下的PoC服務器為參與服務器(PS,participating server)。在一個PoC會話中,由于成員網絡位置的差異和成員數目的不確定性,可能有多個PoC服務器同時參與進來,但是任意時刻只能有一個 PoC服務器作為控制服務器行使主控的功能,其他所有的PoC服務器都作為參與服務器。

圖1 基于IMS的PoC系統架構
PoC服務器工作模式的確定是在會話建立的初始時刻進行的,且在整個會話過程中保持不變。PoC服務器工作模式確定規則見文獻[8]。為了討論方便,本文中假設所有的PoC用戶都是本地用戶,不存在漫游的情況。PoC-4接口是本地PoC服務器同PoC會話中其他PoC服務器的接口。
從 PoC會話建立開始,控制服務器就通過INVITE,BYE,NOTIFY等SIP(session initiation protocol)消息的交互來維護會話中唯一的一個全部會話參與者地址的列表,直到會話結束。其中,表項可以包含有會話標識,參與服務器標識,下屬客戶端標識,客戶端地址(IP地址和端口)等內容。由于RTP媒體流的轉發是基于RTP通道的承載來實現的,下面通過PoC服務器側RTP通道的維護以及RTP分組的轉發2個方面來分別說明OMA規范中的媒體流轉發機制。當會話成員發生變化如客戶端/參與服務器加入/退出會話,控制服務器會根據接收到的SIP消息(INVITE/BYE)建立/拆除同相應參與服務器的RTP通道,然后更新會話參與者地址列表。各個參與服務器只需記錄會話中當前控制服務器的地址。PoC服務器側RTP通道維護算法如下:
While ((PoC會話開始建立)or(PoC會話進行中))and (任意客戶端/參與服務器 加入/退出會話)
{
控制服務器通過INVITE/BYE消息交互同相應參與服務器建立/拆除相應RTP通道;
控制服務器增加/刪除會話參與者地址列表相應表項;
}
控制服務器刪除列表;//會話結束。
當控制服務器下屬客戶端發言時,控制服務器會把發言客戶端的 RTP分組根據會話參與者地址列表信息復制相應的拷貝數并轉發給下屬其他客戶端和會話中的參與服務器。當參與服務器下屬客戶端發言時,該參與服務器會把發言客戶端的RTP分組轉發到控制服務器,由控制服務器進行下一步的轉發。當控制服務器收到某一參與服務器轉發來的RTP分組,控制服務器會根據會話參與者地址列表信息復制相應的拷貝數并轉發給下屬客戶端以及其他參與服務器。當參與服務器收到控制服務器轉發的RTP分組,會根據RTP分組目的地址信息轉發給相應本地客戶端。PoC服務器側RTP分組轉發算法如下:
While (PoC會話沒有結束)

當一個PoC會話成功建立以后,無論控制服務器下屬的客戶端還是參與服務器下屬的客戶端,所有客戶端發出的 RTP分組都要集中到控制服務器處來根據參與者列表進行下一步的分發[8~11]。
為減輕控制服務器處的負載,縮短RTP分組的傳輸時延,當一個參與服務器收到下屬客戶端發送來的RTP分組時,直接向會話中的控制服務器及其他參與服務器進行轉發。所有的PoC服務器(控制服務器和參與服務器)都要維護一個全部會話參與者地址的列表,表項內容同原機制下相同。下面同樣通過PoC服務器側RTP通道的維護以及RTP分組的轉發2個方面來分別說明改進后的媒體流轉發機制。會話建立的規則以及控制服務器的確定規則都不變,在會話中,控制服務器還是會最早得到會話成員加入/退出的信息,并通過向會話中其他參與服務器發送同步信令來實現所有列表的同步。然后建立/拆除控制服務器同參與服務器之間以及不同參與服務器之間相應的RTP通道。最后所有的PoC服務器更新本地列表。這里定義NOTIFY消息為同步信令消息。PoC服務器側RTP通道維護算法如下:
While ((PoC會話開始建立)or(PoC會話進行中))and (任意客戶端/參與服務器 加入/退出會話)
{
控制服務器通過INVITE/BYE消息交互同相應參與服務器 建立/拆除相應RTP通道;
控制服務器增加/刪除會話參與者地址列表相應表項;
//NOTIFY消息包含加入/退出的客戶端/參與服務器標識及地址以及具體操作(加入/退出)。
控制服務器向所有其他參與服務器發送NOTIFY同步消息;
參與服務器接收控制服務器發來的NOTIFY消息并通過INVITE/BYE消息交互同相應參與服務器建立/拆除相應RTP通道;
參與服務器根據控制服務器發來的NOTIFY消息并更新本地列表;
}
所有PoC服務器刪除列表;//會話結束。
當控制服務器下屬客戶端發言時,控制服務器會把發言客戶端發來的 RTP分組根據會話參與者地址列表信息復制相應的拷貝數并轉發給下屬其他客戶端和會話中參與服務器。當參與服務器下屬客戶端發言時,該參與服務器會把發言客戶端的RTP分組根據會話參與者地址列表信息復制相應的拷貝數并轉發給下屬其他客戶端以及控制服務器和其他參與服務器。當控制服務器/參與服務器收到其他參與服務器/控制服務器轉發來的 RTP分組,會根據 RTP分組目的地址信息轉發給相應本地客戶端。PoC服務器側RTP分組轉發算法如下:
While (PoC會話沒有結束)
{
If (本PoC服務器下屬客戶端發言)
Switch(本PoC服務器角色):{Case 控制服務器:將收到的發言客戶端發來的RTP分組轉發給下屬的客戶端和所有的參與服務器;Case 參與服務器:將收到的發言客戶端發來的RTP分組轉發給下屬的客戶端以及控制服務器和其他所有的參與服務器;
}
Else //其他PoC服務器下屬客戶端發言。
本 PoC服務器將收到的發言客戶端所屬參與服務器發來的 RTP分組轉發給下屬的客戶端;
}
下面通過一個小例子來分別說明以上 2種機制。假設某PoC會話共有3個PoC服務器參與,其中,A為控制服務器,B和C為參與服務器。每個 PoC服務器下面各有一個客戶端,分別為 a、b和c。
在OMA機制下,假設會話由a發起,b和c先后分別受到邀請加入會話。A發言時,RTP分組被A轉發給B和C,然后再由B和C分別轉發給b和c。b發出BYE消息退出會話后,A只會把c發來的RTP分組轉發給a而不發給B/b了。如圖2所示。
在改進機制下,仍然假設會話由a發起,b和c先后分別受到邀請加入會話,如圖3所示。A向B發送NOTIFY同步消息,B向C發送INVITE消息來建立新的RTP通道。c發出的RTP分組由C直接轉發給A/a和B/b。當b發出BYE消息后,A會向C發送 NOTIFY同步消息,C向B發送 BYE消息拆除相應RTP通道,然后C只會向A/a轉發c發出的RTP分組而不向B/b轉發了。
改進機制的主要目的是在以控制服務器和參與服務器作為網絡節點的重疊網絡中,通過降低控制服務器處的瓶頸效應來平衡網絡的流量負載,減少RTP數據分組在系統中的傳輸時延。下面從PoC服務器網絡節點負載均衡性和 RTP分組在系統中的傳輸時延2方面來分別討論。
4.1.1 控制服務器負載狀況
為討論方便且不失一般性,可以假設控制服務器發送隊列中RTP分組到達率符合泊松分布,發送時間符合負指數分布,只有一個發送端口,且服從先來先服務的原則,是一個M/M/1隊列且服務率保持不變。這里從控制服務器處的平均服務強度和RTP分組在控制服務器處的平均停留時延 2個方面來分析新舊 2種機制下控制服務器處的負載變化狀況,針對一個特定 PoC會話定義相關變量如表1所示。

圖2 OMA機制下消息交互

圖3 改進機制下消息交互

表1 負載相關變量定義
假設本 PoC會話中沒有空閑時刻,即任意時刻都有客戶端在發言,那么每個參與服務器作為轉發 PoC服務器的時間就是其下屬所有客戶端發言的總時長it。為討論方便,令任意客戶端在會話中發言的概率和每次發言的時長都相同且平均每個PoC服務器下屬的客戶端數目都是m,那么根據定義為

由式(1)和式(2)可知每個PoC服務器作為轉發服務器的概率服從均勻分布,總時長同下屬客戶端數目m成線性關系。不妨令每個PoC服務器作為轉發服務器的時間段分別為 0-t1, t1-t2, t2-t3,…,tn-1-tn,時長分別為Δt0,Δt1,Δt2,…,Δtn-1,其中,Δt0為控制服務器作為轉發服務器的時長,Δt1,Δt2,…,Δtn-1分別為所有n-1個參與服務器作為轉發服務器的時長。由于所有PoC服務器下屬客戶端數目都是m,則有
原轉發機制下,每當有RTP分組到來時,控制服務器都要向除發送客戶端外的所有( 1mn-)個客戶端轉發。由式(3),整個PoC會話中控制服務器處轉發的RTP分組總數為

改進后的轉發機制下,當控制服務器下屬的客戶端發言時,跟原機制相同,需要向控制服務器下屬的所有非發言客戶端以及所有的參與服務器及其下屬客戶端轉發RTP分組,控制服務器發送隊列中RTP分組的到達率不變;當任意參與服務器下屬的客戶端發言時,控制服務器只需將接收到的由轉發參與服務器發來的 RTP分組向控制服務器下屬的m個客戶端轉發而不用向任何其他的參與服務器轉發,則控制服務器發送隊列中RTP分組的到達率變為原來的在整個PoC會話中控制服務器處轉發的RTP分組總數為


由 M/M/1隊列的性質可知原轉發機制下控制服務器處的平均服務強度:

改進后的轉發機制下控制服務器處的平均服務強度:

由式(4)~式(7),定義平均服務強度對比函數:

由Little公式可知原轉發機制下RTP分組在控制服務器處的平均停留時延:

改進后的轉發機制下 RTP分組在控制服務器處的平均停留時延:

由式(9)和式(10),定義平均停留時延對比函數:

由式(6)、式(8)、式(11)和式(12)可得


用 MATLAB仿真工具對 f ( m, n)和 g ( ρ,m, n)分別分析對比如圖4和圖5所示。

圖4 f與n關系曲線

圖5 g與n關系曲線
從圖4可以看出,當m固定時,f隨著n增大而線性增大,當m取值較大時,f函數值基本重合。當n固定時,m越大改進機制的優化作用越明顯,但是變化幅度不大。表明會話中PoC服務器的數目以及平均每個PoC服務器下屬客戶端的數目越多,改進機制越能減輕控制服務器處的服務強度。從圖5可以看出,當m與ρ固定時,g隨著n的增大而增大,表明會話中客戶端數目越多改進機制的優化作用越明顯。當m與n固定時,ρ越小2種機制的差距越小,表明當控制服務器的處理能力很強時,改進機制優化時延的作用并不明顯。相反,ρ取值較大且接近1時,改進機制具有很好的降低RTP分組在控制服務器處的平均停留時延的作用。
4.1.2 參與服務器負載狀況
由 4.1.1節分析可知,原轉發機制下,當某參與服務器下屬客戶端發言時,參與服務器需要向下屬其他(m-1個非發言客戶端轉發RTP分組;當其他PoC服務器下屬客戶端發言時,參與服務器需要向下屬m個非發言客戶端轉發RTP分組。而在整個會話過程中控制服務器都要向除發送客戶端外的所有(mn-1)個客戶端轉發。
改進后的轉發機制下,當某參與服務器下屬客戶端發言時,參與服務器需要向所有其他的(mn-1)個非發言客戶端轉發 RTP分組;當其他PoC服務器下屬客戶端發言時,同原機制一樣,參與服務器需要向下屬m個非發言客戶端轉發 RTP分組。每個參與服務器作為轉發服務器時RTP分組的到達率和服務強度均增大到原轉發機制下控制服務器處的平均到達率和平均服務強度,時長同下屬客戶端數目m成線性關系。也就是說在整個會話過程中各個參與服務器分擔了原來只屬于控制服務器的負載。
4.1.3 負載均衡性
由于控制服務器和參與服務器的硬件配置及處理能力基本相當,改進后的轉發機制下每個參與服務器為控制服務器分擔負載后達到的平均負載同控制服務器在原機制下的平均負載相同,則可以認為改進后的轉發機制下所有的參與服務器在時間上分擔了原機制下只屬于控制服務器的負載,每個參與服務器作為轉發服務器的時長就是其為控制服務器分擔負載的時長。那么只需根據每個PoC服務器作為轉發服務器的時長變量分布就可以分析出所有PoC服務器的負載均衡狀況。結合參考文獻[12,13]中關于判斷負載均衡性好壞的算法及方差的物理意義,本文可以通過每個 PoC服務器作為轉發服務器的時長變量的方差來衡量節點負載均衡性的好壞,方差越小說明各個PoC服務器之間負載相差越小,系統具有更好的負載均衡性。由相關變量的定義可知:T=X0,Xi=0,其中,i∈(1,n-1),且有

由式(14)和式(15)可得

由式(15)~式(18)以及方差的基本性質“方差等于平方的均值減去均值的平方”可得

由式(14)可知,式(19)恒大于0,說明原機制下的方差總是大于改進機制下的方差,即改進機制下的負載均衡性總是比原機制下要好。
針對一個PoC會話定義相關變量如表2所示。

表2 時延相關變量定義
根據變量定義,可令:U=ut,V=vt,W=wt。由3.2節改進機制的定義可知


考慮到 PoC服務器是部署于骨干網絡上的重疊網絡節點,任意節點之間的物理路由一般相距很遠,數據的傳輸時延遠大于在單個節點處的轉發時延,即dserver<<ut、vt、wt,定義時延對比函數:

用MATLAB對 h( u, v, w) 分析如圖6和圖7所示。

圖6 h與v關系曲線

圖7 h與w關系曲線
從圖6可以看出,當u與w固定時,h隨著v增大而線性增大。由于傳輸時延大致可以代表網絡節點物理距離的遠近,表明當控制服務器與發送參與服務器距離固定且2個參與服務器之間距離固定時,優化作用隨著控制服務器與接收參與服務器距離增大而線性增大。當v很小時,無論u與w取何值,h都趨于 1,表明只要控制服務器與接收參與服務器距離很小,無論控制服務器與發送參與服務器距離以及2個參與服務器之間距離多遠,2種機制下時延差別并不明顯。從圖7可以看出,當u與v的和固定,h隨著w增大而減小。表明當控制服務器與2個參與服務器的距離和與2個參與服務器之間距離的差越小,2種機制越接近。當w固定時,h隨著u與v的和增大而增大。表明控制服務器與2個參與服務器的距離和比2個參與服務器之間距離大得越多,改進機制的優化作用越好。
為分析新機制下同步信令引入的代價,可以假設某會話中共有q個PoC服務器,包括1個控制服務器和(q-1)個參與服務器。原機制下,當有客戶端/參與服務器加入/退出會話時,只需該客戶端/參與服務器同控制服務器建立/拆除 RTP通道。新機制下,除了該客戶端/參與服務器同控制服務器建立/拆除RTP通道外,控制服務器還要通過NOTIFY消息通知其他(q-2)個參與服務器,然后這(q-2)個參與服務器通過 INVITE/BYE同要加入/退出會話的參與服務器建立/拆除RTP通道。而建立/拆除RTP通道通過一對消息交互(INVITE/BYE和OK)來完成。由以上可知當一個參與服務器加入/退出會話時新機制比原機制增加的信令條數如表3所示。

表3 新機制比原機制增加的信令條數
由表3可知,新增加的同步消息數量同會話中的PoC服務器數量呈線性遞增關系。在任意客戶端/參與服務器加入或者退出會話的概率一定的前提下,會話中的服務器數量越多,會話中產生的同步消息就會越多,代價就越大。相對于會話中的媒體流量來說,數量少得多的控制信令代價是很小的,相比能夠取得的顯著優化效果是值得的。
OMA的PoC規范中所有的控制信令和媒體流都要經由控制服務器轉發,引入了不必要的傳輸時延,且使控制服務器成為系統的負載瓶頸。本文基于負載均衡原理提出了媒體流傳輸改進機制,使具有發言權的參與服務器直接參與RTP分組的轉發,不僅有效減輕了控制服務器處的流量瓶頸效應,并且顯著降低了媒體流的傳輸時延。后續的研究工作將在以所有 PoC服務器作為網絡節點的重疊網絡中引入應用層多播[14]的技術,將RTP分組的轉發節點選擇問題映射為重疊網絡中的動態選路問題,使媒體流傳輸時延最小。
[1] 徐童,廖建新. PTT/POC技術綜述[J]. 電信工程技術與標準化, 2004,(5)∶ 56-60.XU T, LIAO J X. Survey of PTT/POC technology[J]. Telecom Engineering Technics and Standardization, 2004,(5)∶ 56-60.
[2] WANG Y, ZUKERMAN M, RICHARD J H. PTT packet delay analysis for GPRS/GSM links[J]. IEEE Communications Letters, 2006,10(6)∶ 456-458.
[3] TSAI M H, LIN Y B. Talk burst control for push-to-talk over cellular[J]. IEEE Transactions on Wireless Communications, 2008, 7(7)∶2612-2618.
[4] GAN C H, LIN Y B. Push-to-talk service for intelligent transportation systems[J]. IEEE Transactions on Intelligent Transportation Systems,2007, 8(3)∶ 391-399.
[5] CHEN W P, LICKING S, OHNO T, et al. Performance measurement,evaluation and analysis of push-to-talk in 3G networks[A]. IEEE International Conference on Communications, ICC'07[C]. 2007.1893-1898.
[6] NUCCI S, BARBIN S E. Improved mobile PoC registration for CDMA systems[A]. Microwave and Optoelectronics Conference,IMOC 2007[C]. 2007.507-510.
[7] HSU J M, LAIN W B, LIANG J C. A context-aware push-to-talk service[A]. 2008 International Conference on Multimedia and Ubiquitous Engineering[C]. Korea, 2008.586-591
[8] Open Mobile Alliance. OMA-AD-PoC-V2_1-20090224-D∶ Push to talk over Cellular (PoC)-Architecture[S].
[9] Open Mobile Alliance. OMA-TS-PoC_System_Description-V2_1-20090305-D∶ OMA PoC System Description[S].
[10] Open Mobile Alliance. OMA-TS-PoC_UserPlane-V2_1-20090211-D∶PoC User Plane[S].
[11] Open Mobile Alliance. OMA-TS-PoC_ControlPlane-V2_0-20080806-D∶ PoC Control Plane[S].
[12] TURGUT D, TURGUT B, DAS S K, et al. Balancing loads in mobile ad hoc networks[A]. The 10th International Conference on Telecommunications, ICT 2003[C]. 2003.490-495.
[13] 鄭相全. 基于負載均衡的無線自組網關鍵技術與算法研究[D]. 電子科技大學, 2005. 44-45.ZHENG X Q. Research on Load-Balance Based Key Technologies and Algorithms for Ad Hoc Networks[D]. University of Electronic Science and Technology of China, 2005.44-45.
[14] 楊戈,廖建新,朱曉民等. 流媒體分發系統關鍵技術綜述[J]. 電子學報, 2009, 37(1)∶ 137-145.YANG G, LIAO J X, ZHU X M, et al. Survey of key technologies of the distribution system for streaming media[J]. Acta Electronica Sinica,2009,37(1)∶137-145.