Назад | Перейти на главную страницу

Тайм-аут SSL Connect во время рукопожатия (повторная передача клиентского обмена)

У нас есть клиент Java LDAP, устанавливающий SSL-соединение с AD. Иногда соединение зависает с повторной передачей клиента и сервера Обмен ключами клиентов и ACK пакеты непрерывно, как показано ниже, и в конечном итоге время ожидания истекает примерно через 5 минут. Любое возможное объяснение и решение этого поведения.

client ------ Client Key Exchange ----------------------> Server 
client ------ Client Key Exchange(Re-transmission)------> Server 
client <----- ACK --------------------------------------- Server   
client ------ Client Key Exchange(Re-transmission)------> Server 
client <------ Dup ACK --------------------------------- Server 
client ------ Client Key Exchange(Re-transmission)------> Server 
client <------ Dup ACK --------------------------------- Server

WireShark ScreenShot: http://img59.imageshack.us/img59/6431/p63e.png

Итак, предполагая, что вы правы, ACK находится на уровне TCP:

Если клиенту отправляется TCP ACK, но он продолжает повторно отправлять контент, который был ACK-ed, то из этого следует, что сервер получил и зарегистрировал контент, но клиент не получил и не зарегистрировал ACK.

Где вы собираете данные на бирже? На клиенте, сервере или между ними. Вероятно, вам следует собирать с обоих концов и как можно ближе к концам, чтобы вы могли сравнить их, чтобы убедиться, что проблема в сети (что кажется вероятным).

Основываясь на том, что вы нам сказали, в том числе на том, что ACK не проходят в течение длительного периода, маловероятно, что это просто потеря пакетов. Я бы очень внимательно посмотрел на конфигурацию любых задействованных туннелей SSL или межсетевых экранов.

Можете ли вы собирать и делиться выводом tcpdump с каждого конца соединения?