Протокол управления передачей


Протокол управления передачей ( TCP ) является одним из основных протоколов набора интернет -протоколов . Он возник в начальной реализации сети, в которой он дополнял Интернет-протокол (IP). Поэтому весь набор обычно называют TCP/IP . TCP обеспечивает надежную , упорядоченную и проверенную на наличие ошибок доставку потока октетов (байтов) между приложениями, работающими на узлах, обменивающихся данными через IP-сеть. Основные интернет-приложения, такие как World Wide Web , электронная почта , удаленное администрирование ипередача файлов зависит от TCP, который является частью транспортного уровня пакета TCP/IP. SSL/TLS часто работает поверх TCP.

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

В мае 1974 года Винт Серф и Боб Кан описали межсетевой протокол для совместного использования ресурсов с помощью коммутации пакетов между сетевыми узлами. [1] Авторы работали с Жераром Ле Ланном над внедрением концепций французского проекта CYCLADES в новую сеть. [2] Спецификация итогового протокола, RFC  675 ( Спецификация программы управления передачей через Интернет ), была написана Винтом Серфом, Йогеном Далалом и Карлом Саншайном и опубликована в декабре 1974 года. Она содержит первое засвидетельствованное использование термина « Интернет »., как сокращение для межсетевой сети . [3]

Центральным управляющим компонентом этой модели была программа управления передачей , которая включала как каналы связи, ориентированные на соединение, так и службы дейтаграмм между хостами. Монолитная программа управления передачей позже была разделена на модульную архитектуру, состоящую из протокола управления передачей и интернет-протокола . В результате появилась сетевая модель, которая стала неофициально известна как TCP/IP , хотя формально она по-разному называлась моделью Министерства обороны (DOD) и моделью ARPANET , а в конечном итоге также называлась Internet Protocol Suite .

В 2004 году Винт Серф и Боб Кан получили премию Тьюринга за фундаментальную работу по TCP/IP. [4] [5]

Протокол управления передачей обеспечивает службу связи на промежуточном уровне между прикладной программой и Интернет-протоколом. Он обеспечивает связь между хостами на транспортном уровне интернет- модели . Приложению не нужно знать конкретные механизмы отправки данных по каналу связи на другой хост, например требуемую IP-фрагментацию для размещения максимальной единицы передачи в среде передачи. На транспортном уровне TCP обрабатывает все детали квитирования и передачи и представляет собой абстракцию сетевого подключения к приложению, как правило, через интерфейс сетевых сокетов .


Упрощенная диаграмма состояний TCP. См. диаграмму TCP EFSM для получения более подробной диаграммы состояний, включая состояния внутри состояния ESTABLISHED.
Завершение соединения
Порядковые номера TCP и окна приема ведут себя очень похоже на часы. Окно приема сдвигается каждый раз, когда приемник получает и подтверждает новый сегмент данных. Как только он исчерпает порядковые номера, порядковый номер возвращается к 0.