Протокол управления передачей (TCP)
Transmission Control Protocol (TCP) обеспечивает полностью дублированные, с подтверждением и управлением потоком данных, услуги для протоколов высших уровней. Он перемещает данные в непрерывном неструктурированном потоке, в котором байты идентифицируются по номерам последовательностей. ТСР может также поддерживать многочисленные одновременные диалоги высших уровней. Формат пакета ТСР представлен на Рис. 4.17.
Рис. 4.17. TCP Packet Format
Поле "порт источника" (source port) обозначает точку, в которой конкретный процесс высшего уровня источника принимает услуги ТСР; поле "порт пункта назначения" (destination port) обозначает порт процесса высшего уровня пункта назначения для услуг ТСР.
Поле "номер последовательности" (sequence number) обычно обозначает номер, присвоенный первому байту данных в текущем сообщении. В некоторых случаях оно может также использоваться для обозначения номера исходной последовательности, который должен использоваться в предстоящей передаче.
Поле "номер подтверждения" (acknowledgement number) содержит номер последовательности следующего байта данных, которую отправитель пакета ожидает для приема.
Поле "сдвиг данных" (data offset) обозначает число 32-битовых слов в заголовке ТСР.
Поле "резерв" (reserved) зарезервировано для использования разработчиками протокола в будущем.
Поле "флаги" (flags) содержит различную управляющую информацию.
Поле "окно" (window) обозначает размер окна приема отправителя (буферный объем, доступный для поступающих данных).
Поле "контрольная сумма" (checksum) указывает, был ли заголовок поврежден при транзите.
Поле "указатель срочности" (urgent pointer) указывает на первый байт срочных данных в пакете.
Поле "опции" (options) обозначает различные факультативные возможности ТСР.