Назад к вопросам

Ответ от нейросети

sobes.tech AI

TCP обеспечивает надёжную, ориентированную на соединение доставку данных в IP-сетях.

Ключевые стадии и механизмы:

  1. Установка соединения (Three-way Handshake):

    • Клиент отправляет SYN-пакет с предлагаемым начальным порядковым номером (ISN).
    • Сервер отвечает SYN-ACK-пакетом, подтверждая получение SYN и отправляя свой ISN.
    • Клиент отправляет ACK-пакет, подтверждая получение SYN-ACK.
  2. Передача данных:

    • Данные разбиваются на сегменты.
    • Каждый сегмент имеет заголовок с порядковым номером и контрольной суммой.
    • Получатель отправляет подтверждение (ACK) о получении сегмента с номером следующего ожидаемого сегмента.
  3. Контроль потока (Flow Control):

    • Получатель сообщает отправителю о размере свободного буфера (размер окна).
    • Отправитель не посылает больше данных, чем указано в окне получателя. Предотвращает переполнение буфера получателя.
  4. Контроль ошибок (Error Control):

    • Используются контрольные суммы для проверки целостности сегментов.
    • Если сегмент потерян или повреждён, получатель не отправляет ACK для этого сегмента. Отправитель, не получив своевременного ACK, повторно передаёт сегмент (таймаут).
  5. Контроль перегрузки (Congestion Control):

    • Механизмы для предотвращения перегрузки сети (например, Slow Start, Congestion Avoidance, Fast Retransmit, Fast Recovery).
    • Размер окна отправки динамически изменяется в зависимости от условий сети (потери пакетов, RTT).
  6. Завершение соединения (Four-way Handshake):

    • Одна сторона отправляет FIN-пакет, указывая, что больше не будет отправлять данные.
    • Другая сторона подтверждает FIN (ACK) и может продолжать передавать свои данные.
    • Когда другая сторона также готова, она отправляет свой FIN-пакет.
    • Первая сторона подтверждает FIN второй стороны (ACK).

Отличия от UDP:

Характеристика TCP UDP
Ориентация С установлением соединения Без установления соединения
Надёжность Высокая (гарантия доставки, порядок) Низкая (без гарантий)
Контроль ошибок Да Нет
Контроль потока Да Нет
Контроль перегрузки Да Нет
Скорость Ниже Выше
Размер заголовка Больше (20-60 байт) Меньше (8 байт)