田 輝, 莊 雷
(鄭州大學信息工程學院,河南鄭州450001)
SIP(會話初始化協(xié)議)是基于信令的協(xié)議,它廣泛的用于多媒體會話的建立、修改和終止。傳統(tǒng)的SIP需要設置注冊服務器、代理服務器等中央服務器,完成用戶注冊、搜索定位和呼叫會話控制等功能,因而存在服務器的單點失效和性能瓶頸問題。P2PSIP系統(tǒng)繼承了P2P網(wǎng)絡的很多優(yōu)點,然而引入DHT就增加了用戶注冊和會話建立延遲,然而延遲是通訊系統(tǒng)比較敏感的。單層P2PSIP結構[1-2]比較簡單,但是當節(jié)點數(shù)量比較大時系統(tǒng)的性能會下降并且會話建立的延遲會隨之增大。分層 P2PSIP結構考慮到了節(jié)點的異構性和實際通訊量的分布,一定程度上解決了不同覆蓋網(wǎng)之間的連接和會話建立延遲的問題。但是分層P2PSIP結構[3-4]沒有解決子網(wǎng)間會話建立延遲問題。
通過對IP網(wǎng)絡電話的延遲數(shù)據(jù)分析,分層P2PSIP網(wǎng)絡中上層覆蓋網(wǎng)中路由的每跳平均延遲時間大于子網(wǎng)內(nèi)部每跳平均延遲時間。子網(wǎng)間用戶會話建立的延遲很大一部分來源于上層覆蓋網(wǎng)中的路由延遲。(1)DHT算法[5]定位效率非常高,在一跳內(nèi)就可以完成對資源的定位。利用該算法的特性就可以最大限度的減少消息在上層覆蓋網(wǎng)路由跳數(shù)。超級節(jié)點(或者路由節(jié)點)是根據(jù)其處理能力、帶寬和穩(wěn)定性從子網(wǎng)中選擇出來的,所以由這些節(jié)點組成的上層覆蓋網(wǎng)可以很好的適應單跳DHT算法的要求。
(1)單層P2PSIP系統(tǒng)
在這類方案中,底層覆蓋網(wǎng)采用基于分布式哈希表(DHT)的結構化網(wǎng)絡架構,所有的節(jié)點形成一個單一的網(wǎng)絡,使用同一種DHT算法。例如基于Chord協(xié)議的單層P2PSIP系統(tǒng)、Locality-Aware Peer-to-Peer SIP[2]等。底層覆蓋網(wǎng)采用Chord協(xié)議的單層P2PSIP系統(tǒng)如圖1所示。
這類方案充分利用了網(wǎng)絡高擴展性、高可靠性和高健壯性的特點,且易于實現(xiàn)但是未考慮節(jié)點的異構性,且當節(jié)點數(shù)量比較大的情況下呼叫建立和用戶注冊的平均延遲會難以容忍。
(2)分層P2PSIP系統(tǒng)
圖1 單層P2PSIP結構
這類方案把節(jié)點分成若干子網(wǎng),每個子網(wǎng)選出一個節(jié)點,這些選出的節(jié)點組成上層網(wǎng)絡。上層網(wǎng)絡只使用一種全局的DHT算法。不同子網(wǎng)可以使用不同的DHT算法。例如:Transit-StubP2PSIP[3]、H-P2PSIP[4]。用戶節(jié)點分為超級節(jié)點(或者是Router)和普通節(jié)點。超級節(jié)點組成上層網(wǎng),普通節(jié)點組成各個子網(wǎng)。上層網(wǎng)負責子網(wǎng)間會話建立,對于子網(wǎng)來說上層網(wǎng)相當于路由器的功能。分層結構的P2PSIP系統(tǒng)結構如圖2所示。
圖2 分層P2PSIP結構
每一個組織或者企業(yè)都可以有自己的覆蓋網(wǎng)。不同覆蓋網(wǎng)之間也有會話的請求,但是不同的覆蓋網(wǎng)使用不同的DHT算法就不能相互定位無法進行通話。同時,如果系統(tǒng)有過多的用戶節(jié)點,會話建立和注冊的開銷就會難以忍受??紤]到人們經(jīng)常趨向于給處于同一地理區(qū)域內(nèi)的人打電話,那么就可以認為大部分的通話在區(qū)域內(nèi)部發(fā)生。按照地理位置來劃分子網(wǎng)就可以減少會話建立和用戶注冊的延遲。所以分層的P2P-SIP系統(tǒng)可以一定程度上解決節(jié)點數(shù)量過大和節(jié)點異構性帶來的延遲和連通性問題。但是子網(wǎng)間會話建立延遲問題沒有得到解決。隨著子網(wǎng)數(shù)量的不斷增加和地區(qū)間合作交流的不斷增加,子網(wǎng)間用戶之間的會話延遲問題就會變的越來越突出。
文獻[5]提出了單跳的DHT算法。與其它DHT算法不同的是,每個節(jié)點維護完全的成員信息,節(jié)點定位平均跳數(shù)為一跳。算法的適用于105到106節(jié)點規(guī)模大小的系統(tǒng),并且假設成員關系的行為和Gnutella系統(tǒng)的成員關系行為相近。覆蓋網(wǎng)中每個節(jié)點分配一個隨機的M位的節(jié)點標示符。通過對節(jié)點標示符用2128取模使得標示符有序的分布在標示符環(huán)內(nèi)。在環(huán)中每個節(jié)點有一個前驅和后繼節(jié)點,并且周期性的向前驅和后繼節(jié)點發(fā)送keep-alive消息。同時按照順時針分配一個位的關鍵字。位的標示符環(huán)空間分為 個連續(xù)的片空間,并且每片的節(jié)點數(shù)相等。每片有一個片首,片首是該片空間的中間節(jié)點的后繼節(jié)點。同時,每個片空間分為等大小的連續(xù)的標示符空間,稱為組。每個組有一個組首。同樣它是組空間的中間位置后繼節(jié)點。
為了維護準確的全路由信息,定義一個成員關系事件,例如節(jié)點加入和離開。這些事件必須在一定時間內(nèi)傳達到每一個節(jié)點。節(jié)點、組首和片首分別完成自己的工作來支持這樣的變化。單跳算法的缺點:①要求節(jié)點有良好的網(wǎng)絡帶寬;②覆蓋網(wǎng)中的節(jié)點的穩(wěn)定性影響節(jié)點定位的成功率,網(wǎng)絡資源的消耗;③擴展性比較弱,節(jié)點數(shù)量的規(guī)模越大需要的消息量就越大。所以單跳算法對節(jié)點數(shù)量有限制。其最大的優(yōu)點是定位速度快,一跳就可以完成定位工作。
該系統(tǒng)把單跳算法應用于P2PSIP系統(tǒng),該系統(tǒng)采用2層覆蓋網(wǎng)架構,并且把系統(tǒng)的節(jié)點容量提高到了108。全局的關鍵字空間分為若干組,每一組分別選擇一個Leader。Leader的作用相當于超級節(jié)點的功能,維護所在組的fingertable和上層覆蓋網(wǎng)的 finger table。每個普通節(jié)點維護所在組的所有節(jié)點的信息。該架構的缺點:①沒有考慮節(jié)點異構性,用戶節(jié)點的處理能力,帶寬,存儲能力都有很大的不同。特別是片首和組首的選擇是根據(jù)節(jié)點標示符取模后在環(huán)中的位置來選擇的。當片首或者組首不穩(wěn)定時整個系統(tǒng)性也會不穩(wěn)定。除了超級節(jié)點選擇根據(jù)節(jié)點能力外,其它部分是沒有選擇的。②沒有考慮網(wǎng)絡電話節(jié)點關系變化,單跳的前提是Gnutella相近的成員變化規(guī)律。表1是一份調(diào)查表。
表1 中國電話用戶本地通話時間分布
表1可以看出通話時間小于1分鐘的比例占到65.4%。雖然通話時間與在線時間沒有必然的因果關系,但是可以合理的認為,系統(tǒng)節(jié)點變化頻率比較大。如果在子網(wǎng)中采用單跳的DHT算法會給系統(tǒng)帶來很大的開銷。
上層覆蓋網(wǎng)采用單跳DHT算法的分層P2PSIP系統(tǒng),簡寫為H1-P2PSIP系統(tǒng)。分層P2PSIP系統(tǒng)上層覆蓋網(wǎng)與子網(wǎng)覆蓋網(wǎng)采用不同的協(xié)議。上層覆蓋網(wǎng)協(xié)議采用單跳DHT算法,子網(wǎng)覆蓋網(wǎng)協(xié)議采用多跳算法,如CAN,Chord,Pastry和Tapestry。超級節(jié)點同時運行兩個協(xié)議,普通節(jié)點運行本子網(wǎng)的協(xié)議。本方案的結構如圖3所示。
文獻[7]實驗結果表明子網(wǎng)間會話建立的延遲遠遠大于子網(wǎng)內(nèi)部會話建立的延遲,當節(jié)點數(shù)量為15000時,子網(wǎng)間會話建立的延遲是子網(wǎng)內(nèi)部的4倍。通過對文獻[8]分析,不同子網(wǎng)間每跳的平均延遲大約是子網(wǎng)內(nèi)部的2倍,可以看出子網(wǎng)間會話建立時在上層網(wǎng)絡內(nèi)路由部分是消耗的時間是比較大的。
圖3 H1-P2PSIP系統(tǒng)結構
首先計算子網(wǎng)內(nèi)部資源定位的平均延遲和跳數(shù)。子網(wǎng)的節(jié)點數(shù)為i,若子網(wǎng)協(xié)議采用Chord算法,子網(wǎng)內(nèi)會話建立平均跳數(shù)為logi,那么會話建立的平均延遲為0.5 logi。
(1)H1-P2PSIP系統(tǒng)子網(wǎng)間會話建立延遲分析,以子網(wǎng)協(xié)議使用Chord算法為例:
會話建立的平均跳數(shù)
會話建立的平均延遲
(2)一般分層P2PSIP系統(tǒng)子網(wǎng)間會話建立延遲分析,以子網(wǎng)和上層覆蓋網(wǎng)都使用Chord算法為例:
子網(wǎng)與子網(wǎng)用戶會話建立的平均跳數(shù)
設定t為區(qū)域間會話建立的平均延遲
2.2.1 消耗網(wǎng)絡帶寬分析
多跳DHT算法如CAN,Chord,Pastry和Tapestry,這些算法可以使用戶節(jié)點經(jīng)過有限跳數(shù)內(nèi)定位存儲在系統(tǒng)中的對象。多跳DHT算法力求每個節(jié)點維護一個小的路由片段(典型的如(log))。因為我們預判系統(tǒng)的成員關系變化的非常頻繁。所以存儲一個小的片段就會使得成員關系變化時系統(tǒng)的維護代價較小。
多跳DHT算法在節(jié)點規(guī)模不大的系統(tǒng)中能很好的工作,可用于分層的P2PSIP系統(tǒng)的子層。每個節(jié)點維護一個路由片段,對節(jié)點性能要求比較低,節(jié)點變化只影響部分路由。子網(wǎng)所消耗的帶寬是比較小的,這樣的系統(tǒng)已經(jīng)比較成熟。本文主要針對上層覆蓋物進行研究。
上層網(wǎng)絡節(jié)點是從子層中根據(jù)節(jié)點的處理能力、網(wǎng)絡帶寬和穩(wěn)定性選擇出來的,可以充分利用超級節(jié)點的這些特點。而超級節(jié)點高處理能力、大的網(wǎng)絡帶寬和相對穩(wěn)定的狀態(tài)都比較適用于單跳DHT算法。
在分析單跳DHT算法的開銷定義了一些參數(shù):
(1)系統(tǒng)中超級節(jié)點數(shù)(子網(wǎng)的數(shù)量)
(2)超級節(jié)點節(jié)點關系變化率(超級節(jié)點的穩(wěn)定性)
(3)上層網(wǎng)絡標示符環(huán)分片數(shù)
(4)每個固定時間段內(nèi)節(jié)點發(fā)送keep-alive消息個數(shù)
(5)slicerev片首收集節(jié)點發(fā)出的事件通知時間間隔
(6)消息位數(shù)(bit)
上層覆蓋需要的帶寬為[5]
綜上所述,節(jié)點越穩(wěn)定系統(tǒng)需要的帶寬越少。當超級節(jié)點的性能達到該算法的要求時,上層覆蓋物能夠良好的運行。
2.2.2 超級節(jié)點分析
可行性的關鍵在于超級節(jié)點是否能夠滿足單跳 DHT算法的要求,超級節(jié)點的性能直接影響上層網(wǎng)絡的性能。
(1)超級節(jié)點穩(wěn)定性
單跳 DHT算法前提是節(jié)點關系變化規(guī)律接近 Gnutella,那么從子網(wǎng)中選擇保持在線狀態(tài)時間不小于Gnutella節(jié)點在線狀態(tài)時間的平均值的節(jié)點作為超級節(jié)點的候選節(jié)點,并且擇優(yōu)選取以取得更好的穩(wěn)定性降低維持系統(tǒng)的開銷。如果網(wǎng)絡帶寬有限制的話可以根據(jù)(1)式來限定 的大小即超級節(jié)點的穩(wěn)定性,從而得出選擇條件。
(2)超級節(jié)點的存儲能力
每個節(jié)點的覆蓋網(wǎng)路由信息包括:32位的IP地址、160位的數(shù)據(jù)對象關鍵字,所在子網(wǎng)的fingertable的大小為SMB,這個數(shù)值比較小。設節(jié)點數(shù)為,需要的存儲空間=24B+MB。例如=10241024時消耗存儲空間為(24+)MB。選擇超級節(jié)點時存儲能力不小于,而這個標準很容易滿足。
(3)超級節(jié)點數(shù)量
子網(wǎng)根據(jù)實際位置信息來劃分,每一個子網(wǎng)選出一個超級節(jié)點。那么超級節(jié)點數(shù)是和實際應用中參與到系統(tǒng)的區(qū)域數(shù)量相關的。區(qū)域數(shù)量由區(qū)域劃分方案決定,文獻[3]中提出了幾種區(qū)域劃分的方案。按照實際情況,105到106數(shù)量的子網(wǎng)數(shù)足夠使用,超級節(jié)點的數(shù)量不會超出單跳DHT算法可以容忍的數(shù)量。
由上述分析,超級節(jié)點具有高處理能力、大的網(wǎng)絡帶寬和相對穩(wěn)定的狀態(tài),并且單跳DHT算法得對節(jié)點的性能要求比較高和忽視節(jié)點異構性。上層覆蓋網(wǎng)采用和子網(wǎng)覆蓋網(wǎng)采用不同的并且是特殊的 DHT算法以降低會話建立的平均跳數(shù)和平均延遲。隨著硬件飛速的發(fā)展和地區(qū)間通信量的日益增加,本方案通過犧牲適當?shù)膸捄痛鎯δ芰Φ拇鷥r來提高網(wǎng)絡電話的性能是可取的。
用戶A和B分別在域名為p2p1.com和p2p2.com的子網(wǎng)中。A現(xiàn)在要求與B建立一個會話,會話建立的步驟為:
(1)A發(fā)出INVITE消息,自己所在子網(wǎng)提出用戶定位的請求。節(jié)點在自己所在子網(wǎng)的 DHT中查詢上層覆蓋網(wǎng)的入口節(jié)點。
(2)上層覆蓋網(wǎng)節(jié)點收到p2p1.com子網(wǎng)發(fā)來的定位請求后查詢自己的finger table直接找到負責存儲被呼叫方所在子網(wǎng)的入口節(jié)點地址的節(jié)點。
(3)B所在子網(wǎng)節(jié)點收到上層覆蓋網(wǎng)的定位請求后,定位為到B。A得到了B的實際IP地址。
(4)最后的會話建立過程和P2P覆蓋網(wǎng)無關,按照SIP協(xié)議的建立流程建立起點對點的會話連接。
第1、2、3步為用戶定位的部分。我們研究的延遲問題主要來源于用戶定位的延遲。第2步和其它分層的 P2PSIP系統(tǒng)不同。
設定網(wǎng)絡中的節(jié)點數(shù)為108,劃分為100個子網(wǎng),每個子網(wǎng)節(jié)點數(shù)量為106。子網(wǎng)內(nèi)部邏輯的每跳路由平均時間消耗1設定為50ms,上層覆蓋網(wǎng)邏輯每跳路由平均時間消耗設定為21也就是100ms。并且子網(wǎng)采用Chord協(xié)議。
采用本方案的會話建立延遲為0.52450+100=850ms,其它分層 P2PSIP系統(tǒng)需要消耗的時間為1150ms。由此可以看出本文提出的H1-P2PSIP系統(tǒng)能夠減少會話建立的延遲。如果上層覆蓋網(wǎng)的規(guī)模擴大到105,也就是說子網(wǎng)劃分為105個上層覆蓋網(wǎng)消耗的帶寬大約為25kbps。然而這個規(guī)模的子網(wǎng)數(shù)量遠遠超過實際應用能夠到達的規(guī)模,消耗的帶寬仍然是可以接受的。
通過實例分析表明,在消耗的帶寬在合理的范圍內(nèi)的情況下本文所提出的方案可以減低用戶會話建立的延遲,對系統(tǒng)服務性能的提高時很有意義的。
隨著地區(qū)間交流合作的日益緊密,區(qū)域間電話量和用戶會不斷的增加。區(qū)域間會話建立的高延遲問題需要得到解決。本文通過研究單跳DHT算法,結合分層P2PSIP系統(tǒng)中超級節(jié)點高帶寬和高穩(wěn)定性的特點,把單跳DHT算法引入上層覆蓋網(wǎng)協(xié)議。提出了H1-P2PSIP系統(tǒng)并且分析了該方案的可行性和系統(tǒng)中超級節(jié)點所需的性能。通過分析得出該方案在付出可以接受的代價情況下可以降低區(qū)域間會話建立的延遲。
[1]Singh K,Schulzrinne H.Peer-to-peer internet telephony using SIP[C].Proceedings of the International Workshop on Network and Operating Systems Support for Digital Audio and Video.New York:ACM,2005:63-68.
[2]Li Lichun,Ji Yang,Ma Tao,et al.Locality-aware peer-to-peer SIP[J].Parallel and Distributed Systems,14th IEEE International Conference,2008:295-302.
[3]Li Lichun,Shi Juwei,Lin Wenjie,et al.Transit-stub architecture for peer-to-peer SIP[J].Software Engineering and Advanced Applications,2007:175-184.
[4]Shi Juwei,Wang Yao,Gu Lanzhi,et al.A hierarchical peer-to-peer SIP system for heterogeneous overlays interworking[C].Proceedings of IEEE Global Telecommunications Conference,2007:93-97.
[5]Anjali Gupta,Barbara Liskov,Rodrigo Rodrigues.One hop lookups for peer-to-peer overlays[C].Proceedings of the 9th Conference on Hot Topics in Operating Systems,2003.
[6]Gu Lanzhi,Zhang Chunhong,Ji Yang,et al.An O(1)lookup and decentralized bootstrapping peer to peer SIP system[C].Proceedings of IEEE Consumer Communications and Networking Conference,2009:1-2.
[7]Zhang Chunhong,Shi Juwei,Li Lichun,et al.Signaling latency analysis of peer-to-peer SIP systems[C].Proceedings of IEEE Consumer Communications and Networking Conference,2008:505-509.
[8]Verizon business IP latency statistics[EB/OL].http://www.verizonbusiness.com/us/about/net work/latency,2010.