Сети → Протокол TCP

TCP (Transmission Control Protocol, «протокол управления передачай») — предназначенный для управления передачей данных в сетях и подсетях TCP/IP. TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в безошибочности получаемых данных, осуществляет повторный запрос данных в случае потери пакетов и устраняет дублирование при получении двух копий одного пакета.

В отличие от UDP, TCP гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь.

Процесс добавления заголовка TCP к данным уровня приложения, для последующей доставки, называется инкапсуляцией (encapsulation). Заголовок TCP и следующие за ним данные называются TCP-сегментом (TCP-segment). Заголовок, добавляемый к пакету протоколом TCP имеет следующие поля:

протокол tcp

Всего, размер TCP-заголовка составляет 20 байт (от 0 до 160 бит = 20 байт + 4 байта (32 бита) при наличии опций). Протокол TCP обеспечивает:

  1. Базовую доставку с использованием механизма инкапсуляции (добавлением заголовка TCP к данным);
  2. Разбиение больших порций данных на меньшие за счет сегментации (по умолчанию максимальный размер сегмента (mss) равен 1480 байт, включая TCP-заголовок (20 байт) и данные (1460 байт максимум);
  3. Гарантирование доставки за счет механизма исправления ошибок (используя порядковый номер и номер подтверждения);
  4. Доставка данных конкретной программе, а не только запросившему их компьютеру, за счет использования номера порта (в TCP заголовке, номер порта отправителя (2 байта) и номер порта получателя (2 байта) соответственно);
  5. Упрощение создания приложений благодаря сокрытию от них деталей, касающихся фактической доставки данных.

работа tcp протоколаДля исправления ошибок используются поля порядковый номер (sequence number, SEQ) и номер подтверждения (acknowledgment number, ACK). Порядковый номер идентифицирует сегмент, а номер подтверждения используется, когда происходит ошибка. Использование поля подтверждения для указании следующего сегмента, который должен быть получен, называют прогнозным подтверждением (forward acknowledgment).

Если приложению нужно передать много данных, оно выдает сразу все эти данные протоколу транспортного уровня (TCP), и уже его заботой становиться разбиение данных на фрагменты, которыми проще управлять. В сегмент TCP может быть помещено какое-то максимальное число байтов (типичное значение 1480 байт = 20 байт заголовок TCP + 1460 байт данных), это значение —  максимальный размер сегмента (maximum segment size, mss). Процесс деления данных на части называют сегментацией (segmentation). Байты, которые включают данные и заголовок TCP, называют сегментами TCP. В заголовке TCP имеется поле порт назначения (destination port), которое говорит принявшей стороне, какой именно прикладной программе нужно передать полученные данные. Для каждой прикладной программы, которая выполняется, компьютер назначает уникальный номер порта (TCP port). Стандартные номера портов (well-know ports) позволяют приложениям, выполняемым на двух компьютерах, посылать первый сегмент с указанием в нем нужного порта адресата (пример, 80 – стандартный порт для Web-сервера).

TCP позволяет многим программам пользоваться его услугами одновременно, отслеживая, какие сегменты для каких приложений предназначены, используя для этого номера портов. Прежде чем может произойти передача данных с использование TCP, обе конечных точки должны согласиться со значениями, изначально указываемыми в полях заголовка. TCP использует процесс, названный установление соединения TCP (TCP connection establishment), чтобы инициализировать несколько полей в заголовке TCP. Установление соединения выполняется в результате того, что 2 компьютера посылают друг другу определенный набор сегментов TCP, число которых составляет 3.

После этого между прикладными программами начинает действовать TCP-соединение, и поля заголовка TCP получают необходимые начальные значения, согласованные обеими сторонами (приложение на одном ПК соглашается «говорить» с приложением на другом ПК). После запуска приложения на основе TCP, оно должно сформировать новое TCP-соединение, и только после этого могут быть переданы сообщения приложений или данные конечного пользователя.

Related: can johnny depp really sing, fifa 22 goalkeeper career mode sliders, saluda mountain lodge death, bruce boxleitner height, octopath traveler champions of the continent tier list, is the pcr test covered by insurance, emory midtown radiology department, baby stiffens legs and arms when excited, when will thorns of glory part 2 come out, warrior cats leader ceremony words, rick workman heartland dental net worth, what font does dmv use for registration, upper cumberland reporter mugshots, gaston, oregon obituaries, fixer upper: welcome home david and christina,