Владо Дамьяновски - CCTV. Библия видеонаблюдения. Цифровые и сетевые технологии
Еще одна проблема, которая возникает на канальном уровне (а также и на большинстве других высших уровнях) заключается в том, что необходимо регулировать поток данных, чтобы медленный приемник не «захлебнулся» в потоке данных от более быстрого передатчика. Для этого используются различные способы управления потоком данных. Зачастую для удобства на этом уровне интегрируются коррекция ошибок и управление потоком данных.
Если линия связи может передавать информацию в двух направлениях, то возникает еще одна проблема, которая должна решаться на канальном уровне. Дело в том, что фреймы, подтверждающие получение данных, переданных от А к В, начинают состязаться за доступ к линии связи с фреймами данных, которые передаются от В к А. Здесь было разработано довольно хитроумное решение в форме одновременной передачи прямых и обратных фреймов.
3. Сетевой уровень
Сетевой уровень отвечает за то, каким образом с помощью серии обменов данными по различным каналам передачи информация может быть доставлена от узла одной сети к узлу другой сети. Этот уровень определяет адресацию и маршрутизацию сети Интернет. Основная проблема на этом уровне заключается в определении путей маршрутизации, по которым пакеты с данными идут от отправителя к получателю.
Маршрутизация пакетов может основываться на статических таблицах, которые жестко привязаны к сети и редко изменяются, также она может определяться каждый раз при начале нового обмена данными, например, при открытии терминальной сессии. Наконец, маршрутизация пакетов может быть динамической и определяться каждый раз по-новому для нового пакета, учитывая загрузку сетей.
Если в какой-то подсети одновременно скапливается много пакетов, то они будут мешать друг другу, вызывая перегрузку. Контроль перегрузки тоже осуществляется на сетевом уровне.
Поскольку операторы подсетей должны получать вознаграждение за свою работу, то очень часто на сетевом уровне ведется учет переданных пакетов. Обязательно учитывается количество пакетов или битов, посланных каждым пользователем, которые затем используются для взаимных расчетов между операторами. Когда пакет пересекает национальные границы стран с разными тарифами, взаимные расчеты между операторами сетей значительно усложняются.
Когда пакет данных отправляется из одной сети в другую, то возникает множество проблем. Системы адресации, которые используются в разных сетях, могут не совпадать. Одна сеть может отказать в приеме пакета из-за слишком большого размера, который в данной сети неприемлем. Также могут различаться протоколы, и есть много других проблем, но они должны решаться именно на сетевом уровне, который отвечает за взаимодействие разнородных сетей.
В широковещательных сетях проблема маршрутизации решается просто, поэтому здесь сетевой уровень достаточно тонок или вообще отсутствует.
4. Транспортный уровень
Транспортный уровень отвечает за качество и характер доставки данных. На этом уровне определяется, когда и как осуществляется повторная передача данных, чтобы осуществить гарантированный обмен данными. Основная функция транспортного уровня заключается в том, чтобы принять данные с сеансового уровня, при необходимости разбить их на меньшие фрагменты и передать их сетевому уровню, а затем проследить, чтобы все фрагменты информации дошли по назначению. Более того, все это должно быть сделано максимально эффективным способом, и нужно изолировать сеансовый уровень от неизбежных изменений технологий, использующихся в сетевом аппаратном обеспечении.
В обычных условиях транспортный уровень создает одно сетевое соединение для каждого транспортного соединения, которое требует сеансовый уровень. Если транспортное соединение должно осуществляться с высокой скоростью передачи данных, то транспортный уровень может создавать множество сетевых соединений, распределив поток данных между ними для повышения скорости передачи данных.
И наоборот, когда создание и поддержание сетевых соединений обходится дорого, транспортный уровень может мультиплексировать несколько транспортных соединений в одном сетевом соединении, чтобы уменьшить издержки. В любом случае требуется транспортный уровень, чтобы сделать мультиплексирование прозрачным для сеансового уровня.
Транспортный уровень также определяет тип сервиса, который предоставляется сеансовому уровню и, в конечном счете, пользователям сети. Наиболее популярным видом транспортного соединения является канал типа «точка-точка», свободный от ошибок, который доставляет пакеты в том порядке, в котором они посылаются. Впрочем, существуют и другие виды транспортных соединений, которые не гарантируют порядок доставки по нескольким адресатам. Тип сервиса определяется при установлении соединения.
Транспортный уровень является тем самым уровнем, который действительно связывает отправителя и получателя. Другими словами, программа, исполняющаяся на компьютере-отправителе, ведет обмен данными с аналогичной программой на компьютере-получателе, используя заголовки сообщений и служебные сообщения.
Многие хосты работают в многозадачном режиме, а это означает, что каждый из них одновременно устанавливает несколько соединений. Таким образом, требуется инструмент, позволяющий различать принадлежность сообщений к различным соединениям. Это можно делать с помощью транспортного заголовка.
Кроме мультиплексирования нескольких потоков сообщений в один канал, транспортный уровень должен уметь устанавливать и разрывать соединения по сети. Для этого требуется какой-либо способ присваивания имен, так чтобы процесс на одной машине мог описать то, с кем он собирается вести обмен данными. Также должен быть способ управления потоком данных, чтобы более быстрый хост не «затопил» потоком информации более медленный. Управление потоком данных здесь отличается от управления потоком данных между коммутаторами, но принципы используются те же.
5. Сеансовый уровень
Сеансовый уровень описывает организацию последовательностей данных, больших, чем пакеты, с которыми имеют дело нижние уровни модели OSI. Этот уровень определяет, каким образом пакеты запросов и ответов образуют пары при процедуре удаленного вызова. Сеансовый уровень позволяет пользователям на разных компьютерах устанавливать сеансы связи между ними. Сеанс позволяет получить обычное транспортное соединение, как на транспортном уровне, но также дает дополнительные сервисы, полезные в некоторых приложениях. Сеанс может использоваться для того, чтобы пользователь мог подключиться к удаленной системе с разделением времени или для передачи файла между двумя компьютерами.
Сеансовый уровень управляет диалогом между двумя устройствами. Сеансы позволяют передавать данные в обоих направлениях одновременно или по очереди. Если данные в каждом направлении нужно передавать по очереди, то сеансовый уровень может помочь отслеживать, чья очередь передавать данные.
Управление маркерами — еще один сервис, связанный с сеансовым уровнем. Для некоторых протоколов важно, чтобы одна и та же операция не выполнялась одновременно на двух компьютерах. Для этого используются маркеры на сеансовом уровне. Только та сторона, которая получила и удерживает маркер, может выполнять операцию, связанную с этим маркером.
Еще одним сервисом сеансового уровня является синхронизация. Представьте себе такую ситуацию, когда необходимо передать очень большой файл по сети. При этом среднее время передачи этого файла составляет 2 часа, а в сети происходят сбои с периодичностью в час. После каждого сбоя передача файла прерывается и начинается снова с самого начала. Чтобы избежать возникновения таких ситуаций сеансовый уровень предоставляет средства синхронизации, которые позволяют организовывать контрольные точки в длинных передачах, чтобы в случае сбоев вернуться к передаче от последней контрольной точки, а не с самого начала.
6. Уровень представления
Уровень представления характеризует синтаксис передаваемых данных. Этот уровень описывает то, каким образом устройства с различными математическими форматами записи обмениваются числами с плавающей десятичной запятой. Уровень представления выполняет определенные функции, которые требуются настолько часто, что имеет смысл для того использовать универсальное решение, а не заставлять пользователя каждый раз находить свое решение. Так, в отличие от нижних уровней, которые перемещают биты между устройствами, уровень представления занимается синтаксисом и семантикой передаваемой информации.
Типичным примером сервиса уровня представления является кодирование данных стандартным, заранее определенным способом. Большинство пользовательских программ обмениваются не случайными бинарными строками, а списками имен, счетами, ценами, расписаниями и т. д. Эти данные представлены символьными строками, целыми числами, числами с плавающей десятичной запятой и структурами данных, состоящих из более простых элементов. Разные компьютеры могут использовать разные кодировки для представления символьных строк, целых чисел и т. д. Для того чтобы компьютеры с разными видами представления информации могли общаться между собой, структуры данных, которыми они обмениваются, должны быть определены в абстрактном виде в соответствии со стандартной кодировкой, которая используется в сети. Уровень представления занимается управлением этими абстрактными структурами данных и преобразованием из представления информации, которое используется внутри компьютера, в стандартное представление, которое используется в сети.