摘要:基于H.323協(xié)議或SIP的傳統(tǒng)網(wǎng)絡(luò)電話大多基于C/S結(jié)構(gòu),該結(jié)構(gòu)存在單點(diǎn)故障以及服務(wù)能力局限性的缺點(diǎn)。對(duì)此,構(gòu)建了基于SIP-IPv6協(xié)議的一個(gè)網(wǎng)絡(luò)電話系統(tǒng):PPMessenger。該系統(tǒng)采用P2P技術(shù)構(gòu)建了一個(gè)自組織且能與現(xiàn)存NGN軟交換系統(tǒng)相融合的重疊網(wǎng)絡(luò)。它既充分發(fā)掘了P2P技術(shù)在容錯(cuò)性和擴(kuò)展性方面的優(yōu)勢(shì),克服了傳統(tǒng)網(wǎng)絡(luò)電話存在的問題,并且在系統(tǒng)用戶規(guī)模龐大時(shí),又可以較低的代價(jià)實(shí)現(xiàn)用戶的快速定位。同時(shí),該系統(tǒng)還能提供離線消息、presence、與PSTN電話互通以及網(wǎng)絡(luò)會(huì)議等高級(jí)服務(wù)。性能分析顯示了系統(tǒng)的優(yōu)越性。
關(guān)鍵詞:會(huì)話初始化協(xié)議; 對(duì)等互聯(lián)網(wǎng)絡(luò); 中國(guó)下一代互聯(lián)網(wǎng)示范工程; 網(wǎng)絡(luò)電話
中圖分類號(hào):TP393文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2007)11-0239-04
0引言
20世紀(jì)末迅速發(fā)展的P2P技術(shù)開辟了Internet應(yīng)用的一個(gè)新時(shí)代,其本身具有的可擴(kuò)展性、健壯性、容錯(cuò)性等特點(diǎn),使得各種新型應(yīng)用諸如P2P文件分享與下載、P2P即時(shí)通信、P2P協(xié)同工作平臺(tái)等層出不窮。眾所周知的Skype[1]網(wǎng)絡(luò)電話正是采用了P2P技術(shù),以其優(yōu)越的服務(wù)質(zhì)量和通達(dá)能力吸引了大量用戶。所以SIP標(biāo)準(zhǔn)的發(fā)布使得利用P2P技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)電話更受關(guān)注。
會(huì)話初始化協(xié)議[2]近年來在通信和網(wǎng)絡(luò)研究領(lǐng)域得到極大關(guān)注,是下一代網(wǎng)絡(luò)(NGN)中的核心協(xié)議之一。除了核心協(xié)議以外,其他協(xié)議涵蓋QoS、安全、消息頭和方法擴(kuò)展、與公共交換電話網(wǎng)(public switched telephone networks,PSTN)等其他協(xié)議的互操作性、穿透防火墻和NAT、應(yīng)用、多消息體、即時(shí)消息等諸多話題。其最終目標(biāo)是為所有Internet成功的應(yīng)用提供無所不在的接入,成為聯(lián)系Internet和電信、多媒體的媒介。在IP網(wǎng)絡(luò)分層模型上,SIP是工作在應(yīng)用層上的一個(gè)信令協(xié)議,可以用來建立、修改和終止有多方參與的多媒體會(huì)話進(jìn)程。目前其應(yīng)用場(chǎng)景包括IP電話呼叫、多媒體分發(fā)、多媒體會(huì)議、融合蜂窩系統(tǒng)和Internet應(yīng)用、結(jié)合傳統(tǒng)的Internet服務(wù)(如e-mail、Web以及多媒體和即時(shí)消息等)等。其優(yōu)勢(shì)還包括可擴(kuò)展性、靈活性、互操作性、可重用性以及提供了一種可以將簡(jiǎn)單的應(yīng)用結(jié)合到復(fù)雜服務(wù)中去的方法。現(xiàn)在,SIP已經(jīng)被3GPP工作組定義為第三代移動(dòng)通信系統(tǒng)的信令協(xié)議以提供IP多媒體服務(wù)。故將P2P與SIP相結(jié)合,實(shí)現(xiàn)分布式網(wǎng)絡(luò)電話已經(jīng)成為研究熱點(diǎn)。
現(xiàn)有的網(wǎng)絡(luò)電話[3,4]可視為由一組靜態(tài)的超級(jí)節(jié)點(diǎn)(super node)組成的系統(tǒng),其定位仍然依賴于DNS。這種集中式體系結(jié)構(gòu)存在單點(diǎn)故障和可伸縮性瓶頸等局限性,而且使得系統(tǒng)的健壯性、可用性和性能可隨節(jié)點(diǎn)數(shù)目的增加而降低。針對(duì)這種情況,本文實(shí)現(xiàn)了一個(gè)在CNGI上基于SIP的P2P網(wǎng)絡(luò)電話系統(tǒng),充分利用P2P SIP技術(shù)取消SIP系統(tǒng)的集中位置服務(wù)器,構(gòu)建無服務(wù)器的網(wǎng)絡(luò)電話系統(tǒng)。它實(shí)現(xiàn)以下設(shè)計(jì)目標(biāo):
a)互操作性。實(shí)現(xiàn)與已存在的IP電話以及PSTN無縫結(jié)合。支持IAD、SIP phone、移動(dòng)WiFi phone、soft phone等多種終端的接入,提供offline message、presence、conference等高級(jí)服務(wù)。
b)系統(tǒng)自動(dòng)組網(wǎng)。具有自動(dòng)配置、鄰居發(fā)現(xiàn)等能力。
c)保證系統(tǒng)的健壯性、可擴(kuò)展性、容錯(cuò)性, 實(shí)現(xiàn)高效的用戶定位。
1相關(guān)工作
當(dāng)前,P2P應(yīng)用尚處在起步階段,現(xiàn)有的P2P應(yīng)用如文件分享、多媒體會(huì)議等都在IPv4的環(huán)境下開發(fā)。IPv4網(wǎng)絡(luò)由于地址短缺,大量使用了私有地址和NAT技術(shù),導(dǎo)致大量用戶沒有真實(shí)地址,這給用戶識(shí)別和管理帶來了很大困難。NAT技術(shù)雖然可以暫時(shí)緩和地址短缺的困境,但必然帶來實(shí)現(xiàn)的復(fù)雜性和性能的損失。因此在CNGI[5]上基于結(jié)構(gòu)化P2P技術(shù)構(gòu)建RON[6],為IPv6網(wǎng)絡(luò)構(gòu)建一個(gè)公共的、開放的基礎(chǔ)平臺(tái),對(duì)P2P應(yīng)用進(jìn)行整合和優(yōu)化并在上面開展P2P應(yīng)用,旨在解決上述矛盾。
CNGI是實(shí)施我國(guó)下一代互聯(lián)網(wǎng)發(fā)展戰(zhàn)略的起步工程。它采用IPv6協(xié)議,有服務(wù)質(zhì)量保證和安全保證,同時(shí)還提供多播等功能。彈性重疊網(wǎng)絡(luò)(resilient overlay network,RON)正是在CNGI上構(gòu)建的一個(gè)基于結(jié)構(gòu)化P2P模型[7~9]的IPv6網(wǎng)絡(luò),其以Chord[9]作為底層DHT實(shí)現(xiàn)了一個(gè)分布式資源管理平臺(tái)。RON能動(dòng)態(tài)地監(jiān)控鏈路狀態(tài),屏蔽網(wǎng)絡(luò)故障和變更,為應(yīng)用層提供可靠、高效的資源定位和查找服務(wù);利用智能節(jié)點(diǎn)(RON intellectual node)探測(cè)網(wǎng)絡(luò)路徑和性能,為應(yīng)用提供路由優(yōu)化等網(wǎng)絡(luò)服務(wù);實(shí)現(xiàn)基于智能節(jié)點(diǎn)的分布式病毒監(jiān)測(cè)架構(gòu),并且可為CNGI提供一種分布式網(wǎng)絡(luò)管理工具。
Skype[1]是基于Kazaa[10]的網(wǎng)絡(luò)電話。系統(tǒng)的全局索引服務(wù)器(global index server)為每個(gè)新加入的節(jié)點(diǎn)分配一個(gè)超級(jí)節(jié)點(diǎn)(super node)。該超級(jí)節(jié)點(diǎn)提供類似register、proxy、pre ̄sence的SIP server,其保持新加入節(jié)點(diǎn)的presence信息,同時(shí)與其他超級(jí)節(jié)點(diǎn)通信以定位其他用戶。Skype主要的優(yōu)勢(shì)在于使用ICE[11]解決了NAT,無須通過顯式的配置來解決,有別于其他已經(jīng)存在的SIP應(yīng)用。
不過Skype仍采用傳統(tǒng)的SIP網(wǎng)絡(luò)電話結(jié)構(gòu),集中進(jìn)行注冊(cè)授權(quán)以及用戶定位。其健壯性、可擴(kuò)展性、容錯(cuò)性也比較弱,同時(shí),其獨(dú)立組網(wǎng)的方式將與現(xiàn)有NGN系統(tǒng)形成激烈的競(jìng)爭(zhēng)。所以以下將討論使用P2P SIP協(xié)議,在CNGI上實(shí)現(xiàn)與現(xiàn)有NGN相融合的網(wǎng)絡(luò)電話。
2體系結(jié)構(gòu)
P2P和SIP結(jié)合有兩種方式:a)用P2P來實(shí)現(xiàn)SIP。這種方法最初在哥倫比亞大學(xué)和WM學(xué)院發(fā)展。P2P SIP取消了SIP系統(tǒng)的集中位置服務(wù)器,構(gòu)建了無服務(wù)器的網(wǎng)絡(luò);P2P檢索采用結(jié)構(gòu)化P2P系統(tǒng)的DHT方法。b)在SIP上運(yùn)行P2P。使用SIP消息來實(shí)現(xiàn)P2P網(wǎng)絡(luò)的一種混合型系統(tǒng),采用P2P技術(shù)實(shí)現(xiàn)分布的SIP代理服務(wù)器/注冊(cè)器,其作用類似于純P2P網(wǎng)絡(luò)的超級(jí)節(jié)點(diǎn)。綜上所述,a)采用P2P SIP替代SIP系統(tǒng)的集中服務(wù)器位置,比較容易實(shí)現(xiàn)系統(tǒng)的目標(biāo)。所以本文采用以下體系結(jié)構(gòu),即
具有較強(qiáng)的計(jì)算能力(帶寬、CPU、內(nèi)存等)和可用性(在線時(shí)間等)的SIP超級(jí)節(jié)點(diǎn)(SIP super node,SSN)組成P2P SIP重疊網(wǎng)絡(luò)(RON overlay),其余普通SIP節(jié)點(diǎn)(SIP node,SN)依賴于一個(gè)或多個(gè)SSN。其體系結(jié)構(gòu)如圖1所示。
SIP重疊網(wǎng)取代了標(biāo)準(zhǔn)SIP的位置服務(wù)器。隨著節(jié)點(diǎn)的增多,可采取層次劃分組織結(jié)構(gòu),如圖2所示。
同在一個(gè)P2P SIP重疊網(wǎng)上的用戶之間可直接通信,而不同P2P SIP重疊網(wǎng)上的用戶之間的通信就需要借助全局RON來實(shí)現(xiàn)。
節(jié)點(diǎn)啟動(dòng)和用戶登錄將啟動(dòng)registration模塊,該模塊初始化firewall detect、鄰居發(fā)現(xiàn)以及用戶注冊(cè);User interface是系統(tǒng)與用戶交互的接口,它保存好友列表同時(shí)調(diào)用User location模塊定位好友;User location模塊調(diào)用SIP模塊,SSN調(diào)用RON定位用戶并利用RON模塊保存DHT用戶信息;SIP模塊用于注冊(cè)、定位用戶,建立呼叫,提供IM、presence等服務(wù);media path模塊作為一個(gè)比較獨(dú)立的模塊,主要提供多媒體信息編/解碼、傳輸?shù)确?wù)。
3實(shí)現(xiàn)技術(shù)
3.1節(jié)點(diǎn)組網(wǎng)實(shí)現(xiàn)
為了支持offline message等高級(jí)應(yīng)用,本系統(tǒng)采用節(jié)點(diǎn)、用戶分別命名的方式。節(jié)點(diǎn)命名標(biāo)志空間為m位二進(jìn)制數(shù)(標(biāo)志范圍0~2m-1)。有研究[12]表明,Gnutella的平均會(huì)話時(shí)間僅為2.9 h,即相當(dāng)于在105個(gè)超節(jié)點(diǎn)中每秒鐘只有19個(gè)節(jié)點(diǎn)變化。作為大規(guī)模系統(tǒng),可以采用一種新結(jié)構(gòu)[13],使每個(gè)節(jié)點(diǎn)保存完整的鄰居信息,以降低呼叫延遲。
如圖2所示,首先預(yù)部署一些能力較強(qiáng)的SSN,同時(shí)為了保證系統(tǒng)的可擴(kuò)展性,以及提供高質(zhì)量的通話服務(wù),允許普通SN自舉為RON上的SSN。自舉的SSN與SN沒有絕對(duì)的分界,而是根據(jù)節(jié)點(diǎn)的能力和可用性,決定其是否可以成為SSN。SSN和SN均隨著網(wǎng)絡(luò)的動(dòng)態(tài)變化而變化。本文采用分布式發(fā)現(xiàn)的策略,即在較小范圍內(nèi)決定某個(gè)SN是否成為SSN。一般情況下,節(jié)點(diǎn)加入時(shí)作為普通SN;當(dāng)該SN具有較強(qiáng)的計(jì)算能力和可用性時(shí)(以正常運(yùn)轉(zhuǎn)時(shí)間等參數(shù)為標(biāo)準(zhǔn)),則可能轉(zhuǎn)換為SSN。當(dāng)已經(jīng)存在的SSN點(diǎn)離開系統(tǒng)或達(dá)到能力極限時(shí),具有較強(qiáng)能力和可用性的SN將被強(qiáng)制轉(zhuǎn)換為SSN以保證系統(tǒng)的服務(wù)能力。所有系統(tǒng)中的SSN使用DHT的方式組織,形成一個(gè)結(jié)構(gòu)化的P2P SIP重疊網(wǎng);超級(jí)節(jié)點(diǎn)與客戶節(jié)點(diǎn)之間支持SIP協(xié)議(C/S結(jié)構(gòu))。當(dāng)網(wǎng)絡(luò)規(guī)模進(jìn)一步擴(kuò)大,重疊網(wǎng)的節(jié)點(diǎn)數(shù)目非常多時(shí),再進(jìn)一步采用層次劃分等更高級(jí)的自組織功能。
普通節(jié)點(diǎn)(SN)加入系統(tǒng)后,定位到一組超級(jí)節(jié)點(diǎn)(SSN),根據(jù)一定策略選k(k>1)個(gè)并發(fā)送SIP register消息注冊(cè)到這些SSN上,然后獲得“動(dòng)態(tài)”加入。未加入RON的SN成為一個(gè)SIP用戶代理,而SSN承擔(dān)SIP用戶代理的同時(shí),也為其他節(jié)點(diǎn)擔(dān)任注冊(cè)員(registrar)。SSN代表附屬SN發(fā)送register消息到目的SSN。所有的SSN組成RON參與節(jié)點(diǎn)的定位。
SN周期性地發(fā)送register信息探測(cè)SSN是否失效。SSN之間同樣周期性地發(fā)送SIP option以探測(cè)其他SSN的狀況,同時(shí)也探測(cè)SSN的附屬SN的在線狀況。
3.2節(jié)點(diǎn)退出失效機(jī)制
SN僅僅是一個(gè)SIP用戶代理,而SSN承擔(dān)SIP用戶代理時(shí)還提供其他節(jié)點(diǎn)的注冊(cè)員(registrar)。當(dāng)一個(gè)普通節(jié)點(diǎn)離開系統(tǒng)時(shí),發(fā)送一個(gè)un-register消息給其宿主SSN,同時(shí)該SSN將該消息告知擁有該node key的其他所有節(jié)點(diǎn)。一個(gè)普通節(jié)點(diǎn)的失效并不會(huì)影響系統(tǒng)的正常運(yùn)轉(zhuǎn),因?yàn)镾SN會(huì)周期性地探測(cè)所屬節(jié)點(diǎn)的失效。
當(dāng)一個(gè)SSN離開系統(tǒng)時(shí),該節(jié)點(diǎn)的鄰接SSN以及所屬SN保存的信息均需要被更新;當(dāng)一個(gè)SSN正常離開系統(tǒng)時(shí),它會(huì)將其存儲(chǔ)的用戶記錄傳送給重疊網(wǎng)上其他的SSN,以保證系統(tǒng)可用性,同時(shí)其附屬SN將會(huì)自動(dòng)發(fā)現(xiàn)其失效并試圖發(fā)現(xiàn)和連接其他SSN;當(dāng)一個(gè)SSN系統(tǒng)故障或鏈路故障時(shí),其鄰接SSN會(huì)自動(dòng)發(fā)現(xiàn)該失效并充分利用RON的信息冗余以保證信息不丟失,其附屬SN會(huì)重新選擇SSN為其提供服務(wù)。但是如果該節(jié)點(diǎn)預(yù)先未發(fā)送更新消息給鄰接SSN,則映射信息會(huì)丟失,這樣會(huì)使諸如offline message等服務(wù)暫時(shí)不可用。
3.3用戶命名、注冊(cè)實(shí)現(xiàn)
用戶命名是系統(tǒng)的主要組成部分。該方案關(guān)系到系統(tǒng)的效率、可擴(kuò)展性、用戶使用習(xí)慣等方面。本方案以SIP協(xié)議的SIP-URI/SIPS-URI為基礎(chǔ),對(duì)其具體形式進(jìn)行適當(dāng)限制和擴(kuò)充。
SIP-URI/SIPS-URI中user命名方式分為三類:將字符串([a~z][A~Z])開頭的user定義為系統(tǒng)內(nèi)用戶名命名空間;將數(shù)字[1~9]開頭的user定義為系統(tǒng)內(nèi)部撥號(hào)命名空間;將以數(shù)字0開頭的user為系統(tǒng)保留空間。利用這種命名模式,既適合用戶使用軟電話終端進(jìn)行呼叫,也適合用戶使用數(shù)字撥號(hào)的硬電話進(jìn)行呼叫。
在SIP-URI/SIPS-URI中根據(jù)other-param的定義形式加入型如usertruename=xxxxxx的參數(shù)項(xiàng)。該項(xiàng)表示用戶的真實(shí)姓名,為可選項(xiàng),在系統(tǒng)中同呼叫信息一起發(fā)送,標(biāo)志用戶真實(shí)姓名。例如:sip: zhang@domain.name;usertruename=Zhang,sip:86-10-62618501@domain.name;usertruename=Zhang。
終端系統(tǒng)可支持三種簡(jiǎn)化撥號(hào)形式,即字、字符串和存儲(chǔ)在本地的用戶別名。當(dāng)用戶終端收到被叫地址時(shí),根據(jù)號(hào)碼形式進(jìn)行如下五種解析:
a)以0開頭的號(hào)碼,解析為向PSTN網(wǎng)絡(luò)發(fā)起的呼叫。
b)以[1~9] 開頭的號(hào)碼,解析為本系統(tǒng)內(nèi)部呼叫,由終端自動(dòng)補(bǔ)齊SIP-URI中其他部分。
c)以[a~z][A~Z]開頭沒有域名的字符串解析為本系統(tǒng)內(nèi)部的呼叫,由終端自動(dòng)補(bǔ)齊SIP-URI/SIPS-URI中其他部分。
d)以[a~z][A~Z]開頭有域名的字符串解析為發(fā)向系統(tǒng)外部的呼叫,由終端自動(dòng)補(bǔ)齊SIP-URI/SIPS-URI中其他部分。
e)其他方式為非法方式。
當(dāng)用戶以上述命名方式在某一個(gè)SN登錄后,該SN收到一個(gè)register消息后,發(fā)送一個(gè)SIP重定向相應(yīng)以重定向發(fā)送者到所屬SSN。當(dāng)一個(gè)SSN接收到一個(gè)register信息,并且發(fā)送者正是其附屬節(jié)點(diǎn)時(shí),以發(fā)送者的user key代理該消息到RON上所屬的節(jié)點(diǎn)。如果發(fā)送者節(jié)點(diǎn)不是該SSN的附屬節(jié)點(diǎn),便會(huì)做出接收或拒絕該發(fā)送者的決定。根據(jù)一定的負(fù)載均衡策略,如果拒絕該發(fā)送者,它可能會(huì)重定向到其他負(fù)載輕的SSN。
3.4用戶定位、呼叫建立實(shí)現(xiàn)
在定位被叫方時(shí),SIP代理計(jì)算被叫user key所在的節(jié)點(diǎn),并提出請(qǐng)求。節(jié)點(diǎn)加入/退出均會(huì)對(duì)用戶信息存儲(chǔ)產(chǎn)生影響。其中節(jié)點(diǎn)的退出將直接引起該點(diǎn)存儲(chǔ)信息再分配的問題。考慮到節(jié)點(diǎn)退出的主/被動(dòng)性問題,信息在P2P存儲(chǔ)環(huán)上需要冗余存儲(chǔ)。前面已經(jīng)作了詳細(xì)描述。
用戶如果將其他用戶列入他的friends list,則可以實(shí)時(shí)監(jiān)控他們的presence狀態(tài)。一旦用戶啟動(dòng),節(jié)點(diǎn)便嘗試定位這些friends。本文已經(jīng)將所有用戶信息存儲(chǔ)在RON上,并提供了與登錄節(jié)點(diǎn)無關(guān)的服務(wù)。
一旦呼叫建立,SIP message、invite消息、多媒體呼叫等媒體包則可分別進(jìn)行端到端傳輸。如果對(duì)方未回應(yīng)(對(duì)方未啟動(dòng)客戶端或客戶端不是P2P SIP節(jié)點(diǎn)),則該條目被刪除,同時(shí)定位被重啟。還可以采用一定的緩存策略減少RON定位的壓力,如該節(jié)點(diǎn)最近呼叫或發(fā)過IM到對(duì)方,從而緩存該地址。
基于SIP的定位和基于P2P的定位同時(shí)進(jìn)行。對(duì)于P2P定位,SN發(fā)送invite或message消息至所屬充當(dāng)SIP代理的SSN;SSN根據(jù)其node key在RON上定位目的節(jié)點(diǎn)。一旦得到這個(gè)映射關(guān)系,它便可以代理或重定向這個(gè)消息。重定向的過程即選擇不包含該節(jié)點(diǎn)的另一條路徑。由于在IPv6網(wǎng)上不存在NAT,代理較容易實(shí)現(xiàn)。
其他SIP功能使用上述方法較容易實(shí)現(xiàn),如多方電話會(huì)議、呼叫轉(zhuǎn)移等。例如實(shí)現(xiàn)呼叫轉(zhuǎn)移的SIP peer消息路由類似上述invite消息。事實(shí)上,只有諸如初始化或退出對(duì)話時(shí)的消息需要P2P定位服務(wù),大部分消息直接進(jìn)行端到端傳輸而不通過RON。
為了使系統(tǒng)更具有可擴(kuò)展性,便于系統(tǒng)內(nèi)外的溝通,呼入/呼出方式是解決以上問題的關(guān)鍵。根據(jù)編碼方案的規(guī)定,系統(tǒng)內(nèi)用戶只能使用[a~z][A~Z]開頭的字符串為用戶名。當(dāng)用戶需要呼入服務(wù)時(shí)必須同時(shí)提供真實(shí)的PSTN號(hào)碼;系統(tǒng)使用將該號(hào)碼與用戶名綁定的方法為用戶進(jìn)行呼入服務(wù)。與前者相反,呼出方案主要解決落地問題。本系統(tǒng)中規(guī)定的以[0]開頭的號(hào)碼為外呼號(hào)碼。系統(tǒng)根據(jù)號(hào)碼預(yù)定義的分段特征決定落地地點(diǎn)。考慮到系統(tǒng)的冗余性及負(fù)載均衡等具體實(shí)施問題,SN節(jié)點(diǎn)可以根據(jù)系統(tǒng)當(dāng)前狀態(tài)進(jìn)行選取。
1)呼入方案呼入流程如圖4所示。
a)Phone B 向TG發(fā)起呼叫;
b)TG向SSN-A發(fā)出呼叫;
c)SSN-A通過RON查找到SIP phone A處在SSN-B位置,即向SSN-B發(fā)出SIP phone A信息請(qǐng)求;
d)SSN-B向SSN-A反饋SIP phone A信息;
e)SSN設(shè)備通過P2P網(wǎng)絡(luò)獲得了被叫用戶所注冊(cè)的SSN設(shè)備,并且通過標(biāo)準(zhǔn)的SIP重定向功能,告訴TG網(wǎng)關(guān),被叫用戶注冊(cè)的SSN設(shè)備;
f)TG收到了SSN設(shè)備的SIP重定向報(bào)文,開始向新的SSN設(shè)備(具有被叫用戶注冊(cè)信息)發(fā)起SIP的invite呼叫。接下來就是標(biāo)準(zhǔn)的SIP呼叫流程。
2)呼出方案該方案首先要確定用戶在P2P系統(tǒng)內(nèi)部還是在P2P系統(tǒng)外部。當(dāng)用戶通過SIP代理發(fā)起呼叫時(shí),如果其標(biāo)志為“sip:”,則代理服務(wù)器首先確定其域名空間。如果目標(biāo)為本系統(tǒng)命名空間,則在本命名空間內(nèi)查找目標(biāo)用戶;否則向SIP信令網(wǎng)關(guān)轉(zhuǎn)發(fā)請(qǐng)求。如果該標(biāo)志不是“sip:”,則代理服務(wù)器將該請(qǐng)求直接發(fā)向服務(wù)轉(zhuǎn)換網(wǎng)關(guān)。呼出流程如圖5所示。
a)SIP phone A向SSN-B發(fā)起呼叫;
b)SSN-B分析號(hào)碼后向TG發(fā)出呼叫;
c)TG通過PSTN網(wǎng)絡(luò)向phone B發(fā)出呼叫;
d)Phone B向TG反饋信息同意會(huì)話;
e)TG向SSN反饋信息同意會(huì)話;
f)SSN向SIP phone A反饋信息同意會(huì)話。
3.5高級(jí)服務(wù)的實(shí)現(xiàn)
上述關(guān)鍵技術(shù)使PC2Phone、Internet voice等基本網(wǎng)絡(luò)電話功能得到實(shí)現(xiàn),同時(shí)較好地支持了IAD、SIP phone、移動(dòng)WiFi phone、soft phone等多種終端的接入。以下討論系統(tǒng)高級(jí)服務(wù)的實(shí)現(xiàn)。
已存在的P2P文件存儲(chǔ)系統(tǒng)不能很好地支持Internet telephony。在本文系統(tǒng)中,發(fā)送端、RON、接收端都能存儲(chǔ)offline messsage。P2P信息系統(tǒng)POST[14]提供了很好的參考方案。所以充分利用發(fā)送端和RON同時(shí)存儲(chǔ)消息,提供可靠的online、offline消息傳遞。
Presence技術(shù)在即時(shí)通信中扮演著非常重要的角色。Presence服務(wù)中,presence服務(wù)器與用戶代理、網(wǎng)絡(luò)代理、pre ̄sence信息請(qǐng)求者等接口都采用SIP協(xié)議,IETF Simple工作組制定的相關(guān)規(guī)范主要有RFC 3261、RFC 3265。所以本文采用SIP協(xié)議,由SSN承擔(dān)presence服務(wù)器實(shí)現(xiàn)了基于SIP協(xié)議的presence服務(wù)。
對(duì)于小規(guī)模的網(wǎng)絡(luò)會(huì)議,某個(gè)具有較強(qiáng)能力的參與者(考慮CPU、內(nèi)存、帶寬)成為mixer,為其他參與者提供服務(wù)。應(yīng)用層組播[15,16]的研究為提供大規(guī)模網(wǎng)絡(luò)會(huì)議提供了較好的解決方案。本文可以構(gòu)建一個(gè)應(yīng)用層的媒體組播樹來實(shí)現(xiàn)一個(gè)完全分布式的會(huì)議。
5結(jié)束語
本文討論了P2P和SIP結(jié)合在CNGI上實(shí)現(xiàn)網(wǎng)絡(luò)電話的方案,鑒于P2P固有的優(yōu)點(diǎn),以及SIP協(xié)議在第三代移動(dòng)通信以及IP多媒體服務(wù)方面的優(yōu)勢(shì),構(gòu)建了以RON作為底層DHT的P2P SIP網(wǎng)絡(luò)電話系統(tǒng)。本系統(tǒng)不但具有可擴(kuò)展性、健壯性、自維護(hù)性以及自適應(yīng)性等特點(diǎn),更是目前NGN系統(tǒng)的補(bǔ)充和增強(qiáng)。其代價(jià)是呼叫的延遲,在系統(tǒng)規(guī)模較大時(shí),可以采用一跳定位的策略以降低延遲。下一步的工作是深入研究系統(tǒng)安全性、分布式驗(yàn)證授權(quán)、計(jì)費(fèi)等高級(jí)服務(wù)。
參考文獻(xiàn):
[1]BASET S A, SCHULZRINNE H. An analysis of the skype peer-to-peer Internet telephony protocol, CUCS-039-04[R]. New York:Columbia University, 2004.
[2]ROSENBERG J, SCHULZRINNE H, CAMANILO G.Internet RFC 3261, SIP: session initiation protocol[S].
[3]TOGA J, OTT J. ITU-T standardization activities for interactive multimedia communications on packetbased networks: H.323 and related recommendations[J]. Computer Networks and ISDN Systems, 1999,31(3):205-223.
[4]SCHULZRINNE H, ROSENBERG J. Internet telephony: architecture and protocols:an IETF perspective[J]. Computer Networks and ISDN Systems, 1999,31(3):237-255.
[5]CERNET2與CNGI計(jì)劃[EB/OL].[2006-06-10].http://www.edu.cn.
[6]ANDERSEN D, BALAKRISHNAN H, KAASHOEK F, et al. Resilient overlay networks[C]//Proc of the 18th ACM Symp on Operating Systems Principles (SOSP).Canada:[s.n.], 2001:131-145.
[7]ZHAO B Y, KUBIATOWICZ J D, JOSEPH A D. Tapestry: an infrastructure for fault-resilient wide-area location and routing[R]. Berkeley:[s.n.], 2001:5-7.
[8]ROWSTRON A, DRUSCHEL P. Pastry: scalable, distributed object location and routing for large-scale peer-to-peer systems[C]//Proc of the 18th ACM International on Distributed Systems Platforms. London:Springer-Verlag, 2001:329-350.
[9]STOICA I, MORRIS R, KARGER D, et al. Chord: a scalable peer-to-peer lookup service for Internet applications[C]//Proc of the ACM SIGCOMM. San Diego:[s.n.], 2001:149-160.
[10]Kazaa: peer-to-peer file sharing software application[EB/OL].[2006-06-10].http://www.kazaa.com.
[11]ROSENBERG J. Interactive connectivity establishment(ICE): a methodology for network address translator(NAT) traversal for the session initiation protocol(SIP)[S].2003.
[12]SAROIU S, GUMMADI P, GRIBBLE S. A measurement study of peer-to-peer file sharing systems[C]//Proc of Multimedia Computing and Networking.San Jose,CA:[s.n.], 2002:156-170.
[13]GUPTA A, LISKOV B, RODRIGUES R. One hop lookups for peer-to-peer overlays[C]//Proc of HotOS IX: the 9th Workshop on Hot Topics in Operating Systems.Hawaii:[s.n.],2003.
[14]MISLOVE A, POST A, REIS C, et al. Post: a secure, resilient, cooperative messaging system[C]//Proc of the 9th Workshop on Hot Topics in Operating Systems. Hawaii:[s.n.],2003.
[15]BANERJEE S, BHATTACHARJEE B, KOMMAREDDY C. Scalable application layer multicast[J]. ACM SIGCOMM Computer Communication Review, 2002,32(4):205-217.
[16]CASTRO M, JONES M B, KERMARREC A M, et al. An evaluation of scalable application-level multicast built using peer-to-peer overlays[C]//Proc of the Conference on Computer Communications(IEEE Infocom).San Francisco:[s.n.], 2003:1510-1520.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”