羅 琦
(中國西南電子技術(shù)研究所,成都 610036)
基于P2P-SIP的分布式信息共享框架?
羅 琦??
(中國西南電子技術(shù)研究所,成都 610036)
針對分布式異構(gòu)網(wǎng)絡(luò)信息共享框架問題,提出了基于P2P-SIP的分層信息資源共享覆蓋網(wǎng)絡(luò)模型。該模型從7層開放式系統(tǒng)互聯(lián)參考(OSI)模型的第5層會話層進行信息資源共享互操作過程建模,具有兩層的“去中心化”的結(jié)構(gòu),采用CHORD環(huán)實現(xiàn)信息資源組織和路由,采用擴展的SIP協(xié)議實現(xiàn)網(wǎng)絡(luò)節(jié)點維護和信息資源共享過程協(xié)商。仿真試驗結(jié)果表明,該模型能夠自適應(yīng)、自協(xié)商地實現(xiàn)信息資源組織、資源發(fā)現(xiàn),能夠有效解決傳統(tǒng)集中式共享系統(tǒng)帶來的單點失效和性能瓶頸等問題。
分布式異構(gòu)網(wǎng)絡(luò);信息資源共享;端到端;分布式哈希表;擴展SIP協(xié)議
隨著無線寬帶網(wǎng)絡(luò)3G接入技術(shù)、無線局域網(wǎng)技術(shù)(Wireless Local Area Network,WLAN)的快速發(fā)展,越來越多的固定和移動智能終端采用有線或無線的網(wǎng)絡(luò)接入方式互聯(lián),形成巨大數(shù)量的信息資源和用戶,這些信息資源具有種類多、來源廣和動態(tài)變化等特點,在分布式異構(gòu)網(wǎng)絡(luò)環(huán)境下,信息資源共享成為分布式信息集成系統(tǒng)建設(shè)的關(guān)鍵。根據(jù)資源消費和使用關(guān)系,將信息系統(tǒng)中信息資源劃分成兩種,即“資源消費方”和“資源提供方”,信息資源共享過程就是“資源消費方”和“資源提供方”之間實現(xiàn)資源注冊、資源定位、共享協(xié)商、信息獲取的會話過程。本文從OSI 7層模型的第5層會話層(Session)對信息資源共享互操作過程進行建模,提出基于P2P-SIP(Peer-to-Peer-Session Initiation Protocol)的分層信息資源共享覆蓋網(wǎng)絡(luò)模型,在對信息資源進行統(tǒng)一資源標識(Uniform Resource Identifier,URI)基礎(chǔ)上,對SIP協(xié)議按照信息資源共享過程進行了擴展,采用CHORD環(huán)實現(xiàn)分層的信息資源共享網(wǎng)絡(luò)結(jié)構(gòu),該模型具有柔性、易擴展的特點,適用于移動的、動態(tài)的分布式異構(gòu)信息共享集成。
分布式信息系統(tǒng)共享集成框架主要有3種結(jié)構(gòu):一是星型網(wǎng)絡(luò)結(jié)構(gòu),以中心服務(wù)器為信息匯聚和分發(fā)中心;二是樹狀網(wǎng)絡(luò)結(jié)構(gòu),采用分層結(jié)構(gòu)分級完成信息資源管理、定位和信息獲??;三是端到端對等覆蓋網(wǎng)絡(luò)結(jié)構(gòu),對等網(wǎng)由網(wǎng)絡(luò)節(jié)點和特定的路由算法構(gòu)成,網(wǎng)絡(luò)節(jié)點之間通過自動協(xié)商實現(xiàn)資源動態(tài)管理、查找、定位和資源獲取。其中,星型網(wǎng)絡(luò)采用以服務(wù)器為中心的客戶機/服務(wù)器結(jié)構(gòu),隨著用戶數(shù)量的不斷增多,整個網(wǎng)絡(luò)規(guī)模不斷擴大,服務(wù)器所提供的網(wǎng)絡(luò)帶寬和處理能力成為瓶頸,而且,服務(wù)器崩潰會造成整個系統(tǒng)癱瘓;樹狀網(wǎng)絡(luò)結(jié)構(gòu)仍然是客戶機/服務(wù)器結(jié)構(gòu),采用分層的方法實現(xiàn)多級服務(wù)器節(jié)點網(wǎng)絡(luò),通過增加服務(wù)器節(jié)點,實現(xiàn)網(wǎng)絡(luò)規(guī)模擴容和處理性能均衡;端到端對等網(wǎng)絡(luò)結(jié)構(gòu)中所有參與系統(tǒng)的節(jié)點處于完全對等地位,沒有中心節(jié)點,在執(zhí)行系統(tǒng)共享操作時,系統(tǒng)節(jié)點既充當服務(wù)器角色為其他節(jié)點提供服務(wù),同時充當客戶機角色從其他系統(tǒng)節(jié)點獲取服務(wù),能夠降低客戶機/服務(wù)器結(jié)構(gòu)網(wǎng)絡(luò)中的“單點故障”和“性能瓶頸”問題。
P2P-SIP是基于SIP協(xié)議的端到端覆蓋網(wǎng)絡(luò)技術(shù),以RFC 3261 SIP協(xié)議[1]為基礎(chǔ)進行協(xié)議擴展,利用RFC 3261 SIP協(xié)議擴展,完成P2P層網(wǎng)絡(luò)節(jié)點的加入、定位、查找和路由。P2P-SIP技術(shù)能夠自動適應(yīng)節(jié)點動態(tài)加入/退出,具有良好的可擴展性、魯棒性和自組織能力,能夠適應(yīng)分布式信息集成的靈活性、易擴展、低耦合、高安全性和高可靠性的要求。P2PSIP技術(shù)成為端到端覆蓋網(wǎng)絡(luò)研究的熱點,其典型應(yīng)用領(lǐng)域有電信領(lǐng)域的網(wǎng)絡(luò)電話VoIP(Voice of Internet Protocol)如SKYPE,即時通信系統(tǒng)如MSN,移動通信終端面向Web服務(wù)的應(yīng)用系統(tǒng)IMS(IP Multimedia Subsystem),集成VoIP和及時通信的SOSIMPLE[2]項目,文件共享系統(tǒng)如Napster、Gnutella等。P2P-SIP覆蓋網(wǎng)絡(luò)結(jié)構(gòu)是平等、自治、自組織的網(wǎng)絡(luò),能夠?qū)崿F(xiàn)高效的信息資源定位、靈活的信息傳輸,成為異構(gòu)網(wǎng)絡(luò)環(huán)境下信息資源共享集成的主流技術(shù)框架。
3.1 分層的信息資源共享P2P-SIP網(wǎng)絡(luò)模型
分層的信息資源共享P2P-SIP覆蓋網(wǎng)絡(luò)模型如圖1所示。將信息資源共享網(wǎng)絡(luò)劃分為若干個子網(wǎng),每個子網(wǎng)均由一個超級節(jié)點和多個普通信息資源節(jié)點組成。該網(wǎng)絡(luò)模型劃分為兩層,其一是信息資源管理層,其二是信息資源層。
圖1 分層的信息資源共享P2P-SIP網(wǎng)絡(luò)Fig.1 A hierarchical P2P-SIP network for information resource sharing
信息資源管理層是由超級節(jié)點組成結(jié)構(gòu)化P2P網(wǎng)絡(luò),超級節(jié)點之間采用SIP協(xié)議實現(xiàn)子網(wǎng)間信息資源的查找和定位,并且超級節(jié)點還作為普通信息資源節(jié)點之間的通信網(wǎng)關(guān)。超級節(jié)點具有更高的網(wǎng)絡(luò)帶寬和更快的計算資源,超級節(jié)點集中實現(xiàn)了傳統(tǒng)C/S模式下SIP代理服務(wù)器、重定向服務(wù)器、注冊服務(wù)器、位置服務(wù)器等功能。
信息資源層是由若干個子網(wǎng)組成,每個子網(wǎng)由一個超級節(jié)點和多個普通信息資源節(jié)點組成,構(gòu)成一個組播域。圖1中A、B、C節(jié)點是超級節(jié)點,A與普通節(jié)點a1、a2、a3、a4組成子網(wǎng),B與普通節(jié)點b1、b2、b3組成子網(wǎng),C與普通節(jié)點c1、c2、c3組成子網(wǎng)。普通節(jié)點與超級節(jié)點進行SIP信令交互,實現(xiàn)子網(wǎng)內(nèi)普通節(jié)點之間信息共享會話建立、會話協(xié)商和會話終止等信息共享過程。部分普通節(jié)點在滿足某些激發(fā)條件時,可以轉(zhuǎn)換成為超級節(jié)點,能夠解決因超級節(jié)點失效帶來的單點故障問題。
3.2 基于Chord環(huán)的信息資源組織
超級節(jié)點按照CHORD環(huán)[3]組成一種基于分布式哈希表(Distributed Hash Tables,DHTs)的結(jié)構(gòu)化覆蓋網(wǎng)絡(luò),節(jié)點路由通過CHORD算法完成。網(wǎng)絡(luò)節(jié)點規(guī)模為m,以節(jié)點IP地址和通信端口作為參數(shù),采用HASH算法為每個節(jié)點分配一個m位的節(jié)點標識符NodeID,采用節(jié)點統(tǒng)一資源標識NodeURI作為節(jié)點間SIP信息交互的唯一標識,NodeURI=Node-ID@IP;user=username。所有節(jié)點根據(jù)其NodeID大小,邏輯上形成首尾相連的節(jié)點數(shù)最多為2m的邏輯環(huán)結(jié)構(gòu)。每個節(jié)點需要存儲和維護一個具有m個其他節(jié)點信息的表格,這些信息的集合稱為路由表(Finger Table)。路由表中的節(jié)點不是直接相鄰的節(jié)點,其間距將成2i的關(guān)系排列。節(jié)點查詢定位是按照順時針方向跳躍式進行。
圖2是一個m為6的CHORD環(huán)結(jié)構(gòu)的P2PSIP網(wǎng)絡(luò)拓撲示意圖。圖中節(jié)點ID的標識范圍為[0,63],環(huán)中每個節(jié)點維護一個路由表,表中包含6個路由表項。所有節(jié)點的路由表組成分布式HASH表(DHT),DHT結(jié)構(gòu)能夠自適應(yīng)節(jié)點的動態(tài)加入及退出,通過操作路由表提供有效的節(jié)點查詢和定位算法。路由表中各項分別保存一個半封閉跳躍區(qū)間[(n+2i-1)mod 2m,(n+2i)mod 2m),并保存該區(qū)間內(nèi)起始ID編號后的第一個后繼節(jié)點信息和前驅(qū)節(jié)點信息,實現(xiàn)2i跳躍式路由查詢。通過路由表操作,含有N個節(jié)點的網(wǎng)絡(luò),查詢的跳數(shù)為O(lb N)。
圖2 基于CHORD環(huán)的網(wǎng)絡(luò)拓撲圖Fig.2 Network topology based on CHORD ring
超級節(jié)點除了維護DHT路由表,還維護子網(wǎng)內(nèi)普通節(jié)點的注冊信息表。采用ResourceURI作為普通節(jié)點的唯一標識,用于在節(jié)點信息交互時標識資源身份,ResourceURI=資源名稱字符串;Resource-ID=resourceID。其中,Resource-ID通過指定HASH函數(shù)對資源名稱字符串進行HASH運算得到。圖2中,a1節(jié)點的資源名稱為a1@DomainA,假設(shè)對資源名稱字符串進行HASH運算后得到資源ID=1,則a1節(jié)點的ResourceURI=a1@DomainA;resourceID=1。
3.3 擴展的SIP交互協(xié)議
本文對SIP協(xié)議進行擴展,使其滿足網(wǎng)絡(luò)節(jié)點維護、信息資源共享過程控制的協(xié)商要求。擴展的SIP協(xié)議描述如下。
(1)SIP信令分為兩類:請求消息和響應(yīng)消息,所有消息由起始行、消息頭部和可選的消息體組成。請求消息的起始行指定請求消息類型,而響應(yīng)消息起始行表示請求是否成功,如果指定請求失敗,相應(yīng)消息起始行則給出失敗類型及原因。
(2)SIP協(xié)議定義了6種標準類型的請求消息,包括:①Invite:邀請用戶加入會話;②ACK:請求成功后確認;③OPTIONS:詢問服務(wù)器的性能;④BYE:會話結(jié)束;⑤CANCEL:取消未完成的請求;⑥REGISTER:注冊/注銷用戶。在此基礎(chǔ)上,還定義了一些擴展方法,包括REFER、SUBSCRIBE、NOTIFY、MESSAGE、UPDATE、INFO和PRACK。
(3)SIP響應(yīng)消息起始行包括SIP版本號、3位十進制數(shù)的狀態(tài)碼和原因值。3位十進制數(shù)的狀態(tài)碼指明請求消息的處理結(jié)果,原因值字段用以對該結(jié)果進行文本方式的描述。
(4)SIP定義的狀態(tài)碼范圍為:100~699,狀態(tài)碼的第一位數(shù)字指明響應(yīng)消息類型。
(5)DHT網(wǎng)絡(luò)支持擴展。在SIP消息頭擴展標題頭Require和標題頭Supported對DHT網(wǎng)絡(luò)支持表示,在SIP消息頭增加可擴展的標簽:DHT網(wǎng)絡(luò)標識、DHT HASH算法標識、DHT節(jié)點標識、DHT資源標識、DHT Chord環(huán)狀結(jié)構(gòu)標識、信息共享會話標識等。
(6)信息資源共享協(xié)商擴展,消息頭給出與請求信息資源有關(guān)的信息,包括資源請求方、資源提供方、共享會話協(xié)商描述。
3.4 信息資源共享過程
信息資源共享過程包括“子網(wǎng)內(nèi)信息共享”和“網(wǎng)間共享轉(zhuǎn)發(fā)”兩種情況?!白泳W(wǎng)內(nèi)信息共享”采用集中式基于目錄服務(wù)的信息共享機制,信息資源節(jié)點以超級節(jié)點為SIP服務(wù)器,采用SIP交互協(xié)議實現(xiàn)普通節(jié)點的注冊、注銷、查找和定位等操作?!熬W(wǎng)間共享轉(zhuǎn)發(fā)”采用基于DHT的資源路由轉(zhuǎn)發(fā)機制,實現(xiàn)子網(wǎng)間信息資源共享。
信息資源共享過程包括超級節(jié)點注冊、信息資源注冊、信息資源請求、信息資源查找和信息資源注銷等環(huán)節(jié),下面對這些過程進行詳細描述。
3.4.1 超級節(jié)點注冊
(1)申請注冊的節(jié)點構(gòu)造REGISTER消息,并向P2P網(wǎng)絡(luò)引導(dǎo)節(jié)點發(fā)送該注冊消息,其中To和From域均為申請加入節(jié)點的NodeURI,初始情況下Contact域為引導(dǎo)節(jié)點的NodeURI;
(2)接收節(jié)點接收到注冊消息,根據(jù)注冊信息中NodeURI中的Node-ID,查詢路由表判斷本節(jié)點是否是申請節(jié)點的實際接入節(jié)點,實際接入節(jié)點是第一個Node-ID大于申請節(jié)點的節(jié)點;
(3)若接收節(jié)點不是申請節(jié)點的實際接入節(jié)點,則在路由表中查找一個Node-ID更接近申請節(jié)點Node-ID的節(jié)點,并將定位的節(jié)點NodeURI封裝在302 Moved Temporarily信息的Contact域,并將該消息返回申請注冊的節(jié)點;
(4)申請注冊的節(jié)點收到302返回信息后,向Contact域內(nèi)節(jié)點再次發(fā)出注冊信息,重復(fù)步驟2、3直到定位到實際接入節(jié)點;
(5)實際接入節(jié)點向申請節(jié)點發(fā)送200 OK信息,該信息包括實際接入節(jié)點的基本信息、路由表內(nèi)容、前驅(qū)節(jié)點信息、后繼節(jié)點信息等,申請節(jié)點根據(jù)這些信息設(shè)置自己的前驅(qū)節(jié)點信息、路由表信息、后繼節(jié)點信息等內(nèi)容,而后實際接入節(jié)點根據(jù)新加入節(jié)點信息修改自身路由表內(nèi)容、前驅(qū)節(jié)點信息、后繼節(jié)點信息等內(nèi)容,并且將新節(jié)點的加入信息發(fā)布到整個CHORD環(huán)結(jié)構(gòu)中。
3.4.2 信息資源注冊
以超級節(jié)點作為注冊服務(wù)器,構(gòu)造REGISTER消息并向選定的超級節(jié)點發(fā)送該注冊消息,其中To和From域均為申請注冊普通節(jié)點的ResourceURI,Contact域為超級節(jié)點的NodeURI。超級節(jié)點根據(jù)注冊消息新增或更新本地的普通節(jié)點注冊表。
3.4.3 共享信息資源請求
信息共享發(fā)起方發(fā)送Invite消息發(fā)起共享信息資源請求,Invite消息采用會話描述協(xié)議[4](Session Description Protocol,SDP)描述共享信息資源要求,并且在Invite消息中攜帶的用戶信息,由超級節(jié)點對信息共享發(fā)起方的訪問權(quán)限進行授權(quán)和驗證。
3.4.4 信息資源查找
采用不包含Contact頭域的注冊請求消息為信息資源查詢消息,其中To域包括查詢信息資源的Resource-ID,F(xiàn)rom域包含發(fā)出查詢命令的信息資源節(jié)點標識ResourceURI。由本地超級節(jié)點通過檢索注冊信息資源節(jié)點表,完成本地普通節(jié)點的搜索和定位;跨子網(wǎng)的信息資源查詢消息沿著CHORD環(huán)傳遞至其他超級節(jié)點,超級節(jié)點收到查詢消息后檢索本節(jié)點注冊表,將搜索到目標節(jié)點的ResourceURI封裝到響應(yīng)消息的Contact頭域,將響應(yīng)發(fā)送給申請查詢節(jié)點。
3.4.5 信息資源注銷
信息資源節(jié)點注銷消息采用REGISTER消息,將Expires參數(shù)設(shè)為0。
(1)超級節(jié)點注銷。超級節(jié)點注銷信息中列出節(jié)點的前驅(qū)和后繼節(jié)點的信息,方便維護CHORD環(huán)的DHT路由表。超級節(jié)點注銷之前將所存儲的普通節(jié)點注冊信息表內(nèi)容轉(zhuǎn)交子網(wǎng)內(nèi)備份超級節(jié)點,并由備份超級節(jié)點發(fā)起超級節(jié)點注冊過程。
(2)信息資源節(jié)點注銷。由普通節(jié)點將注銷消息發(fā)送至其超級節(jié)點,超級節(jié)點將注銷信息資源節(jié)點信息從注冊信息資源節(jié)點表中刪除。
由3臺機器分別模擬3個子網(wǎng)(A、B、C),搭建信息資源共享試驗環(huán)境,以子網(wǎng)A中的信息資源a1向子網(wǎng)C的信息資源c3節(jié)點發(fā)起信息共享請求為例,進行了信息資源共享過程驗證。a1實現(xiàn)SIP協(xié)議中的用戶代理客戶機(User Agent Client,UAC),c3實現(xiàn)SIP協(xié)議中的用戶代理服務(wù)器(User Agent Server,UAS),超級節(jié)點A、C除了實現(xiàn)P2P-SIP覆蓋網(wǎng)絡(luò)運行和維護功能外,還提供信息資源共享核心服務(wù),包括認證服務(wù)、SIP代理服務(wù)、SIP重定向服務(wù)和網(wǎng)關(guān)服務(wù)。
如圖3所示,信息資源共享交換流程試驗流程如下:
(1)a1首先進行c3的搜索和定位,向超級節(jié)點A的代理服務(wù)發(fā)送搜索請求消息Register,在超級節(jié)點A本地未搜索到c3,則通過A的重定向服務(wù)將搜索消息沿著Chord環(huán)傳遞;
(2)超級節(jié)點C搜索定位到目標節(jié)點c3,則由重定向服務(wù)利用重定向響應(yīng)消息302將目標超級節(jié)點C的NodeURI和節(jié)點地址信息,經(jīng)過Chord環(huán)傳送至超級節(jié)點A,超級節(jié)點A建立a1至c3的會話路徑;
(3)a1采用INVITE方法向c3發(fā)起信息共享會話請求,采用會話描述協(xié)議(Session Description Protocol,SDP)在Invite、180 OK、200 OK、ACK及BYE中描述共享信息協(xié)商信息;
(4)超級節(jié)點A和C具有認證服務(wù),對Invite消息中攜帶的用戶權(quán)限信息進行授權(quán)驗證,通過驗證的信令得到執(zhí)行,否則中止SIP信令的交互過程;
(5)超級節(jié)點為跨域普通節(jié)點信息交互提供網(wǎng)關(guān)服務(wù),a1與c3的會話由3個子會話組成,即會話a1-A、會話A-C、會話C-c3;
(6)根據(jù)信息類型和信息交互同步或異步模式,對共享會話交互協(xié)議進行協(xié)商,并完成信息共享傳輸;
(7)完成信息共享交互之后,由共享請求發(fā)起方al發(fā)送會話結(jié)束消息BYE結(jié)束信息共享會話過程。
圖3 信息資源共享交互流程Fig.3 Interchanging procedure of information resource sharing
本文將信息系統(tǒng)中信息資源劃分成兩種,即“資源消費方”和“資源提供方”,從OSI 7層模型的第5
層會話層(Session)對信息資源共享互操作過程進行建模,提出了基于P2P-SIP的分層信息資源共享覆蓋網(wǎng)絡(luò)模型,實現(xiàn)“資源消費方”和“資源提供方”的資源注冊、資源定位、共享協(xié)商、信息獲取等信息資源共享互操作。在試驗室環(huán)境下進行了信息資源共享試驗驗證,試驗表明該模型具有信息資源注冊、定位查詢等自組織特性,具有“去中心化”的結(jié)構(gòu),能夠避免傳統(tǒng)集中式共享系統(tǒng)帶來的單點失效和性能瓶頸等。下一步將進行在物理網(wǎng)絡(luò)環(huán)境中的信息資源共享超級節(jié)點選擇、路由優(yōu)化等相關(guān)研究。
[1]IETF S RFC 3261,SIP:Session Initiation Protocol[S].
[2]Bryan D A,Lowekamp B B.SOSIMPLE:A Serverless,Standards-based P2P SIP Communication System[C]//Proceedings of First International Workshop on Advanced Architectures and Algorithms for Internet Delivery and Applications. Orlando,F(xiàn)L:IEEE,2005:42-49.
[3]Morris S I,Chord R.A Scalable Peer-to-Peer Lookup Protocol for Internet Applications[J].IEEE/ACM Transactions on Networking,2003,11(1):17-32.
[4]RFC2327,SDP:Session Description Protocol[S].
A Framework of Distributed Information Sharing Based on P2P-SIP
LUO Qi
(Southwest China Institute of Electronic Technology,Chengdu 610036,China)
Focusing on information sharing framework in a distributed heterogeneous network,this paper proposes a hierarchical P2P-SIP(Peer-to-Peer-Session Initiation Protocol)overlapped network model.This model is based on information sharing interoperation procedure from Session Layer of OSI(Open System Interconnection).This model has“none-center”structure with two levels.It adopts CHORD ring to organize and route information resources.Based on extended SIP,the network model realizes the network nodes maintaining and information resources sharing negotiation.Simulation shows this model can realize self-adaptive and self-negotiating information sharing procedures including information resources organization,discovery,and this model can also effectively solve the problems of single point failure and performance bottleneck in a traditional centralized information sharing system.
distributed heterogeneous network;information resources sharing;peer-to-peer(P2P);distributed Hash table;extended SIP
13708029011@139.com
TN915.02;TP393
A
1001-893X(2013)05-0608-05
10.3969/j.issn.1001-893x.2013.05.016
羅琦(1972—),女,四川江油人,2000年獲工學博士學位,現(xiàn)為高級工程師,主要研究領(lǐng)域為信息系統(tǒng)集成框架以及嵌入式環(huán)境下分布式系統(tǒng)框架。
2012-11-02;
2013-04-16 Received date:2012-11-02;Revised date:2013-04-16
??
13708029011@139.com
LUO Qi was born in Jiangyou,Sichuan Province,in 1972.She received the Ph.D.degree in 2000.She is now a senior engineer.Her research concerns integrated framework of information system,distributed system framework in embedded environment.
Email:13708029011@139.com