P2P-SIP網絡電話論文

時間:2022-09-11 03:33:00

導語:P2P-SIP網絡電話論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

P2P-SIP網絡電話論文

混合結構允許用戶在她的提供者可用的情況下用她的提供者注冊,也可以用p2p-sip網絡。呼叫建立在可以用DNS解析時被發送到SIP目的地,同樣也可以用P2P-SIP網絡。

3設計和實現

3.1命名

結點和用戶標識符是用SIP通用資源標志符(URI)表示的。例如,如果一個結點在傳輸地址192.1.2.3:8054上監聽SIP消息并且Chord的哈希函數給出的鍵值是17,結點的URI就是sip:17@192.1.2.3:8054。域中的一個不知道傳輸地址的結點標識符或鍵值(例如10)表示為sip:10@。每一個局部的P2P-SIP網絡用一個DNS域名表示,example.invalid用于沒有域的鍵,例如全局DHT中的鍵。這樣的結點標識符對于DHT的維護是有用的,例如,查詢另外一個結點的傳輸地址來成為這個結點的指針表的入口。

用戶標識符可以由系統隨機分配,或由用戶選擇一個鑒定名(如,alice172@)或者用戶選擇她的有效email地址(如alice@)。前兩種方法允許用戶選擇密碼,但是不清楚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:224.0.1.75(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用戶alice@使用P2P-SIP邀請思科phone用戶bob@。呼叫后,bob掛斷。思科phone發送BYE請求給輸出(P2P-SIP結點)但是請求URI包含alice@pc2.examole:5060。因為這個URI可能沒有在P2P-SIP網絡中注冊,P2P-SIP結點可能不能請求,這將引起DHT查找失敗。在SIPPEER中通過在這種情況下請求到請求URI代替DHT查找來解決這個問題。

4結束語

我們提出了純P2P結構的SIP電話。除了與現存的SIP結構的互操作性,這個結構還提供了可靠性和P2P系統固有的擴展性。今后還需要在像使用P2P的大規模應用層組播會議這樣的高級服務方面以及像認證和計費之類的與PSTN協同工作的相關因素方面做更多的研究。

參考文獻:

[1]J.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.

[3]I.Stoica,R.Morris,D.Karger,F.Kaashoek,andH.Balakrishnan.Chord:Ascalablepeer-to-peerlookupserviceforinternetapplications.InSIGCOMM,SanDiego,CA,USA,Aug2001.

[4]J.RosenbergandH.Schulzrinne.Sessioninitiationprotocol(SIP):locatingSIPservers.RFC3263,InternetEngineeringTaskForce,June2002.

[5]www.cs.columbia.edu/˜kns10/publication/sip-p2pdesign.pdf.

[6]/html.charters/zeroconf-charter.html.

[7].

[8]J.Rosenberg.Interactiveconnectivityestablishment(ICE):amethodologyfornettworkaddresstranslator(NAT)traversalforthesessioninitiationprotocol(SIP).Internetdraft,

InternetEngineeringTaskForce,July2003.Workinprogress.

[9]K.SinghandH.Schulzrinne.Peer-to-peerInternettelephonyusingSIP.TechnicalReportCUCS-044-04,DepartmentofComputerScience,ColumbiaUniversity,NewYork,NY,

Oct.2004.

[10]/p2p/.

[11]/technology/Voip/2005/06/voip0644.htm