Каталог | Индекс раздела |
Назад | Оглавление |
Сетевой администратор (Net) расширяет возможности операционной системы QNX в части передачи сообщений по сети.
Взаимодействуя непосредственно с ядром, Сетевой администратор расширяет возможности IPC, реализованные в системе QNX на основе передачи сообщений, обеспечивая эффективный обмен с удаленными машинами. Кроме того, Сетевой администратор обеспечивает:
Сетевой администратор отвечает за передачу сообщений по всей локальной сети. Стандартные примитивы передачи сообщений, используемые на данном узле, не модифицируются для передачи сообщений на другие узлы. Другими словами, не существует специальных "сетевых" функций Send(), Receive() или Reply().
Нет необходимости включать Сетевой администратор в состав операционной системы. В любое время он может быть запущен или снят с выполнения для обеспечения или отказа от работы в сети.
Запуск Сетевого администратора регистрируется Администратором процессов и ядром. При этом они активируют свой программный код для обеспечения интерфейса с Сетевым администратором. Таким образом, сетевая передача сообщений и создание удаленных процессов является не только уровнем, добавляемым к операционной системе. Сетевая передача сообщений встроена в основу механизма передачи сообщений и примитивов управления процессами.
Эта глубокая интеграция на самом нижнем уровне обеспечивает системе QNX сетевую прозрачность и позволяет отнести ее к классу полностью распределенных систем. Поскольку приложения получают доступ ко всем обслуживающим программам посредством сообщений и Сетевой администратор обеспечивает прозрачное прохождение сообщений по сети, то узлы сети QNX работают вместе, как единый логический компьютер.
Так как Сетевой администратор и ядро независимы друг от друга, то ядро не зависит от используемого сетевого оборудования, а несетевые машины могут сэкономить память, не используя Сетевой администратор в составе своих экземпляров ОС.
Ядро и Администратор процессов взаимодействуют с Сетевым администратором через специальную неблокирующую очередь в памяти. Фактически эта очередь представляет собой список передач, которые должен выполнить Сетевой администратор. Элементы очереди содержат всю информацию для конкретных операций (например, Send(), Reply(), создание виртуального канала, передача сигнала на другой узел и т.д.).
Другим ресурсом, который использует операционная система для обеспечения прозрачной передачи сообщений, является буфер виртуального канала. При создании виртуального канала этому буферу выделяется память для хранения в нем данных в течение всего времени передачи их на другой узел.
На рис.26 представлены потоки данных и управляющих воздействий при передаче сообщений удаленным узлам.
7.2.1. Независимый модуль
7.3. Интерфейс Микроядро/Сетевой администратор
![]() |
Процесс выдает Send() или Reply() удаленному узлу
Рис. 26 |
В случае выдачи Send() или Reply() на удаленный узел, происходят следующие действия:
В случае передачи сигнала или создании ВК заявку в очередь ставит не ядро, а Администратор процессов. При этом Сетевой администратор обеспечивает передачу информации по назначению таким же образом.
На рис. 27 представлены потоки данных и управляющих воздействий при приеме сообщений от удаленного узла.
![]() |
Процесс принимает Send() или Reply() от удаленного узла.
Рис. 27 |
Если удаленный узел послал сообщение так, как это было описано выше, то на узле, принимающем сообщение, будет происходить следующее:
Любые управляющие сообщения, принимаемые Сетевым администратором, немедленно передаются Администратору процессов посредством стандартной функции Send(). Эти управляющие сообщения используются для передачи сигналов и создания ВК.
Подобно Администратору файловой системы и Администратору устройств, в состав Сетевого администратора не входят программы, управляющие работой конкретной аппаратуры. Эти функции реализуются драйверами сетевых карт. Сетевой администратор может поддерживать одновременно несколько сетевых драйверов. Обычно каждый драйвер поддерживает одну сетевую карту. Драйверы и карты могут быть одного или разных типов, например, два драйвера и две карты типа Ethernet или драйвер и карта типа Ethernet и драйвер и карта типа Arcnet.
Интерфейс между Сетевым администратором и драйверами реализуется посредством очередей в совместно используемой памяти. Этот интерфейс обеспечивает максимально возможную производительность. Драйверы реализуют соответствующий протокол сетевой среды.
Драйвер отвечает за упаковку данных, задание последовательности их передачи и повторную передачу, в случае запроса на передачу данных к удаленному физическому узлу с гарантированной надежностью. По умолчанию это относится ко всем примитивам передачи сообщений QNX. Такое решение позволяет легко адаптировать систему QNX к новому сетевому оборудованию и новым сетевым протоколам путем замены или модификации сетевого драйвера.
Каждый узел в локальной вычислительной сети идентифицируется двумя номерами: его физическим идентификатором (ID) узла и логическим идентификатором узла.
Физические ID узлов устанавливаются аппаратно. Сетевые карты взаимодействуют друг с другом, задавая физические ID тех удаленных узлов, с которыми им требуется установить связь. В случае сетей Ethernet и Token Ring этот идентификатор представляет собой большое число, с которым неудобно работать как оператору, так и утилитам. Например, каждая карта Ethernet и Token Ring имеет 48-битовый физический ID узла, соответствующий стандарту IEEE 802. Карты Arcnet имеют 8-битовые ID. Физические ID узлов имеют существенный недостаток: при взаимодействии нескольких сетей адреса могут конфликтовать друг с другом (особенно в случае Arcnet) или иметь совершенно другой формат.
Для разрешения указанной выше проблемы с физическими ID узлов каждому узлу QNX присваивается логический ID узла. Все процессы QNX работают с логическими ID узлов. Физические ID узлов скрыты для процессов, работающих в системе QNX.
Логические ID узлов упрощают лицензирование сетей и приложений. Кроме того, для отдельных утилит, выполняющих опрос узлов сети, эта процедура упрощается, благодаря использованию простого цикла, в котором логический ID узла изменяется от 1 до значения общего количества узлов.
Соответствие между логическими и физическими ID узлов устанавливается Сетевым администратором. Драйвер получает физический ID от Сетевого администратора при запуске его для передачи данных на другой узел. Логические ID узлов обычно принимают последовательные значения чисел, начиная с 1. Например, узлу, имеющему карту Ethernet, может быть присвоен логический ID узла, равный 2, который соответствует физическому ID узла, имеющему значение 00:00:C0:46:93:30.
Логические ID узлов должны быть одинаковыми во всех взаимосвязанных сетях QNX.
Сетевой ID идентифицирует конкретную логическую сеть. Под логической сетью понимается любое аппаратное обеспечение, позволяющее сетевому драйверу напрямую установить связь с сетевым драйвером другого узла. В простейшем случае это может быть последовательный порт, а в самом сложном - сеть Ethernet с мостами .
На рис. 28 показано, что узел 7 имеет две сетевые карты, которые позволяют ему получить доступ к узлам логических сетей 1 и 2. Узлы 8 и 9 имеют по три сетевые карты, связывающие их с сетями 1, 2 и 3.
Обратите внимание на то, что каждый логический ID узла не один и тот же для всех трех логических сетей.
7.4. Сетевые драйверы
7.5. Идентификаторы узлов и сетей
7.5.1. Физические идентификаторы узлов
7.5.2. Логические идентификаторы узлов
7.5.3. Идентификаторы логических сетей
Идентификаторы логических сетей и узлов присваиваются администратором системы. Более подробно об этом см. "Network Installation" в User's Guide. |
![]() |
Несколько физических сетей успешно работают вместе как логические сети.
Рис. 28 |
В том случае, когда узлы объединены более чем одной логической сетью, Сетевому администратору приходится выбирать, какую сеть использовать. Например, на приведенном выше рисунке узел 7 может передать данные узлу 8, используя драйвер, подключенный к сети 1 или к сети 2.
Пропускная способность сети определяется как бысродействием используемых в ней компьютеров, так и скоростью передачи данных, которую может обеспечить сетевое оборудование. Если компьютер выдает данные в сеть быстрее, чем сеть может принять их, то в этом случае общую пропускную способность сети ограничивает используемое сетевое оборудование. Например, два 486-х компьютера, соединенные по сети Arcnet будут ограничены предельной для этой сети скоростью передачи 2,5 Мбит/сек. Если поставить по две сетевые карты Arcnet в каждый компьютер и соединить их отдельными кабелями, то Сетевой администратор сможет передавать данные по двум сетям одновременно. При высокой нагрузке это позволит обеспечить производительность в два раза большую, чем производительность одной сети.
Сетевой администратор будет пытаться сбалансировать нагрузку, выбирая для этого соответствующий сетевой драйвер. Если в приведенном выше примере при передаче данных от узла 7 к узлу 8 по сети 1 инициируется еще одна передача от узла 7 к узлу 8, то для нее будет автоматически выбрана сеть 2.
В том случае, когда узлы объединены двумя или более сетями, существует несколько путей для установления связи между узлами. В случае выхода из строя одной из сетевых карт, в результате которого передача данных по этой сети становится невозможной, Сетевой администратор автоматически перенаправляет весь поток данных по другой сети. Это выполняется "на лету", без вмешательства прикладного программного обеспечения, обеспечивая системе прозрачную сетевую отказоустойчивость. Кроме того, при использовании нескольких сетей с независимым кабельным соединением, система в целом будет защищена от случайного обрыва кабеля.
Можно создать систему-тандем, в которой две машины соединены высокоскоростной сетью, используемой для нормальной работы, и более дешевой низкоскоростной сетью (например, последовательным соединением), которая остается в резерве. В случае выхода из строя первой сети передача данных не прервется, хотя пропускная способность системы, естественно, понизится.
7.6.1. Балансировка нагрузки
7.6.2. Отказоустойчивость
Назад | Оглавление |
Каталог | Индекс раздела |