查看源码 标准符合性

下表总结了 diameter 应用程序对 RFC 6733 的符合性。由于 diameter 应用程序本身不是一个 Diameter 节点,因此在许多情况下,符合性严格是用户的责任,diameter 提供用户符合规范的手段,而不是自身符合规范。

“符合性”列指出 C(符合),如果实现了所需的功能;PC(部分符合),如果存在限制;NC(不符合),如果未实现该功能;或者如果文本仅是信息性的或仅对用户的实现提出了要求,则用破折号表示。

大写的 Diameter 指的是协议,小写的 diameter 指的是 Erlang 应用程序。

RFC 6733 - Diameter 基础协议

章节标题符合性备注
1简介
1.1Diameter 协议
1.1.1文档集的描述
1.1.2本文档中使用的约定
1.1.3与 RFC 3588 的变更可以配置一个 3588 字典以获得 3588 的语义,其中与 6733 不同。
1.2术语
1.3可扩展性方法diameter_dict(4) 中记录的字典接口提供了可扩展性,允许用户定义新的 AVP、命令和应用程序。为 RFC 6733 通用消息、基本计费和中继应用程序以及 RFC 7683 Diameter 过载指示传递提供了现成的字典。
1.3.1定义新的 AVP 值
1.3.2创建新的 AVP可以使用字典接口定义新的 AVP。支持 RFC 数据格式和扩展。
1.3.3创建新的命令可以使用字典接口定义新的命令。
1.3.4创建新的 Diameter 应用程序可以使用字典接口定义新的应用程序。
2协议概述会话状态由用户负责。 Diameter 节点的角色由用户的实现决定。
2.1传输PC端口由用户配置:diameter 不做任何限制。 diameter_transport 中记录的传输接口允许用户实现自己的方法。为 TCP、TCP/TLS 和 SCTP 提供了现成的支持,但不包括 DTLS/SCTP。可以建立与同一对等方的多个连接。不解释 ICMP 消息。
2.1.1SCTP 指南Cdiameter_sctp 中可配置无序发送。没有对 DPR/DPA 的特殊处理:因为关心挂起答案的用户应该在启动 DPR 之前等待它们。可以使用 gen_sctp sctp_default_send_param 选项配置 PPID。
2.2保护 Diameter 消息的安全PCdiameter_sctp 不支持 DTLS。另请参阅 2.1。
2.3Diameter 应用程序符合性
2.4应用程序标识符C用户使用在功能交换时发送的标识符以及定义应用程序消息的相应字典来配置 diameter。
2.5连接与会话C通过配置传输来实现连接。会话由用户负责。
2.6对等表PC路由由用户在 diameter_app 中记录的回调中实现。文档形式的对等表不会向用户公开。
2.7路由表PC请参阅 2.6。文档形式的路由表不会向用户公开。
2.8Diameter 代理的角色C大多数特定于角色的行为由用户实现。节点如何在功能交换时通告自身由用户配置决定。
2.8.1中继代理C
2.8.2代理代理C
2.8.3重定向代理C
2.8.4转换代理C
2.9Diameter 路径授权授权是用户的责任。
3Diameter 头部C当发送传出请求时,diameter 会设置逐跳和端到端标识符。
3.1命令代码C
3.2命令代码格式规范C命令在字典文件中定义为 CCF 规范。
3.3Diameter 命令命名约定
4Diameter AVPC当编码传出消息时,diameter 会添加任何必需的填充。
4.1AVP 头部C
4.1.1可选头部元素C
4.2基本 AVP 数据格式C
4.3派生的 AVP 数据格式C字典接口支持任意派生的数据格式。
4.3.1常见的派生 AVP 数据格式C请注意,RFC 6733 更改了 RFC3588 中指定的 DiameterURI 传输/端口默认值。依赖默认值可能会导致互操作性问题。
4.4分组 AVP 值C忽略不设置 M 的分组 AVP 的组件 AVP 上的 M 位:此类 AVP 在解码时不会被视为错误。分组 AVP 在字典文件中定义为 CCF 规范。
4.4.1具有分组数据类型的 AVP 示例
4.5Diameter 基础协议 AVPC基础 AVP 在 diameter 提供的公共字典中定义。RFC 3588 和 RFC 6733 都有公共字典,因为后者对语法和语义都进行了更改。
5Diameter 对等方
5.1对等连接PC启动连接时,不需要对等方的 DiameterIdentity:该标识在功能交换时接收,如果该标识令人反感,则此时可以拒绝连接。建立的连接数取决于用户的配置。每个对等方可以建立多个连接。
5.2Diameter 对等方发现NC未实现任何形式的对等方发现。如果需要,用户可以独立于 diameter 实现此功能。
5.3功能交换C所有支持的应用程序都在 CEA 中发送。用户可以在配置的回调中拒绝传入的 CER 或 CEA。支持在连接建立时和通过带内安全 AVP 协商的传输安全。
5.3.1功能交换请求Cdiameter 发送和接收 CER。
5.3.2功能交换应答Cdiameter 发送和接收 CEA。
5.3.3Vendor-Id AVPC
5.3.4Firmware-Revision AVPC
5.3.5Host-IP-Address AVPC
5.3.6Supported-Vendor-Id AVPC
5.3.7Product-Name AVPC
5.4断开对等连接CDPA 不会回复错误:想要避免竞争的对等方可以在发送 DPR 之前等待挂起的答案。
5.4.1断开对等请求Cdiameter 会发送 DPR,以响应需要断开连接的配置更改。用户也可以发送 DPR。
5.4.2断开对等应答Cdiameter 回复 DPR。
5.4.3Disconnect-Cause AVPC
5.5传输故障检测
5.5.1设备监视请求Cdiameter 发送和接收 DWR。回调通知用户进入和退出 OKAY 状态的转换。
5.5.2设备监视应答Cdiameter 发送和接收 DWA。
5.5.3传输故障算法C
5.5.4故障切换和故障恢复过程C
5.6对等状态机PC选举过程按照 5.6.4 中的描述进行了修改。
5.6.1传入连接C
5.6.2事件
5.6.3操作
5.6.4选举过程PC如文档所述,选举假设在启动连接时了解对等方的 DiameterIdentity,而 diameter 不需要这样做。如果配置允许每个对等方建立多个连接或没有现有连接,则将接受连接。请注意,选举过程仅在不允许每个对等方建立多个连接时适用。
6Diameter 消息处理
6.1Diameter 请求路由概述路由由用户执行。来自 diameter 的回调提供可用合适的对等连接列表。
6.1.1发起请求C请求由用户构造;diameter 根据相关字典中定义设置头部字段。
6.1.2发送请求C
6.1.3接收请求C当请求回调的返回值要求转发请求时,diameter 会检测循环。在其他情况下,循环检测由用户负责。
6.1.4处理本地请求C用户在来自 diameter 的请求回调中决定是否在本地处理请求。
6.1.5请求转发PC请参阅 2.6。
6.1.6请求路由PC请参阅 2.7。
6.1.7预测性循环避免C请参阅 6.1.3。
6.1.8重定向请求PC请参阅 2.6。
6.1.9中继和代理请求C当请求回调的返回值要求转发请求时,diameter 会附加 Route-Record AVP。在其他情况下,附加 AVP 由用户负责。
6.2Diameter 应答处理C应答消息由用户构造,但某些协议错误的情况除外,在这种情况下,将遵循这些过程。
6.2.1处理接收到的应答C丢弃具有未知逐跳标识符的应答。
6.2.2中继和代理应答修改应答由来自 diameter 的回调中的用户负责。
6.3Origin-Host AVPC编码消息中 AVP 的顺序由相关消息的 CCF 确定。RFC 中定义的 AVP 在 diameter 提供的字典中定义。它们在应用程序消息中的正确使用由用户负责。
6.4Origin-Realm AVPC
6.5Destination-Host AVPC
6.6Destination-Realm AVPC
6.7路由 AVP
6.7.1Route-Record AVPC
6.7.2Proxy-Info AVPC
6.7.3Proxy-Host AVPC
6.7.4Proxy-State AVPC
6.8Auth-Application-Id AVPC
6.9Acct-Application-Id AVPC
6.10Inband-Security-Id AVPC请参阅 2.1。
6.11Vendor-Specific-Application-Id AVPC请注意,此 AVP 的 CCF 与 RFC 3588 中不同。
6.12Redirect-Host AVPC
6.13Redirect-Host-Usage AVPC
6.14Redirect-Max-Cache-Time AVPC
7错误处理C在大多数情况下,应答由用户制定。如果应答设置了 E 位,则可以在 diameter 自身无法处理请求的情况下发送这些应答。
7.1Result-Code AVPC
7.1.1信息性C
7.1.2成功C
7.1.3协议错误C如果配置允许,可以在由 diameter 制定的应答中发送结果代码 3001、3002、3005 和 3007。
7.1.4瞬时故障C如果存在与相关对等方的现有连接,并且配置不允许超过一个,则在 CEA 中发送结果代码 4003。
7.1.5永久故障C消息接收会检测到 5001、5004、5005、5008、5009、5010、5011、5014、5015 和 5017 错误。它在第 3 节和 4.1 节的警告中忽略了 5013 错误。请注意,RFC 3588 不允许在设置 E 位的应答中使用 5xxx 结果代码,而 RFC 6733 允许这样做。这是一个潜在的互操作性问题,因为 Diameter 协议版本没有更改。
7.2错误位C
7.3Error-Message AVPC用户可以根据需要包含此 AVP。
7.4Error-Reporting-Host AVPC用户可以根据需要包含此 AVP。
7.5Failed-AVP AVPC用户构造特定于应用程序的消息,但是 diameter 在消息回调中提供失败的 AVP。失败的组件 AVP 分组在相关的分组 AVP 中。
7.6Experimental-Result AVPC
7.7实验结果代码 AVPC
8Diameter 用户会话授权和计费 AVP 在提供的字典中定义。其正确使用由用户负责。
8.1授权会话状态机授权由用户负责:Diameter 不实现此状态机。
8.2计费会话状态机计费由用户负责:Diameter 不实现此状态机。
8.3服务器发起的重新授权
8.3.1重新授权请求C
8.3.2重新授权应答C
8.4会话终止会话相关消息和 AVP 在提供的字典中定义。其正确使用由用户负责。
8.4.1会话终止请求C
8.4.2会话终止应答C
8.5中止会话会话相关消息和 AVP 在提供的字典中定义。其正确使用由用户负责。
8.5.1中止会话请求C
8.5.2中止会话应答C
8.6从 Origin-State-Id 推断会话终止会话相关消息和 AVP 在提供的字典中定义。其正确使用由用户负责。
8.7Auth-Request-Type AVPC
8.8Session-Id AVPC
8.9Authorization-Lifetime AVPC
8.10Auth-Grace-Period AVPC
8.11Auth-Session-State AVPC
8.12Re-Auth-Request-Type AVPC
8.13Session-Timeout AVPC
8.14User-Name AVPC
8.15Termination-Cause AVPC
8.16Origin-State-Id AVPC
8.17Session-Binding AVPC
8.18Session-Server-Failover AVPC
8.19Multi-Round-Time-Out AVPC
8.20Class AVPC
8.21Event-Timestamp AVPC
9计费计费相关消息和 AVP 在提供的字典中定义。其正确使用由用户负责。
9.1服务器定向模型
9.2协议消息
9.3计费应用程序扩展和要求
9.4故障恢复
9.5计费记录
9.6计费记录的关联
9.7计费命令代码
9.7.1计费请求C
9.7.2计费应答C
9.8计费 AVP
9.8.1Accounting-Record-Type AVPC
9.8.2Acct-Interim-Interval AVPC
9.8.3Accounting-Record-Number AVPC
9.8.4Acct-Session-Id AVPC
9.8.5Acct-Multi-Session-Id AVPC
9.8.6Accounting-Sub-Session-Id AVPC
9.8.7Accounting-Realtime-Required AVPC
10AVP 出现表
10.1基本协议命令 AVP 表
10.2计费 AVP 表
11IANA 注意事项
11.1AVP 头部
11.1.1AVP 代码
11.1.2AVP 标志
11.2Diameter 头部
11.2.1命令代码
11.2.2命令标志
11.3AVP 值
11.3.1实验结果代码 AVP
11.3.2Result-Code AVP 值
11.3.3Accounting-Record-Type AVP 值
11.3.4Termination-Cause AVP 值
11.3.5Redirect-Host-Usage AVP 值
11.3.6Session-Server-Failover AVP 值
11.3.7Session-Binding AVP 值
11.3.8Disconnect-Cause AVP 值
11.3.9Auth-Request-Type AVP 值
11.3.10Auth-Session-State AVP 值
11.3.11Re-Auth-Request-Type AVP 值
11.3.12Accounting-Realtime-Required AVP 值
11.3.13Inband-Security-Id AVP (代码 299)
11.4_diameters 服务名称和端口号注册
11.5SCTP 有效负载协议标识符
11.6S-NAPTR 参数
12Diameter 协议相关可配置参数
13安全注意事项PC请参阅 2.1。IPsec 对 diameter 是透明的。
13.1TLS/TCP 和 DTLS/SCTP 的使用PC请参阅 2.1。
13.2对等考虑事项
13.3AVP 考虑事项
14参考文献
14.1规范性参考文献
14.2参考性参考文献

表:RFC 6733 合规性