Технологии открытых систем
Функции сетевого уровня:
- установление сетевого соединения для передачи данных объектов транспортного уровня в форме блоков данных;
- предоставление сетевых адресов, используемых для идентификации транспортных объектов;
- обеспечение независимости передачи данных от используемых средств передачи;
- предварительное согласование параметров качества обслуживания между пользователем-передатчиком и поставщиком сетевой службы.
- управление скоростью передачи блоков данных сетевого уровня со стороны приемника информации;
- сквозная передача, т. е. доставка блоков данных сетевого уровня в абонентских системах, причем все функции по выбору маршрута передачи и коммутации (ретрансляции) осуществляются на сетевом уровне;
- передача последовательности отдельных срочных блоков данных сетевого уровня. Эти срочные блоки данных имеют ограниченную длину, и их передача через точки доступа к службе осуществляется по правилам, отличным от правил передачи нормальных данных;
- обнаружение и исправление ошибок передачи данных;
- повторная установка соединения.
- разъединение сетевого соединения либо пользователями сетевого уровня, либо поставщиками сетевой службы.
Одной из важных задач сетевого уровня является маршрутизация. Протоколы маршрутизации выбирают оптимальные маршруты через последовательность соединенных между собой подсетей.
Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети с соответствующей типовой топологией, например звездообразной, шинной и т. д. Это жесткое ограничение не позволяет строить сети с развитой структурой, например, сети, объединяющие несколько сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между узлами. Можно было бы усложнять протоколы канального уровня для поддержания петлевидных избыточных связей, но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы, с одной стороны, сохранить простоту процедур передачи данных для типовых топологий, а с другой - допустить использование произвольных топологий, вводится дополнительный сетевой уровень.
На сетевом уровне сам термин "сеть" наделяют специфическим значением. В данном случае под "сетью" понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий, использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.
Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня.
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями, каждый раз выбирая подходящий маршрут. Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием при выборе маршрута является время передачи данных по этому маршруту; оно зависит от пропускной способности каналов связи и интенсивности трафика, которая может изменяться с течением времени. Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например надежности передачи.
Сетевой уровень решает также задачи согласования разных технологий, упрощения адресации в крупных сетях и создания надежных и гибких барьеров на пути нежелательного трафика между сетями.
На сетевом уровне определяются два вида протоколов:
Сетевые протоколы реализуют продвижение пакетов через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня | Протоколы обмена маршрутной информацией (протоколы маршрутизации) - с помощью них маршрутизаторы собирают информацию о топологии межсетевых соединений |
Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов.
Транспортный уровень обеспечивает приложениям или верхним уровням модели - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется.
Назначение транспортного уровня: обеспечение надежного, последовательного обмена данными между пользователями с использованием сетевого уровня и управление потоком данных, чтобы гарантировать правильный прием блоков данных.
Функции транспортного уровня:
- установление транспортного соединения между пользователями;
- отображение транспортного адреса на сетевой;
- передача блоков данных без ограничения их длины и содержимого;
- деление длинных сообщений, поступающих от верхних уровней, на пакеты данных;
- управление темпом обмена;
- формирование первоначальных сообщений из набора пакетов, полученных через нижние уровни;
- определение качества сервиса, которое требуется обеспечить посредством сетевого уровня, включая обнаружение и устранение ошибок;
- разъединение транспортного соединения.
Транспортный уровень оптимизирует использование имеющейся сетевой службы для обеспечения требуемых сеансовыми объектами характеристик передачи с минимальной стоимостью. На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Модель взаимодействия открытых систем определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг:
- срочностью;
- возможностью восстановления прерванной связи;
- наличием средств объединения нескольких соединений между различными прикладными протоколами через общий транспортный протокол;
- способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.
Выбор класса сервиса транспортного уровня определяется, с одной стороны, тем, в какой степени задача обеспечения надежности решается самими приложениями и протоколами более высоких, чем транспортный, уровней, а с другой стороны, этот выбор зависит от того, насколько надежной является система транспортировки данных в сети, обеспечиваемая уровнями, расположенными ниже транспортного - сетевым, канальным и физическим. Так, например, если качество каналов передачи связи очень высокое и вероятность возникновения ошибок, не обнаруженных протоколами более низких уровней, невелика, то разумно воспользоваться одним из облегченных сервисов транспортного уровня, не обремененных многочисленными проверками и другими приемами повышения надежности. Если же транспортные средства нижних уровней изначально очень ненадежны, то целесообразно обратиться к наиболее развитому сервису транспортного уровня, который работает, используя максимум средств для обнаружения и устранения ошибок, - с помощью предварительного установления логического соединения, контроля доставки сообщений по контрольным суммам и циклической нумерации пакетов, установления тайм-аутов доставки и т. п.
Функционирование транспортного уровня разбивается на три фазы:
- Фаза установления соединения.
- Фаза передачи данных.
- Фаза разъединения соединения.
В фазе установления соединения выполняется:
- выбор сетевого соединения, наиболее удовлетворяющего требованиям сеансового объекта с учетом стоимости и качества обслуживания;
- решение о целесообразности объединения или расщепления транспортного соединения с целью оптимизации использования сетевых соединений;
- выбор оптимального размера транспортного блока данных протокола;
- выбор функций, которые будут задействованы в фазе передачи данных;
- отображение транспортных адресов в сетевые.
В фазе передачи данных осуществляется доведение транспортных блоков данных службы до сеансовых объектов-получателей по транспортному соединению передачей транспортных блоков данных протокола. При этом могут быть задействованы следующие функции, использование каждой из которых согласуется в фазе установления соединения:
- упорядочение;
- управление потоком;
- обнаружение ошибок;
- исправление ошибок;
- передача срочных данных;
- разграничение транспортных блоков данных службы;
- идентификация транспортных соединений.
В фазе разъединения соединения выполняются следующие функции:
- оповещение о причине разъединения;
- идентификация разъединяемого транспортного соединения передачи данных.
Фазы функционирования транспортного уровня и выполняемые функции представлены на рис. 5.7.
Все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем.
Протоколы нижних четырех уровней обобщенно называют сетевым транспортом, или транспортной подсистемой, т. к. они полностью решают задачу транспортировки сообщений с заданным уровнем качества в составных сетях с произвольной топологией и различными технологиями. Остальные три верхних уровня решают задачи предоставления прикладных сервисов на основании имеющейся транспортной подсистемы.
Сеансовый уровень устанавливает, управляет и завершает сеансы взаимодействия между прикладными задачами.
Назначение сеансового уровня - обеспечивать управление диалогом для того, чтобы фиксировать, какая из сторон является активной в настоящий момент, а также предоставлять средства синхронизации.
Функции сеансового уровня:
- формирование сквозного канала связи между взаимодействующими прикладными программами;
- установление и расторжение сеансовых соединений;
- выбор режима передачи между прикладными процессами;
- управление очередностью передачи данных и их приоритетом;
- обмен нормальными данными;
- обмен срочными данными;
- неделимая служба;
- управление взаимодействием (маркеры);
- синхронизация сеанса (контрольные точки);
- восстановление сеанса.
Одна из задач сеансового уровня - преобразование имен в сетевые адреса, так что прикладные программы могут использовать имена для связи с устройствами.
Неделимая служба - услуга сеансового уровня, посредством которой сеансовые блоки данных службы, посланные по сеансовому соединению, не предоставляются представительному объекту-получателю до тех пор, пока это явно не разрешено представительным объектом-отправителем.
Управление взаимодействием - услуга сеансового уровня, позволяющая взаимодействующим представительным объектам явно управлять очередностью выполнения некоторых управляющих функций.
Выделяют следующие виды взаимодействия объектов:
Двустороннее одновременное (дуплексное) взаимодействие | Режим взаимодействия, при котором оба взаимодействующих представительных объекта имеют право одновременно передавать и принимать данные |
Двустороннее поочередное (полудуплексное) взаимодействие | Режим взаимодействия, при котором взаимодействующие представительные объекты поочередно получают право передавать данные |
Одностороннее (симплексное) взаимодействие | Режим взаимодействия, при котором один из представительных объектов только передает данные, а другой - только принимает |
Синхронизация сеансового соединения - услуга сеансового уровня, позволяющая представительным объектам определять и идентифицировать точки синхронизации, осуществлять повторную установку сеансового соединения в заранее определенное состояние и согласовывать точку повторной синхронизации.
На сеансовом уровне обеспечиваются средства, необходимые для организации и синхронизации диалога между взаимодействующими представительными объектами и для управления информационным обменом между ними. Для этого на сеансовом уровне устанавливаются сеансовые соединения между двумя представительными объектами и поддерживается взаимодействие по обмену данными. Сеансовые соединения устанавливаются по запросу представительного объекта, передаваемому в сеансовой точке доступа к службе, и разъединяются либо представительными, либо сеансовыми объектами. В установленном сеансовом соединении поддерживается диалог между представительными объектами даже при возможных потерях данных на транспортном уровне.
В каждый момент времени между сеансовыми и транспортными соединениями существует взаимно однозначное соответствие.
Передача срочных сеансовых блоков данных службы обычно производится с использованием передачи срочных транспортных данных.
В случае возникновения отказов в транспортном соединении сеансовый уровень может выполнять функции, необходимые для повторного установления транспортного соединения с целью поддержки продолжающего существовать сеансового соединения.
Сеансовые объекты оповещают (с использованием услуги оповещения об особых состояниях) представительные объекты о том, что служба была прервана, и восстанавливают службу только по указанию представительного объекта. Это позволяет представительным объектам провести повторную синхронизацию и продолжить функционирование с некоторого согласованного состояния.
Разъединение сеансового соединения в нормальных условиях производится без потерь данных по запросу представительных объектов. Сеансовый уровень также содержит функции для преждевременного разъединения сеансового соединения с возможными потерями данных.
Сеансовые протоколы могут осуществлять некоторые функции по управлению уровнем, такие, как активация и контроль ошибок.
На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, обычно функции этого уровня объединяют с функциями прикладного уровня и реализуют в одном протоколе.
Представительный уровень (уровень представления данных) отвечает за то, чтобы информация, посылаемая из прикладного уровня одной системы, была читаемой для прикладного уровня другой системы.
Назначение представительного уровня - обеспечение независимости прикладных взаимодействующих объектов от использования конкретного синтаксиса (кодирования) передаваемой информации.
Функции представительного уровня:
- запрос установления сеанса;
- выбор синтаксиса;
- согласование и повторное согласование синтаксиса;
- преобразование синтаксиса;
- передача данных;
- запрос завершения сеанса.
Представительный уровень имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб.
При необходимости представительный уровень осуществляет трансляцию между множеством форматов представления информации путем использования общего формата представления информации.
На представительном уровне обеспечивается общее представление данных, используемых между прикладными объектами. Таким образом обеспечивается независимость прикладных объектов от используемого синтаксиса (т. е. правил кодирования передаваемой информации). Синтаксическая независимость может быть достигнута двумя способами:
- Представительный уровень обеспечивает общие синтаксические элементы, используемые прикладными объектами;
- Прикладные объекты могут использовать любой синтаксис, а на представительном уровне в этом случае осуществляется преобразование между различными формами синтаксиса и общим синтаксисом, необходимым для связи между прикладными объектами. Это преобразование выполняется в открытой системе прозрачно для других открытых систем и поэтому не оказывает влияния на стандартизацию протоколов представительного уровня.
В среде взаимодействия открытых систем не существует единого синтаксиса передачи данных. Используемый в представительном соединении синтаксис передачи согласовывается между взаимодействующими представительными объектами. Для представительного объекта необходимо определить как синтаксис соответствующего прикладного объекта, так и согласованный синтаксис передачи. Для протокола представительного уровня необходимо задать только синтаксис передачи.
Для удовлетворения требований прикладных объектов на представительном уровне может использоваться любой синтаксис передачи, подходящий для этой цели. Для достижения других целей (например, уменьшения объема данных, включающего снижение стоимости передачи) может производиться преобразование синтаксиса.
Прикладной уровень является границей между процессами сети и прикладными (пользовательскими) процессами.
Назначение прикладного уровня - обеспечить доступ прикладных процессов к среде передачи информации для обеспечения их взаимодействия при решении общей задачи.
Функции прикладного уровня:
- идентификация партнеров, предполагающих взаимодействовать (например, с помощью имен, адресов, описаний);
- определение текущей готовности партнеров, предполагающих взаимодействовать;
- установление полномочий для передачи;
- согласование механизма секретности;
- аутентификация партнеров, предполагающих взаимодействовать;
- определение методологии назначения цен, достаточности ресурсов, приемлемого качества обслуживания (например, времени ответа, подходящего уровня ошибок);
- синхронизация взаимодействующих приложений;
- выбор дисциплины диалога, включающей процедуры инициализации и завершения;
- передача прикладных данных;
- согласование ответственности за обнаружение ошибок и процедур управления целостностью данных;
- идентификация ограничений по синтаксису данных (множество символов, структуры данных).
Прикладной уровень - это самый близкий к пользователю уровень модели взаимодействия открытых систем. Он отличается от других уровней тем, что не обеспечивает услуг ни одному из других уровней модели; однако он обеспечивает им прикладные процессы, лежащие за пределами масштаба модели взаимодействия открытых систем. Примерами таких прикладных процессов могут служить программы обработки крупномасштабных таблиц, программы обработки слов, программы банковских терминалов и т. д.
Прикладной уровень содержит все функции, отсутствующие на более низких уровнях, но необходимые для взаимодействия открытых систем. Когда предполагается взаимодействие конкретных экземпляров прикладных процессов, процесс-инициатор вызывает экземпляр прикладного объекта своей открытой системы. Затем устанавливается ответственность этого экземпляра прикладного объекта за установление соединения с экземпляром прикладного объекта открытой системы-получателя. Этот процесс осуществляется путем вызова экземпляров объектов на нижних уровнях. После установления соединения между прикладными объектами прикладные процессы могут взаимодействовать.
Прикладной объект состоит из элемента пользователя и элемента прикладной службы. Выделяются два типа элементов прикладной службы:
Общие элементы - элементы, которые предоставляют возможности, необходимые множеству приложений | Специальные элементы - элементы, которые предоставляют возможности, требуемые для обеспечения дополнительных услуг конкретным приложениям (например, передача файлов, банковские операции и т. д.) |
Прикладной уровень определяет сетевые прикладные программы, которые обслуживают файлы. Многие сетевые программы-утилиты являются частью прикладного уровня.