SIP協(xié)議是當前VoIP和IM等多媒體協(xié)議的呼叫建立協(xié)議。P2P技術提供了分布式的網絡架構中通信節(jié)點之間得對等通信能力,P2P網絡架構經歷了集中目錄式網絡架構、純P2P網絡架構、混合式P2P網絡架構和結構化P2P網絡架構。通過引入P2P技術,SIP網絡的能力可以得到增強。P2PSIP網絡主要有兩個重要的操作:對P2P節(jié)點的操作和用戶層面的操作。
1 SIP網絡
會話發(fā)起協(xié)議(SIP)是互聯(lián)網工程任務組(IETF)制定的多媒體通信應用層控制協(xié)議,用于建立、修改和終止多媒體會話。SIP協(xié)議借鑒了超文本傳輸協(xié)議(HTTP)、簡單郵件傳輸協(xié)議(SMTP)等,采用基于文本協(xié)議控制方式,支持代理、重定向、登記定位用戶等功能[1]。
SIP憑借其簡單、易于擴展、便于實現(xiàn)等諸多優(yōu)點而得到了廣泛應用。3GPP等標準化組織已經選擇SIP作為下一代網絡(NGN)和3G多媒體子系統(tǒng)(IMS)中的通信協(xié)議,業(yè)界已廣泛應用了多種基于SIP的多媒體業(yè)務[2]。
SIP網絡采用客戶端/服務器(C/S)的網絡架構,按域劃分用戶。每個域的SIP服務器管理著本域內的用戶,用戶在使用SIP業(yè)務時,需要注冊到SIP服務器。各用戶之間的通信需要由SIP服務器來進行路由,因此存在SIP服務器的“單點故障”和“性能瓶頸”等問題。
目前有多種提升SIP服務器處理能力的方案,如采用高處理能力的服務器、采用多服務器間的N+1或熱備份方案,或者采用多服務器負載均衡技術。
2 P2P技術在互聯(lián)網上的應用
P2P技術本身并不是新的概念或技術,它的原理是將網絡上的通信節(jié)點作為平等的通信終端,任意兩個通信節(jié)點之間既互為“服務器”又互為“客戶端”。這一點與互聯(lián)網的基礎協(xié)議TCP/IP一致,TCP/IP也沒有服務器或客戶端的概念,任意兩個節(jié)點之間是平等通信的。隨著互聯(lián)網應用的擴展,P2P技術得到了廣泛的應用。P2P網絡采用分布式對象定位機制,使得信息或媒體流在節(jié)點之間直接傳送,降低了中轉開銷,從而提高了網絡的可擴展性,節(jié)省了網絡帶寬。
很多基于P2P技術如共享MP3格式音樂文件的Napster服務、SETI@Home計劃,尤其是Skype應用的成功,使得P2P技術成為業(yè)界關注的焦點。
3 P2P網絡架構
P2P 網絡的技術核心是解決分布式節(jié)點之間的資源定位,這需要合適的網絡架構,發(fā)展至今共經歷了3代網絡架構。
3.1集中目錄式網絡架構
最早出現(xiàn)的P2P應用模式就是集中目錄式P2P網絡,Napster是該架構模型最典型的代表。用戶需要登錄到中心目錄服務器,通過目錄服務器查詢存儲各個節(jié)點的資源信息。這種結構的最大特點是所有的資料都是存貯在各個用戶節(jié)點中。用戶獲取資源時,節(jié)點根據(jù)網絡流量和延遲等信息選擇合適的節(jié)點建立直接連接,而不必經過中央服務器。
3.2純P2P網絡架構
純P2P網絡架構采用的是廣播式的P2P模型。在這種架構下,沒有集中的中央服務器,每個用戶節(jié)點隨機接入到網絡,并與自己相鄰的一組節(jié)點通過端到端連接構成一個邏輯覆蓋的網絡。節(jié)點之間的內容查詢和內容共享都是直接通過相鄰節(jié)點以廣播方式接力傳遞。為了避免循環(huán)搜索現(xiàn)象,每個節(jié)點會記錄其搜索軌跡。
Gnutella模型是現(xiàn)在應用最廣泛的純P2P網絡架構,采用泛洪式的節(jié)點搜索算法,解決了網絡結構中心化的問題,擴展性和容錯性較好。但是Gnutella網絡可用性較差,易被病毒攻擊,并且極大地消耗了網絡帶寬,很容易造成網絡擁塞與不穩(wěn)定。
3.3混合式P2P網絡架構
混合式P2P網絡在純P2P網絡架構基礎上加入了超級節(jié)點的概念。在這種網絡下,將節(jié)點按能力 (計算能力、內存大小、連接帶寬、網絡滯留時間等)不同區(qū)分為普通節(jié)點和超級節(jié)點兩類。超級節(jié)點與其臨近的若干普通節(jié)點之間構成一個自治的簇,簇內采用基于集中目錄式的P2P模式,而整個P2P網絡中各個不同的簇之間再通過純P2P的模式將超級節(jié)點相連。有時甚至也可以在各個超級節(jié)點之間再次選取性能最優(yōu)的節(jié)點,或者另外引入一新的性能最優(yōu)的節(jié)點作為索引節(jié)點來保存整個網絡中可以利用的超級節(jié)點信息,并且負責維護整個網絡的結構。
普通節(jié)點的文件搜索先在本簇內進行,只有查詢結果不充分時再通過超級節(jié)點之間進行有限的泛洪。同時,每個簇中的超級節(jié)點監(jiān)控著所有普通節(jié)點的行為,從而確保一些惡意的攻擊行為能在網絡局部得到控制,也在一定程度上提高了整個網絡的負載平衡。
混合式P2P網絡架構綜合了集中目錄式P2P快速查找和純P2P去中心化的優(yōu)勢,Kazaa模型是P2P混合模型的典型代表。
然而,由于超級節(jié)點本身的脆弱性也可能導致其簇內的節(jié)點處于孤立狀態(tài),因此這種局部索引的方法仍然存在一定的局限性。這導致了結構化的P2P網絡模型的出現(xiàn)。
3.4結構化P2P網絡架構
結構化P2P架構采用純分布式的消息傳遞機制,根據(jù)關鍵字進行節(jié)點查找定位。目前結構化網絡的主流查詢定位方法是采用分布式哈希表(DHT)技術,這也是目前擴展性最好的P2P路由方式之一。