Насколько я понимаю, время ожидания соединения сокета контролируется транспортом TCP, который использует время ожидания повторной передачи (RTO). если подтверждение не возвращается до истечения таймера, запрос на соединение (синхронизация) будет передан повторно, а RTO будет удвоено.
Итак, какова функциональность тайм-аута соединения в сокете Java, когда мы вызываем Socket.connect(endpoint, connectTimeout)