предисловие
-
Раньше я был несерьезным, когда изучал сетевое планирование, и трехстороннее рукопожатие TCP прошло в оцепенении. Недавно перепроверяю пробелы в знаниях по сетевому планированию. Приходится есть по одному кусочку за раз. , поэтому я не стал писать много вопросов, связанных с этим блогом. Среди них эта статья представляет собой лишь беглый взгляд на леопарда, и я напишу ее подробно позже.
-
Некоторые примечания в примечаниях были отсортированы после личного понимания, и могут быть отклонения.Читателям также предлагается помочь указать, спасибо.
отказ от ответственности
- Для удобства некоторые изображения, используемые в этой статье, взяты из Интернета. Если есть какие-либо нарушения, пожалуйста, свяжитесь с блоггером, чтобы удалить их. Спасибо другим блоггерам за их фотографии.
- Эта заметка используется для записи моего резюме этих знаний. Для облегчения будущей работы и учебы.
- Если есть какие-либо нарушения, пожалуйста, сообщите об этом и немедленно удалите.
[Что это такое? 】
- Трехстороннее рукопожатие TCP: относится к процессу установления TCP-соединения между клиентом и сервером.
【Почему? 】
-
Убедитесь, что отправка и получение вами и другой стороной являются нормальными, что обеспечивает надежную связь между двумя сторонами.
-
Когда клиент и сервер устанавливают TCP-соединение, обе взаимодействующие стороны должны получать информацию друг от друга . Чтобы определить, что обе стороны являются объектами, необходимо установить связь друг с другом .
- Информация, которую должны знать обе стороны, включает в себя
- Начальный порядковый номер передачи сообщения другой стороны .
- Размер буфера данных, отправленных другой стороной .
- Максимальная длина сегмента MSS , который может быть получен .
- Поддерживаемые параметры TCP
- Информация, которую должны знать обе стороны, включает в себя
【Как это сделать? 】
первый
-
Клиент отправляет пакет SYN (seq=j) на сервер и переходит в состояние SYN_SENT , ожидая подтверждения от сервера.
- SYN : синхронизировать порядковые номера.
- seq : указывает серийный номер этого TCP-пакета.
- SYN_SENT : указывает запрос на соединение.
- SYN : синхронизировать порядковые номера.
-
[Доказательство] Клиент имеет возможность отправлять
второй раз
-
Когда сервер получает пакет Syn, он должен подтвердить SYN клиента (ack=j+1) и в то же время он также отправляет пакет SYN (seq=k), то есть пакет SYN+ ACK . на этот раз сервер переходит в состояние SYN_RECV .
- ACK : указывает номер подтверждения этого пакета , который доказывает, что отправленные данные были подтверждены для правильного получения.
- SYN_RECV : указывает, что сервер временно не может предоставлять обычные услуги TCP. Используйте это, чтобы отклонить другие запросы.
-
[Доказательство] Сервер имеет возможность отправлять, а клиент имеет возможность получать.
в третий раз
-
Клиент получает пакет SYN+ACK от сервера и отправляет пакет подтверждения ACK (ack=k+1) на сервер.После отправки пакета клиент и сервер переходят в состояние ESTABLISHED и завершают трехстороннее рукопожатие .
- ESTABLISHED : указывает, что TCP-соединение установлено успешно.
-
[Доказательство] Сервер также имеет возможность получать