TCP (Transmission Control Protocol) — это протокол транспортного уровня, который обеспечивает надежную, ориентированную на установление соединения и потоковую передачу данных.
Особенности TCP:
- Надежная доставка данных: TCP гарантирует доставку всех данных в правильном порядке и без потерь. Он использует механизмы подтверждения (ACK), повторной передачи (retransmission) и контроля ошибок (checksum).
- Ориентированность на соединение: Перед обменом данными отправитель и получатель устанавливают логическое соединение (трехстороннее рукопожатие - three-way handshake).
- Потоковая передача данных: TCP рассматривает данные как непрерывный поток байтов, а не как отдельные пакеты.
- Контроль потока (Flow Control): Механизм для управления скоростью отправки данных, чтобы предотвратить переполнение буфера получателя. Использует скользящее окно (sliding window).
- Контроль перегрузки (Congestion Control): Механизм для управления объемом трафика, отправляемого в сеть, чтобы избежать перегрузки. Использует алгоритмы, такие как Slow Start, Congestion Avoidance, Fast Retransmit и Fast Recovery.
- Сегментация и сборка: TCP разбивает большие объемы данных на сегменты для передачи и собирает их на стороне получателя.
- Порядковый номер (Sequence Number): Каждому сегменту присваивается порядковый номер для правильной сборки данных на стороне получателя и определения потерянных сегментов.
- Порты: Использует номера портов для идентификации конкретных приложений или сервисов на хосте.