胶片Diameter协议结构原理-20070706-A.ppt_第1页
胶片Diameter协议结构原理-20070706-A.ppt_第2页
胶片Diameter协议结构原理-20070706-A.ppt_第3页
胶片Diameter协议结构原理-20070706-A.ppt_第4页
胶片Diameter协议结构原理-20070706-A.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Diameter基本概念和应用,ISSUE1.0,Page 2,协议是业务的载体,业务是协议的实体,前 言,Page 3,参考资料,RFC3588 IMS测试工具组,Page 4,学习完此课程,您将会: 对Diameter协议有基本的了解 知道Diameter协议在IMS的基本应用,目 标,Page 5,第1章 基本概述 第2章 3GPP应用Cx、Sh 第3章 3GPP应用Charging 第4章 标准进展,内容介绍,Page 6,Diameter起源,Diameter协议的最初提出是作为Radius协议的改进或者替代,它的引入是作为支持基于IP技术的AAA协议 认证(Authentication) 用户在使用网络系统中的资源时对用户身份的确认。 授权(Authorization) 网络系统授权用户以特定的方式使用其资源。 计费(Accounting) 网络系统收集、记录用户对网络资源的使用,以便向用户收取资源使用费用,或者用于审计等目的 认证、授权和计费一起实现了网络系统对特定用户的网络资源使用情况的准确记录。这样既在一定程度上有效地保障了合法用户的权益,又能有效地保障网络系统安全可靠地运行。 Diameter协议在IMS之中主要用于Rf接口(离线计费接口),Ro接口(实时计费接口),Cx(I-CSCFS-CSCF与HSS的接口)等,Page 7,Diameter协议栈,Page 8,Diameter角色,在Diameter协议之中,每一个(支持Diameter协议的)网络功能节点都称为Peer。任何一个Peer至少充当如下角色之一: Diameter Client Diameter Server Diameter Relay Agent Diameter Proxy Agent Diameter Redirector Agent Diameter Translation Agent 至少充当上述角色之一的含义是:一个Peer可能同时充当上述多种角色。,Page 9,角色Client/Server,发起请求消息方被称为Diameter Client 接收并处理请求方被称为Diameter Server Diameter协议中,哪个节点作为Client,哪个节点作为Server仅仅是一个逻辑概念,在Diameter协议层没有实际的物理实现上的差别 Diameter协议是对等协议(Peer-To-Peer protocol),Page 10,角色Client/Server,CSCF,AS,MGCF,CCF,ACR,ACA,Client,Server,S-CSCF,HSS,RTR/PPR,RTA/PPA,Client,Server,scene 1,scene 2,Page 11,角色Relay Agent,Diameter协议层的角色 基于路由规则转发消息包 不会更改消息体 减轻了client和server的配置压力,Page 12,角色Redirect Agent,Diameter协议层的角色: 当Diameter Relay Agent无法寻找到恰当的路由时,可以将消息通过缺省路由发给Redirect Agent,由后者指定一个特定路由响应给Diameter Relay Agent,后者重定向该消息 存在的价值之一是集中配置域内所有的路由信息 本身并不转发任何消息,Page 13,角色Proxy / Translation Agent,Proxy Agent是Diameter应用层的角色 能够基于路由规则转发消息包 能够基于特殊的代理功能需求去修改消息包的内容 Translation Agent是Diameter应用层的角色 提供了协议转换的功能 保证了传统AAA协议和新协议的互通,Page 14,消息结构消息头,Version: 目前全部填写1; Message Length: 填写包含消息头的整个消息的长度; R: 请求消息填写为1, 响应消息填写为0; P: 本消息是否可以被转发,Diameter基本协议命令字CERDPRDWR不能被转发; E: 如果本消息是响应消息,并且指明了某种错误信息,则置为1; T: 本消息是否是重发消息; Command-Code: 消息命令字,响应消息和对应的请求消息的命令字是一样的;Diameter协议的基本命令字包括CERCEA(257), DWRDWA(280), DPRDPA(282); Application-ID: 消息涉及的应用ID Hop-by-Hop, End-to-End:在本胶片消息路由部分详细描述。,Page 15,消息结构消息体,以AVP为单位,每个AVP携带了一个具体的消息参数值 每个AVP包含AVP头和Data部分,AVP Code: AVP的类别,例如Original-Host AVP的Code值为264; V: 本AVP头之中是否出现Vendor-ID字段; M: 本AVP是否属于必需AVP,就一个特定的Diameter命令而言,有一些AVP是必须出现的,例如Original-Host AVP和Original-Realm AVP在任何Diameter消息之中都是必须出现的,Session-ID AVP在Diameter的计费应用命令字之中必须出现; P: 本AVP的数据部分是否经过了加密; AVP Length: 本AVP包含数据部分的长度,注意任何AVP的数据部分长度都必须为4的整数倍,不够的以0填充; Vendor-ID: 可选,标识生成本AVP值的设备的供应商,IANA给华为分配的Vendor-ID值为2011; Data: 记录具体的数据值,具体数据的类型是由AVP Code决定的。,Page 16,常用命令1CERCEA,Capabilities-Exchange-Request := Origin-Host Origin-Realm 1* Host-IP-Address Vendor-Id Product-Name Origin-State-Id * Supported-Vendor-Id * Auth-Application-Id * Inband-Security-Id * Acct-Application-Id * Vendor-Specific-Application-Id Firmware-Revision * AVP ,Capabilities-Exchange-Answer := Result-Code Origin-Host Origin-Realm 1* Host-IP-Address Vendor-Id Product-Name Origin-State-Id Error-Message * Failed-AVP * Supported-Vendor-Id * Auth-Application-Id * Inband-Security-Id * Acct-Application-Id * Vendor-Specific-Application-Id Firmware-Revision * AVP ,CERCEA是Diameter基本协议命令字,应用于连接建立过程中的能力协商。,Page 17,常用命令2DWRDWA,Device-Watchdog-Request := Origin-Host Origin-Realm Origin-State-Id ,Device-Watchdog-Answer := Result-Code Origin-Host Origin-Realm Error-Message * Failed-AVP Original-State-Id ,DWRDWA也是Diameter基本协议命令字,实际上就是握手消息。,Page 18,常用命令3DPRDPA,Disconnect-Peer-Request := Origin-Host Origin-Realm Disconnect-Cause ,Disconnect-Peer-Answer := Result-Code Origin-Host Origin-Realm Error-Message * Failed-AVP ,DPRDPA是Diameter基本协议命令字,当Peer发生问题需要终止时通知对端中断连接。,Page 19,端到端连接,Capabilities Exchange Release Connection Status Watching,Page 20,路由过程路由请求消息(一),对请求消息的路由过程: (1) 任何一个Diameter Peer接收到请求消息后,首先判断是否为CER(能力交换请求)DWR(握手请求)DPR(断连请求)消息,然则按照Peer基本状态机进行成立; (2) 如果不是,首先判断消息之中是否没有Destination-Host AVP和Destination-Realm AVP处理,如果是,则交给本端上层应用处理; (3) 如果存在Destination-Host AVP字段, 如果其值等于本端标识,如果成立,则交给本端上层应用处理; 如果其值等于一个与本端直接相连的Peer标识,则直接转发给该Peer处理; (4) 当(3)的条件都不成立,则判断Destination-Realm AVP字段 如果该字段值等于本端可以支持的域范围,并且本端可以处理该应用的请求,则交给本端上层应用处理; 否则查询路由表,寻找一个特定的路由将该消息转发给一个与本端直接相连的Peer。 另外,本端Diameter Peer在转发该请求消息以前, 给该消息分配一个新的Hop-by-Hop值替换该消息之中的Hop-by-Hop字段值,同时将该消息原来的Hop-by-Hop字段值,上一跳信息记录在本端的待响应请求队列之中; 在该消息之中添加一个Router-Record字段值,具体信息为该消息的上一跳Peer标识; 做完上述步骤之后再转发本消息。,Page 21,路由表基本信息: 域名Realm Name,支持的应用标识 Application Identifier,这两个字段是路由表查询的关键字段; 转发的下一跳Peer标识,这个字段是路由表查询需要得到的结果,这个Peer标识一定是要在本端配置的Peer表之中出现过的; 路由表的作用是路由请求消息; 待响应请求队列节点信息,每个待响应请求队列应该包含如下信息: 请求消息体,可选; 本请求消息的当前Hop-by-Hop值; 本请求消息的上一跳Hop-by-Hop值; 本请求消息的上一跳Peer信息。 待响应请求队列的作用是路由响应消息。,路由过程路由请求消息(二),Page 22,Relay Agent的路由表配置: Realm = , Server Identifier = ; Realm = , Server Identifier = ; Relay Agent的Peer表配置: Host Identifier = S; Host Identifier = R; Host Identifier = Client1; Host Identifier = Client2;,Client1,Relay agent,S,S,R,Client2,路由过程路由请求消息(三),Page 23,Client1,Relay agent,S,S,Client1发出请求消息request1: Destination-Host = S, Destination-Realm = , Hop-by-Hop = 10; Relay agent接收到该消息之后: Relay agent接收到该请求消息之后,根据本端配置的Peer表信息和request1的Destination-Host字段判断出转发的下一跳; 给该消息分配一个新的Hop-by-Hop值,例如6这个值只需要保证Relay agent分配的全局唯一就可以了同时记录本消息的前一跳Client1,前一跳Hop-by-Hop值10, 当前Hop-by-Hop值6到待响应请求队列; 在该消息之中添加一个Route-Record字段,值为Client1; 转发该消息。,R,Client2,request1,request1,路由过程路由请求消息(四),Page 24,Client1,Relay agent,S,S,Client2发出请求消息request2: Destination-Host = S, Destination-Realm = , Hop-by-Hop = 31; Relay agent接收到该消息之后: Relay agent接收到该请求消息之后,根据本端配置的路由表信息和reques2的Destination-Realm字段判断出转发的下一跳; 给该消息分配一个新的Hop-by-Hop值,例如8,同时记录本消息的前一跳Client2,前一跳Hop-by-Hop值31, 当前Hop-by-Hop值8到待响应请求队列; 在该消息之中添加一个Route-Record字段,值为Client2; 转发该消息。,R,Client2,request2,request2,路由过程路由请求消息(四),Page 25,Diameter协议对响应消息的路由完全不同于对请求消息的路由,这个过程只基于消息之中的Hop-by-Hop值,并且响应消息一定是按照对应请求消息的原路径返回的。 对响应消息的路由过程: (1) 任何一个Diameter Peer接收到响应消息后,首先判断是否为CEA(能力交换响应)DWA(握手响应)DPA(断连响应)消息,然则按照Peer基本状态机进行成立; (2) 如果不是,则取该响应消息的Hop-by-Hop字段值在待响应请求队列之中查找: 如果能够找到,则将该消息的Hop-by-Hop字段值填写为本端待响应请求队列之中记录的前一跳Hop-by-Hop值,然后将响应消息发送给本端待响应请求队列之中记录的前一跳Peer,并删除该待响应请求节点; 如果无法不能找到,直接扔弃该请求消息;,路由过程路由响应消息(一),Page 26,Client1,Relay agent,S,S,Server1处理request1后生成对应的响应消息answer1 响应消息之中是没有Destination-Host和Destination-Realm字段的,Hop-by-Hop的值应该填写收到的request1的Hop-by-Hop值6; Relay agent接收到该消息之后: Relay agent接收到该响应消息之后,在本端待响应请求队列之中根据Hop-by-Hop值找到answer1消息对应的request1消息的上一跳Hop-by-Hop值10和上一跳Peer Client1; Relay agent将该该响应消息的Hop-by-Hop值填写为10,然后转发该消息到上一跳Peer Client1;,R,Client2,answer1,answer1,路由过程路由响应消息(二),Page 27,Server1处理request2后生成对应的响应消息answer2 响应消息之中是没有Destination-Host和Destination-Realm字段的,Hop-by-Hop的值应该填写收到的request1的Hop-by-Hop值8; Relay agent接收到该消息之后: Relay agent接收到该响应消息之后,在本端待响应请求队列之中根据Hop-by-Hop值找到answer1消息对应的request1消息的上一跳Hop-by-Hop值31和上一跳Peer Client2; Relay agent将该该响应消息的Hop-by-Hop值填写为31,然后转发该消息到上一跳Peer Client2;,Client1,Relay agent,S,S,R,Client2,answer2,answer2,路由过程路由响应消息(三),Page 28,当Relay Agent长时间无法收到某个待响应请求队列中的节点对应的响应消息时,或者收到指明了错误信息的响应消息(例如Server忙,无法处理请求消息)时: 如果Relay Agent保存了该原始请求消息,可以寻找替代路由发送该消息; 如果Relay Agent未保存该原始请求消息,应将该响应消息发回给对应请求消息的上一跳。,路由过程错误处理(一),Page 29,Relay Agent的路由表配置: Realm = , Server Identifier = ; Realm = , Server Identifier = ; Realm = , Server Identifier = Relay Agent的Peer表配置: Host Identifier = S; Host Identifier = R; Host Identifier = Client1; Host Identifier = Client2; Host Identifier = R;,Client1,Relay agent,S,S,R,Client2,R,路由过程错误处理(二),Page 30,Client1发出请求消息request3: Destination-Host = S, Destination-Realm = ; Relay agent接收到该消息之后,转发给S,但是,长时间未接收到对应的响应消息; 如果Relay Agent之中保存了request3原始消息体,则可以查找替代路由,将该消息转发给Relay.mobielcom; 如果Relay Agent之中没有保存request3原始消息体,则应该向Client1返回一个指明了错误信息的响应消息answer,其result-code = Unable-To-Deliver,并且删除该待响应请求队列节点。,Client1,Relay agent,S,S,R,Client2,R,1. request3,2. request3,3. request3,路由过程错误处理(三),Page 31,第1章 基本概述 第2章 3GPP应用Cx、Sh 第3章 3GPP应用Charging 第4章 标准进展,内容介绍,Page 32,IMS中的Diameter应用,Page 33,Cx/Sh overview,Cx I-CSCFHSS S-CSCFHSS Sh ASHSS,Page 34,Cx - Diameter commands,Page 35,UAR UAA - User-Authorization,应用场景 1、用户注册 2、用户注销 I-CSCF 通过HSS查询S-CSCF HSS 处理 判断 1、IMPU在当前网络是否具有漫游权限 2、IMPU是否有注册权限 3、IMPU是否未闭锁 Return 1、S-CSCF名字或者 2、S-CSCF的能力集,Page 36,MAR MAA - Multimedia-Authentication,应用场景 1、 S-CSCF 向HSS获取鉴权向量(AV) 2、 UE和HSS之间的同步失败, S-CSCF 向HSS上报重同步请求 HSS 处理 1、重同步处理 1)解析和验证 AUTS 2) 同步SQNhe为SQNms 3)计算新的鉴权向量返回给S-CSCF 2、鉴权向量处理 1)检查用户的注册状态并且判断S-CSCF的名字是否和HSS中保存的相同 2)计算鉴权向量返回给S-CSCF,Page 37,SAR SAA - Server-Assignment,应用场景 1、 S-CSCF通知HSS 注册或者注销用户 2、 S-CSCF向HSS请求用户的签约数据 HSS 处理 1、检查用户的注册状态并且更新为新的注册状态 2、为用户保存S-CSCF的名字 3、给S-CSCF返回用户的签约数据和/或计费地址信息,Page 38,LIR LIA - Location-Info,应用场景 当用户作为被叫, I-CSCF向HSS查询用户所属的S-CSCF HSS 处理 1、当用户的状态为registered或者unregistered, HSS返回S-CSCF的名字 2、当用户的状态为not registered, 而且用户签约了未注册状态业务, HSS返回S-CSCF名字或者能力集 3、其他情况,HSS返回响应的错误信息,Page 39,RTR RTA - Registration-Termination,应用场景 1、用户的签约关系发生了更改 2、用户分配了新的S-CSCF 3、用户的S-CSCF将会产生变化 4、S-CSCF不能再为用户服务了 HSS发送RTR给S-CSCF进行网络侧用户注销,Page 40,PPR PPA - Push-Profile,应用场景 当用户的签约数据或者计费地址信息发生了更改,HSS将更改后的数据通过PPR消息发送给S-CSCF S-CSCF处理 1、S-CSCF 会马上更新用户数据 2、如果用户数据不支持、用户不存在、用户数据过大的时候, S-CSCF将返回响应的错误码给HSS,Page 41,Cx 终端注册过程,ICSCF query S-CSCF by HSS User-Authorization-Request User-Authorization-Answer SCSCF get AVs form HSS Multimedia-Auth-Request Multimedia-Auth-Answer SCSCF notify HSS to register user and download user profile Server-Assignment-Request Server-Assignment-Answer,Page 42,Sh - Diameter commands,Page 43,UDR UDA - User-Data,应用场景 AS向HSS 请求指定用户的透明或者非透明数据 HSS处理 1、检查AS是否有权限去读取用户的特定数据 2、检查AS要读取的数据是否正在被其他网元修改 3、如果正在被修改,HSS将等待修改完成再进行处理;如果没有被修改,HSS会将数据返回给HSS 透明数据: HSS不需要理解数据的含义 非透明数据: HSS需要理解数据的含义,Page 44,PUR PUA - Profile-Update,应用场景 AS 主动更新保存在HSS的指定IMPU的透明数据 HSS Action 1、检查AS是否有权限更新用户的透明数据 2、检查透明数据是否正在被其他的网元更新 3、HSS根据AS的要求更新透明数据,Page 45,SNR SNA - Subscribe-Notifications,应用场景 AS向HSS订阅指定用户的透明数据或者非透明数据 HSS 处理 1、 检查AS是否有相应的数据订阅权限 2、给用户置上notify-flag,Page 46,PNR PNA - Push-Notification,应用场

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论