Основная задача протокола TCP (Transmission Control Protocol - протокол управления передачей, RFC 793) обеспечить сквозную гарантированную доставку данных между прикладными процессами. Другими словами, если приложение на одном узле хочет передать данные без каких-либо изменений такому же приложению на другом узле, то задачу эту выполнить приложение доверяет протоколу TCP.
В стеке протоколов TCP/IP протокол TCP работает, как и протокол UDP, на транспортном уровне. Протокол TCP предоставляет транспортные услуги, отличающиеся от услуг UDP. Вместо ненадежной доставки дейтаграмм без установления соединений, он обеспечивает гарантированную доставку с установлением соединений между прикладными процессами в виде байтовых потоков.
Протокол TCP используется в тех случаях, когда требуется надежная доставка сообщений. Он освобождает прикладные процессы от необходимости использовать таймауты и повторные передачи для обеспечения надежности. Наиболее типичными прикладными процессами, использующими TCP, являются FTP и TELNET. Кроме того, TCP используют система X-Window, rcp (remotecopy - удаленное копирование) и другие "r-команды". Большие возможности TCP даются не бесплатно. Реализация TCP требует большой производительности процессора и большой пропускной способности сети. Внутренняя структура модуля TCP гораздо сложнее структуры модуля UDP.
Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, которая и называется сегментом. Сегменты состоят из заголовка и блока данных.
Поскольку приложение полностью полагается на протокол TCP (зачастую, не имея собственных механизмов проверки данных), протокол TCP должен реализовывать доставку собственными механизмами. Инкапсуляция данных при использовании протокола TCP происходит схожим с UDP образом, только TCP заголовок значительно отличается от заголовка UDP. Заголовок TCP несет себе множество полей служебной информации, служащей ДЛЯ управления передачей данных по каналам связи.