В настоящее время при анализе сетевого взаимодействия широко используется архитектурный подход, при котором функции, выполняются сетью, представляются иерархическими. Согласно данным представлениям сетевые системы описываются в контексте т.н. Эталонной модели взаимодействия открытых систем (Open System Interconnection (OSI) Reference Model), которую разработала Международная организация по стандартизации (ISO). Модель OSI состоит из семи уровней программного обеспечения и (или) аппаратных средств, каждый из которых соответствует определенному уровню абстракции.
Модель OSI/ISO стандартизирует обмен информацией между системами. Если две системы используют один и тот же набор стандартов, то они открыты друг для друга. В реальной сети источниками и приемниками информации являются прикладные процессы, имеющие различную природу. Например, в качестве токого процесса может выступать оператор, обслуживающий банковский терминал или программаное обеспечение для управления базой данных, управления тех процессами на предприятиях. Функции прикладных процессов, которые связаны с обеспечением взаимодействия, называются прикладными объектами. С точки зрения OSI такие объекты являются частями открытых систем. С другой стороны, для осуществления взаимодействия прикладными объектами необходим обмен данными между системами, частями которых эти объекты являются, для чего необходима некая физическая среда (кабели, радиоканал и т.д.).
Таким образом, модель OSI/ISO основана на четырех элементах:
Термин «соединение» в данном контексте имеет широкое толкование. Его следует понимать как кооперацию прикладных объектов, принимающую различные формы. Это может быть и межпроцессорная связь, относящаяся к обмену информацией и синхронизации действий между прикладными процессами; представление данных, относящееся ко всем аспектам создания и поддержания описаний и преобразований данных; управление ресурсами, с помощью которых инициируются прикладные процессы OSI, обеспечение целостности и сохранности данных во время функционирования открытых систем. Модель OSI не ограничивается только передачей информации между системами, но затрагивает вопросы взаимодействия для решения общих задач.
Функции взаимосвязи, образующие открытую систему, в своей совокупности чрезвычайно сложны. Поэтому в модели ISO они структурируются путем разбиения на уровни. При этом каждая открытая система представляется в виде иерархически расположенных подсистем (рис. ). Подсистемы, выполняющие схожие наборы функций взимосвязи, образуют уровень. Для локализации функций используется понятие объекта. Таким образом, подсистема N-уровня (N-подсистема) состои т из одного или нескольких N-объектов.
За исключением верхнего, каждый N-уровень обеспечивает для объектов (N+1)-уровня N-услуги (N-сервис, N-служба). В том случае, когда N-объект не может самостоятельно обеспечить полную поддержку услуг, запрашиваемых (N+1)-объектом, он вызывает другие N-объекты для помощи в обеспечении запроса на обслуживание. Для выполнения такого взаимодействия N-объекты любого уровня, исключая нижний, связываются посредством набора услуг, предоставляемых (N-1)-уровнем (Рис ). Предполагается, что объекты нижнего уровня связываются непосредственно через физические средства, которые их соединяют. Услуги N-уровня предоставляются путем выполнения N-Функций внутри N-уровня, а также использования услуг, получаемых от (N-1)-уровня.
Взаимосвязь между N-объектами осуществляется подж управлением одного или нескольких N-протоколов. Объекты и протоколы одного уровня показаны на Рис. Объекты (N+1)-уровня могут связываться между собой только с помощью услуг, предоставляемых объектами N-уровня. Возможны случаи, когда услуги, предоставляемые N-уровнем, не позволяют обеспечить прямое взаимодействие между всеми (N+1)-объектами. В таком случае взаимодействие может осуществляться, если некоторый другой (N+1)-объект выполняет функцию ретранслятора (Рис). Тот факт, что связь ретранслируется цепочкой (N+1)-объектов, неизвестен ни N-уровню, ни (N+2)-уровню.
Функции уровней
Произвольный уровень может быть описан теми функциями, которые в нем выполняются. Эти функции в общем случае включают в сябя:
Выбор протокола
На N-уровне могут использоваться несколько протоколов. Для организации N-соединения необходимо, чтобы N-объекты выбрали единый N-протокол, иначе они просто не поймут друг друга. Это может быть сделано как до организации соединения, так и во время установления соединения использованием идентификатора N-протокола.
Установление и расторжение соединения
Для установления N-соединения необходимо, чтобы (N-1)-уровень представил (N-1)-соединение (услуги по передаче данных N-уровня) и оба N-объекта были способны выполнить выполнить обмен данными по протоколу.
Для выполнения первого требования необходимо, чтобы (N-)-уровень имел соединение, представленное (N-2)-уровнем и т.д. Это же справедливо по отношению ко всем нижележащим уровням до тех пор, пока не будет найдено подходящее соединение либо когда не будет достигнута граница с физическими средствами для OSI.
Расторжение N-соединения в нормальных условиях производится по инициативе одного из связанных с ним (N+1)-объектов. Расторжение N-соединения может быть инициировано одним из поддерживающих его N-объектов в случае сбоя, ошибок в N-уровне или нижележащих уровнях. В зависимости от условий расторжение может как привести так и не привести к потере данных N-пользователя.
N- и (N-1)-соединения могут быть независимыми. Это означает, что возможны две ситуации: расторжение N-соединения не приводит к расторжению (N-1)-соединения; расторжение (N-1)-соединения не приводит к расторжению N-соединения. В первом случае сохраненное (N-1)-соединение может быть использовыано для установления нового N-соединения. Второй случай связан с возможностью функционирования (восстановления) N-соединения в том случае, когда по тем или иным причинам (N-)-соединение оказалось расторгнутым. Такое восстановление обычно связано с организацией нового (N-1)-соединения и передачей по нему данных, идентиитфицирующих сохраненное N-соединение.
Мультиплексирование и рассщепление соединений
Между N- и (N-1)-соединениями возможны следующие отношения (Рис. ):
При мультиплексировании необходимо осуществлять функции, связанные с идентификацией данных, относящихся к разным N-соединениям, поскольку эти данные поступают на N-уровень ``вперемешку'', управлять каждым N-соединением в отдельности, чтобы не превысить пропускной способности партнера и осуществлять планирование - предусматривать появление новых N-соединений, которые отображаются в существующее (N-1)-соединение.
Расщепление связано с управлением (N-1)-соединениями, используемыми для одного N-соединения. Это управление включает всебя принятие решений о том, сколько (N-1)-соединений и с каким характеристиками необходимо запрашивать. Передаваемые по N-соединению данные дробятся и передаются по разным (N-1)-соединениям. Следовательно, порядок их поступления к адресату может отличаться от порядка передачи. Для сохранения последовательности данных необходимы специальные функции контроля и восстановления.
Передача нормальных (обычных) данных
Взаимодействие N-объектов осуществляется с помощью обмена N-протокольными блоками данных (N-PDB), которые содержат управляющую информацию N-протокола и, возможно, данные пользователя. Эти данные генерируются (N+1)-объектами. Они передаются по N-соединению прозрачно без какого бы то ни было изменения их структуры.
Данные пользователя могут передаваться как в фазе передачи данных, так и в фазе установления и расторжения N-соединения. В фазе передачи данных используются функции управления потоком, сегментирования, блокирования и сцепления данных, сериализации и защиты от ошибок.
Передача срочных (внеочередных) данных
Срочные данные (urgent data) - данные, которые обрабатываются с более высоким приоритетом по отношению к обычным данным. Срочные данные обычно используются для целей сигнализации, экстренного уведомления о сбоях и т.д. Поток срочных данных не зависит от состояния потока обычных данных. Можно представить, что соединение состоит как бы из двух подканалов, один - для нормальных данных, другой - для срочных. Каждый из подканалов управляется независимо. Такая модель справедлива при условии, что на приемном конце срочные данные появляются не позже нормальных, перед которыми они были переданы. Поскольку предполагается, что срочный поток используется сравнительно редко и для передачи небольших порций данных, для управления срочным потоком могут ипользоваться упрощенные механизмы управления потоком.
Управление потоком данных
Различают два типа управления потоком: протокольное, при котором регулируется скорость передачи N-PDB между N-объектами, и интерфейсное, при котором регулируется скорость передачи данных между (N-1) и N-объектом.
При протокольном управлении подразумевается, что протокольная управляющая информация в N-PDB содержит в том или ином виде сведения о способности партнера принять определенное количество данных. Интерфейсное управление потоком прямо не относится к функциям взаимосвязи. Поэтому при описании механизма такого управления обычно используют локальные (справедливые только в пределах одной системы) соглашения и ограничения.
Сегментирование, блокирование и сцепление данных
Протокольные блоки данных (PDB) различных уровней обычно отличаются по размерам. Может оказаться, что размер (N+1)-PDB больше максимального размера N-PDB. В этом случае для передачи (N+1)-PDB по N-соединению необходимо в N-уровне выполнить сегментирование, т.е разбиение (N+1)-PDB на на последовательные сегменты с длиной, не превышающей размер поля данных N-PDB. Для сохранения идентичности (N+1)-PDB необходимо вставлять в N-PDB, содержащими сегменты (N+1)-PDB, специальные данные, позволяющие прои звести сборку исходных (N+1)-PDB при приеме.
Блокирование - функция N-уровня, позволяющая объединить несколько (N+1)-PDB в один. Это может потребоваться в том случае, когда максимальная длина (N+1)-PDB много меньше длины поля данных N-PDB.
Сцепление - функция (N+1)-уровня, позволяющая объеденить несколько (N+1)-PDB В один блок. При этом N-уровень воспринимает результат сцепления как один (N+1)-PDB (и может произвести сегментацию, как ему удобно).
Сериализация (организация последовательности)
Эта функция связана с тем, что (N-1)-услуги, предоставляемые (N-1)-уровнем, могут не гарантировать доставку данных в том же порядке, в каком они были представлены N-уровнем. Если N-уровень нуждается в том, чтобы сохранить порядок данных, передаваемых через (N-1)-уровень, он должен содержать механизмы сериализации (организации последовательности). Сериализация может потрбовать дополнительной N-протокольной управляющей информации, например порядковых номеров фрагментов передавемых анных.
Защита от ошибок
Функции защиты от ошибок состоят из трех компонентов: подтверждения, обнаружения ошибок и уведомления о них, возврата в исходное состояние.
Функция подтверждения может использоваться N-объектами для достижения более высокой вероятности обнаружения потери N-PDB, чем это обеспечивает (N-1)-уровень. Каждый N-PDB, передаваемый между N-объектами-корреспондентами, должен идентифицироваться единственным образом так, чтобы получатель мог информировать отправителя о его приеме. Функция подтверждения также способна установить факт неприема N-PDB и принять соответствующие восстановительные меры.
Схема однозначной идентификации N-PDB может также использоваться для поддержки других функций, таких как сегментация и сериализация.
Функция обнаружения ошибок и уведомления о них может использоваться N-протоколом для обеспечения более высокой вероятности обнаружения ошибок и искажений PDB, чем это обеспечивается услугами (N-1)-уровня. Обнаружение ошибок и уведомление могут потребовать, чтобы в N-протокольную управляющую информацию были включены дополнительные идентификаторы.
Некоторые услуги требуют возврата в исходное сотояние для восстановления после потенри синхронизации между N-объектами-корреспондентами. Функция возврата в исходное сотояние устанавливает N-объекты-корреспонденты в заранее определенное состояние с возможной потерей или дублированием данных.
Маршрутизация
Функция маршрутизации в N-уровнеобеспечивает прохождение данных через цепочку N-объектов. Тот факт, что передача осуществляется спомощью промежуточных объектов, не известен ни нижним, ни верхним уровням. Объект, участвующий в маршрутизации, может иметь таблицу маршрутизации.
Перед подачей в сеть прикладные данные разбиваются на пакеты. Пакет (packet) -©это единица информации, передаваемая между устройствами сети как единое целое. Пакет проходит последовательно через все уровни программного обеспечения. На каждом уровне к пакету добавляется некоторая информация, форматирующая или адресная, которая необходима для успешной передачи данных по сети.
На принимающей стороне пакет проходит через все уровни в обратном порядке. Аппаратура и программное обеспечение на каждом уровне читает информацию пакета, затем удаляет информацию, добавленную к пакету на этом же уровне отправляющей стороной, передает пакет следующему уровню. Когда пакет дойдет до прикладного уровня, вся адресная информация будет удалена и данные примут свой первоначальный вид. Таким образом, за исключением самого нижнего уровня сетевой модели, никакой иной уровень узла-отправителя не может непосредственно послать информацию соответствующему уровню узла-получателя. Информация на узле-отправителе должна пройти через все уровни сверху вниз. Затем она передается по сетевому кабелю на узел-получатель и проходит все уровни снизу вверх, пока не достигнет того же уровня, с которого была послана на узле-отправителе.