Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСТВПД / ОСТ__ИТ_ЗФ_2013 / Лекции / Обзор TCP-IP_4.doc
Скачиваний:
62
Добавлен:
27.12.2015
Размер:
838 Кб
Скачать
☆

32 Бита

Source Port

Destination Port

Sequence Number

Acknowledgement Number

Offset (0-3)

Reserved (4-9)

Flags (10-15)

Window

CRC (Checksum)

Urgent Pointer

Options

Padding

DATA

SourcePort(порт источника) – поле, которое идентифицирует исходный процесс прикладного уровня ULP. Случайное число (>1024).

DestinationPort(порт назначения) – поле, которое идентифицирует процесс ULP назначения, то есть тот процесс, который будет обрабатывать сегмент у получателя. В RFC существует список номеров портов, которые соответствуют процессам-приложениям, например FTP,Telnet.

SequenceNumber(последовательный номер) – 32-битное поле, которое содержит порядковый номер первого байта в поле данных сегмента среди всех байтов потока данных для текущего логического соединения.

AcknowledgementNumber(Ack Num, номер подтверждения) – если ACK-бит установлен (в полеFlags), то это 32-битное поле содержит номер следующего байта данных, который противоположная сторона предполагает получить. Подразумевается, что все предыдущие байты с номерами отISN+1 (ISN– начальный порядковый номер, см.ниже) доACK-1 получены успешно (без ошибок). TCP использует принцип скользящего окна (slidingwindow) и передает одно подтверждение на серию принимаемых сегментов.

Offset(смещение данных) – число 32-битных слов в заголовке.

Flags(флаги) – 6 бит разнообразной контрольной информации, которая используется для установки соединения, контроля соединения, задания приоритетов сегмента:

  • Флаг URG – указывает на срочность доставки сегмента.

  • Флаг ACK– указывает, что в полеACK Numпрописан номер байта данных, который ожидает на прием противоположная сторона.

  • Флаг Push – указатель на немедленную отсылку сегмента более низким уровням протоколов или процессу прикладного уровня. Используется при передаче данных интерактивных приложений.

  • Флаг ReSeT – признак необходимости переустановки текущего ТСР соединения.

  • Флаг SYN – указывает на то, что данный ТСР сегмент является запросом на установление логического соединения. Далее следует процедура «рукопожатия», где задается начальный номер для нумерации байтов данных InitialSequence Number (ISN).

  • Флаг FIN – говорит о том, что передающее устройство не имеет больше информации для передачи и логическое ТСР-соединение должно быть закрыто.

CRC– контрольная сумма всего ТСР сегмента для обнаружения ошибок.

Window(окно) – число байт данных, которое способен принять адресат (получатель) в текущий момент. Адресат управляет потоком данных источника (отправителя), изменяя размер окна. Окно указывает отправителю, какое число сегментов он имеет право отправить, не дожидаясь подтверждения.

UrgentPointer(указатель на данные особой важности) – указатель длины срочных данных, которые обычно размещаются в начале поля данных. Например, прерывания. Действует совместно с флагомURG.

Options(опции) – для реализации дополнительных услуг протокола ТСР. Например, определение максимального размера сегмента, который может быть передан по TCP соединению.

Как сказано выше, протокол ТСР воспринимает данные как непрерывный поток байтов, а не набор независимых пакетов. Чтобы сохранить последовательность отправки и получения байтов, в заголовке ТСР предусмотрены поля Порядковый номер (байта) и Номер подтверждения.

Перед началом обмена данными между узлами образуется сквозное логическое соединение. Узлы обмениваются управляющей информацией (рукопожатием). В процессе рукопожатия стороны синхронизируют свои системы нумерации байтов при помощи обмена SYN-сегментами, в которых в поле Порядковый номер указывается начальный порядковый номер (ISN, Initial Sequence Number). Этот номер является начальной точкой отсчета для системы нумерации байтов. Из соображений безопасности он является случайным числом.

Установка ТСР-соединени

(Процедура рукопожатия в 3 фазы, 3-way handshake)

Размер окна Windowустанавливается по умолчанию для определенной операционной системы – дляWindows16384 байт.

MSS(MaximumSizeSegment) – максимальный размер сегмента, который может быть передан по ТСР-соединению.

MSS=MTU (Maximum Transfer Unit) – IP-header – TCP-header

Узел 2 должен рассчитать допустимый размер окна. Сначала вычисляется общий MSS(минимальныйMSSдля двух узлов), размер окна по умолчанию делится на величину общегоMSS, результат округляется в большую сторону до целого числа “n”. Допустимый размер окна определяется как произведение общегоMSSи найденного значенияn.

Window=n*MSS

Каждый сегмент содержит контрольную сумму (контрольную последовательность), при помощи которой получатель проверяет наличие ошибок в сегменте. Поврежденный сегмент (сегмент, содержащий ошибки) аннулируется. Если ошибок не обнаружено, получатель отправляет источнику подтверждение ACK (Acknowledgment segment, сегмент с битом ACK=1).

В ТСР не требуется отправки подтверждения на каждый сегмент. Номер подтверждения является подтверждением получения всех байтов вплоть до этого номера. Подтверждающий сегмент выполняет две функции – подтверждение приема и управление потоком.

Существуют 2 способа обнаружения потери ТСР сегмента из-за некорректной работы сети:

  1. Использование тайм-аута повторной передачи (время, которое выжидается отправителем до решения о необходимости повторения данного сегмента).

  2. Поступление трех повторных сегментов ACK (DUP#ACK)

Если на момент заполнения окна источником (отправителем) подтверждения не получены, по истечении установленного интервала времени (тайм-аут), модуль-источник ТСР повторно передает данные, начиная с первого неподтвержденного байта.

На временной диаграмме ТСР соединения (см. ниже) показан случай потери сегментов с данными DATA 5 и DATA 6. Передающая сторона принимает решение о повторной передаче сегментов, начиная с DATA 5 после получения трех повторных сегментов подтверждения DUP#1, DUP#2, DUP#3. После повторной передачи сегмента DATA 6, Узел 2 получает кумулятивное подтверждение для сегментов DATA5, DATA6, DATA7, DATA8 и DATA9.

Временная диаграмма ТСР-соединения