通信學論文-P2P-SIP網絡電話.doc_第1頁
通信學論文-P2P-SIP網絡電話.doc_第2頁
通信學論文-P2P-SIP網絡電話.doc_第3頁
通信學論文-P2P-SIP網絡電話.doc_第4頁
通信學論文-P2P-SIP網絡電話.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

通信學論文-P2P-SIP網絡電話摘要由于P2P系統中沒有中央服務器并且網絡能夠自組織所以P2P系統具有高擴展性,健壯性和容錯性。這些特性是通過在P2P覆蓋網絡中定位感興趣的源的更高的延遲來獲得的。網絡電話可以看作是參與者自組P2P覆蓋網來定位其他參與者并與其他參與者交互的一種P2P結構的應用。我們提出一種用于基于會話初始化協議(SIP)的IP電話系統的純P2P結構。我們的P2PSIP結構既支持基礎的用戶注冊和呼叫建立也支持離線消息發送、語音/視頻郵件和多方會議這樣的高級服務。此外,我們簡要介紹了執行情況。關鍵詞P2P,網絡電話,會話初始化協議(SIP)1引言現存的基于會話初始化協議(SIP1)的用戶/服務器網絡電話結構為每個域使用一個注冊服務器。主要的系統消費是由一個專用系統管理器造成的維護和配置。這意味著在一個小型網絡中迅速地建立系統(例如,緊急通訊或會議)是很困難的。另一方面,端到端(P2P)系統2因為沒有單點錯誤,所以是可測量和可靠的。P2P系統對全局、災難性失敗是強壯的,雖然單個的結點可能會失敗。我們提出一種使用SIP的P2P網絡電話結構。P2P-SIP有兩個主要的目標:(1)一個增加健壯性完全的分布式模型;(2)不改變現存的控制結構(如DNS)進行配置的能力。分析了許多可選的設計,提出使用Chord3作為基本的分布式hash表(DHT)的P2P-SIP端點。新的混合結構既允許傳統的SIP電話也允許用戶在本地域沒有SIP服務器時在P2P網絡中查找。使用SIP在P2P-SIP中執行各種DHT功能,例如端發現,用戶登記,結點故障發現,用戶定位以及通過用P2P代替DNS4用于SIP中的下一跳查找的呼叫建立。實現了一個P2P-SIP適配器,SIPPEER5,允許現有的或者新的SIP用戶代理不改變用戶代理就可以連接到P2P-SIP網絡。例如,SIPPEER在同一臺主機上可以作為基于PC的SIP用戶代理并充當它的輸出代理。SIPPEER也可以作為獨立的SIP用戶代理商,代理人或有命令行用戶界面的注冊服務器。模塊化的設計允許組件的重用和替換。例如,Chord可以替換為另一種DHT而不影響其他部分。開放的結構可以不影響現存的設計安裝新的服務。例如,一個新的語音郵件模塊可以添加到現存的結點上。除了P2P的擴展性和可靠性,P2P-SIP還有如下優點:不需要維護或配置:這個系統是開箱即用的,不需要任何冗余的服務器安裝(包括NAT和防火墻的配置)。我們的工作將TETF零配置網絡工作組6的目標擴展到多媒體通訊和協作系統。協同工作:不像Skype7之類的其他P2P系統,我們使用SIP與其他端點通訊。這可以很容易的與任何現存的SIP-PSTN網關的IP電話結構或象Asterisk的基于服務器的IPPBX一起工作。這些優點是增加資源查找延遲和安全的威脅來得到的。一個不使用集中的元件的用于認證的可靠結構不在這篇文章的討論范圍內。2結構框架我們改進了分布式哈希表(DHT)的設計。一個極端是,這個分布式哈希表可以在服務器中用于服務器的領域同時仍然管理客戶/服務器結構。另一個極端,所有的結點成為分布式哈希表的一部分。我們選擇如圖1所示的一種中間設計,具有高的容量(帶寬,CPU,內存)和可用性(正常運行時間,公共IP地址)的一些結點成為超級結點并組成分布式哈希表,而其他的普通結點與一個或更多的超級結點相連而不是成為分布式哈希表的一部分。圖1與DHT中超級結點相連的普通結點圖2P2P-SIP結點中的塊算法圖2給出了P2P-SIP結點中不同部件的算法。結點啟動和用戶用標識符登記時,發現模塊被激活用于初始化網絡地址翻譯和防火墻探測8,點發現和SIP注冊。組播SIP注冊、上一引導周期存儲的端地址和預配置的自舉地址被用來初始化結點集。用戶界面模塊記錄用戶的“朋友列表”并調用用戶定位模塊定位這些朋友。用戶定位模塊使用SIP模塊,或者,如果這個結點加入了DHT就使用DHT模塊。DHT模塊維護端信息(例如,Chord指針表)并執行像發現、加入和離開的一些DHT操作。SIP被用作是定位其他用戶或結點、加入DHT、注冊用戶、呼叫建立和即時消息的基礎協議。一旦用戶被定位,呼叫建立或即時消息就可以直接經由SIP模塊發送到用戶的電話。SIPREGISTER更新和OPTIONS消息用于探測結點失敗。當一個超級結點關閉或者失敗,注冊被發送到DHT中的其他適當的超級結點。其他的SIP功能例如第三方呼叫控制和呼叫傳輸可以用相同的方法實現。媒介路徑(音頻設備,編解碼器和傳輸)獨立于P2P-SIP操作。一些分布式哈希表允許對多端點并行搜索,不像Chord中的順序搜索。在這種情況下超級結點可以擔當背靠背用戶代理并向鄰居端點傳播SIP消息。然而,除非是像美國的911這種緊急呼叫路由的情況,應該避免并行搜索以免網絡中發生泛洪。在實際的實施中允許多種P2P-SIP網絡(分布式哈希表)相互連接是非常有用的。我們的混合結構允許P2P-SIP網絡群和基于服務器的SIP結構共存。有兩種方法:將一個網絡中所有的用戶與所有其他網絡交互注冊或者在呼叫建立的過程中在其余的網絡中定位用戶。前一種方法工作在少量的已知的P2P-SIP網絡。后一種方法可以使用一個像DNS這樣的全局命名服務器或層次化的P2P-SIP網絡實現。第一種情況,每一個P2P-SIP網絡用一個域名表示。這與基于服務器的SIP網絡是沒有區別的,域名在那個網絡中解析一個或多個自舉結點4。第二種情況,用P2P-SIP代替DNS來解析域名。例如,單獨的大的組織可以有本地P2P-SIP網絡與全局(公共)P2P-SIP網絡連接,如圖3所示。本地特定域的DHT有典型的服務結點,這些結點在全局DHT中也是可達的。例如,在全局DHT中映射到結點A和C。特定域DHT中的任何結點可以到達全局DHT,全局DHT中的任何結點可以經由域中的典型服務結點到達特定域DHT。圖3混合系統舉例混合結構允許用戶在她的提供者可用的情況下用她的提供者注冊,也可以用P2P-SIP網絡。呼叫建立在可以用DNS解析時被發送到SIP目的地,同樣也可以用P2P-SIP網絡。3設計和實現3.1命名結點和用戶標識符是用SIP通用資源標志符(URI)表示的。例如,如果一個結點在傳輸地址:8054上監聽SIP消息并且Chord的哈希函數給出的鍵值是17,結點的URI就是sip:17:8054。域中的一個不知道傳輸地址的結點標識符或鍵值(例如10)表示為sip:10。每一個局部的P2P-SIP網絡用一個DNS域名表示,example.invalid用于沒有域的鍵,例如全局DHT中的鍵。這樣的結點標識符對于DHT的維護是有用的,例如,查詢另外一個結點的傳輸地址來成為這個結點的指針表的入口。用戶標識符可以由系統隨機分配,或由用戶選擇一個鑒定名(如,)或者用戶選擇她的有效email地址(如)。前兩種方法允許用戶選擇密碼,但是不清楚P2P結點怎樣從用戶那里得到密碼。我們使用最后一種方法,因為它允許系統產生一個隨機密碼并email給用戶用作驗證。前兩種方法,如果密碼由系統隨機產生并且SIPREGISTER請求消息的連接頭里有email地址,密碼可以發給用戶。3.2認證當一個用戶第一次登陸P2P-SIP網絡時,我們需要驗證用戶的標識符是有效的并且確實屬于該用戶。沒有公共密鑰結構(PKI),系統可以產生一個新的密碼并用email發送給用戶。這個密碼在后來的撥入當中用于注冊驗證??梢允褂靡粋€可用的生存時間,比如一個月。當用戶隨后再登陸時這些信息被刷新。3.3SIP消息SIPREGISTER消息被結點既用于用戶注冊也用于DHT的維護。用戶注冊消息類似于基于服務器的注冊,To頭表示用戶標識符,Contact頭表示用戶的聯系位置。結點將SIPREGISTER消息用于兩種情況:查詢和更新。如果消息中有Contact頭,則是更新請求表示發送者想更新To頭中用戶標識符的綁定;否則就是一個查詢請求,發送者請求獲得To頭中用戶標識符的Contact信息;在一個P2P-SIP結點的Chord網絡中結點的Contact信息包括它自己的傳輸地址,后繼結點地址和前導結點地址。3.4DHT發現和加入結點發送SIPREGISTER消息使用sip:5(SIPREGISTER組播IPv4地址)作為請求URI,To頭作為本地結點標識符來發現本地網絡中的其他P2P-SIP端點。也可以使用像服務定位協議(SLP)和預配置的自舉結點地址這樣的額外機制。結點存儲發現的端點地址列表用于以后的重新啟動。一旦結點發現一個端點,它通過發送一個以To頭作為此結點標識符的SIPREGISTER查詢給那個端點加入DHT。成功的應答包括現存的DHT中的此結點的后繼和前導,結點可以用來更新它的Chord數據結構。結點一旦知道它在Chord環里的鄰居,就向它們(后繼和前導)發送SIPREGISTER更新,這樣就可以更新它們的數據結構。Chord的穩定性是通過周期性的發送SIPREGISTER消息更新后繼和前導的數據結構以及查詢指針表入口以校驗本地數據結構來實現的。3.5SIP消息路由Chord里的每個結點對基于它在Chord環里的位置的鍵空間的一個子集負責。當結點收到一個SIP請求,它提取出目標鍵作為REGISTER請求的To頭URI和其他任何請求的請求URI。對REGISTER請求,如果目的鍵值屬于這個結點的鍵空間,則這個結點應該是目的鍵的登記者。如果這個鍵的用戶記錄存在,則發送一個成功的應答,否則就發送一個失敗的應答。成功的應答包含用戶的連接位置或結點聯系(本地傳輸地址,后繼和前導地址)分別用于用戶或結點注冊。如果結點收到一個非REGISTER請求,它為目標用戶提供代理或將請求重定向到可用的用戶連接位置。如果目標鍵值不屬于這個結點的鍵空間,則請求被代理到基于Chord算法和數據結構的下一跳結點。3.6可靠性Chord通過存儲(N)個后繼地址以及在K(常量)個成功的后繼結點中復制鍵來提供結點失敗時的可靠性。在P2P-SIP中,結點更新應答包含所有(N)后繼地址,并且用戶注冊信息被復制到K個后繼結點中。當一個結點有序地離開網絡時,它會注銷它的后繼和前導以便他們可以更新Chord數據結構。并把所有的注冊轉移到它的后繼。當一個結點異常地失敗時,它的后繼和前導發現這個失敗并且更新他們的數據結構。算法的穩定性保證了信息能夠在一段時間內傳播到Chord中的其他相應的結點。注冊信息由結點A傳到結點B,如果結點B信任結點A就可以鑒定結點A,否則結點B重新生成一個密碼并發送給用戶的email地址。一旦我們擁有一個P2P名譽系統,DHT中將只存在可信任的結點。如果注冊結點是惡意的則問題仍然存在,而且可能造成拒絕服務攻擊(DoS)。存儲用戶注冊信息的P2P-SIP結點也代理到那個用戶的呼叫請求。一旦呼叫建立完成,呼叫路徑中就不再需要P2P-SIP結點。3.7現存SIP電話的適配器一個SIP用戶代理商可以將P2P-SIP結點當作是輸出代理參與P2P-SIP網絡。用各種各樣的SIP用戶代理商,例如哥倫比亞大學的sipc、思科IPphone7960、PingtelIPphone、XtenNetwork的X-Liteclientv2.0和MicrosoftWindowsMessenger,測試了P2P-SIP適配器SIPPEER。一些電話不像SIP規范1中說的輸出代理應該被當作預裝載的路由集那樣執行輸出代理。實際上,如果輸出代理不記錄路由最初的INVITE請求,則后來的對話中的請求(例BYE)不應該發送給代理。假定sipc用戶使用P2P-SIP邀請思科phone用戶。呼叫后,bob掛斷。思科phone發送BYE請求給輸出代理(P2P-SIP結點)但是請求URI包含alicepc2.examole:5060。因為這個URI可能沒有在P2P-SIP網絡中注冊,P2P-SIP結點可能不能代理請求,這將引起DHT查找失敗。在SIPPEER中通過在這種情況下代理請求到請求URI代替DHT查找來解決這個問題。4結束語我們提出了純P2P結構的SIP電話。除了與現存的SIP結構的互操作性,這個結構還提供了可靠性和P2P系統固有的擴展性。今后還需要在像使用P2P的大規模應用層組播會議這樣的高級服務方面以及像認證和計費之類的與PSTN協同工作的相關因素方面做更多的研究。參考文獻:1J.Rosenberg,H.Schulzrinne,G.Camarillo,A.R.Johnston,J.Peterson,R.Sparks,M.Handley,andE.Schooler.SIP:sessioninitiationprotocol.RFC3261,InternetEngineeringTaskForce,June2002.2/techreports/2002/HPL-2002-57.html.3I.Stoica,R.Morris,D.K

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論