非常教程

Erlang 20参考手册

直径 | diameter

diameter_sctp

模块

diameter_sctp

模块摘要

Diameter传输通过SCTP。

描述

该模块使用SCTP实现直径传输gen_sctp(3)。它可以被指定为一个transport_module选项的值diameter:add_transport/2并且实现记录在其中的行为diameter_transport(3)

出口

start({Type, Ref}, Svc, [Opt]) -> {ok, Pid, [LAddr]} | {error, Reason}

类型

启动功能需要diameter_transport(3)

选项raddrrport指定连接传输的远程地址和端口,并且对于监听传输无效:前者是必需的,而后者默认为3868(如果未指定)。raddr可以指定多个选项,在这种情况下,所考虑的连接传输将依次尝试每个选项直到建立关联。

选项accept指定监听传输的远程地址,对于连接传输无效。如果指定,则与指定地址不匹配的远程地址会导致关联中止。accept可以指定多个选项。Match不作为地址解析的字符串值被解释为正则表达式。

选项unordered指定是否使用无序传送,整数N等于N =< OS,在OS有关的协会上协商的出站流的数量是多少。无论配置如何,发送都是在流0上进行排序,直到接收到第二个传入消息,以确保对等方先于其他任何接收功能交换消息。默认为false

选项packet决定如何/如果传入消息打包到diameter_packet记录中。如果false接收到的消息是二进制()。如果true接着作为bin字段中的二进制()消息和字段中的{stream, Id}元组的记录transport_data,其中Id接收消息的入站流的标识符在哪里。如果raw那么作为记录在该transport_data字段中接收到的辅助sctp_sndrcvinfo记录。默认为true

选项message_cbsender语义与那些文档中的相同diameter_tcp(3),但消息参数recvpacket选项所指示的回调相同。

出口diameter_packet记录字段中的{outstream, Id}元组transport_data设置发送消息的出站流,以协商的出站流数为模。任何其他值都会导致连续的这种发送循环通过所有出站流。

其余选项是任何所接受gen_sctp:open/1,与选项之外modebinarylistactivesctp_events。需要注意的是选择ipport分别指定本地地址和端口。

ip可以为多宿主对等设备指定多个选项。如果没有指定随后的值Host-IP-Addressdiameter_service使用记录。port对于监听传输,选项默认为3868,对于连接传输,选项默认为0。

警告

小的接收缓冲区可能导致对等方不得不重新发送传入的消息:设置inet(3)选项recbuf以增加缓冲区大小。

一个小的发送缓冲区可能导致传出消息被丢弃:设置inet(3)期权sndbuf若要增加缓冲区大小,请执行以下操作。

另见

diameter(3),,,diameter_transport(3),,,gen_sctp(3),,,inet(3)

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1