|
一直不明白 為什么 Diameter協(xié)議能充當(dāng) IMS中HSS網(wǎng)元的唯一接口,想象中的Diameter只充當(dāng) 鑒權(quán)/授權(quán)/計(jì)費(fèi)功能,而HSS卻存在用戶數(shù)據(jù)同步,位置管理等功能。Diameter如何能實(shí)現(xiàn)用戶數(shù)據(jù)同步,位置更新等操作呢?
今天和同事討論了一下,查了一下資料,發(fā)現(xiàn)Diameter協(xié)議的確很強(qiáng)大,可擴(kuò)展型很強(qiáng)。
===========================================================
Cx接口
用戶和服務(wù)數(shù)據(jù)永久的儲存在HSS。這些集中化的數(shù)據(jù)會(huì)在用戶注冊或者收到會(huì)話請求時(shí)需要被I-CSCF和S-CSCF使用。因此,需要在CSCF和HSS間有接口。這個(gè)接口就叫做Cx,所選中的協(xié)議就是Diameter。接口上的流程被分為三大類:位置管理、用戶檔案處理和用戶認(rèn)證。一般來講,這里的描述只涵蓋成功的情況,不包括出錯(cuò)的情況。結(jié)果信息數(shù)據(jù)元可以被用來攜帶請求失敗的原因信息。如果有錯(cuò)誤發(fā)生,應(yīng)答消息通常情況下不會(huì)進(jìn)一步攜帶其它信息數(shù)據(jù)元。下表是Cx接口上的一些Diameter命令: 命令名稱
用途
縮寫
發(fā)送源
目的地
User-Authorization-Request/Answer
在注冊的過程中I-CSCF使用該命令來獲取S-CSCF的名字或者所需的S-CSCF的能力。注銷時(shí),I-CSCF使用該命令來獲取S-CSCF的名字。
UAR
UAA
I-CSCF
HSS
HSS
I-CSCF
Server-Assignment-Request/Answer
更新HSS中記錄的為用戶提供服務(wù)的S-CSCF的名字,把用戶描述下載到S-CSCF中。
SAR
SAA
S-CSCF
HSS
HSS
S-CSCF
Location-Info-Request/Answer
在會(huì)話建立過程中,I-CSCF使用命令來獲得為用戶提供服務(wù)的S-CSCF名字,或者S-CSCF選擇所需要的S-CSCF能力。
LIR
LIA
I-CSCF
HSS
HSS
I-CSCF
Multimedia-Auth-Request/Answer
在S-CSCF和HSS間交換用以支持終端用戶和網(wǎng)絡(luò)間認(rèn)證所需要的數(shù)據(jù)。
MAR
MAA
S-CSCF
HSS
HSS
S-CSCF
Registration-Termination-Request/Answer
HSS使用命令來注銷用戶的一個(gè)或者多個(gè)公共標(biāo)識符。
RTR
RTA
HSS
S-CSCF
S-CSCF
HSS
Push-Profile-Request/Answer
當(dāng)用戶數(shù)據(jù)改變時(shí),HSS使用命令來同步更新S-CSCF中的用戶數(shù)據(jù)。
PPR
PPA
HSS
S-CSCF
S-CSCF
HSS
表格 1 Cx接口命令
2.3.4.1 位置管理過程
位置管理流程又可以被進(jìn)一步分成兩類:注冊和注銷、位置信息檢索。
I-CSCF 和HSS 間的注冊和注銷流程
當(dāng)I-CSCF通過Mw接口從P-CSCF收到一個(gè)注冊請求的時(shí)候,它會(huì)發(fā)起一個(gè)用戶注冊狀態(tài)查詢,也就是標(biāo)準(zhǔn)中的User-Authorization-Request(UAR)命令。這條命令中包含:
· 私有用戶標(biāo)識符——從網(wǎng)絡(luò)的視角來唯一標(biāo)識一個(gè)用戶的標(biāo)識符。他標(biāo)識用戶的訂閱和正確的認(rèn)證數(shù)據(jù)(更多關(guān)于私有用戶標(biāo)識符的信息請參考3.4.1.1節(jié))。
· 公共用戶標(biāo)識符——被注冊的標(biāo)識符(更多關(guān)于公共用戶標(biāo)識符的信息請參考3.4.1.2節(jié))。
· 訪問點(diǎn)網(wǎng)絡(luò)標(biāo)識符——在IMS漫游的情況下用來標(biāo)識訪問點(diǎn)IMS網(wǎng)絡(luò)。HSS可以基于這個(gè)標(biāo)識符來加強(qiáng)漫游限制。
· 路由信息——如果I-CSCF知道的話,可以包含HSS的地址。如果I-CSCF不知道HSS的地址的話,那它就在消息中帶上目的域名(例如,SLF會(huì)來解析出一個(gè)正確的HSS)。
· 授權(quán)類型——定義了三種授權(quán)信息數(shù)據(jù)元的可能值:
· REGISTRATION——當(dāng)注冊(REGISTER)消息攜帶的過期值(expires)不為零時(shí)設(shè)置這個(gè)值。
· REGISTRATION_CAPABILITIES——當(dāng)注冊(REGISTER)攜帶的消息過期值(expires)不為零,并且I-CSCF需要查詢S-CSCF的能力時(shí)設(shè)置這個(gè)值。
· DE_REGISTRATION——當(dāng)注冊(REGISTER)消息攜帶的過期值(expires)為零時(shí)設(shè)置這個(gè)值。
收到UAR命令后,HSS發(fā)送回User-Authorization-Answer(UAA)命令。這個(gè)消息包含:
· 結(jié)果——指示UAR命令的結(jié)果。
· S-CSCF名字和/或S-CSCF能力(如果UAR請求沒有因?yàn)榘墓灿脩魳?biāo)識符和私有用戶標(biāo)識符不屬于同一用戶而被拒絕),取決于用戶當(dāng)前的注冊狀態(tài)。
如果用戶在HSS中還沒有分配一個(gè)S-CSCF,或者I-CSCF顯示的請求S-CSCF的能力,那么會(huì)返回S-CSCF的能力。否則,就返回S-CSCF的名字。當(dāng)S-CSCF的能力被返回時(shí),I-CSCF就需要去進(jìn)行如3.9節(jié)描述的S-CSCF選擇。
S-CSCF 和HSS 間的注冊和注銷流程
我們已經(jīng)解釋過了I-CSCF是如何找到為提供用戶服務(wù)的S-CSCF。完成這個(gè)以后I-CSCF將SIP REGISTER請求轉(zhuǎn)發(fā)給這個(gè)S-CSCF。當(dāng)S-CSCF收到這個(gè)SIP REGISTER消息后,它發(fā)送Server-Assignment-Request(SAR)命令給HSS。SAR被用來通知HSS,當(dāng)過期值(expires)不為0時(shí)這個(gè)S-CSCF將為用戶提供服務(wù)。類似的,如果過期值是0,那么這個(gè)SAR就被用來通知HSS,這個(gè)S-CSCF不再為用戶提供服務(wù)。發(fā)送SAR命令的一個(gè)前提是,用戶已經(jīng)成功的被S-CSCF認(rèn)證。SAR命令包括:
· 私有用戶標(biāo)識符——參考UAR命令。
· 公共用戶標(biāo)識符——要被注冊或者注銷的標(biāo)識符(更多關(guān)于公共用戶標(biāo)識符得細(xì)節(jié)請參考3.4.1.2節(jié))。
· 路由信息——如果S-CSCF知道的話,可以包含HSS的地址。如果S-CSCF不知道HSS的地址的話,那它就在消息中帶上目的域名。
· S-CSCF名字——這個(gè)S-CSCF的SIP URI。
· 服務(wù)指派類型(Server Assignment Type)——服務(wù)指派類型包含了為什么執(zhí)行這次請求的信息(例如:注冊、重新注冊、到未注冊用戶的會(huì)話、用戶發(fā)起的注銷、S-CSCF發(fā)起的注銷、以及認(rèn)證失敗)。
· 用戶數(shù)據(jù)已取得(User Data Already Available)——向HSS指示S-CSCF是否已經(jīng)獲取了為用戶提供服務(wù)所需的用戶檔案(user profile)。
· 用戶數(shù)據(jù)請求類型(User Data Request Type)——告訴HSS,S-CSCF是要下載一個(gè)完整的檔案(complete profile)、已注冊檔案(registered profile)或者未注冊檔案(unregistered profile)。
在收到SAR命令后,HSS會(huì)發(fā)送回一個(gè)(Server-Assignment-Answer)SAA作為響應(yīng)。消息內(nèi)容包括:
· 結(jié)果——指示SAR命令的結(jié)果。
· 用戶檔案——基于SAR中Server Assignment Type和User Data Already Available兩個(gè)參數(shù)來發(fā)送用戶描述(用戶描述在3.11節(jié)介紹)。
· 計(jì)費(fèi)信息——包含計(jì)費(fèi)功能實(shí)體的地址。這是個(gè)可選的消息項(xiàng)。
前面一節(jié)介紹了I-CSCF如何處理Cx接口上用戶發(fā)起的注冊和注銷過程(用戶發(fā)起或者S-CSCF發(fā)起)。關(guān)于網(wǎng)絡(luò)發(fā)起的注銷過程,還需要有更多的操作(UE被偷或者訂閱結(jié)束)。這種情況下,由HSS通過使用Registration-Termination-Request(RTR)命令來發(fā)起注銷。RTR命令包括:
· 私有用戶標(biāo)識符——從網(wǎng)絡(luò)的視角看唯一標(biāo)識一個(gè)用戶的標(biāo)識符。他標(biāo)識用戶的訂閱和正確的認(rèn)證數(shù)據(jù)(更多關(guān)于私有用戶標(biāo)識符的信息請參考3.4.1.1節(jié))。
· 公共用戶標(biāo)識符——一個(gè)或多個(gè)被注冊的標(biāo)識符(更多關(guān)于公共用戶標(biāo)識符的信息請參考3.4.1.2節(jié))。
· 路由信息——為用戶提供服務(wù)的S-CSCF的名字。
· 注銷原因——包含一個(gè)決定S-CSCF行為的原因碼,以及一個(gè)可選的用來顯示給用戶的文本消息。
Registration-Termination-Answer(RTA)命令對RTR進(jìn)行應(yīng)答,它只是簡單的指示了請求處理的結(jié)果。需要注意的是,可以通過只包含私有用戶標(biāo)識符來一口氣注銷用戶所有的公共用戶標(biāo)識符。
位置獲取過程
前面我們介紹了I-CSCF在收到一個(gè)SIP REGISTER消息時(shí),如何使用用戶注冊狀態(tài)查詢請求(UAR命令)來找到S-CSCF。相應(yīng)的,當(dāng)收到一個(gè)非REGISTER時(shí)也需要一個(gè)過程來找到S-CSCF。這個(gè)過程使用了Location-Info-Request(LIR)命令。命令包括了:
· 公共用戶標(biāo)識符——SIP請求的請求地址(request URI)域。
· 路由信息——如果I-CSCF知道的話,可以包含HSS的地址。如果I-CSCF不知道HSS的地址的話,那它就在消息中帶上目的域名。
HSS發(fā)回一個(gè)Location-Info-Answer(LIA)命令進(jìn)行應(yīng)答。消息內(nèi)容包括:
· 結(jié)果——指示LIA命令的結(jié)果。
· S-CSCF名字和/或S-CSCF能力——如果還沒有給用戶分配S-CSCF,那么就返回后者。否則就返回前者。
2.3.4.2 用戶檔案處理過程
像剛才所說的,在注冊的過程中使用SAR和SAA,用戶檔案和服務(wù)相關(guān)的數(shù)據(jù)通過Cx接口從HSS下載到S-CSCF中。然而,在以后S-CSCF仍然為用戶提供服務(wù)時(shí),用戶檔案可能會(huì)改變。為了更新S-CSCF中的用戶檔案,HSS發(fā)送一個(gè)Push-Profile-Request(PPR)命令。這個(gè)消息中包含:
· 私有用戶標(biāo)識符——從網(wǎng)絡(luò)的視角來唯一標(biāo)識一個(gè)用戶的標(biāo)識符。(更多關(guān)于私有用戶標(biāo)識符的信息請參考3.4.1.1節(jié))。
· 路由信息——為用戶提供服務(wù)的S-CSCF的名字。
· 用戶檔案——包含更新的用戶檔案(用戶描述在3.11節(jié)介紹)。
更新在用戶數(shù)據(jù)改變后立刻發(fā)生。但是有一種例外的情況:如3.8.5節(jié)描述的S-CSCF正為一個(gè)未注冊的用戶服務(wù)或者被保留給一個(gè)未注冊的用戶,如果已注冊相關(guān)的服務(wù)數(shù)據(jù)發(fā)生改變,那么HSS不會(huì)發(fā)送PPR命令。Push-Profile-Request(PPA)命令用來應(yīng)答PPR,并簡單指示請求執(zhí)行的結(jié)果。
2.3.4.3 認(rèn)證過程
IMS用戶的認(rèn)證依賴一個(gè)預(yù)先配置好的共享密鑰。共享密鑰和序列號被保存在UE的IP多媒體服務(wù)標(biāo)識模塊(ISIM)中和網(wǎng)絡(luò)中的HSS中。因?yàn)槭怯蒘-CSCF來控制用戶認(rèn)證,這就有必要在Cx接口上傳輸安全性數(shù)據(jù)。當(dāng)S-CSCF需要認(rèn)證用戶的時(shí)候,它就向HSS發(fā)送一個(gè)Multimedia-Auth-Request(MAR)命令。這個(gè)消息中包含:
· 私有用戶標(biāo)識符——從網(wǎng)絡(luò)的視角來唯一標(biāo)識一個(gè)用戶的標(biāo)識符。他標(biāo)識用戶的訂閱和正確的認(rèn)證數(shù)據(jù)(更多關(guān)于私有用戶標(biāo)識符的信息請參考3.4.1.1節(jié))。
· 公共用戶標(biāo)識符——一個(gè)或多個(gè)被注冊的標(biāo)識符(更多關(guān)于公共用戶標(biāo)識符的信息請參考3.4.1.2節(jié))。
· S-CSCF名字——包含S-CSCF的SIP URI。
· 路由信息——如果S-CSCF知道的話,可以包含HSS的地址。如果S-CSCF不知道HSS的地址的話,那它就在消息中帶上目的域名。
· 認(rèn)證項(xiàng)目(Authentication Items)數(shù)量——關(guān)于S-CSCF一次想下載幾組認(rèn)證向量的信息。可以一次下載多組認(rèn)證向量(例如運(yùn)營商會(huì)希望后續(xù)重新認(rèn)證所有的重新注冊)。
· 認(rèn)證數(shù)據(jù)(Authentication Data)——包含認(rèn)證方案(authentication scheme)(例如Digest-AKAv1-MD5)和同步失敗情況下的認(rèn)證信息。
HSS發(fā)送一個(gè)MAA進(jìn)行應(yīng)答。應(yīng)答消息包含:
· 結(jié)果——MAR的處理結(jié)果。
· 私有用戶標(biāo)識符——從網(wǎng)絡(luò)的視角來唯一標(biāo)識一個(gè)用戶的標(biāo)識符。他標(biāo)識用戶的訂閱和正確的認(rèn)證數(shù)據(jù)(更多關(guān)于私有用戶標(biāo)識符的信息請參考3.4.1.1節(jié))。
· 公共用戶標(biāo)識符——被認(rèn)證的標(biāo)識符(更多關(guān)于公共用戶標(biāo)識符的信息請參考3.4.1.2節(jié))。
· 認(rèn)證項(xiàng)目(Authentication Items)數(shù)量——包含認(rèn)證向量的數(shù)量。
· 認(rèn)證數(shù)據(jù)(Authentication Data)——包含認(rèn)證向量,它包括認(rèn)證方案(authentication scheme)(例如Digest-AKAv1-MD5)、認(rèn)證信息(認(rèn)證質(zhì)疑(challenge)RAND和令牌AUTN)、授權(quán)信息(期望結(jié)果(expected response)或XRES)、完整性密鑰、以及一個(gè)可選的保密性密鑰。另外,它還包括了項(xiàng)目號,這被用來指示當(dāng)多個(gè)認(rèn)證向量被返回時(shí)認(rèn)證向量被使用的順序。
|
|