Как вы можете получить информацию (RTO-, MTU- и SRTT-) из сообщения SCTP?

Как вы можете получить дополнительную информацию (например, RTO, MTU и SRTT) из struct sctp_rcvinfo полученного сообщения SCTP?

Каждый раз, когда 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 заполняется этой дополнительной информацией (я полагаю).

Вы можете найти пример клиента здесь.

Но мне нужно преобразовать это в такие данные, как

struct sctp_paddrinfo moreInfo; moreInfo.spinfo_rto .. и так далее.

Как вы можете этого добиться?


person user1511417    schedule 15.11.2017    source источник


Ответы (1)


RTO, MTU и SRTT не являются частью сообщений SCTP. Конечные точки не обмениваются этой информацией. Каждая сторона рассчитывает свои собственные SRTT и RTO и имеет собственный MTU.

С вашей конечной точки вы не можете получить информацию о SRTT, RTO и MTU другой стороны.

Значения SRTT, RTO и MTU вашей стороны для однорангового узла можно найти в структура sctp_info.

Вы можете получить эту структуру с помощью следующего вызова API: int sctp_get_sctp_info(struct sock *sk, struct sctp_association *asoc, struct sctp_info *info); См. определение sctp_get_sctp_info по адресу sctp.h

person Alexander Zinovyev    schedule 15.11.2017