查看源码 简介

diameter 应用程序是 RFC 6733 定义的 Diameter 协议的实现。它通过字典接口支持任意的 Diameter 应用,该接口允许定义消息和 AVP,并将其作为配置输入到 diameter 中。它支持 RFC 中定义的所有角色:客户端、服务器和代理。本章简要概述了该应用程序。

Diameter 节点通过配置一个服务和一个或多个传输来实现,使用接口模块 diameter。服务配置定义了节点要支持的 Diameter 应用程序,通常还定义了在建立传输连接时应发送给远程对等体的能力。传输在服务上配置,并通过 diameter 定义并由传输模块实现的传输接口提供特定于协议的发送/接收功能。diameter 应用程序提供两个传输模块:diameter_tcpdiameter_sctp,分别用于通过 TCP(使用 gen_tcp)和 SCTP(使用 gen_sctp)进行传输。其他传输可以由任何实现 diameter 的传输接口的模块提供。

虽然一个服务通常实现一个单独的 Diameter 节点(由 Origin-Host AVP 标识),但传输本身可以与 capabilities AVP 关联,因此单个服务可以用于实现多个 Diameter 节点。

在服务上定义的每个 Diameter 应用程序都配置有一个回调模块,该模块实现了 应用程序接口,diameter 通过该接口传递远程对等体的连通性、为出站请求请求对等体选择,并传递传入的 Diameter 请求和应答消息的接收。使用 diameter 的应用程序实现这些应用程序回调模块,以提供它所实现的 Diameter 节点的功能。

每个 Diameter 应用程序还配置有一个字典模块,该模块为属于该应用程序的出站/入站 Diameter 消息提供编码/解码功能。字典模块是使用 diameterc 工具从 字典文件 生成的。RFC 6733 Diameter 公共消息、基本计费和中继应用程序的字典随 diameter 应用程序一起提供。