Протокол TCP

Протокол TCP

Функции протокола TCP

TCP - надежный байт-ориентированный (byte-stream) протокол с установлением соединения. TCP находится на транспортном уровне стека TCP/IP, между… При получении дейтаграммы, в поле Protocol которой указан код протокола TCP… Ниже основные функции протокола TCP и их реализация рассмотрены более подробно.

Базовая передача данных

Протокол TCP рассматривает данные клиента как непрерывный неинтерпретируемый поток октетов. TCP разделяет этот поток на части для пересылки на… Немедленное отправление данных может быть затребовано процессом-клиентом от…

Обеспечение достоверности

Для выполнения этих задач все октеты в потоке данных сквозным образом пронумерованы в возрастающем порядке. Заголовок каждого сегмента содержит… Номер первого байта в потоке определяется на этапе установления соединения и… Также для каждого сегмента вычисляется контрольная сумма, позволяющая обнаружить повреждение данных.

Разделение каналов

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

Все распространенные сервисы Интернет имеют стандартизованные номера портов. Например, номер порта сервера электронной почты - 25, сервера FTP - 21. Список стандартных номеров портов можно найти в файле /etc/services (Unix).

Совокупность IP-адреса и номера порта называется сокетом. Сокет уникально идентифицирует прикладной процесс в Интернет. Например, сокет сервера электронной почты на хосте 194.84.124.4 обозначается как 194.84.124.4.25; часто номер порта отделяется двоеточием.

Управление соединениями

Каждое соединение уникально идентифицируется в Интернет парой сокетов. Соединение характеризуется для клиента именем, которое является указателем на… Открытие соединения клиентом осуществляется вызовом функции OPEN, которой передается сокет, с которым требуется…

Управление потоком

Протокол TCP формирует подтверждения не для каждого конкретного успешно полученного пакета, а для всех данных от начала посылки до некоторого… Рис. 3.1.2. Метод скользящего окна Вместе с посылкой отправителю ACK SN получатель объявляет также “размер окна”, например - 6000. Это значит, что…

Заголовок TCP-сегмента

Заголовок сегмента состоит из 32-разрядных слов и имеет переменную длину, зависящую от размера поля Options, но всегда кратную 32 битам. За… Формат заголовка:

Промежуточные состояния соединения

Определены следующие запросы процесса-клиента модулю TCP (с каждым запросом, кроме OPEN, передается имя соединения): ACTIVE-OPEN - активное открытие соединения; PASSIVE-OPEN - пассивное открытие соединения (см. выше п. 3.1.4);

Фаза установления соединения

Фаза закрытия соединения

Проблемы возникновения некорректных ситуаций, например, наполовину открытое соединение, получение заблудившихся в сети старых SYN-сегментов, неожиданный крах программ и т.п., решаются путем детектирования ошибки (несоответствие или бессмысленные значения ACK или SN), после чего посылается сигнал RST (сегмент с установленным битом RST) и соединение ликвидируется.