Ошибка подключения SCTP 111 ECONNREFUSED - активное отклонение другой стороной? - PullRequest
0 голосов
/ 27 февраля 2020

После int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); мой connect(sock, serv_addr, serv_addr_size) вызов иногда завершается с ошибкой errno==111 (ECONNREFUSED). Могу ли я из этого ответа сделать вывод, что другая сторона (т.е. serv_addr->sin_addr.s_addr), по крайней мере, понимает SCTP, поэтому повторная попытка в порядке? Я ожидаю, что сетевой стек, который не знает SCTP, просто не отправит никакого ответа, что приведет к ошибке ETIMEDOUT. Но вместо этого он может сгенерировать ICMP Protocol unreachable error, не приведет ли это к ошибке ECONNREFUSED?

Мой клиент - единственная причина, по которой у другой стороны есть сервер SCTP, и если сервер SCTP на другая сторона отсутствует, то, вероятно, также отсутствует стек SCTP. Я знаю, что сервер отвечает на пинг (ICMP) и S SH (TCP).

...