如何从 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 的定义