После того как протокол TCP установит сеанс, он сможет следить за обменом данными, происходящим в рамках этого сеанса. Благодаря способности TCP отслеживать фактические сеансы связи он считается протоколом с контролем состояния. Протокол с контролем состояния отслеживает состояние сеанса передачи данных. Например, когда данные передаются по протоколу TCP, отправитель ожидает, что узел назначения отправит подтверждение о получении данных. TCP отслеживает, какую информацию он отправил и какая информация была подтверждена. Если получение данных не подтверждено, отправитель считает, что они не достигли адресата, и повторяет их отправку. Сеанс связи с контролем состояния начинается с установления сеанса обмена данными и прекращается по его завершении.
Примечание. Для обработки информации о состоянии необходимы ресурсы, которые не требуются протоколу без контроля состояния, например протоколу UDP.
При использовании этих функций протокол TCP создаёт дополнительную нагрузку. Как показано на рисунке, каждый сегмент TCP содержит 20 дополнительных байт в заголовке, инкапсулируя данные уровня приложений. Это существенно превышает значение сегмента UDP, в котором содержатся 8 дополнительных байт. Дополнительная нагрузка состоит из следующих элементов.
- Порядковый номер (32 бита): используется для повторной компоновки данных.
- Номер подтверждения (32 бита): обозначает полученные данные.
- Длина заголовка (4 бита): параметр, который также называется смещением данных. Обозначает длину заголовка сегмента TCP.
- Зарезервировано (6 бит): поле, зарезервированное для последующего использования.
- Биты управления (6 бит): включает двоичные коды, или флаги, которые указывают назначение и функцию сегмента TCP.
- Размер окна (16 бит): отображает количество сегментов, которые можно принять единовременно.
- Контрольная сумма (16 бит): используется для проверки ошибок заголовка и данных сегмента.
- Срочность (16 бит): обозначает, являются ли данные срочными.
В качестве примеров приложений, использующих протокол TCP, можно привести веб-браузеры, электронную почту и передачи файлов.