陳艷敏 北京電信規(guī)劃設(shè)計(jì)院有限公司工程師
林朝輝 北京電信規(guī)劃設(shè)計(jì)院有限公司高級(jí)工程師
分布式IMS系統(tǒng)中P2P群運(yùn)行機(jī)制的研究
陳艷敏 北京電信規(guī)劃設(shè)計(jì)院有限公司工程師
林朝輝 北京電信規(guī)劃設(shè)計(jì)院有限公司高級(jí)工程師
在對(duì)基于P2P-SIP構(gòu)建的分布式IMS網(wǎng)絡(luò)總體架構(gòu)進(jìn)行分析論述的基礎(chǔ)上,重點(diǎn)對(duì)分布式IMS系統(tǒng)中主要網(wǎng)元設(shè)備的P2P群組織結(jié)構(gòu)和運(yùn)行機(jī)制進(jìn)行了深入分析和研究。
DSN P2P-SIP 分布式IMS
IP多媒體子系統(tǒng)(IMS)在近年來獲得了大規(guī)模的應(yīng)用與部署,己經(jīng)逐步成為當(dāng)前固定和移動(dòng)通信網(wǎng)絡(luò)演進(jìn)的主流技術(shù),但隨著移動(dòng)互聯(lián)網(wǎng)和Web2.0技術(shù)的快速發(fā)展,移動(dòng)通信網(wǎng)絡(luò)逐漸顯現(xiàn)IT化趨勢(shì),表現(xiàn)為軟/硬件松耦合,采用通用硬件平臺(tái)承載電信應(yīng)用。但現(xiàn)有IMS網(wǎng)絡(luò)都采用集中式的控制方式和數(shù)據(jù)組織方式,其專用平臺(tái)和集中控制特性在移動(dòng)互聯(lián)網(wǎng)和業(yè)務(wù)多樣化需求快速發(fā)展趨勢(shì)下存在的單點(diǎn)故障、資源利用率低,可擴(kuò)展性差以及開發(fā)維護(hù)成本高等缺點(diǎn)日益凸顯。
為了應(yīng)對(duì)目前移動(dòng)通信網(wǎng)在網(wǎng)絡(luò)發(fā)展和業(yè)務(wù)運(yùn)營上的挑戰(zhàn),全球主要的標(biāo)準(zhǔn)化組織ITU-T、3GPP都在積極開展和推進(jìn)新一代分布式業(yè)務(wù)網(wǎng)絡(luò)(DSN)的技術(shù)標(biāo)準(zhǔn)研究工作,DSN是一種融合了分布式(P2P)技術(shù)和會(huì)話初始化協(xié)議(SIP)優(yōu)點(diǎn)、使用P2P層疊網(wǎng)絡(luò)技術(shù)、硬件與軟件松耦合的新型電信網(wǎng)絡(luò)架構(gòu),是核心網(wǎng)長期演進(jìn)方案。DSN的標(biāo)準(zhǔn)化是一個(gè)從理念到標(biāo)準(zhǔn)框架,到基礎(chǔ)協(xié)議,再到具體功能架構(gòu)和業(yè)務(wù)流程的復(fù)雜過程,還處于探索和完善階段,但DSN提出的基于P2P和分布式計(jì)算技術(shù)的核心網(wǎng)“云化”的設(shè)計(jì)理念為未來電信核心網(wǎng)提出了基本的演進(jìn)方向。為了彌補(bǔ)IMS網(wǎng)絡(luò)集中控制的不足,目前業(yè)界提出了將DSN的關(guān)鍵技術(shù)P2P-SIP引入到IMS系統(tǒng),對(duì)原有基于SIP的集中式呼叫控制IMS架構(gòu)進(jìn)行改造,即通過P2P-SIP協(xié)議的引入使IMS中CSCF和HSS核心網(wǎng)元具有分布式特性,從而構(gòu)建一張分布式IMS網(wǎng)絡(luò),以實(shí)現(xiàn)核心網(wǎng)絡(luò)的可擴(kuò)展性、高可靠性和自組織等特性。
分布式IMS的物理拓?fù)浼軜?gòu)在保持和3GPPIMS網(wǎng)絡(luò)標(biāo)準(zhǔn)定義結(jié)構(gòu)一致的基礎(chǔ)上,只是在原有的IMS基礎(chǔ)上添加了P2PDHT的覆蓋層,即IMS中的P-CSCF、I-CSCF、S-CSCF、HSS等網(wǎng)絡(luò)功能實(shí)體通過P2P技術(shù)組織在一起,多個(gè)I-CSCF、S-CSCF、HSS功能實(shí)體構(gòu)成一個(gè)或多個(gè)P2P群,核心網(wǎng)P2P群內(nèi)會(huì)話仍采用IMS原有的SIP控制機(jī)制,但使用了P2P疊加網(wǎng)方式替代原SIP協(xié)議的位置管理和路由定位以及集中式數(shù)據(jù)存儲(chǔ)。一方面,使用P2P方式來存儲(chǔ)用戶數(shù)據(jù)信息;另一方面,核心網(wǎng)接入節(jié)點(diǎn)使用P2P協(xié)議為用戶查找、定位其數(shù)據(jù)所在的節(jié)點(diǎn)獲得服務(wù)能力?;赑2P-SIP的分布式IMS網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
從圖1可以看出,分布式IMS并沒有改變?cè)蠭MS的結(jié)構(gòu)和接口關(guān)系,只是在原有IMS體系架構(gòu)的基礎(chǔ)上添加了P2P覆蓋層,即把IMS中的功能實(shí)體按照主要功能采用P2P技術(shù)組織成P2P的節(jié)點(diǎn)群,IMS核心網(wǎng)內(nèi)部SIP使用P2P疊加網(wǎng)特有的路由方式替代原有的路由機(jī)制,根據(jù)IMS網(wǎng)元邏輯功能不同,可以把P/I/S-CSCF和HSS分別通過P2P構(gòu)成2個(gè)不同類型的P2P群。其中,P/I/S-CSCF群中的超級(jí)節(jié)點(diǎn)SN包含兩類功能:基于SIP的會(huì)話控制功能和基于P2P的路由查詢和定位功能,SIP會(huì)話控制功能和傳統(tǒng)IMS網(wǎng)絡(luò)中的功能實(shí)體基本一致;HSS群中的超級(jí)節(jié)點(diǎn)SN也包含兩類功能:基于Diameter的數(shù)據(jù)控制功能和基于P2P的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)路由功能,通過HSS群替代原有IMS中的HSS。以上分布式IMS架構(gòu)中的P/I/S-CSCF和HSS群是根據(jù)網(wǎng)元實(shí)體邏輯功能進(jìn)行劃分的,但二者也可以基于DHT功能集成在一個(gè)物理實(shí)體,構(gòu)成一個(gè)P/I/S-CSCF/HSS群,使得網(wǎng)絡(luò)控制層的功能能夠均質(zhì)化,進(jìn)一步優(yōu)化整個(gè)網(wǎng)絡(luò)的路由結(jié)構(gòu)。
圖1 基于P2P-SIP的分布式IMS結(jié)構(gòu)示意圖
3.1 HSS群的組織結(jié)構(gòu)
在IMS中,負(fù)責(zé)存儲(chǔ)用戶數(shù)據(jù)的功能實(shí)體為HSS,HSS作為整個(gè)網(wǎng)絡(luò)用戶數(shù)據(jù)的存儲(chǔ)中心,為CSCF等核心控制設(shè)備提供鑒權(quán)、認(rèn)證、路由和業(yè)務(wù)觸發(fā)等功能。在分布式IMS網(wǎng)絡(luò)中,HSS通過引入P2P-SIP協(xié)議,構(gòu)建HSS群,組成一個(gè)DHT覆蓋網(wǎng)絡(luò),DHT技術(shù)本身在數(shù)據(jù)邏輯分片上有其優(yōu)勢(shì),它將每個(gè)用戶數(shù)據(jù)的關(guān)鍵字進(jìn)行哈希,得到用戶數(shù)據(jù)標(biāo)識(shí)Key,并映射到相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)ID上,這樣,每個(gè)用戶數(shù)據(jù)都可以根據(jù)DHT規(guī)則映射到對(duì)應(yīng)的HSS節(jié)點(diǎn)上,全網(wǎng)所有用戶數(shù)據(jù)自然被劃分為多個(gè)邏輯片段并保存至不同的HSS節(jié)點(diǎn)上,采用基于DHT技術(shù)的網(wǎng)絡(luò)結(jié)構(gòu)來解決分布式IMS網(wǎng)絡(luò)中數(shù)據(jù)分片與數(shù)據(jù)分配的問題,用戶的唯一標(biāo)識(shí)SIPURI做為每個(gè)用戶數(shù)據(jù)用來進(jìn)行哈希的關(guān)鍵字。圖2給出了一個(gè)HSS群的組織結(jié)構(gòu)示意圖。
3.2 HSS群節(jié)點(diǎn)的運(yùn)行機(jī)制
從HSS群結(jié)構(gòu)示意圖可以看出,整個(gè)網(wǎng)絡(luò)中的多臺(tái)HSS通過P2P協(xié)議構(gòu)成一個(gè)HSS群,群內(nèi)節(jié)點(diǎn)相互協(xié)作共同提供服務(wù)。如圖3所示,HSS群結(jié)構(gòu)參考了DSN的功能結(jié)構(gòu)設(shè)置了一個(gè)節(jié)點(diǎn)引導(dǎo)服務(wù)器,用來記錄網(wǎng)絡(luò)中各HSS節(jié)點(diǎn)的狀態(tài),任何想要加入HSS群的節(jié)點(diǎn),首先需要通過引導(dǎo)節(jié)點(diǎn)服務(wù)器獲知網(wǎng)絡(luò)中某一個(gè)HSS節(jié)點(diǎn)信息,稱其為新加入節(jié)點(diǎn)的Bootstrap Node,進(jìn)而通過該引導(dǎo)節(jié)點(diǎn)服務(wù)器加入到HSS群中,新HSS節(jié)點(diǎn)加入群的Bootstrap過程可以分為以下步驟:
(1)新加入的HSS節(jié)點(diǎn)向引導(dǎo)節(jié)點(diǎn)服務(wù)器請(qǐng)求Bootstrap節(jié)點(diǎn)。
(2)引導(dǎo)節(jié)點(diǎn)服務(wù)器返回本地HSS群節(jié)點(diǎn)的列表。
(3)新節(jié)點(diǎn)把列表中首個(gè)節(jié)點(diǎn)作為Bootstrap節(jié)點(diǎn)并向該Bootstrap節(jié)點(diǎn)發(fā)送加入請(qǐng)求消息(包含新節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí))。
(4)Bootstrap節(jié)點(diǎn)通過自身路由表找到新節(jié)點(diǎn)的后向節(jié)點(diǎn)并轉(zhuǎn)發(fā)Join消息。
(5)新節(jié)點(diǎn)的后向節(jié)點(diǎn)將路由表信息及新節(jié)點(diǎn)所應(yīng)負(fù)責(zé)保存的用戶數(shù)據(jù)返回給新節(jié)點(diǎn),新節(jié)點(diǎn)復(fù)制后向節(jié)點(diǎn)的路由表并將自身的節(jié)點(diǎn)信息添加至路由表中。
圖2 HSS群結(jié)構(gòu)示意圖
圖3 新HSS節(jié)點(diǎn)加入群的Bootstrap過程
(6)新節(jié)點(diǎn)通過域內(nèi)路由表把路由更新消息(有新節(jié)點(diǎn)加入)通知域內(nèi)的其他節(jié)點(diǎn)。
(7)收到路由更新消息的節(jié)點(diǎn)更新自己的路由表并返回確認(rèn)消息。至此,新節(jié)點(diǎn)己經(jīng)成功加入網(wǎng)絡(luò)并可正常提供服務(wù)。
(8)新節(jié)點(diǎn)通知引導(dǎo)服務(wù)器其已經(jīng)成功加入網(wǎng)絡(luò)。
(9)引導(dǎo)服務(wù)器記錄后返回確認(rèn)消息。
3.3 HSS群內(nèi)用戶數(shù)據(jù)的查詢機(jī)制
HSS群在DHT路由算法的基礎(chǔ)上,可以快速準(zhǔn)確地實(shí)現(xiàn)對(duì)于用戶數(shù)據(jù)的查找過程,本節(jié)給出了在一個(gè)HSS群內(nèi)的用戶數(shù)據(jù)查找的具體流程。圖4中用戶A需要和用戶B建立連接,用戶A向他的歸屬服務(wù)的S-CSCF1發(fā)送呼叫請(qǐng)求,呼叫請(qǐng)求中包含用戶B的URI(Uniform Resource Indicator,統(tǒng)一資源標(biāo)識(shí)符),為了完成該請(qǐng)求,S-CSCF1需要通過查找用戶B的用戶數(shù)據(jù)來得到用戶B當(dāng)前提供服務(wù)的S-CSCF2的地址,數(shù)據(jù)查詢的過程可以分為以下步驟:(1)S-CSCF1向其所連接的HSS群接入節(jié)點(diǎn)HSS3發(fā)出數(shù)據(jù)查詢請(qǐng)求,請(qǐng)求查詢用戶B的用戶數(shù)據(jù),請(qǐng)求中包含用戶B的URI信息,如Bob.chinaunicom.cn。(2)節(jié)點(diǎn)HSS3根據(jù)查詢請(qǐng)求中用戶B的URI信息通過哈希算法計(jì)算得到用戶B的用戶數(shù)據(jù)的群內(nèi)唯一的標(biāo)識(shí)符:如Key值=010001010;由于需要的用戶數(shù)據(jù)屬于本HSS群但并不是由節(jié)點(diǎn)HSS3負(fù)責(zé),節(jié)點(diǎn)HSS3查詢自己的群內(nèi)路由表,得到和存放所求的用戶數(shù)據(jù)標(biāo)識(shí)最接近的節(jié)點(diǎn)標(biāo)識(shí)ID (010001011)所屬的HSS群節(jié)點(diǎn)HSS0的IP地址,并向節(jié)點(diǎn)HSS0發(fā)出數(shù)據(jù)查詢請(qǐng)求,此請(qǐng)求中包含需查找數(shù)據(jù)的群內(nèi)唯一的標(biāo)識(shí)符。
圖4 群內(nèi)用戶數(shù)據(jù)的查詢過程
(3)HSS群節(jié)點(diǎn)HSS0收到查詢請(qǐng)求,根據(jù)請(qǐng)求中包含的用戶數(shù)據(jù)群內(nèi)唯一的標(biāo)識(shí)符,得知此數(shù)據(jù)是由自己負(fù)責(zé)的,返回用戶B的用戶數(shù)據(jù)給節(jié)點(diǎn)HSS3。
(4)HSS群節(jié)點(diǎn)HSS3把用戶B的用戶數(shù)據(jù)發(fā)送給S-CSCF1,S-CSCF1利用得到的用戶B歸屬服務(wù)的S-CSCF2的地址信息就可以和用戶B建立會(huì)話連接。
圖5 P/I/S-CSCF群結(jié)構(gòu)示意圖
4.1 P/I/S-CSCF群的組織結(jié)構(gòu)
如圖5所示,在傳統(tǒng)的IMS架構(gòu)中,CSCF是整個(gè)系統(tǒng)的控制核心,其中P-CSCF是用戶接入到系統(tǒng)的入口點(diǎn),I-CSCF負(fù)責(zé)消息的路由轉(zhuǎn)發(fā),需要查詢HSS獲得S-CSCF的位置,S-CSCF負(fù)責(zé)歸屬地會(huì)話控制,在分布式IMS中可將P/I/S-CSCF 3者功能融合為一體,通過引入P2P-SIP協(xié)議,構(gòu)建P/I/S-CSCF群,組成一個(gè)DHT覆蓋網(wǎng)絡(luò),通過P2P-SIP協(xié)議組建和維護(hù)基于DHT的覆蓋網(wǎng)絡(luò),需要完成兩個(gè)重要功能:一是對(duì)節(jié)點(diǎn)操作,包括P/I/S-CSCF節(jié)點(diǎn)的加入、離開和路由更新操作,實(shí)現(xiàn)DHT疊加網(wǎng)的維護(hù);另一個(gè)是用戶層面的操作,包括用戶的注冊(cè)、資源定位、SIP會(huì)話控制等。
4.2 P/I/S-CSCF群節(jié)點(diǎn)的運(yùn)行機(jī)制
在P/I/S-CSCF群中,每個(gè)CSCF功能實(shí)體稱為彼此的對(duì)等節(jié)點(diǎn),對(duì)等節(jié)點(diǎn)通過Chord協(xié)議組織為一個(gè)群。按照Chord協(xié)議,每個(gè)對(duì)等節(jié)點(diǎn)保存有一個(gè)Chord列表,稱為Finger列表。通過Finger列表對(duì)群內(nèi)對(duì)等節(jié)點(diǎn)進(jìn)行查詢。當(dāng)一個(gè)新的CSCF對(duì)等節(jié)點(diǎn)加入到群內(nèi)時(shí),根據(jù)Chord協(xié)議,這個(gè)對(duì)等節(jié)點(diǎn)的SIPURI地址會(huì)被映射為一個(gè)相應(yīng)的鍵值。該鍵值決定了這個(gè)節(jié)點(diǎn)在群中的位置,即決定了這個(gè)節(jié)點(diǎn)的前向節(jié)點(diǎn)和后繼節(jié)點(diǎn)。每當(dāng)一個(gè)對(duì)等節(jié)點(diǎn)加入到群中,它需要得到它的前向節(jié)點(diǎn)和后繼節(jié)點(diǎn)的信息用來建立它自己的Finger列表。當(dāng)一個(gè)CSCF對(duì)等節(jié)點(diǎn)由于某種原因離開時(shí),P-CSCF群并不會(huì)影響這個(gè)群的整體性能,它的離開只需讓P-CSCF群內(nèi)節(jié)點(diǎn)獲知,并不需要通知群外不相關(guān)節(jié)點(diǎn),這就在最小限度內(nèi)消除了因?yàn)榫W(wǎng)絡(luò)局部變動(dòng)造成的整體調(diào)整。
4.3 P/I/S-CSCF群的接入過程分析
如圖6所示,P/I/S-CSCF群接入節(jié)點(diǎn)收到UE的注冊(cè)請(qǐng)求后,執(zhí)行P-CSCF功能,根據(jù)Chord協(xié)議,為此請(qǐng)求消息哈希一個(gè)鍵值。通過此鍵值,這個(gè)注冊(cè)請(qǐng)求能夠被即將為此UE服務(wù)的P/I/S-CSCF對(duì)等節(jié)點(diǎn)收到,此節(jié)點(diǎn)稱為P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)。如果這個(gè)被選中的P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)沒有能力為這個(gè)UE服務(wù)或者過于繁忙,它會(huì)為這個(gè)注冊(cè)消息重新哈希鍵值并轉(zhuǎn)發(fā)這個(gè)消息給第二個(gè)被選中的P/I/S-CSCF對(duì)等節(jié)點(diǎn),我們稱它為P/I/S-CSCF替補(bǔ)服務(wù)對(duì)等節(jié)點(diǎn)。這種消息的轉(zhuǎn)發(fā)是群的內(nèi)部行為,并不需要外部節(jié)點(diǎn)知道。在這個(gè)過程中,UE并不會(huì)察覺到第一個(gè)P/I/ S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)的接入失敗,也不需要主動(dòng)再次獲得任何P/I/S-CSCF信息。
圖6 UE接入P/I/S-CSCF群示意圖
如果不是第一次接入此P/I/S-CSCF群,UE發(fā)送的消息中會(huì)攜帶P/I/S-CSCF群SIPURI和P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)SIPURI的綁定信息。UE可以直接發(fā)送此消息給這個(gè)P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)。如果這個(gè)P-CSCF服務(wù)對(duì)等節(jié)點(diǎn)過于繁忙,它可以為這個(gè)消息哈希一個(gè)鍵值,暫時(shí)把此消息轉(zhuǎn)發(fā)給其他P/I/S-CSCF對(duì)等節(jié)點(diǎn)處理。這種消息的轉(zhuǎn)發(fā)是群的內(nèi)部行為,并不需要外部節(jié)點(diǎn)知道。在一個(gè)群中,某些特殊的功能不需要配置在每一個(gè)對(duì)等節(jié)點(diǎn)上。P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)有可能沒有能力完成用戶要求的某些功能。P/I/S-CSCF服務(wù)對(duì)等節(jié)點(diǎn)可以把這個(gè)業(yè)務(wù)暫時(shí)轉(zhuǎn)發(fā)給其他對(duì)等節(jié)點(diǎn)處理。在這個(gè)過程中,不需要UE進(jìn)行再注冊(cè),整個(gè)過程對(duì)UE來說是透明的。
本文在對(duì)基于P2P-SIP構(gòu)建的分布式IMS網(wǎng)絡(luò)系統(tǒng)架構(gòu)進(jìn)行分析論述的基礎(chǔ)上,重點(diǎn)對(duì)分布式IMS系統(tǒng)中主要網(wǎng)元設(shè)備的P2P群組織結(jié)構(gòu)和運(yùn)行機(jī)制等關(guān)鍵技術(shù)進(jìn)行了分析和研究。雖然分布式IMS網(wǎng)絡(luò)的體系架構(gòu)和演進(jìn)思路越來越受到業(yè)界的普遍認(rèn)可,但其中還存在很多關(guān)鍵性問題沒有得到很好的解決,要想真正取得實(shí)用,還需要很長的路要走,需要各方進(jìn)行深入的研究,并且需要產(chǎn)業(yè)鏈各個(gè)環(huán)節(jié)共同努力推進(jìn)。
1 ITU-T Draft Recommendation Y.dsnarch,Architecture ofDSN
2 王菁,薛海強(qiáng),彭晉等.一種新型的分布式IMS實(shí)現(xiàn)方法.電信科學(xué).2008,2
3 申敏,魏玄.分布式IMS架構(gòu)與關(guān)鍵技術(shù).數(shù)字通信.2009,6
4 黃開金,羅國明,陳良. P2PSIP在IMS中的應(yīng)用研究.電子質(zhì)量.2011,4
2014-12-09)