1

Я знаю, что TCP использует проверку для обеспечения точности данных при отправке на сервер. Мой вопрос: он проверяет все сразу или как приходит?


Быстрый пример:

Допустим, я загружаю страницу суперпользователя здесь. Для простоты он может уместиться в 5 пакетов (практически невозможно уместить любую современную веб-страницу в таком небольшом количестве данных.):

Все сразу:

* Клиент: [Данные запроса отправляются сюда] **

Сервер: [Пакет 1]

Сервер: [Пакет 2]

Сервер: [Пакет 3]

Сервер: [Пакет 4]

Сервер: [Пакет 5]

Клиент: [Пакет 1]

Клиент: [Пакет 2]

Клиент: [Пакет 3]

Клиент: [Пакет 4]

Клиент: [Пакет 5]


Постепенно (извините, я не смог устоять перед этим каламбуром!)

* Клиент: [Данные запроса отправляются сюда] **

Сервер: [Пакет 1]

Клиент: [Пакет 1]

Сервер: [Пакет 2]

Клиент: [Пакет 2]

Сервер: [Пакет 3]

Клиент: [Пакет 3]

Сервер: [Пакет 4]

Клиент: [Пакет 4]

Сервер: [Пакет 5]

Клиент: [Пакет 5]

2 ответа2

2

Из компьютерных сетей Таненбаума - 5-е издание:

Основным протоколом, используемым объектами TCP, является протокол скользящего окна с динамическим размером окна. Когда отправитель передает сегмент, он также запускает таймер. Когда сегмент прибывает в пункт назначения, принимающий объект TCP отправляет обратно сегмент (с данными, если таковые имеются, а в противном случае без них) с номером подтверждения, равным следующему порядковому номеру, который он ожидает получить, и оставшимся размером окна. Если таймер отправителя отключается до получения подтверждения, отправитель снова передает сегмент.

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

0

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

Статья TCP в Википедии описывает надежную передачу более подробно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .