Важной функцией протокола TCP является обеспечение со сторон приемника данных посылки подтверждения получения посланных ж точником сегментов. Подтверждение осуществляется посылкой сегмен та TCP, называемого «подтверждением» (acknowledgement, далее -АСК).
Каждый сегмент подтверждения АСК, так же как и сегмент дан ных, пронумеровывается. Дополнительно сегмент АСК содержит не мер следующего ожидаемого приемником байта.
Приведем пример. Пусть существует хост А - источник, и хост - приемник. Предположим, что А передал один сегмент данных при емнику В. Причем в поле данных содержалось 536 байт, пронумеро ванных от 0 до 535. Если В принял данные корректно (безошибочн и в правильном порядке), он должен подтвердить это источнику при этом сообщить о том, какой байт информации приемник ожида ет от источника. В данном случае в сегменте АСК должно присут ствовать значение 536, означающее, что приемник готов принять о источника данные, начиная с байта номер 536. Такой тип передачи : приема информации называется старт-стопный. После осуществле ния передачи источник останавливается и ждет подтверждения.
Возникает вопрос: что произойдет, если сегменты прибудут в при емник не в соответствии со своими номерами, что достаточно верят но, учитывая, что для доставки сегментов используется протокол IP Для обработки подобных случаев в TCP реализован механизм сово купного подтверждения (cumulative acknowledgement) получен ных приемником сегментов, т.е. посылкой всего одного сегмента АС! осуществляется подтверждение нескольких принятых сегментов.
Пусть приемник В принял от источника А два сегмента, содержащи байты от 0 до 535 и от 900 до 1000, а третий сегмент, содержащий бай ты от 536 до 899, был принят позже. Используя номера сегментов, про токол TCP имеет возможность восстановить исходную последовательност и, таким образом, получить три правильно принятых сегмента. Посы лая сегмент АСК источнику, приемник указывает номер байта, кото рый он готов принять. Таким образом, посылая всего одно подтверждени' получения нескольких последовательных сегментов, TCP снижает на грузку и увеличивает пропускную способность соединения. Это объяс няется тем, что источник имеет возможность посылать несколькс сегментов один за другим и не простаивать, ожидая получение подтвер ждения для каждого посланного сегмента. Такой тип передачи-прием; информации называется полунепрерывным (pipelining). На сегодня существует две базовых реализации полунепрерывного типа передачи: протоколы Go-Back-N и Selective Repeat. Подробно эти протоколы будут рассмотрены ниже после обсуждения вопросов, связанных с управлением таймерами. Отметим, что протокол TCP строится в соответствии с принципами (представленными ниже) обоих протоколов полунепрерывной передачи данных. В системах с обратной связью применяются процедуры обнаружения ошибок и переспроса, называемые «решающей обратной связью» или «обнаружением ошибок с автоматическим запросом повторения» (Automatic Repeat Request, далее - ARQ), применяемые также и на канальном уровне, например, в беспроводных локальных сетях WLAN (Wireless Local Area Network).
⇐Посылка и нумерация сегментов данных | Управление трафиком и качество обслужевания в сети | Управление таймерами⇒