`

Diameter协议及其在IMS中的应用

阅读更多
document.title = 'Diameter协议及其在IMS中的应用-CompoTech China';
Diameter协议及其在IMS中的应用
作者:■ 中国海洋大学、青岛朗讯通信设备有限公司/贾玉忠青岛朗讯通信设备有限公司/纪传浩
 

IP多媒体子系统 —— IMS由3G移动联盟提出后,在网络融合的发展趋势下,很快成为电信多媒体业务的发展方向。本文首先介绍了Diameter协议 的基本概念和基本结构,再结合具体实例介绍了IMS的参考点、Diameter协议在IMS中的应用。


Diameter协议介绍

● 简介
Diameter系列协议是IETF开发的新一代AAA协议。AAA即Authentication(认证)、Authorization(授 权)、Accounting(计费)。Authentication(认证)用以对用户身份进行确认;Authorization(授权) 用以确定用户 是否被授权使用某种网络资源;Accounting(计费)用以监测用户使用网络资源的状况,可依照检测的记录对用户收费。

● Diameter协议的特点
以前的AAA协议如RADIUS、TACACS主要是针对PPP服务和终端服务而设计的。随着网络技术的发展,新的接入方式如无线接入、DSL接 入、移动IP陆续出现,以太网也不断发展,AAA中的网络访问服务器(NAS)自身也逐渐变得越来越复杂。这些发展变化,对AAA协议提出了新的要求。原 有的AAA协议已经不能充分满足这些要求,而新一代AAA协议-Diameter协议却可以满足这些需求,主要包括如下几个方面:
(1) 良好的故障切换机制。Diameter协议支持应用层的信息确认和失效检测机制。
(2) 传输层安全。Diameter协议通过IPsec和TLS保证传输的安全性,其中TLS对于客户端来讲是可选的。
(3) 可靠的传输。Diameter协议通过TCP或SCTP提供可靠的传输。
(4) 支持各种类型的代理,包括中继代理、重定向代理、Proxy代理、协议转换代理。
(5) 支持服务器发起消息。例如服务器可以发消息要求客户端重新认证。
(6) 保持与现有网络AAA协议(如RADIUS)的兼容性。
(7) 支持节点间的能力协商机制。
(8) 支持对等端自主发现和配置机制。
(9) 支持漫游。Diameter协议定义了域间漫游、消息路由及安全传输,能够提供安全漫游服务。

● Diameter协议的框架结构
Diameter协议包含IP传送、安全协议、Diameter基础协议以及不同的应用协议。Diameter基础协议为各种应用协议提供一个基 本框架,它定义了协议的传输机制、消息格式、消息处理、差错处理、计费与安全服务等。应用协议依赖基础协议提供针对某一应用的AAA服务,它是不断发展变 化的。IETF已经确定了一些应用协议的标准,而其它的应用协议的标准尚在制定的过程中。已被确定为协议标准的应用有:移动IP应用协议(MIPv4)、 网络访问服务应用协议(NAS或NASREQ)、信用控制应用协议(Credit-Control)、扩展认证应用协议(EAP)等。尚在讨论和制定的标 准有:SIP应用协议等。
图1是Diameter协议结构的示意图。
如前所述,Diameter协议通过TCP或SCTP提供可靠的传输,通过Ipsec和TLS来保证传输的安全性。Diameter在基础协议的基础上提供各种应用服务。

● Diameter协议的消息格式
Diameter基础协议定义了Diameter协议的消息格式:
Diameter消息的头部包括20个字节。头4个字节包括8比特的版本信息(目前是1)和24比特的消息长度(包含头部的长度)。
随后的4个字节包括8比特的消息标志位和24比特的命令代码。消息标志位有R、P、E、T。R为1或0分别表示请求(Request)和应答 (Answer);P表示本消息是否允许被代理处理、被转发或重定向;E表示是否为消息错误;T表示本消息是重发的消息。r为保留的标志位。
命令代码用来表示这个消息所对应的命令(其中0至255保留给RADIUS后向兼容),基础协议定义了如下几个基本的命令代码:
而Diameter应用协议会根据需要添加必要的命令代码,例如NAS应用协议定义了下面的命令代码:
再举例来说,3GPP(R5)向IANA(网络地址分配机构)申请保留了300~313的命令代码,用于3G的应用,目前已经定义了如下的命令用于Cx/Dx/Sh/Dh接口(目前这些命令尚未被现有的IETF的Diameter协议所定义):
随后的12个字节分别为应用标识、逐跳标识和端到端标识,其中应用标识用以指示消息所适用的应用:
逐跳标识用于帮助匹配请求与响应的对应关系,例如I-CSCF发UAR消息向HSS查询应选择哪个S-CSCF,HSS发UAA回应查询请求;UAR和UAA的逐跳标识是相同的。
端到端标识主要用于重复消息的检查。 
消息头部之后为属性值对(AVP),一个消息中可以包括多个AVP。AVP中包含了认证、授权、计费、消息的路由和安全等信息。

● AVP的格式
图3为AVP的格式:
V标志位表示本AVP有无Vendor-ID字段。若V标志位为1,则需要Vendor-ID不能为0。若V标志位为0,则表示没有Vendor-ID。
M标志位表示本AVP是否是强制性的。如果收到M为1的AVP,若Diameter客户端或服务器端或代理不能识别此AVP或AVP的值,必须丢弃此AVP。
P标志位表示本AVP是否需要端对端安全加密。
若V标志位为0,则AVP code使用的是IANA组织定义的AVP code值。基本协议中定义了一些基本的AVP Code和数据 (Data)的类型。其中AVP Code 1至255用于与原有Radius协议兼容。各个应用协议也根据应用的不同分别定义了相应的AVP Code 以及Data类型。由于AVP Code较多,这里不一一列举,仅举二例:
Vendor-ID为厂商的标识,例如3GPP组织的Vendor-ID为10415。若Vendor-ID不为0,则厂商可以定义自己的AVP code和Data类型。这里也仅举3GPP在TS29.229中定义的AVP的两个例子:

Diameter协议在IMS中的应用

● 参考点(reference point,interface)
下一代多媒体融合业务是通信市场的发展趋势,3GPP定义了IMS(IP Multimedia Subsystem,IP多媒体子系统)标准, 实现IP多媒体业务的建立、维护及管理等功能。在3GPP IMS的体系结构中,各个实体之间信息的交换可以依照某些参考点(接口)来实现。 3GPP IMS定义了许多参考点,但下面几个参考点是借用Diameter协议来实现的:Cx、Sh、Dx、Dh、Rf、Ro等,如图4所示。
这些参考点的定义以及与Diameter协议的对应关系,可以参见3GPP的有关标准,如TS32.225、TS 29.228、TS29.229、TS29.329等。例如Cx命令与Diameter命令的对应关系如表7所示:
这里将这些参考点实现的功能描述如下:
Cx参考点是CSCF(Call Session Control Function,会话控制功能模块)和HSS(Home Subscriber Server,用户数据库)之间的接口,用于用户认证、用户注册、位置查询、用户配置文件查询和更新等。
Dx参考点是CSCF 和SLF(Subscription Locator Function,用户位置服务)之间的接口。当一个运营上的网络中存在多个HSS时,CSCF可以查询SLF以获得与某个用户保持签约的HSS的地址。Dx通常与Cx一起使用。
Sh参考点,其主要功能在于提供HSS和AS(应用服务器)以及HSS和OSA-SCS(OSA接口的业务能力服务器)之间的接口。AS(或OSA-SCS)通过Sh接口与HSS交换用户信息,为用户提供各类业务。
Dh参考点是AS与SLF(用户位置服务)之间的接口,AS通过Dh接口获取用户的位置信息。Dh通常与Sh一同使用。
Cx、Sh、Dx、Dh主要是通过Diameter基本协议、SIP应用协议和3GPP补充的Diameter协议来实现的。
Ro和Rf参考点分别是在线和离线计费的接口。IMS体系中有多个实体间利用到这两个接口,实体间的关系也比较复杂,所以也没有在图4中列出。 Ro通过Diameter信用控制应用协议和3GPP补充的Diameter协议实现的;Rf则通过Diameter基本协议和3GPP补充的 Diameter协议实现。

● 应用实例
下面以用户注册为例,简单描述一下Diameter协议在IMS网络中的应用。
如下的图5为一个用户首次注册的流程图:
在图5中,HSS不但作为归属域的用户数据服务器,还作为Diameter服务器,为用户提供AAA服务。
用户注册所依照的参考点为Cx(HSS与CSCF之间的参考点),用户注册过程中所涉及的Diameter命令在图5中为浅色标识的命令。可以依照上面表7知道Diameter命令所对应的Cx命令。
如下为用户成功注册的过程描述:
1. 用户终端向P-CSCF发SIP Register消息请求注册,但注册消息中没包含完整的认证(Authorization)的信息;
2. P-CSCF查询DNS服务器获取归属域的I-CSCF的IP地址;
3. P-CSCF将SIP Register消息转发给归属域的I-CSCF;
4. 归属域的I-CSCF收到Register请求后,发UAR消息向HSS查询用户的注册状态(或者说查询S-CSCF);
5. HSS发UAA回应查询请求;对于已经注册的用户则回应用户已经注册在哪个S-CSCF;对于没有注册的用户,返回S-CSCF能力集,I-CSCF会根据这个能力集选择一个具备这种能力的S-CSCF并把注册请求转发给它。
6. 归属域的I-CSCF将Register消息转发给查询到的归属域的S-CSCF;
7. S-CSCF发MAR到HSS,查询如何认证;
8. HSS回应MAA,MAA包含认证有关信息;
9. S-CSCF根据收到的MAA包含的认证信息,对本次注册进行判断,认为注册失败(由于注册消息中没包含完整的认证信息),需要用户终端重发包含认证的注册信息;
10. S-CSCF回SIP 401(认证失败)给I-CSCF,401中包含了认证所需的信息,如随机数(nonce)、算法等;
11. I-CSCF再把401转发给P-CSCF,P-CSCF再转发给用户终端;
12. 用户终端重新向P-CSCF发SIP Register消息请求注册,消息包含了认证有关信息,如随机数(nonce)及其response等;
13. 重复以上2到6部后,S-CSCF认为本次收到的注册信息有效,用户注册成功;
14. S-CSCF向HSS发送SAR,要求更新此用户的S-CSCF信息;
15. HSS回应SAA,表示此用户的S-CSCF的信息更新成功,SAA还包含用户的配置文件(userdata);
16. S-CSCF向I-CSCF发200,表示注册成功;I-CSCF再将200转发给P-CSCF,P-CSCF再转发给用户终端,用户成功注册。

● Diameter消息实例
下面以UAR消息为例,熟悉一下Diameter消息的格式。如下是一个UAR消息的十六进制的原始代码:
01000140 c000012c 01000000 4f8cdca1 c3be982e 00000107 4000003f 69637366
2d737464 6e2e696d 73677270 2d303030 2e696d73 2e637463 2e636f6d 3b323337
34303434 37323b32 33373430 34343732 3a303000 00000104 40000020 0000010a
4000000c 000028af 00000102 4000000c 01000000 00000115 4000000c 00000001
00000108 40000028 69637366 2d737464 6e2e696d 73677270 2d303030 2e696d73
2e637463 2e636f6d 00000128 40000013 696d732e 6374632e 636f6d00 0000011b
40000013 494d532e 4354432e 434f4d00 00000001 40000008 00000259 c0000029
000028af 7369703a 2b383631 30383838 38323030 3140696d 732e6374 632e636f
6d000000 00000258 c0000017 000028af 696d732e 6374632e 636f6d00 00000125
40000011 4354435f 4843462d 34000000 0000026f c0000010 000028af 00000000
解释此Diameter消息如下:
01000140:版本为1,长度为320(0x000140)字节。
c000012c:本消息是请求(Request)消息,可以被代理处理、可以被转发、重定向;本消息的命令代码为UAR(300,0x00012c)。
01000000:应用标识为16777216(见表4)。
4f8cdca1 c3be982e:逐跳标识和端到端标识。
随后为多个属性值对(AVP),现在只列举两个具有代表性的AVP:
第一个AVP如下(AVP Code由Diameter基本协议定义):
00000107 4000003f 69637366 2d737464 6e2e696d 73677270 2d303030 2e696d73 2e637463 2e636f6d 3b323337 34303434 37323b32 33373430 34343732 3a303000:
AVP命令是Session-Id(263,0x00000107),Vendor标志位为0(此AVP不包含Vendor-ID),AVP长 度为63(0x00003f)。之后的为数据部分,表示:icsf-stdn.imsgrp- 000.ims.ctc.com;237404472;237404472:00。最后的00为补足32比特而加上的。
再一个AVP如下(AVP由3GPP TS29.229定义):
00000258 c0000017 000028af 696d732e 6374632e 636f6d00:
AVP命令是Visited-Network-Identifier(600,0x00000258),Vendor标志位为1(此AVP包含 Vendor-ID),AVP长度为23(0x000017),Vendor-ID为10415(0x000028af)。之后为数据部分,表 示:ims.ctc.com。
上面的Diameter消息的完整解释如下:
Message:
version (1B) = 0x01 - 1
requestFlag (1b) = 1
proxyableFlag (1b) = 1
errorFlag (1b) = 0
retransFlag (1b) = 0
cmdCode (3B) = 0x00012c - 300
appIdType (4B) = 0x01000000 - 16777216
hopByHopId (4B) = 0x4f8cdca1 - 1334631585
endToEndId (4B) = 0xc3be982e - 3284047918
Command UserAuthorizationRequest:
AVP SessionId 1/1 = icsf-stdn.imsgrp-000.ims.ctc.com;237404472;237404472:00
AVP VendorSpecificApplicationId 1/1
AVP VendorId 1/1 = 0x000028af - 10415
AVP AuthApplicationId 1/1 = 0x01000000 - 16777216
AVP AuthSessionState 1/1 = 0x00000001 - 1 - NoStateMaintained
AVP OriginHost 1/1 = icsf-stdn.imsgrp-000.ims.ctc.com
AVP OriginRealm 1/1 = ims.ctc.com
AVP DestinationRealm 1/1 = IMS.CTC.COM
AVP UserName 1/1 = 
AVP PublicIdentity 1/1 = sip:+861088882001@ims.ctc.com
AVP VisitedNetworkIdentifier 1/1 = ims.ctc.com
AVP DestinationHost 1/1 = CTC_HCF-4
AVP UserAuthorizationType 1/1 = 0x00000000 - 0 - Registration

分享到:
评论

相关推荐

    中国电信Diameter协议---Cx和Dx接口规范要求.pdf

    标签“Cx Dx Diameter 协议”强调了文档的关注点在于Diameter协议及其在Cx和Dx接口的应用。其中,Cx接口主要用于S-CSCF(Serving Call Session Control Function)与HSS(Home Subscriber Server)之间的通信;而Dx...

    华为IMS汇报胶片(主要介绍IMS流程、架构、接口协议)

    - **Diameter协议**:Diameter是一种用于AAA(认证、授权和记账)的应用层协议,在IMS中用于实现统一的鉴权认证机制。 - **其他接口协议**:还包括用于媒体传输的RTP、用于媒体网关控制的H.248等协议。 #### 四、...

    uctimsclient

    4. **SIP协议**:会话初始化协议(SIP)是IMS网络中主要的控制协议,用于建立、修改和终止多媒体通信会话。UCTIMS客户端会使用SIP消息与IMS网络中的其他组件进行交互,如注册、呼叫建立、资源预留等。 5. **用户...

    android下面的IMS代码

    理解这些协议的工作原理及其在Android中的实现方式对于解析IMS代码很有帮助。 5. **Android电话服务**: - IMS通常与电话服务集成,实现VoLTE(Voice over LTE)和Wi-Fi通话。开发者需要熟悉RIL(Radio Interface ...

    IMS技术培训(孙元宁).pdf

    SIP作为会话控制的基础协议,在IMS体系中扮演着关键角色,负责管理多媒体会话的创建和终止。 IMS的需求和主要特性如下: 1. **基于SIP的服务平台**:为基于SIP的应用和服务提供一个统一的平台。 2. **IPv6支持**:...

    IMS系统架构和基本原理 学习IMS的基础 经典 part1

    在3G网络向4G、5G演进的过程中,IMS成为了核心部分,支持语音、视频、数据等多种业务,并能实现与传统通信网络的互操作。本部分将深入探讨IMS系统的架构及其基本原理,为学习IMS打下坚实基础。 IMS系统的核心目标是...

    IMS 北邮培训教材

    ### IMS基础知识及应用 #### 一、下一代网络技术——IMS概览 **IMS**(IP Multimedia Subsystem,IP多媒体子系统)是一种基于IP的多媒体业务与会话控制核心网络技术,它支持各种融合业务,并且不依赖于任何特定的接...

    The 3G IP Multimedia Subsystem (IMS) 3rd Edition PDF

    《3G IP多媒体子系统(IMS)》这本书提供了全面且深入的IMS介绍,不仅涵盖其技术和架构,还探讨了相关协议的发展历程以及如何在实际环境中应用。对于希望深入了解IMS及其对未来通信技术影响的人来说,这是一本不可或...

    中国移动IMS域彩铃接口规范.pdf

    通过该文档的规定和指导,能够确保彩铃业务在中国移动IMS环境中的稳定运行和服务质量。对于设备制造商而言,理解和遵循这一规范是确保产品能够顺利接入中国移动网络并提供高质量服务的前提条件。

    电信设备-IMS会话实现方法、系统、信令带宽调整方法及装置.zip

    在IMS中,SIP(Session Initiation Protocol)协议用于控制会话的建立、修改和终止,而 Diameter 协议则用于用户认证、授权和计费。 2. IMS系统架构:IMS系统主要包括接入网、核心网和应用层。接入网负责UE与核心网...

    IMS_A_Development_And_Deployment_Perspective

    通过本书的学习,读者可以深入了解IMS的核心架构及其在电信网络中的部署情况。 #### 关键知识点 ##### 1. IMS架构简介 - **定义与背景**:IMS(IP Multimedia Subsystem)是一种基于IP的网络架构,旨在为移动和...

    doubango_IMS_compile.zip_doubango_doubango pudn

    通过这个过程,你将能够成功编译并部署doubango IMS协议栈,从而在你的应用中实现高效、可靠的多媒体通信功能。记住,每个步骤都至关重要,确保遵循文档的指导,同时随时准备解决可能出现的问题。对于初学者来说,...

    行业分类-设备装置-IP多媒体子系统及其编解码转换控制方法.zip

    在“IP多媒体子系统及其编解码转换控制方法”这一主题中,我们将深入探讨IMS的核心组件、工作原理以及编解码转换的关键技术。 1. IMS架构:IMS由多个层次和组件组成,包括接入层、会话控制层、应用层和基础设施层。...

    关于XCAP协议的RFC4825规范

    **XCAP协议与RFC4825规范详解** XCAP(XML Configuration Access Protocol)是一种基于HTTP的应用层协议,主要用于在互联网环境中对用户...理解和掌握XCAP协议及其RFC4825规范,对于开发和维护现代网络服务至关重要。

    IMS-demo:这是演示-开源

    4. **IMS协议栈**:IMS 应用程序需要理解和实现一系列标准协议,如SIP(Session Initiation Protocol)用于会话建立, Diameter 用于计费和认证,以及H.248/MGCP(Media Gateway Control Protocol)用于媒体控制等。...

    行业文档-设计装置-在3G+IP多媒体子系统网络实现彩铃业务的系统与方法.zip

    总的来说,在3G+IP多媒体子系统网络中实现彩铃业务,涉及到IMS网络架构、SIP和Diameter协议的应用、彩铃功能实体的交互以及服务质量与安全策略的配置。这一系统与方法不仅丰富了移动通信的业务类型,也为未来5G网络...

    中国移动V哦LTE Ut接口规范V1.0.3

    - **接口协议详细描述**:深入讲解Ut接口所依赖的协议及其具体实现方法。 #### 3. 网络结构与组件 本标准中提到的网络结构主要包括以下几个关键组件: - **AS(应用服务器)**:负责提供业务逻辑和执行服务。 - *...

    行业分类-设备装置-IP多媒体通信业务处理系统及实现IP多媒体通信的方法.zip

    3. **协议栈**:介绍IMS系统中使用的协议,如SIP(会话初始化协议)、 Diameter(计费和认证协议)、HTTP/2等,以及它们的作用。 4. **业务实现**:讨论如何通过IMS提供各种多媒体业务,如VoIP、视频通话、即时消息...

Global site tag (gtag.js) - Google Analytics