24432

Протокол TCP. Формат заголовка TCP

Контрольная

Информатика, кибернетика и программирование

Протокол TCP. Формат заголовка TCP. TCP Transmission Control Protocol гарантированный протокол транспортного уровня с предварительным установлением соединения предоставляющий приложению надёжный поток данных дающий уверенность в безошибочности получаемых данных перезапрашивающий данные в случае потери и устраняющий дублирование данных. Протокол TCP взаимодействует через межуровневые интерфейсы с ниже лежащим протоколом IP и с выше лежащими протоколами прикладного уровня или приложениями.

Русский

2013-08-09

135.5 KB

8 чел.

1. Протокол TCP. Формат заголовка TCP. 

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

Протокол TCP взаимодействует через межуровневые интерфейсы с ниже лежащим протоколом IP и с выше лежащими протоколами прикладного уровня или приложениями.

Задача транспортного уровня, которую решает протокол TCP, заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети.

Порты: Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами. Таким образом, адресом назначения, который используется протоколом TCP, является идентификатор (номер) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket).

Сегменты и потоки: Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байтов. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая и называется сегментом и снабжается заголовком (см. рис. 5.23). В отличие от многих других протоколов, протокол TCP подтверждает получение не пакетов, а байтов потока.

Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета.

Соединение

Основным отличием TCP от UDP является то, что на протокол TCP возложена дополнительная задача — обеспечить надежную доставку сообщений, используя в качестве основы ненадежный дейтаграммный протокол IP.

Установленные на конечных узлах протокольные модули

TCP решают задачу обеспечения надежного обмена данными путем установления между собой логических соединений. Благодаря логическому соединению TCP следит, чтобы передаваемые сегменты не были потеряны, не были продублированы и пришли к получателю в том порядке, в котором были отправлены.

При установлении логического соединения модули TCP договариваются между собой о параметрах процедуры обмена данными. В протоколе TCP каждая сторона соединения посылает противоположной стороне следующие параметры:

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

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

Логическое TCP-соединение однозначно идентифицируется парой сокетов.

Каждый сокет одновременно может участвовать в нескольких соединениях.

Скользящее окно в протоколе TCP

В рамках установленного соединения в протоколе TCP правильность передачи каждого сегмента должна подтверждаться квитанцией от получателя. В протоколе TCP используется частный случай квитирования — алгоритм скользящего окна.

Алгоритм скользящего окна в протоколе TCP имеет особенность. Хотя единицей передаваемых данных является сегмент, окно определено на множестве нумерованных байтов неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP.

При установлении соединения обе стороны договариваются о начальном номере байта, с которого будет вестись отсчет в течение всего данного соединения. У каждой стороны свой начальный номер. Идентификатором каждого сегмента является номер его первого байта. Нумерация байтов в пределах сегмента осуществляется так, что первый байт данных сразу вслед за заголовком имеет наименьший номер, а следующие за ним байты имеют следующие порядковые номера (рис. 19.8).

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

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

Окно приема

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

На рис. 19.11 показан поток байтов, поступающий с верхнего уровня в выходной буфер протокола TCP. Из потока байтов модуль TCP «нарезает» последовательность сегментов и готовит их для отправки другому сокету. В этом потоке можно указать несколько логических границ. Первая граница отделяет сегменты, которые уже были отправлены и на которые уже пришли квитанции. По другую сторону этой границы располагается окно размером W байт. Часть байтов, входящих в окно, составляют сегменты, которые также уже отправлены, но квитанции на них пока не получены. Оставшаяся часть окна — это сегменты, которые пока не отправлены, но могут быть отправлены, так как входят в пределы окна. И наконец, последняя граница указывает на начало последовательности сегментов, ни один из которых не может быть отправлен до тех пор, пока не придет очередная квитанция и окно не будет сдвинуто вправо.

Если размер окна равен W, а последняя по времени квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N + W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.

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

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

Заголовок TCP-сегмента содержит значительно больше полей, чем заголовок UDP, что отражает более развитые возможности первого протокола:

  •  Порт источника (sourc port) занимает 2 байта и идентифицирует процесс-отправитель.
  •   Порт приемника (destination port) занимает 2 байта и идентифицирует процесс-получатель.
  •  Последовательный номер (sequence number) занимает 4 байта и представляет собой номер байта, который определяет смещение сегмента относительно потока отправляемых данных (другими словами, номер первого байта данных в сегменте).
  •  Подтвержденный номер (acknowledgement number) занимает 4 байта и содержит максимальный номер байта в полученном сегменте, увеличенный на единицу. Именно это значение используется в качестве квитанции. Если установлен контрольный бит АСК, то это поле содержит следующий номер очереди, который отправитель данного сегмента желает получить в обратном направлении.
  •  Длина заголовка (hlen) занимает 4 бита и представляет собой длину заголовка TCP-сегмента, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле параметров.
  •  Резерв (reserved) занимает 6 бит.
  •  Кодовые биты (code bits) числом 6 содержат служебную информацию о типе данного сегмента. Положительное значение сигнализируется установкой этих битов в единицу:
    •  URG — срочное сообщение;
    •  АСК — квитанция на принятый сегмент;
    •  PSH — запрос на отправку сообщения без ожидания заполнения буфера (протокол TCP может выжидать заполнения буфера перед отправкой сегмента, но если требуется срочная передача, то приложение сообщает об этом протоколу TCP с помощью данного бита);
    •  RST — запрос на восстановление соединения;
    •  SYN — сообщение, используемое для синхронизации счетчиков переданных данных при установлении соединения;
    •  FIN — признак достижения передающей стороной последнего байта в потоке передаваемых данных.
  •  Окно (window) занимает 2 байта и задает количество байтов данных, ожидаемых отправителем данного сегмента, начиная с байта, номер которого указан в поле подтвержденного номера.
  •  Контрольная сумма (checksum) занимает 2 байта.
  •  Указатель срочности (urgent pointer) занимает 2 байта и указывает на конец данных, которые необходимо срочно принять, несмотря на переполнение буфера. Указатель срочности используется совместно с кодовым битом URG. То есть если какие-то данные необходимо переслать приложению-получателю вне очереди, то приложение-отправитель должно сообщить об этом протоколу TCP путем установки в единицу бита URG.
  •  Параметры (options) имеют переменную длину и могут вообще отсутствовать. Максимальная величина поля составляет 3 байта; оно используется для решения вспомогательных задач, например для выбора максимального размера сегмента. Поле параметров может располагаться в конце заголовка TCP, а его длина кратна 8 бит.
  •  Заполнитель (padding) может иметь переменную длину. Это фиктивное поле, используемое для доведения размера заголовка до целого числа 32-битовых слов.


2. Структурные сущности: классы, интерфейсы, кооперации, прецеденты, компоненты, узлы.

Унифицированный язык моделирования (UML - Unified Modeling Language) является стандартным инструментом для создания документированных каркасов ("чертежей") программного обеспечения. С помощью UML можно визуализировать, специфицировать, конструировать и документировать процесс разработки программных систем. UML разработан таким образом, чтобы удовлетворять потребности при моделировании любых систем: от информационных систем масштаба предприятия до распределенных Web-приложений и даже встроенных систем реального времени. Это выразительный язык, позволяющий рассмотреть систему со всех точек зрения, имеющих отношение к ее разработке и последующему развертыванию. Несмотря на обилие выразительных возможностей, этот язык прост для понимания и использования.

Словарь UML включает три вида основных конструкций:

  •  сущности - абстракции, являющиеся основными элементами модели;
  •  отношения - связи между сущностями;
  •  диаграммы, группирующие представляющие интерес множества сущностей и отношений.

Сущности UML

В UML имеется четыре типа сущностей:

  •  структурные;
  •  поведенческие;
  •  группирующие;
  •  аннотационные.

Сущности являются основными объектно-ориентированными элементами языка. С их помощью можно создавать корректные модели. Структурные сущности - это имена существительные в моделях на языке UML. Как правило, они представляют собой статические части модели, соответствующие концептуальным или физическим элементам системы. Как уже упоминалось выше, существует семь разновидностей структурных сущностей, естественно, что все они нашли свое отражение в UML. Напомним определения структурных сущностей и дадим описание, соответствующего им графического образа UML.

Класс (class) - это описание совокупности объектов с общими атрибутами, операциями отношениями и семантикой. Графически класс изображается в виде прямоугольника, в котором записаны его имя, атрибуты и операции, например как это показано на рисунке:

ClassName

-PrivateAttribute : char
#ProtectedAttribute
+PublicAttribute

+Operation1(in S : String)
+Operation2()

Рис. Пиктограмма класса

Интерфейс (interface) - это совокупность операций, которые определяют определенную службу (сервис, набор услуг), которые предоставляет класс или компонент. На диаграммах интерфейс изображается в виде круга, под которым указывается его имя, как это показано на рис. Интерфейс очень редко, практически никогда, существует сам по себе - обычно он присоединяется к реализующему его классу или компоненту.

Кооперация (collaboration) определяет взаимодействие, она представляет собой совокупность ролей и других элементов, которые, работая вместе, производят некоторый кооперативный эффект, не сводящийся к обычно сумме слагаемых. Графически кооперация изображается в виде эллипса, который ограничивается пунктиром, внутри обычно заключено только имя, пример на рис.

Прецедент (use case) - это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат, значимый для какого-то определенного актера (actor). Графически прецедент тоже изображается в виде эллипса, только ограниченного непрерывной линией, обычно содержащего только его имя, как показано на рис.

Активным классом (active class) называется класс, объекты которого вовлечены в один или несколько процессов, или нитей (threads), и поэтому могут инициировать управляющее воздействие. Графически активный класс изображается также как и простой класс, но ограничивается прямоугольником, который рисуется жирной линией, и включает имя, атрибуты и операции, пример на рис.

Рис. Пиктограмма активного класса (тоже что и обычного, только обводка рисуется жирной линией)

Компонент (component) - это физическая заменяемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает его реализацию. Графически компонент изображается в виде прямоугольника с вкладками, содержащего обычно только имя, как показано на рис.

Узел (node) - это элемент реальной (физической) системы, который существует во время функционирования программного продукта и представляет собой некоторый вычислительный ресурс, обычно обладающий как минимум некоторым объемом памяти, а часто еще и возможностью обработки. Графически для изображения узла используется куб, обычно содержащий только имя узла.

Рис. Пиктограмма узла


Рис. Пиктограмма интерфейса


 

А также другие работы, которые могут Вас заинтересовать

16805. Оборудование для добычи золота 1.83 MB
  Оборудование для добычи золота 8ми футовая машина Может устанавливаться на берегу или на понтонах легко подготавливается к перевозке любым транспортом. В конструкции нет вибраторов что упрощает эксплуатацию и повышает надёжность.Оптимальный ...
16806. Оборудование для пробоподготовки 1.32 MB
  Оборудование для пробоподготовки Кольцевые мельницы НАСТОЛЬНАЯ КОЛЬЦЕВАЯ МЕЛЬНИЦА Компактная и лёгкая настольная мельница предназначена для истирания проб максимальным весом до 100 грамм. Предназначена для ис...
16807. Освоение сырьевой базы золота Иркутской области 56.5 KB
  Освоение сырьевой базы золота Иркутской области В.А.Назарьев В.А.Мордвин Главное управление природных ресурсов и охраны окружающей среды МПР России по Иркутской области Иркутская область – один из основных регионов страны по добыче золота. За более чем полутор
16808. Перспективы организации комплексного извлечения цветных, рассеянных редких и благородных металлов из нетрадиционного природного и техногенного сульфидного сырья Урала 184 KB
  Мелентьев Г.Б. Малинина Е.Н. Овчарова Е.С. Перспективы организации комплексного извлечения цветных рассеянных редких и благородных металлов из нетрадиционного природного и техногенного сульфидного сырья Урала НИЦ Экология и промышленная энерготехнология Объедин...
16809. Поиск критериев золотого оруденения мурунтауского рудного поля 55 KB
  Поиск критериев золотого оруденения мурунтауского рудного поля Голищенко Г.Н. главный геофизик Центрального рудоуправления НГМК канд. геол.мин. наук; Беленко А.П.главный геолог Центрального рудоуправления НГМК Большая часть территории Кызылкумского региона перек
16810. Потенциальные возможности развития минерально сырьевой базы золота России в ХХI веке 175.5 KB
  Потенциальные возможности развития минеральносырьевой базы золота России в ХХI веке ВведениеТеоретические основы металлогенического прогнозированияПрогнозная оценка золоторудных ресурсов РоссииЛитература Введение Кризисное по ряду показателей поло...
16811. ПРАКТИКА ПРИМЕНЕНИЯ КОНЦЕНТРАТОРОВ ИТОМАК ДЛЯ ДОБЫЧИ МЕЛКОГО, ТОНКОГО И СВЯЗАННОГО ЗОЛОТА ИЗ ТЕХНОГЕННОГО СЫРЬЯ 49 KB
  ПРАКТИКА ПРИМЕНЕНИЯ КОНЦЕНТРАТОРОВ ИТОМАК ДЛЯ ДОБЫЧИ МЕЛКОГО ТОНКОГО И СВЯЗАННОГО ЗОЛОТА ИЗ ТЕХНОГЕННОГО СЫРЬЯ. С.И. АФАНАСЕНКО А.Н. ЛАЗАРИДИ ЗАО ИТОМАК г. Новосибирск Попытки использовать для улавливания мелкого и тонкого золота возможности центрифугирования...
16812. ПРАКТИКА ПРИМЕНЕНИЯ КОНЦЕНТРАТОРОВ ИТОМАК ДЛЯ ДОБЫЧИ МЕЛКОГО, ТОНКОГО И СВЯЗАННОГО ЗОЛОТА ИЗ ТЕХНОГЕННОГО СЫРЬЯ 88.5 KB
  ПРАКТИКА ПРИМЕНЕНИЯ КОНЦЕНТРАТОРОВ ИТОМАК ДЛЯ ДОБЫЧИ МЕЛКОГО ТОНКОГО И СВЯЗАННОГО ЗОЛОТА ИЗ ТЕХНОГЕННОГО СЫРЬЯ С.И. АФАНАСЕНКО А.Н. ЛАЗАРИДИ ЗАО ИТОМАК г. Новосибирск Потери мелкого золота при добыче общеизвестны. Используемые традиционно в технологических проц
16813. Применение СВЧ печей для разложения золотосодержащих проб 63 KB
  УДК 622.765.063 Применение СВЧ печей для разложения золотосодержащих пробХайдарова З.Р. магистрант НГГИ; Музафаров А.М. начальник бюро ЦНИЛ НГМК Методов обогащения золотосодержащих проб применяемых в промышленности очень много и они разнообразны. В последнее время с появ