фрагменты, то все фрагменты пакета имеют одинаковые значения этого поля.
Поле «Флаги» (Flags) с установленным в 1 битом D (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный бит M (More Fragments) свидетельствует о том, что данный фрагмент является промежуточным (не последним) и за ним последуют другие.
Поле «Смещение фрагмента» (Fragment Offset) указывает смещение в байтах данного фрагмента от начала общего поля данных исходного пакета, подвергнутого фрагментации, используется при сборке/разборке фрагментов пакетов при передачах их между сетями.
Поле «Время жизни» (Time to Live) означает предельный срок, в течение которого пакет может перемещаться по сети, измеряется в секундах и задается источником передачи. На маршруте движения в процессе обработки пакета коммуникационным оборудованием из этого времени вычитается каждая секунда обработки и корректируется итоговое значение времени. Если время станет нулевым до прихода пакета в пункт назначения, он будет уничтожен. Таким образом, время жизни рассматривают как механизм самоуничтожения пакета.
Поле «Протокол верхнего уровня» (Protocol) содержит идентификатор, указывающий, какому протоколу прикладного уровня принадлежит информация, размещенная в поле данных пакет. Например, это могут быть протоколы пакетов TCP, дейтаграмм – UDP, пакетов ICMP или OSPF. Значения идентификаторов приведены в стандарте интернета RFC «Assigned Numbers».
Контрольная сумма (Header Checksum) подсчитывается только для заголовка пакета, при этом значение самого поля контрольной суммы принимается равным нулю. Если при приеме пакета контрольная сумма окажется неверной, то пакет будет отброшен.
Поле «Опции» (Options) обычно используется только при отладке сети. При этом в нем можно указывать точный маршрут прохождения маршрутиаторов, помещать данные системы безопасности, делать временные отметки, помещать другие управляющие команды. Это поле добавляется нулями для выравнивания длины заголовка, которая должна быть кратной 32-битным словам.
Транспортный уровень (Transport layer). Этот уровень обеспечивает передачу данных с требуемой степенью надежности. При этом используется максимум средств для обнаружения и устранения ошибок, — предварительное установление логического соеди-
нения с абонентом, контроль доставки сообщений по контрольным суммам, циклическая нумерация пакетов, установление тайм-аутов доставки и т.п.
Транспортный уровень обеспечивает вышестоящим уровням целый ряд сервисов:
— срочность доставки;
— возможность восстановления прерванной связи;
— мультиплексирование соединений сообщений, передачи которых реализуются различными протоколами. Обратите внимание! Через единый транспортный уровень передаются и текстовые и звуковые файлы, и файлы с видео изображениями, и сообщения электронной почты;
— обнаружение и исправление ошибок передачи, таких как искажение, потеря и дублирование пакетов – главная задача транспортного уровня.
Функции уровней (протоколы), начиная с транспортного, реализуются программными компонентами операционных систем компьютеров пользователей. Самыми известными транспортными протоколами в настоящее время являются протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.
Протоколы физического, канального, сетевого и транспортного уровней обобщенно называют сетевым транспортом или транспортной подсистемой, так как они полностью обеспечивают решение задачи доставки сообщений в составных сетях с произвольными топологиями и различными технологиями.
Сеансовый уровень (Session layer). Основной задачей этого уровня является обеспечение режима диалога пользователей. При этом важно фиксировать работу сторон, то есть определять активного в текущий момент пользователя, а также возможность возвращения к любой части диалога, что означает непрерывное протоколирование последнего. На практике работа этого уровня редко реализуется в виде отдельных протоколов, и его функции в таких случаях объединяются с функциями прикладного уровня.
Представительный уровень (Presentation layer) осуществляет трансляцию различных языков представления данных, форматов и кодов данных, обеспечивая взаимодействие разнотипных ЭВМ, работающих со специфичными им операционными системами и терминалами различных типов. При этом, преодолеваются синтаксические различия в информации, передаваемой прикладным уровнем одной системы прикладному уровню другой системы, она понятна обеим системам. Например, сообщение, кодированное в коде ASCII на одном компьютере, будет понятно другому компьютеру, работающему с кодами EBCDIC. На этом уровне может быть обеспечена секретность обмена данными для всех прикладных служб, путем их шифрации и дешифрации. Примером такого протокола является протокол Secure Socket Layer (SSL), обес-
печивающий секретный обмен для протоколов прикладного уровня стека TCP/IP.
Прикладной уровень (Application layer). Этот уровень представляется набором протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры, Email – электронная почта, Web-страницы и т.д. В качестве примеров протоколов этого уровня приводят NCP в операционной системе Novel Net Ware, SMB в системе Windows NT, FTP и TFTP стека протоколов TCP/IP.
Единицей данных для прикладного уровня принято сообщение (message).
Структура сообщения представляется обычно двумя полями: заголовка и данных. Заголовок содержит служебную информацию, которая будет передана по сети и необходима для прикладного уровня машины-адресата. Например, информация о месте нахождения нужного файла и указание типа операции, которую нужно выполнить над этим файлом. Поле данных сообщения может быть пустым или содержать данные, которые требуется поместить в обрабатываемый удаленный файл. Часто служебная информация помещается не только в начале сообщения в виде заголовка, но и в конце, и называется «концевиком». В целом структура сообщения представлена на нижеследующем рисунке.
Если сообщение предназначено для передачи по сети, его структура формируется в соответствии с требованием протокола прикладного уровня модулем сетевого программного обеспечения, установленного на данном компьютере. Сообщение при этом находится в буфере оперативной памяти компьютера.
Многоуровневая организация управления процессами в компьютере и в сети порождает необходимость модифицировать на каждом уровне передаваемые сообщения, применительно к функциям, реализуемым на этом уровне. В этом случае сообщение преобразуется по схеме, представленной на рисунке 7.8. Как видно из многоуровневой модели компьютера, сообщение пользователя продвигается по уровням сверху вниз или снизу вверх. Необходимо твердо себе уяснить, что продвижение это виртуальное. Сообщение все время остается в буфере оперативной памяти и последовательно шаг за шагом обрабатывается соответствующими программами операционной системы до тех пор, пока «не доберется» до физического или прикладного уровня. Тогда оно либо превращается в реальную последовательность битов и направляется в ли-
нию связи сети, либо в виде файла предстает перед глазами пользователя, который и выполняет запланированные заранее операции его обработки.
Виртуально перемещаясь с одного уровня на другой (вверх или вниз), сообщение уже реально в результате его обработки соответствующими программами операционной системы обрамляется (или лишается) заголовками соответствующих уровней.
Эту процедуру обрамления сравнивают с вложением в конверт обработанное сообщение на соответствующем уровне. На первом уровне в конверте оказываются еще шесть конвертов.
Пришедшее в компьютер сообщение в процессе его обработки перемещается с первого уровня на седьмой, последовательно освобождаясь «от конвертов». Таким образом, каждый уровень управления оперирует не с самими сообщениями, а только с «конвертами», в которых «упакованы» сообщения.
На нижнем, физическом уровне в заголовок включают специальные коды, например, 01111110, исполняющие роль синхронизирующих сигналов и одновременно разделителей кадров. Такие же сочетания могут встретиться и в данных, которые могут быть восприняты обрабатывающими программами или аппаратурой как
часть заголовка. Для исключения этой ошибки в данных, при встрече такой последовательности, после пятой единицы вставляется 0 (ноль), который назвали – бит-стаффингом. При приеме данных выполняется обратное преобразование, бит-стаффинг заменяется 1, в результате чего данные принимают прежний вид. Этот прием назвали обеспечением прозрачности физического канала по отношению к передаваемым данным.
7.5 Способы и средства коммутации и передачи данных
Любые сети передачи данных обеспечивают связь между абонентами путем установления соединений — коммутаций, проходящих через узлы и линии связи. Абонентами могут быть собеседники, компьютеры, факс-аппараты и т.д. Важнейшая характеристика сети передачи данных – время доставки данных, зависит от структуры сети, производительности узлов сети и пропускной способности линий связи, а также от способа организации каналов связи и способа передачи данных по каналам.
Существуют три принципиально различные схемы коммутации (соединения) абонентов в сетях:
— коммутация каналов (circuit switching);
— коммутация сообщений (message switching);
— коммутация пакетов (packet switching).
Коммутация каналов подразумевает образование непрерывного составного физического канала из последовательно соединенных отдельных канальных участков для прямой передачи данных между абонентами. Этот вид коммутации имеет наиболее богатую историю.
Отдельные участки цепи соединяются между собой устройствами, называемыми коммутаторами (A, B, …), которые могут устанавливать связи между любыми конечными точками сети. Пример реализации этого способа коммутации иллюстрирует рисунок 7.9.
Процесс коммутации осуществляется в следующем порядке. Например, пользователь К направляет свое сообщение в адрес пользователя L. Сообщение пользователя К передается в узел А, который на основании адреса конечного пункта выбирает направление передачи, то есть коммутирует свой вход с выходом (говорят коммутирует свой входной порт с выходным портом), этот процесс получил название проключения.
Узел А проключает соединение с узлом B, который в свою очередь проключает соединение с узлом C. Последний проключает соединение с узлом E, а узел Е проключает соединение с пользователем L.
Компьютер пользователя L подтверждает узлу A и далее пользователю K факт установления соединения, то есть коммутацию (формирование) канала связи. После чего сообщение пользователя от узла А начинает свое «путешествие» к пользователю L. Нижеследующий рисунок 7.10 является еще одной интерпретацией процесса передачи сообщений по способу коммутации каналов.
Время передачи данных зависит от длины передаваемого сообщения, пропускной способности канала (скорости передачи данных) и времени распространения сигнала по каналу. Значение T определяет время доставки сообщения.
Коммутация сообщений предполагает передачу сообщения, содержащего заголовок (Зг – залитый темный прямоугольник) и данные по маршруту, определяемому узлами сети, которыми в данном случае являются промежуточные ЭВМ. Сообщение, направленное пользователем K принимается узлом A (узлом является следующая ЭВМ) и помещается в его память, обычно на диск. Здесь оно обрабатывается – на основании адреса назначения, указанного в заголовке, определяется его маршрут (выходной порт) и сообщение передается в следующий канал, оканчивающийся очередной ЭВМ (узел B). Процесс повторяется от узла к узлу до тех
пор, пока сообщение не достигнет адресата (пользователь L). Время T, как и в предыдущем случае, определяет время доставки сообщения пользователю. Рисунок 7.11 иллюстрирует этот способ передачи сообщений.
.
Коммутация пакетов. Сообщение предварительно разбивается на части ограниченной длины, например, 8192 байта, которые последовательно номеруются (рис. 7.12).
Рисунок 7.13 следует понимать так, что узлом А является ЭВМ, – источник передачи сообщения, организованного в виде последовательности пакетов. Пакеты по каналу поступают на коммутатор К 1, где обрабатываются соответствующим протоколу способом и передаются в канал 2, который также оканчивается коммутатором К 2. Обработка пакетов этим коммутатором выполняется точно по предыдущему сценарию, и пакеты передаются в следующий канал, ведущий непосредственно к получателю пакетов компьютеру С. Процесс передачи пакетов сопровождается цепочкой временных задержек. Во-первых, затрачивается некоторое время на передачу заголовков пакетов – t пз, к этому времени добавляется время интервала между пакетами t инт, необходимое для формирования очередного пакета, отправляемого в канал. Во-вторых, в каждом коммутаторе пакеты в течение времени t бп буферизуются (при приеме пакет помещается в буфер, — временную память). После обработки пакета, он передается в выходной порт через коммутирующую матрицу или другой механизм коммутации, затрачивающий время t к на эту операцию. Затрачивается время и на передачу собственно данных (передача пакета). В итоге, общее время передачи сообщения по рассматриваемому методу составит Т кп (обозначено на рисунке). Если воспользоваться конкретными значениями всех временных составляющих передачи для каждого из рассмотренных режимов коммутаций, то можно убедиться, что режим с коммутацией пакетов выглядит не лучшим образом. В чем же заключается эффект, преимущество этого режиам перед другими?
В сети с коммутацией пакетов процессы взаимодействия пользователей совершаются медленнее, чем в сетях с коммутацией каналов. Задержки возможны в коммутаторах в ожидании передачи пакетов, ранее поступивших в коммутатор. Наряду с этим имеет место значительная неравномерность распределения трафика в такой сети. Коммутаторы нижнего уровня (находящиеся «ближе» к пользователям) обрабатывают и пропускают менее насыщенный поток пакетов, тогда как коммутаторы более высоких уровней, обслуживающие коммутаторы нижних уровней, загружены более интенсивно и более равномерно, что определяет почти максимальный коэффициент их использования. Этот факт и определяет в целом высокую эффективность сетей с коммутацией пакетов. Для убедительности, в литературе по сетям приводится аналогия этого режима коммутации с режимом работы мультипрограммных операционных систем. Где конкретная программа выполняется дольше, за счет разделения времени с другими программами, но при этом число программ, выполненных в единицу времени в мультипрограммной системе оказывается намного больше, чем в системе однопрограммной.
Обычный рабочий режим сетей с коммутацией пакетов называется дейтаграммным, при котором коммутатор может направить отдельный пакет – дейтаграмму по любому, подключенному к нему каналу в зависимости от состояния сети, работоспособности каналов и других коммутаторов, длины очередей в соседних коммутаторах и т.д.
Но, существует и другой режим работы сети, названный передачей пакетов по виртуальному каналу. При этом режиме, прежде, чем передавать пакеты устанавливается соединение между конечными точками передачи – виртуальный канал. Для этого источнок (отправитель пакетов) направляет адресату специальный пакет – запрос на установление соединения. Пакет – запрос проходит маршрут «прокладывая» виртуальный канал. После подтверждения адресатом готовности приема пакетов, источник реализует их отправку по назначению. Канал может действовать достаточно продолжительное время (говорят – постоянно) или только на время передачи сообщения, то есть в динамическом режиме.
Эти возможности определяют, так называемую, гибкость режима сетей с коммутацией пакетов.
Статьи к прочтению:
Конвейерный (роликовый) запайщик для упаковки пакетов
Похожие статьи:
-
Системы с конвейерной обработкой информации 5 страница
ваемые, связные процессоры. Линейный адаптер (ЛА) подключается с одной стороны к одному из каналов ввода-вывода ЭВМ и с другой стороны к АПД,…
-
Системы с конвейерной обработкой информации 4 страница
RoadRunner построен по гибридной схеме из двухядерных процессоров AMD Opteron и из процессоров IBMCell 8i, смонтированных на специальных блейд-модулях…