找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4106|回复: 0
收起左侧

Diameter 的强大 ===== IMS Cx 接口

[复制链接]
ID:107189 发表于 2016-3-5 18:09 | 显示全部楼层 |阅读模式
一直不明白 为什么 Diameter协议能充当 IMS中HSS网元的唯一接口,想象中的Diameter只充当 鉴权/授权/计费功能,而HSS却存在用户数据同步,位置管理等功能。Diameter如何能实现用户数据同步,位置更新等操作呢?
今天和同事讨论了一下,查了一下资料,发现Diameter协议的确很强大,可扩展型很强。
===========================================================
Cx接口
用户和服务数据永久的储存在HSS。这些集中化的数据会在用户注册或者收到会话请求时需要被I-CSCF和S-CSCF使用。因此,需要在CSCF和HSS间有接口。这个接口就叫做Cx,所选中的协议就是Diameter。接口上的流程被分为三大类:位置管理、用户档案处理和用户认证。一般来讲,这里的描述只涵盖成功的情况,不包括出错的情况。结果信息数据元可以被用来携带请求失败的原因信息。如果有错误发生,应答消息通常情况下不会进一步携带其它信息数据元。下表是Cx接口上的一些Diameter命令: 命令名称
用途
缩写
发送源
目的地

User-Authorization-Request/Answer
在注册的过程中I-CSCF使用该命令来获取S-CSCF的名字或者所需的S-CSCF的能力。注销时,I-CSCF使用该命令来获取S-CSCF的名字。
UAR
UAA
I-CSCF
HSS
HSS
I-CSCF

Server-Assignment-Request/Answer
更新HSS中记录的为用户提供服务的S-CSCF的名字,把用户描述下载到S-CSCF中。
SAR
SAA
S-CSCF
HSS
HSS
S-CSCF

Location-Info-Request/Answer
在会话建立过程中,I-CSCF使用命令来获得为用户提供服务的S-CSCF名字,或者S-CSCF选择所需要的S-CSCF能力。
LIR
LIA
I-CSCF
HSS
HSS
I-CSCF

Multimedia-Auth-Request/Answer
在S-CSCF和HSS间交换用以支持终端用户和网络间认证所需要的数据。
MAR
MAA
S-CSCF
HSS
HSS
S-CSCF

Registration-Termination-Request/Answer
HSS使用命令来注销用户的一个或者多个公共标识符。
RTR
RTA
HSS
S-CSCF
S-CSCF
HSS

Push-Profile-Request/Answer
当用户数据改变时,HSS使用命令来同步更新S-CSCF中的用户数据。
PPR
PPA
HSS
S-CSCF
S-CSCF
HSS


表格 1 Cx接口命令
2.3.4.1 位置管理过程
位置管理流程又可以被进一步分成两类:注册和注销、位置信息检索。
I-CSCF 和HSS 间的注册和注销流程
当I-CSCF通过Mw接口从P-CSCF收到一个注册请求的时候,它会发起一个用户注册状态查询,也就是标准中的User-Authorization-Request(UAR)命令。这条命令中包含:
· 私有用户标识符——从网络的视角来唯一标识一个用户的标识符。他标识用户的订阅和正确的认证数据(更多关于私有用户标识符的信息请参考3.4.1.1节)。
· 公共用户标识符——被注册的标识符(更多关于公共用户标识符的信息请参考3.4.1.2节)。
· 访问点网络标识符——在IMS漫游的情况下用来标识访问点IMS网络。HSS可以基于这个标识符来加强漫游限制。
· 路由信息——如果I-CSCF知道的话,可以包含HSS的地址。如果I-CSCF不知道HSS的地址的话,那它就在消息中带上目的域名(例如,SLF会来解析出一个正确的HSS)。
· 授权类型——定义了三种授权信息数据元的可能值:
· REGISTRATION——当注册(REGISTER)消息携带的过期值(expires)不为零时设置这个值。
· REGISTRATION_CAPABILITIES——当注册(REGISTER)携带的消息过期值(expires)不为零,并且I-CSCF需要查询S-CSCF的能力时设置这个值。
· DE_REGISTRATION——当注册(REGISTER)消息携带的过期值(expires)为零时设置这个值。
收到UAR命令后,HSS发送回User-Authorization-Answer(UAA)命令。这个消息包含:
· 结果——指示UAR命令的结果。
· S-CSCF名字和/或S-CSCF能力(如果UAR请求没有因为包含的公共用户标识符和私有用户标识符不属于同一用户而被拒绝),取决于用户当前的注册状态。
如果用户在HSS中还没有分配一个S-CSCF,或者I-CSCF显示的请求S-CSCF的能力,那么会返回S-CSCF的能力。否则,就返回S-CSCF的名字。当S-CSCF的能力被返回时,I-CSCF就需要去进行如3.9节描述的S-CSCF选择。
S-CSCF 和HSS 间的注册和注销流程
我们已经解释过了I-CSCF是如何找到为提供用户服务的S-CSCF。完成这个以后I-CSCF将SIP REGISTER请求转发给这个S-CSCF。当S-CSCF收到这个SIP REGISTER消息后,它发送Server-Assignment-Request(SAR)命令给HSS。SAR被用来通知HSS,当过期值(expires)不为0时这个S-CSCF将为用户提供服务。类似的,如果过期值是0,那么这个SAR就被用来通知HSS,这个S-CSCF不再为用户提供服务。发送SAR命令的一个前提是,用户已经成功的被S-CSCF认证。SAR命令包括:
· 私有用户标识符——参考UAR命令。
· 公共用户标识符——要被注册或者注销的标识符(更多关于公共用户标识符得细节请参考3.4.1.2节)。
· 路由信息——如果S-CSCF知道的话,可以包含HSS的地址。如果S-CSCF不知道HSS的地址的话,那它就在消息中带上目的域名。
· S-CSCF名字——这个S-CSCF的SIP URI。
· 服务指派类型(Server Assignment Type)——服务指派类型包含了为什么执行这次请求的信息(例如:注册、重新注册、到未注册用户的会话、用户发起的注销、S-CSCF发起的注销、以及认证失败)。
· 用户数据已取得(User Data Already Available)——向HSS指示S-CSCF是否已经获取了为用户提供服务所需的用户档案(user profile)。
· 用户数据请求类型(User Data Request Type)——告诉HSS,S-CSCF是要下载一个完整的档案(complete profile)、已注册档案(registered profile)或者未注册档案(unregistered profile)。
在收到SAR命令后,HSS会发送回一个(Server-Assignment-Answer)SAA作为响应。消息内容包括:
· 结果——指示SAR命令的结果。
· 用户档案——基于SAR中Server Assignment Type和User Data Already Available两个参数来发送用户描述(用户描述在3.11节介绍)。
· 计费信息——包含计费功能实体的地址。这是个可选的消息项。
前面一节介绍了I-CSCF如何处理Cx接口上用户发起的注册和注销过程(用户发起或者S-CSCF发起)。关于网络发起的注销过程,还需要有更多的操作(UE被偷或者订阅结束)。这种情况下,由HSS通过使用Registration-Termination-Request(RTR)命令来发起注销。RTR命令包括:
· 私有用户标识符——从网络的视角看唯一标识一个用户的标识符。他标识用户的订阅和正确的认证数据(更多关于私有用户标识符的信息请参考3.4.1.1节)。
· 公共用户标识符——一个或多个被注册的标识符(更多关于公共用户标识符的信息请参考3.4.1.2节)。
· 路由信息——为用户提供服务的S-CSCF的名字。
· 注销原因——包含一个决定S-CSCF行为的原因码,以及一个可选的用来显示给用户的文本消息。
Registration-Termination-Answer(RTA)命令对RTR进行应答,它只是简单的指示了请求处理的结果。需要注意的是,可以通过只包含私有用户标识符来一口气注销用户所有的公共用户标识符。
位置获取过程
前面我们介绍了I-CSCF在收到一个SIP REGISTER消息时,如何使用用户注册状态查询请求(UAR命令)来找到S-CSCF。相应的,当收到一个非REGISTER时也需要一个过程来找到S-CSCF。这个过程使用了Location-Info-Request(LIR)命令。命令包括了:
· 公共用户标识符——SIP请求的请求地址(request URI)域。
· 路由信息——如果I-CSCF知道的话,可以包含HSS的地址。如果I-CSCF不知道HSS的地址的话,那它就在消息中带上目的域名。
HSS发回一个Location-Info-Answer(LIA)命令进行应答。消息内容包括:
· 结果——指示LIA命令的结果。
· S-CSCF名字和/或S-CSCF能力——如果还没有给用户分配S-CSCF,那么就返回后者。否则就返回前者。
2.3.4.2 用户档案处理过程
像刚才所说的,在注册的过程中使用SAR和SAA,用户档案和服务相关的数据通过Cx接口从HSS下载到S-CSCF中。然而,在以后S-CSCF仍然为用户提供服务时,用户档案可能会改变。为了更新S-CSCF中的用户档案,HSS发送一个Push-Profile-Request(PPR)命令。这个消息中包含:
· 私有用户标识符——从网络的视角来唯一标识一个用户的标识符。(更多关于私有用户标识符的信息请参考3.4.1.1节)。
· 路由信息——为用户提供服务的S-CSCF的名字。
· 用户档案——包含更新的用户档案(用户描述在3.11节介绍)。
更新在用户数据改变后立刻发生。但是有一种例外的情况:如3.8.5节描述的S-CSCF正为一个未注册的用户服务或者被保留给一个未注册的用户,如果已注册相关的服务数据发生改变,那么HSS不会发送PPR命令。Push-Profile-Request(PPA)命令用来应答PPR,并简单指示请求执行的结果。
2.3.4.3 认证过程
IMS用户的认证依赖一个预先配置好的共享密钥。共享密钥和序列号被保存在UE的IP多媒体服务标识模块(ISIM)中和网络中的HSS中。因为是由S-CSCF来控制用户认证,这就有必要在Cx接口上传输安全性数据。当S-CSCF需要认证用户的时候,它就向HSS发送一个Multimedia-Auth-Request(MAR)命令。这个消息中包含:
· 私有用户标识符——从网络的视角来唯一标识一个用户的标识符。他标识用户的订阅和正确的认证数据(更多关于私有用户标识符的信息请参考3.4.1.1节)。
· 公共用户标识符——一个或多个被注册的标识符(更多关于公共用户标识符的信息请参考3.4.1.2节)。
· S-CSCF名字——包含S-CSCF的SIP URI。
· 路由信息——如果S-CSCF知道的话,可以包含HSS的地址。如果S-CSCF不知道HSS的地址的话,那它就在消息中带上目的域名。
· 认证项目(Authentication Items)数量——关于S-CSCF一次想下载几组认证向量的信息。可以一次下载多组认证向量(例如运营商会希望后续重新认证所有的重新注册)。
· 认证数据(Authentication Data)——包含认证方案(authentication scheme)(例如Digest-AKAv1-MD5)和同步失败情况下的认证信息。
HSS发送一个MAA进行应答。应答消息包含:
· 结果——MAR的处理结果。
· 私有用户标识符——从网络的视角来唯一标识一个用户的标识符。他标识用户的订阅和正确的认证数据(更多关于私有用户标识符的信息请参考3.4.1.1节)。
· 公共用户标识符——被认证的标识符(更多关于公共用户标识符的信息请参考3.4.1.2节)。
· 认证项目(Authentication Items)数量——包含认证向量的数量。
· 认证数据(Authentication Data)——包含认证向量,它包括认证方案(authentication scheme)(例如Digest-AKAv1-MD5)、认证信息(认证质疑(challenge)RAND和令牌AUTN)、授权信息(期望结果(expected response)或XRES)、完整性密钥、以及一个可选的保密性密钥。另外,它还包括了项目号,这被用来指示当多个认证向量被返回时认证向量被使用的顺序。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表