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