Обмен технологиями

[Компьютерная сеть] Углубленное понимание трехстороннего рукопожатия и четырехсторонней волны протокола TCP 1. Предисловие

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Предисловие

В компьютерных сетях протокол TCP представляет собой ориентированный на соединение надежный протокол связи транспортного уровня на основе байтовых потоков. Его основной особенностью является обеспечение надежной передачи данных. Эта надежность в основном отражается на процессе установления соединения (трехстороннее рукопожатие) и разъединения (четырехсторонняя волна). В этом блоге мы подробно рассмотрим оба процесса.


1. Описание

2.1 Диаграмма

Вставьте сюда описание изображения

2.2 Трехстороннее рукопожатие

Трехстороннее рукопожатие — это процесс установления соединения по протоколу TCP. Конкретные шаги заключаются в следующем:

  • Первое рукопожатие: клиент отправляет серверу сегмент SYN для запроса установления соединения. Сообщение будет содержать начальный порядковый номер клиента X.

  • Второе рукопожатие: после получения сегмента SYN сервер отправит клиенту сегмент SYN+ACK, чтобы указать, что он согласен установить соединение. Этот сегмент сообщения будет содержать начальный порядковый номер сервера Y и номер подтверждения X+1 для начального порядкового номера клиента.

  • Третье рукопожатие: после того, как клиент получит сегмент SYN+ACK, он отправит сегмент ACK на сервер для подтверждения исходного порядкового номера сервера. Номер подтверждения в этом сегменте — Y+1.

2.3 Помашите четыре раза

Четыре раза помахать рукой — это процесс отключения по протоколу TCP. Конкретные шаги заключаются в следующем:

  • Первая волна: когда клиент решает закрыть соединение, он отправляет на сервер сегмент сообщения FIN, и сообщение будет содержать текущий порядковый номер. Это означает, что у клиента больше нет данных для отправки.

  • Вторая волна: после получения сегмента FIN сервер отправит клиенту сегмент ACK, чтобы подтвердить получение сегмента FIN. Номер подтверждения в этом сегменте — это порядковый номер клиента + 1.

  • Третья волна: если у сервера нет данных для отправки, он отправит клиенту сегмент сообщения FIN, и сообщение будет содержать текущий порядковый номер.

  • Четвертая волна: после получения сегмента FIN клиент отправит на сервер сегмент ACK, чтобы подтвердить получение сегмента FIN. Номер подтверждения в этом сегменте — это порядковый номер сервера + 1. Затем клиент будет ждать в течение определенного периода времени (два максимальных срока существования сегмента), чтобы убедиться, что сервер получил сегмент ACK, прежде чем фактически закрыть соединение.


2. Резюме

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