如何从 SCTP 消息中检索(RTO-、MTU- 和 SRTT-)信息?
How can you retrieve (RTO-, MTU- and SRTT-) information from a SCTP message?
如何从收到的 SCTP 消息的 struct sctp_rcvinfo
中检索更多信息(如 RTO、MTU 和 SRTT)?
每次通过回调函数接收和处理 SCTP 消息时
static int
receive_cb(struct socket *sock, union sctp_sockstore addr, void *data,
size_t datalen, struct sctp_rcvinfo rcv, int flags, void *ulp_info)
{...
struct sctp_rcvinfo
填充了这些附加信息(我想)。
您可以找到 example-client here.
但我需要将转换为
这样的数据
struct sctp_paddrinfo moreInfo; moreInfo.spinfo_rto
..等等。
你怎样才能做到这一点?
RTO、MTU 和 SRTT 不是 SCTP 消息的一部分。端点不交换此信息。每一方计算自己的 SRTT 和 RTO,并有自己的 MTU。
您无法从您的端点获取另一方拥有的 SRTT、RTO 和 MTU 的信息。
你方的 SRTT、RTO 和 MTU 值可以在 sctp_info structure 中找到。
您可以通过以下 API 调用获得此结构:
int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc,
struct sctp_info *info);
请参阅 sctp.h
中 sctp_get_sctp_info 的定义
如何从收到的 SCTP 消息的 struct sctp_rcvinfo
中检索更多信息(如 RTO、MTU 和 SRTT)?
每次通过回调函数接收和处理 SCTP 消息时
static int
receive_cb(struct socket *sock, union sctp_sockstore addr, void *data,
size_t datalen, struct sctp_rcvinfo rcv, int flags, void *ulp_info)
{...
struct sctp_rcvinfo
填充了这些附加信息(我想)。
您可以找到 example-client here.
但我需要将转换为
这样的数据struct sctp_paddrinfo moreInfo; moreInfo.spinfo_rto
..等等。
你怎样才能做到这一点?
RTO、MTU 和 SRTT 不是 SCTP 消息的一部分。端点不交换此信息。每一方计算自己的 SRTT 和 RTO,并有自己的 MTU。
您无法从您的端点获取另一方拥有的 SRTT、RTO 和 MTU 的信息。
你方的 SRTT、RTO 和 MTU 值可以在 sctp_info structure 中找到。
您可以通过以下 API 调用获得此结构:
int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc,
struct sctp_info *info);
请参阅 sctp.h