1、单击此处编辑母版标题样式,HUAWEI TECHNOLOGIES CO.,LTD.,单击此处编辑母版文本样式,单击此处编辑母版文本样式,单击此处编辑母版文本样式,单击此处编辑母版文本样式,HUAWEI Confidential,谢谢,单击此处编辑母版标题样式,HUAWEI TECHNOLOGIES CO.,LTD.,Page,*,单击此处编辑母版文本样式,单击此处编辑母版文本样式,单击此处编辑母版文本样式,单击此处编辑母版文本样式,HUAWEI Confidential,Diameter,协议,第,1,章 协议概述,第,2,章 消息结构,第,3,章 常用命令,第,4,章 基本流程,第,5,章
2、码流解析,内容介绍,背景,Diameter,协议的最初提出是作为,Radius,协议的改进或者替代,它的引入是作为支持基于,IP,技术的,AAA,框架的,AAA,协议。,认证,(Authentication),:用户在使用网络系统中的资源时对用户身份的确认。,计费,(Accounting),:网络系统收集、记录用户对网络资源的使用,以便向用户收取资源使用费用,或者用于审计等目的。,授权,(Authorization),:网络系统授权用户以特定的方式使用其资源。,认证、授权和计费一起实现了网络系统对特定用户的网络资源使用情况的准确记录。这样既在一定程度上有效地保障了合法用户的权益,又能有效地保障
3、网络系统安全可靠地运行。,协议优点,Diameter,和,Radius,两者之间的比较,拥有良好的失败机制,支持失败替代(failover)和失败回溯(faiback);,拥有更好的包丢弃处理机制,Diameter协议要求对每个消息进行确认;,可以保证数据体的完整性和机密性;,支持端到端安全,支持,TLS,和,IPSec,;,引入了,“,能力协商,”,能力,协议框架,DCCA,NASREQ,MIP,Diameter Base,TLS,TCP,SCTP,IP/IPsec,基础协议,(RFC 3588),:提供了作为一个,AAA,协议的最低需求,是,Diameter,网络节点都必须实现的功能,包括
4、节点间能力的协商、,Diameter,消息的接收及转发、计费信息的实时传输等。,应用协议:充分利用基础协议提供的消息传送机制,规范相关节点的功能以及其特有的消息内容,来实现应用业务的,AAA,。,协议框架,IETF,的,AAA,工作组已经完成,Diameter NASREQ,应用、,Diameter,移动,IP v4,应用、,Diameter,多媒体应用等应用协议的制定,在,Diameter,基础协议上扩展的信用控制应用协议,Diameter Credit Control Application(RFC 4006),,定义了实时计费协议框架,采用信用额度控制实现了基于会话及事件的计费,解决了对
5、于预付费的计费需求,;,Diameter,网络节点,Diameter Client,:处于网络边缘提供接入控制的设备,比如,NAS(network access server),。,Diameter Server,:处理一个特定域的 认证,授权和计费请求,Diameter,中继,:能够从,Diameter,请求消息中提取信息,再根据,Diameter,基于域的路由表的内容决定消息发送的下一,Diameter,节点,,Diameter,中继只对过往消息进行路由信息的修改,而不改动消息中的其他内容。,Diameter,代理,:根据,Diameter,路由表的内容决定消息发送的下一跳,Diamete
6、r,节点。此外,,Diameter,代理能够修改消息中的相应内容。,Diameter,重定向器,:不知道如何路由的请求消息发给,Diameter,重定向器时,重定向器将根据其详尽的路由配置信息,把路由指示信息加入到请求消息的响应里,从而明确地通知该,Diameter,节点的下一跳,Diameter,节点。,Diameter,协议转换器,:主要用于实现,RADIUS,与,Diameter,,或者,TACACS+,与,Diameter,之间的协议转换。,第,1,章 协议概述,第,2,章 消息结构,第,3,章 常用命令,第,4,章 基本流程,第,5,章 码流解析,内容介绍,第,2,章 消息结构,2.
7、1,消息头,2.2,消息体,内容介绍,消息头,Version:,目前全部填写,1,;,Message Length:,填写包含消息头的整个消息的长度;,Command Flag,:,R:,请求消息填写为,1,响应消息填写为,0,;,P:,本消息是否可以被转发,,Diameter,基本协议命令字,CERDPRDWR,不能被转发;,E:,通常通过设置,E,位来说明这是一个错误消息。但该位不可在请求消息中设置;,T:,本消息是否是重发消息;,Command-Code:,消息命令字,响应消息和对应的请求消息的命令字是一样的;,Diameter,协议的基本命令字包括,CERCEA(257),DWRDWA
8、(280),DPRDPA(282),;,Diameter,应用协议命令字包括,CCRCCA,(,272,);,Application-ID:,消息涉及的应用,ID,。例如:,Diameter,基本协议之中定义的,Application-ID,包括:,Diameter Common Messages(0),NASREQ(1),Mobile-IP(2),Diameter Base Accounting(3),Relay(0 xffffffff);DCCA(4);,Hop-by-Hop,:逐跳标识用于判断请求与应答的对应关系,;,End-to-End:,端到端标识主要用于重复消息的检查。,消息体,D
9、iameter,消息的消息体部分以,AVP,(,Attribute-Value-Pair,)为单位,,Diameter,把与一条消息相关的的各种信息用一个个的,AVP,封装起来,然后逐个头尾衔接。,AVP,头,AVP Code:,AVP的类别,,用于,标识,AVP,。例如,Original-Host AVP的Code值为264,;,AVP Flags,:,V,:,本AVP头之中是否出现Vendor-ID字段;,M:,本AVP是否属于必需AVP,就一个特定的Diameter命令而言,有一些AVP是必须出现的,例如Original-Host 和Original-Realm AVP在任何Diamet
10、er消息之中都是必须出现的,;,P:,本AVP的数据部分是否经过了加密;,AVP Length:,AVP,包含的八位组数量;,Vendor-ID:,可选,标识生成本AVP值的设备的供应商;,AVP,数据,Data:,记录具体的数据值,具体数据的类型是由AVP Code决定的。,AVP,数据类型,OctetString,:可变长字符串,Integer32,:,32bit,长的整数,Integer64,:,64bit,长的整数,Unsigned32,:,32bit,长的无符号整数,Unsigned64,:,64bit,长的无符号整数,Float32,:,32bit,长的浮点数,Float64,:,
11、64bit,长的浮点数,Grouped,:一组数据类型的组合,Address,:以,OctetString,为基础,前两个字节为,ddressType,,从第三个字节开始表示地址。,Time,:以,OctetString,为基础,表示从,1900,年,1,月,1,日,0,时起的秒数,到,2036,年,02,月,7,日,6,点,28,分,16,秒截止。,UTF8String,:使用,UTF-8,传输格式。可变长度需要标具体使用情况。,DiameterIdentity,:唯一表示,DCC,节点,用于重复连接和路由环路检测。,DCC,节点的,FQDN,。,Enumerated,:枚举类型。,AVP,
12、数据类型,Grouped,:一组数据类型的组合,AVP Length,(3 octets),AVP Code,(4 octets),V M P r r r r r,(*)(1 octet),Vendor-ID,(4 octets-opt),avp1,avp2,avp3,avp4,.,AVP Length,AVP Code,V M P r r r r r,Vendor-ID,data,AVP Length,AVP Code,V M P r r r r r,Vendor-ID,AVP Length,AVP Code,V M P,Vendor-ID,data,AVP Length,AVP Code,
13、V M P,Vendor-ID,data,第,1,章 协议概述,第,2,章 消息结构,第,3,章 常用命令,第,4,章 基本流程,第,5,章 码流解析,内容介绍,常用命令,命令名,命令代码,缩略语,说明,Credit-Control-Request,272,CCR,信用控制请求和响应,Credit-Control-Answer,272,CCA,Re-Auth-Request,258,RAR,重新鉴权,/,授权请求和响应,该命令可以由任何服务器发送给提供会话服务的接入设备,来请求对用户进行重新认证,/,授权。,Re-Auth-Answer,258,RAA,Capabilities-Exchang
14、e-Request,257,CER,能力交换请求消息和响应,Capabilities Exchange Answer,257,CEA,Device-Watchdog-Request,280,DWR,设备监控请求和响应(,心跳消息),用于进行链路异常检测,以降低消息被发送到无法响应的对端的可能性。,Device-Watchdog-Answer,280,DWA,Disconnect-Peer-Request,282,DPR,拆除对等端连接请求和响应,,将此消息发送至对等端,提示对方自己将关闭传输连接。,Disconnect-Peer-Anwser,282,DPA,Abort-Session-Req
15、uest,274,ASR,中断会话请求和响应,它由任何服务器向提供接入服务的接入设备发送,,,来请求中断指定的会话。,Abort-Session-Answer,274,ASA,DWR,和,DWA,设备监控请求,Device-Watchdog-Request(DWR),,命令码为,280,,命令标记,R,比特置位,当两个对等端之间没有流量交互时,发送至对等端。一旦检测到传输差错,则该消息不允许发送至备选对等端。,DWR,实际上就是握手请求。,Device-Watchdog-Request,:=,Origin-Host,Origin-Realm,Origin-State-Id,DWR,和,DWA,
16、设备监控应答消息,Device-Watchdog-Answer(DWA),,命令码为,280,,命令标记,R,比特位清除,回复,Device-Watchdog-Request,消息时发送。,DWA,实际上就是握手应答。,Device-Watchdog-Answer,:=,Result-Code,Origin-Host,Origin-Realm,Error-Message,*Failed-AVP,Original-State-Id,符号表示必选而且位置必须是在消息的开头,符号表示必选,,符号表示可选,,*,符号表示可重复的可选项。,CCR,和,CCA,信用控制请求,Credit-Control-
17、Request(CCR),属于应用协议,命令码为,272,,消息标志,R,设置来表示。,CCR,消息里面携带了用于计费需要的所有信息。,:=,Origin-Host,Origin-Realm,Destination-Realm,Auth-Application-Id,Service-Context-Id,CC-Request-Type,CC-Request-Number,Destination-Host,User-Name,Origin-State-Id,Event-Timestamp,*Subscription-Id,Service-Identifier,Termination-Cause,
18、*Route-Record,Requested-Action,Requested-Service-Unit,*Used-Service-Unit,Multiple-Services-Indicator,*Multiple-Services-Credit Control,CC-Correlation-Id,Service-Information,CCR,和,CCA,信用控制应答,Credit-Control-Answer(CCA,),属于应用协议,命令码为,272,,消息标志,R,清除来表示。,CCA,消息里面携带了用于用户信用控制的所有信息。,:=,Result-Code,Origin-Hos
19、t,Origin-Realm,Auth-Application-Id,CC-Request-Type,CC-Request-Number,User-Name,CC-Session-Failover,Origin-State-Id,Event-Timestamp,Granted-Service-Unit,Cost-Information,Final-Unit-Indication,Check-Balance-Result,Credit-Control-Failure-Handling,Validity-Time,*Trigger-Type,Direct-Debiting-Failure-Hand
20、ling,*Multiple-Services-Credit-Control,*Route-Record,*Failed-AVP,AoC-Information,第,1,章 协议概述,第,2,章 消息结构,第,3,章 常用命令,第,4,章 基本流程,第,5,章 码流解析,内容介绍,语音计费,增值业务计费,第,1,章 协议概述,第,2,章 消息结构,第,3,章 常用命令,第,4,章 基本流程,第,5,章 码流解析,内容介绍,CCR,消息码流,0,|,01,00 01 84,80,00 01 10,00 00 00 04,00 CA 97 E9,.,16|,00 CA 97 E9,00 00 01
21、 07,40 00 00 2E 73 6D 63 70 .smcp,32|31 3B 31 31 34 38 39 37 37 39 36 32 3B 30 30 30 1;1148977962;000,48|30 30 30 30 30 30 31 3B 30 30 30 30 30 30 30 30 0000001;00000000,64|30 31 00 00,00 00 01 08,40 00 00 0D 73 6D 63 70 01.smcp,80|31 00 00 00 00 00 01 28 40 00 00 13 77 77 77 2E 1.(.www.,96|61 62 63
22、 2E 63 6F 6D 00 00 00 01 25 40 00 00 0C .%.,112|6F 63 73 31 00 00 01 1B 40 00 00 16 77 77 77 2E ocs1.www.,128|68 75 61 77 65 69 2E 63 6F 6D 00 00 00 00 01 02 .,144|40 00 00 0C 00 00 00 04 00 00 01 CD 40 00 00 27 .,160|76 65 72 73 69 6F 6E 31 2E 64 65 62 69 74 40 63 version1.debitc,176|68 69 6E 61 74
23、 65 6C 65 63 6F 6D 2E 63 6F 6D 00 .,192|00 00 01 A0 40 00 00 0C 00 00 00 04 00 00 01 9F .,208|40 00 00 0C 00 00 00 00 00 00 00 37 40 00 00 0C .7.,224|C7 FF 65 2A 00 00 01 BB 40 00 00 28 00 00 01 C2 .e*.(.,240|40 00 00 0C 00 00 00 00 00 00 01 BC 40 00 00 13 .,256|30 35 33 31 32 38 35 36 30 30 30 00 0
24、0 00 01 1A 05312856000.,272|40 00 00 0D 73 6D 63 70 31 00 00 00 00 00 01 B4 .smcp1.,288|40 00 00 0C 00 00 00 00 00 00 01 B5 40 00 00 34 .4,304|00 00 01 9D 40 00 00 2C 00 00 01 BD 40 00 00 24 .,.$,320|00 00 01 BF 40 00 00 10 00 00 00 00 00 00 03 E8 .,336|00 00 01 AD 40 00 00 0C FF FF FF FF 00 00 03 6
25、9 .i,352|80 00 00 28 00 00 28 AF 00 00 50 DC 80 00 00 1C .(.(.P.,368|00 01 3C 68 00 00 50 DD 80 00 00 10 00 01 3C 68 .h.P.10000000 表request消息,command code 272 表CCR消息,Application-ID 4 表DCCA=DCC application,Hop-by-Hop Identifier 00 CA 97 E9,End-to-End Identifier 00 CA 97 E9,0,|,01,00 01 84,80,00 01 10
26、,00 00 00 04,00 CA 97 E9,.,16|,00 CA 97 E9,AVP,解析,AVP Code:,00 00 01 07,,即,Session-Id 263,AVP Flags,:,40(0100 0000),V,:,0,不带,Vendor-ID,M:,1,必填,AVP,P:,0,,未加密,AVP Length:,00 00 2E,(46,),Data:,AVP,数据部分是,4,的倍数,不够的以,0,填充,0,|,01,00 01 84,80,00 01 10,00 00 00 04,00 CA 97 E9,.,16|,00 CA 97 E9,00 00 01 07,40,00 00 2E,73 6D 63 70 .smcp,32|31 3B 31 31 34 38 39 37 37 39 36 32 3B 30 30 30 1;1148977962;000,48|30 30 30 30 30 30 31 3B 30 30 30 30 30 30 30 30 0000001;00000000,64|30 31,00 00,Radius,