Подтверждение получения пакетов в TCP важно по нескольким причинам:
- Гарантированная доставка данных. thecode.media Протокол TCP следит за тем, пришли ли к получателю отправленные данные и нужно ли их отправить заново. thecode.media Если сигнала подтверждения нет, то протокол отправляет этот же пакет данных ещё раз. thecode.media Если подтверждения нет несколько раз подряд, то протокол выдаёт сообщение об ошибке и закрывает соединение. thecode.media
- Надёжность передачи. ru.hexlet.io Принимать подтверждение на каждый пакет требуется в условиях плохой связи или при передаче важной информации. ru.hexlet.io
- Определение «пробелов» в буфере получателя. masich.ru Когда получатель не получает пакеты по порядку, в буфере есть некоторые дыры (отсутствующие байты). masich.ru Подтверждение помогает отправителю заранее узнать об этих дырах и одновременно ретранслировать потерянные пакеты. masich.ru
Однако если подтверждать получение каждого пакета, то на это будет уходить много времени. thecode.media Чтобы не было таких задержек, в протоколе предусмотрели кумулятивное и выборочное подтверждение. thecode.media