процедуры открытия и закрытия TCP-соединения - PullRequest
2 голосов
/ 19 мая 2011

Может кто-нибудь, пожалуйста, дайте мне знать, что происходит при закрытии TCP-соединения.

предположим, что A (клиент) и B (сервер) устанавливают TCP-соединение

A создает TCP-соединение с B

  1. При открытии соединения, что произойдет, если SYN-пакет от A попадет в B, даже если вы выполните некоторые повторные передачи.

  2. Что произойдет, если SYN + ACK выпадет в сети, если B отправит пакет A.

  3. Что происходит, если ACK падает в сети от A до B.

A закрывает соединение с B .

  1. При закрытии соединения, что происходит, если пакет FIN от A падает до достижения B, даже если вы делаете некоторые повторные передачи.
  2. Что происходит, если FIN + ACK падает в сети, если B отправляет пакет в A.
  3. Что происходит, если ACK падает в сети от A до B.

1 Ответ

3 голосов
/ 31 мая 2011

Первоначальные пакеты SYN повторно передаются с экспоненциальным откатом, обычно начиная с 2 секунд.Т.е. 2 с, 4 с, 8 с, 16 с и т. Д.

То же самое относится к повторно переданным пакетам SYN-ACK (хотя есть некоторые странные реализации, о которых вы действительно не хотите знать).

ACK никогда не передается вслепую.Если другая сторона повторно передает пакет, то будет отправлен другой ACK.

Вышесказанное верно и для FIN, просто замените FIN, где вы видите SYN.Конечно, начальное время повторной передачи не равно 2 с, но все, что было рассчитано как время прохождения туда-обратно в течение сеанса.

Пакет SYN / FIN обрабатывается так же, как данныепакет с учетом повторных передач и надежности.Эти флаги даже занимают порядковый номер, чтобы их можно было правильно отслеживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...