田 輝, 莊 雷
(鄭州大學信息工程學院,河南鄭州450001)
SIP(會話初始化協議)是基于信令的協議,它廣泛的用于多媒體會話的建立、修改和終止。傳統的SIP需要設置注冊服務器、代理服務器等中央服務器,完成用戶注冊、搜索定位和呼叫會話控制等功能,因而存在服務器的單點失效和性能瓶頸問題。P2PSIP系統繼承了P2P網絡的很多優點,然而引入DHT就增加了用戶注冊和會話建立延遲,然而延遲是通訊系統比較敏感的。單層P2PSIP結構[1-2]比較簡單,但是當節點數量比較大時系統的性能會下降并且會話建立的延遲會隨之增大。分層 P2PSIP結構考慮到了節點的異構性和實際通訊量的分布,一定程度上解決了不同覆蓋網之間的連接和會話建立延遲的問題。但是分層P2PSIP結構[3-4]沒有解決子網間會話建立延遲問題。
通過對IP網絡電話的延遲數據分析,分層P2PSIP網絡中上層覆蓋網中路由的每跳平均延遲時間大于子網內部每跳平均延遲時間。子網間用戶會話建立的延遲很大一部分來源于上層覆蓋網中的路由延遲。(1)DHT算法[5]定位效率非常高,在一跳內就可以完成對資源的定位。利用該算法的特性就可以最大限度的減少消息在上層覆蓋網路由跳數。超級節點(或者路由節點)是根據其處理能力、帶寬和穩定性從子網中選擇出來的,所以由這些節點組成的上層覆蓋網可以很好的適應單跳DHT算法的要求。
(1)單層P2PSIP系統
在這類方案中,底層覆蓋網采用基于分布式哈希表(DHT)的結構化網絡架構,所有的節點形成一個單一的網絡,使用同一種DHT算法。例如基于Chord協議的單層P2PSIP系統、Locality-Aware Peer-to-Peer SIP[2]等。底層覆蓋網采用Chord協議的單層P2PSIP系統如圖1所示。
這類方案充分利用了網絡高擴展性、高可靠性和高健壯性的特點,且易于實現但是未考慮節點的異構性,且當節點數量比較大的情況下呼叫建立和用戶注冊的平均延遲會難以容忍。
(2)分層P2PSIP系統

圖1 單層P2PSIP結構
這類方案把節點分成若干子網,每個子網選出一個節點,這些選出的節點組成上層網絡。上層網絡只使用一種全局的DHT算法。不同子網可以使用不同的DHT算法。例如:Transit-StubP2PSIP[3]、H-P2PSIP[4]。用戶節點分為超級節點(或者是Router)和普通節點。超級節點組成上層網,普通節點組成各個子網。上層網負責子網間會話建立,對于子網來說上層網相當于路由器的功能。分層結構的P2PSIP系統結構如圖2所示。

圖2 分層P2PSIP結構
每一個組織或者企業都可以有自己的覆蓋網。不同覆蓋網之間也有會話的請求,但是不同的覆蓋網使用不同的DHT算法就不能相互定位無法進行通話。同時,如果系統有過多的用戶節點,會話建立和注冊的開銷就會難以忍受。考慮到人們經常趨向于給處于同一地理區域內的人打電話,那么就可以認為大部分的通話在區域內部發生。按照地理位置來劃分子網就可以減少會話建立和用戶注冊的延遲。所以分層的P2P-SIP系統可以一定程度上解決節點數量過大和節點異構性帶來的延遲和連通性問題。但是子網間會話建立延遲問題沒有得到解決。隨著子網數量的不斷增加和地區間合作交流的不斷增加,子網間用戶之間的會話延遲問題就會變的越來越突出。
文獻[5]提出了單跳的DHT算法。與其它DHT算法不同的是,每個節點維護完全的成員信息,節點定位平均跳數為一跳。算法的適用于105到106節點規模大小的系統,并且假設成員關系的行為和Gnutella系統的成員關系行為相近。覆蓋網中每個節點分配一個隨機的M位的節點標示符。通過對節點標示符用2128取模使得標示符有序的分布在標示符環內。在環中每個節點有一個前驅和后繼節點,并且周期性的向前驅和后繼節點發送keep-alive消息。同時按照順時針分配一個位的關鍵字。位的標示符環空間分為 個連續的片空間,并且每片的節點數相等。每片有一個片首,片首是該片空間的中間節點的后繼節點。同時,每個片空間分為等大小的連續的標示符空間,稱為組。每個組有一個組首。同樣它是組空間的中間位置后繼節點。
為了維護準確的全路由信息,定義一個成員關系事件,例如節點加入和離開。這些事件必須在一定時間內傳達到每一個節點。節點、組首和片首分別完成自己的工作來支持這樣的變化。單跳算法的缺點:①要求節點有良好的網絡帶寬;②覆蓋網中的節點的穩定性影響節點定位的成功率,網絡資源的消耗;③擴展性比較弱,節點數量的規模越大需要的消息量就越大。所以單跳算法對節點數量有限制。其最大的優點是定位速度快,一跳就可以完成定位工作。
該系統把單跳算法應用于P2PSIP系統,該系統采用2層覆蓋網架構,并且把系統的節點容量提高到了108。全局的關鍵字空間分為若干組,每一組分別選擇一個Leader。Leader的作用相當于超級節點的功能,維護所在組的fingertable和上層覆蓋網的 finger table。每個普通節點維護所在組的所有節點的信息。該架構的缺點:①沒有考慮節點異構性,用戶節點的處理能力,帶寬,存儲能力都有很大的不同。特別是片首和組首的選擇是根據節點標示符取模后在環中的位置來選擇的。當片首或者組首不穩定時整個系統性也會不穩定。除了超級節點選擇根據節點能力外,其它部分是沒有選擇的。②沒有考慮網絡電話節點關系變化,單跳的前提是Gnutella相近的成員變化規律。表1是一份調查表。

表1 中國電話用戶本地通話時間分布
表1可以看出通話時間小于1分鐘的比例占到65.4%。雖然通話時間與在線時間沒有必然的因果關系,但是可以合理的認為,系統節點變化頻率比較大。如果在子網中采用單跳的DHT算法會給系統帶來很大的開銷。
上層覆蓋網采用單跳DHT算法的分層P2PSIP系統,簡寫為H1-P2PSIP系統。分層P2PSIP系統上層覆蓋網與子網覆蓋網采用不同的協議。上層覆蓋網協議采用單跳DHT算法,子網覆蓋網協議采用多跳算法,如CAN,Chord,Pastry和Tapestry。超級節點同時運行兩個協議,普通節點運行本子網的協議。本方案的結構如圖3所示。
文獻[7]實驗結果表明子網間會話建立的延遲遠遠大于子網內部會話建立的延遲,當節點數量為15000時,子網間會話建立的延遲是子網內部的4倍。通過對文獻[8]分析,不同子網間每跳的平均延遲大約是子網內部的2倍,可以看出子網間會話建立時在上層網絡內路由部分是消耗的時間是比較大的。

圖3 H1-P2PSIP系統結構
首先計算子網內部資源定位的平均延遲和跳數。子網的節點數為i,若子網協議采用Chord算法,子網內會話建立平均跳數為logi,那么會話建立的平均延遲為0.5 logi。
(1)H1-P2PSIP系統子網間會話建立延遲分析,以子網協議使用Chord算法為例:
會話建立的平均跳數

會話建立的平均延遲

(2)一般分層P2PSIP系統子網間會話建立延遲分析,以子網和上層覆蓋網都使用Chord算法為例:
子網與子網用戶會話建立的平均跳數

設定t為區域間會話建立的平均延遲

2.2.1 消耗網絡帶寬分析
多跳DHT算法如CAN,Chord,Pastry和Tapestry,這些算法可以使用戶節點經過有限跳數內定位存儲在系統中的對象。多跳DHT算法力求每個節點維護一個小的路由片段(典型的如(log))。因為我們預判系統的成員關系變化的非常頻繁。所以存儲一個小的片段就會使得成員關系變化時系統的維護代價較小。
多跳DHT算法在節點規模不大的系統中能很好的工作,可用于分層的P2PSIP系統的子層。每個節點維護一個路由片段,對節點性能要求比較低,節點變化只影響部分路由。子網所消耗的帶寬是比較小的,這樣的系統已經比較成熟。本文主要針對上層覆蓋物進行研究。
上層網絡節點是從子層中根據節點的處理能力、網絡帶寬和穩定性選擇出來的,可以充分利用超級節點的這些特點。而超級節點高處理能力、大的網絡帶寬和相對穩定的狀態都比較適用于單跳DHT算法。
在分析單跳DHT算法的開銷定義了一些參數:
(1)系統中超級節點數(子網的數量)
(2)超級節點節點關系變化率(超級節點的穩定性)
(3)上層網絡標示符環分片數
(4)每個固定時間段內節點發送keep-alive消息個數
(5)slicerev片首收集節點發出的事件通知時間間隔
(6)消息位數(bit)
上層覆蓋需要的帶寬為[5]

綜上所述,節點越穩定系統需要的帶寬越少。當超級節點的性能達到該算法的要求時,上層覆蓋物能夠良好的運行。
2.2.2 超級節點分析
可行性的關鍵在于超級節點是否能夠滿足單跳 DHT算法的要求,超級節點的性能直接影響上層網絡的性能。
(1)超級節點穩定性
單跳 DHT算法前提是節點關系變化規律接近 Gnutella,那么從子網中選擇保持在線狀態時間不小于Gnutella節點在線狀態時間的平均值的節點作為超級節點的候選節點,并且擇優選取以取得更好的穩定性降低維持系統的開銷。如果網絡帶寬有限制的話可以根據(1)式來限定 的大小即超級節點的穩定性,從而得出選擇條件。
(2)超級節點的存儲能力
每個節點的覆蓋網路由信息包括:32位的IP地址、160位的數據對象關鍵字,所在子網的fingertable的大小為SMB,這個數值比較小。設節點數為,需要的存儲空間=24B+MB。例如=10241024時消耗存儲空間為(24+)MB。選擇超級節點時存儲能力不小于,而這個標準很容易滿足。
(3)超級節點數量
子網根據實際位置信息來劃分,每一個子網選出一個超級節點。那么超級節點數是和實際應用中參與到系統的區域數量相關的。區域數量由區域劃分方案決定,文獻[3]中提出了幾種區域劃分的方案。按照實際情況,105到106數量的子網數足夠使用,超級節點的數量不會超出單跳DHT算法可以容忍的數量。
由上述分析,超級節點具有高處理能力、大的網絡帶寬和相對穩定的狀態,并且單跳DHT算法得對節點的性能要求比較高和忽視節點異構性。上層覆蓋網采用和子網覆蓋網采用不同的并且是特殊的 DHT算法以降低會話建立的平均跳數和平均延遲。隨著硬件飛速的發展和地區間通信量的日益增加,本方案通過犧牲適當的帶寬和存儲能力的代價來提高網絡電話的性能是可取的。
用戶A和B分別在域名為p2p1.com和p2p2.com的子網中。A現在要求與B建立一個會話,會話建立的步驟為:
(1)A發出INVITE消息,自己所在子網提出用戶定位的請求。節點在自己所在子網的 DHT中查詢上層覆蓋網的入口節點。
(2)上層覆蓋網節點收到p2p1.com子網發來的定位請求后查詢自己的finger table直接找到負責存儲被呼叫方所在子網的入口節點地址的節點。
(3)B所在子網節點收到上層覆蓋網的定位請求后,定位為到B。A得到了B的實際IP地址。
(4)最后的會話建立過程和P2P覆蓋網無關,按照SIP協議的建立流程建立起點對點的會話連接。
第1、2、3步為用戶定位的部分。我們研究的延遲問題主要來源于用戶定位的延遲。第2步和其它分層的 P2PSIP系統不同。
設定網絡中的節點數為108,劃分為100個子網,每個子網節點數量為106。子網內部邏輯的每跳路由平均時間消耗1設定為50ms,上層覆蓋網邏輯每跳路由平均時間消耗設定為21也就是100ms。并且子網采用Chord協議。
采用本方案的會話建立延遲為0.52450+100=850ms,其它分層 P2PSIP系統需要消耗的時間為1150ms。由此可以看出本文提出的H1-P2PSIP系統能夠減少會話建立的延遲。如果上層覆蓋網的規模擴大到105,也就是說子網劃分為105個上層覆蓋網消耗的帶寬大約為25kbps。然而這個規模的子網數量遠遠超過實際應用能夠到達的規模,消耗的帶寬仍然是可以接受的。
通過實例分析表明,在消耗的帶寬在合理的范圍內的情況下本文所提出的方案可以減低用戶會話建立的延遲,對系統服務性能的提高時很有意義的。
隨著地區間交流合作的日益緊密,區域間電話量和用戶會不斷的增加。區域間會話建立的高延遲問題需要得到解決。本文通過研究單跳DHT算法,結合分層P2PSIP系統中超級節點高帶寬和高穩定性的特點,把單跳DHT算法引入上層覆蓋網協議。提出了H1-P2PSIP系統并且分析了該方案的可行性和系統中超級節點所需的性能。通過分析得出該方案在付出可以接受的代價情況下可以降低區域間會話建立的延遲。
[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.