Как работает тайм-аут подключения к сокету?

Насколько я понимаю, время ожидания соединения сокета контролируется транспортом TCP, который использует время ожидания повторной передачи (RTO). если подтверждение не возвращается до истечения таймера, запрос на соединение (синхронизация) будет передан повторно, а RTO будет удвоено.

Итак, какова функциональность тайм-аута соединения в сокете Java, когда мы вызываем Socket.connect(endpoint, connectTimeout)


person Alfred    schedule 12.04.2011    source источник


Ответы (1)


Итак, какова функциональность тайм-аута соединения в сокете Java, когда мы вызываем Socket.connect(endpoint, connectTimeout)

Он устанавливает общее время ожидания для установления соединения; то есть он говорит, как долго приложение готово ждать, пока все тайм-ауты на уровне пакетов, повторные передачи и т. д. будут успешными (или нет), прежде чем сдаться.

person Stephen C    schedule 12.04.2011
comment
Это также то, что я предполагаю, но у вас есть ссылка на это? Кроме того, если мы явно не укажем тайм-аут при попытке подключения, через сколько повторных попыток tcp откажется от установки подключения? - person Alfred; 12.04.2011
comment
Это указано в Socket.connect(...) javadoc. Количество повторных попыток и интервал между ними определяются реализацией TCP/IP в операционной системе, а Java не позволяет ни узнать, что это за значения, ни изменить их. (Не нужно.) - person Stephen C; 12.04.2011