Опубликован: 11.08.2008 | Уровень: специалист | Доступ: свободно
Лекция 11:

Управление перегрузкой и основные алгоритмы работы TCP

Сегмент

Сегмент – это единица данных, передаваемых между устройствами, которые используют TCP ( Рис. 11.3.). Формат сегмента TCP состоит из 20–60-байтных заголовков и следующих за ними данных для прикладной программы. Заголовок – это 20 байт, если не имеет опций, и 60 байт, если состоит из нескольких опций.

Формат заголовка TCP сегмента

Рис. 11.3. Формат заголовка TCP сегмента

Обсудим некоторые поля заголовков. Смысл и цель их должны быть ясными, поскольку эти поля уже неоднократно рассматривались по всей книге, правда, в других приложениях.

Адрес порта источника. Это поле длиною 16 бит, определяющее номер порта прикладной программы в хосте, в который посылает сегмент. Это обслуживание имеет ту же самую цель, что адрес источника в заголовке UDP, обсуждавшемся ранее (см. рис. 9.1.).

Адрес порта пункта назначения. Это поле длиною 16 бит, определяющее номер порта прикладной программы в хосте, который получает сегмент. Это поле имеет ту же самую цель, что и адрес порта назначения в заголовке UDP, рассмотренном ранее (см. рис. 9.1.). В течение соединения каждая сторона использует случайный номер, чтобы создать начальный порядковый номер (ISN – initial sequence number), который обычно отличается в каждом направлении. Например, если ISN – 2 368 и первый сегмент переносит 1000 байт, порядковый номер – 2 369 (2 367 и 2 368 используются для установления соединения); второй сегмент после 1000 байтного сегмента, переносит 500 байт. Он будет иметь номер 3 369, и так далее. Пункт назначения может определить номер последнего байта для определения размера блока данных. Порядковые номера рассматривались в разделе управления потоком и протокола скользящего окна.

Порядковый номер. Это поле на 32 бита определяет номер, назначенный от первого бита данных, которые содержатся в этом сегменте. Как мы уже говорили прежде, TCP — протокол транспортного уровня. Чтобы гарантировать возможность взаимодействия, каждый байт должен быть передан нумерованным. Порядковый номер говорит пункту назначения, каков байт в этой последовательности по сравнению с первым байтом сегмента.

Номер подтверждения. Это поле занимает 32 бита и определяет номер байта, который ожидает приемник сегмента от другой стороны. Если приемник сегмента успешно принял байт с номером x от другой стороны, он определяет номер подтверждения как x+1.

Длина заголовка. Это поле длиной 4 бита указывает номер 4-байтного слова в TCP заголовке. Эта длина заголовка может быть между 20 и 60 байтами. Поэтому значение этого поля может быть между 5 (5 x 4 = 20) и 15 (15 x 4 = 60).

Зарезервировано. Это поле 6 бит, зарезервировано для будущего использования.

Управление. Это поле определяет 6 различных управляющих бит, или флагов, как это показано на Рис. 11.3.

Эти биты способны управлять потоком, установлением соединения и оконечными устройствами, а также режимом передачи TCP. Короткое описание каждого из бит дано в таблиц 11.1.

Таблица 11.1. Описание флагов в поле управления
Флаг Описание
Срочно Указатель срочности сообщения
Подтверждение Подтверждает правильность действия
Запуск Запуск данных
Повтор Соединение должно быть переустановлено
Синхронизация Порядковый номер синхронизации в течение соединения
Конечное Оконечное соединение

Размер окна. Это поле определяет размер окна в байтах, который может использовать другая сторона. Заметим, что длина этого поля – 16 бит, что означает максимальный размер окна – 65 535 байт.

Контрольная сумма. Это поле на 16 бит, которое действительно, только если установлен срочный флаг, и используется, когда сегмент содержит срочные данные. Оно определяет, что должно быть дополнено к порядковому номеру, чтобы получить номер последнего и срочного байта в секции данных сегмента. Это будет обсуждаться позднее.

Опция. В ТСР-заголовке может быть до 40 байт информации опций. Мы обсудим различные опции, используемые в TCP-заголовках, в следующей секции.

Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Алексей К
Алексей К
Россия
Алексей Л
Алексей Л
Россия, Свердловская область