УДК 004.42 Кукушкин А.М.
Россия, Пенза, Пензенский государственный университет
ОРГАНИЗАЦИЯ ВИРТУАЛЬНЫХ КАНАЛОВ ПЕРЕДАЧИ ДАННЫХ В ЗАЩИЩЕННЫХ СИСТЕМАХ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ИНФОРМАЦИИ
Аннотация. Статья содержит описание технологии построения виртуальных каналов передачи данных, предназначенных для повышения производительности и структуризации обработки информации в распределенных системах.
Ключевые слова: виртуальный канал, информационная система, распределенная система, производительность, технология, шифрование, передача данных, структуризация.
В настоящее время большое количество систем являются распределенными. Интеграция информационных систем является одним из определяющих принципов развития вычислительной техники на сегодняшний день.
При проектировании распределенных систем особое внимание следует уделить разработке механизма обмена данными между узлами системы. Выбранный механизм определяет эффективность передачи данных, а именно:
скорость обмена данными между узлами системы; защищенность канала передачи данных; помехозащищенность канала передачи данных; трудоемкость разработки системы.
Передача данных по каналу связи представляется разработчику прикладных программ больше логическим процессом, чем физическим. Другими словами, разработчику важен сам факт эффективной передачи данных, а не то, каким образом осуществляется передача.
В данной статье исследуется организация логических каналов передачи данных. Обычно подразумевается, что логические каналы создаются внутри одного физического канала средствами протоколов, например, сетевого уровня модели OSI. В рамках данной статьи предлагается создание нескольких логических каналов внутри одного логического канала передачи данных. Как обычно, созданные логические каналы принято называть виртуальными. Использование предложенной модели построения таких каналов может повысить эффективность построения распределенных систем передачи данных, в состав которых входят многопоточные приложения.
Еще одним положительным обстоятельством использования виртуальных каналов передачи данных является то, что виртуальные каналы, оснащенные эффективным интерфейсом, позволяют разработчику системного программного обеспечения сосредоточиться на разработке локальной части программного обеспечения, максимально абстрагируясь от механизма передачи данных между узлами системы. Таким образом, виртуальные каналы позволяют:
увеличить производительность работы подсистемы передачи данных; инкапсулировать фактическую организацию передачи данных.
Виртуальный канал - логический канал, проходящий через всю коммуникационную сеть и обеспечивающий передачу блоков данных с сохранением их исходной последовательности. Эти каналы могут быть реализованы на физическом, канальном, сетевом и транспортном уровнях модели OSI. Виртуальные каналы могут быть также организованы на базе последовательности физических каналов коммуникационной сети.
Обычно виртуальные каналы:
организуются преимущественно на канальном уровне модели OSI; используются преимущественно в коммутируемых сетях; поддерживают QoS;
классифицируются на постоянные и коммутируемые; распространены больше в глобальных, чем в локальных сетях.
Использование виртуальных каналов в первую очередь предназначено для увеличения производительности работы подсистемы передачи данных. Увеличение производительности работы достигается за счет уменьшения объемов служебного трафика, передаваемого через сеть.
Проанализируем два возможных варианта передачи нескольких потоков данных между двумя приложениями.
В первом случае для каждого потока данных создается свой логический канал передачи данных по протоколу TCP. Схематично этот случай представлен на рисунке 1.
В приведенном примере имеет место быть избыточность передаваемых служебных данных, например, пакетов, участвующих в построении соединения. Другими словами, если одно из соединений будет закрыто после передачи нескольких пакетов данных, то можно говорить о том, что данная схема неэффективна.
Во втором случае для всех потоков данных создается один логический канал передачи данных по протоколу TCP, который инкапсулирует несколько виртуальных логических каналов. Схематично этот случай представлен на рисунке 2.
В этом случае количество служебной информации может быть сведено к минимуму. Этот механизм является особенно актуальным для систем, в которых данные передаются небольшими порциями. Подобная схема может помочь избежать издержек, возникающих при установке/разрыве дополнительных сетевых соединений.
Гораздо большей производительности можно добиться, если добавить в систему дополнительный буфер-аккумулятор, в котором будет реализовано объединение небольших блоков данных, отправляемых по сети. Для протокола TCP среднее значение максимального размера блока данных составляет 1500 байт. Минимальный размер заголовка TCP-пакета равен 20 байтам. Если в системе обмен между узлами происходит небольшими порциями данных, сравнимыми с объемом служебной информации, то подобная организация передачи данных является неэффективной. Для этого предлагается при одновременном поступлении запросов на передачу данных от нескольких нитей объединять данные в один буфер и отправлять их единовременно. На приеме необходимо обратная операция - разбиение буфера с последующим распределением информации по нитям. Передача будет наиболее эффективна, если удастся собрать в один буфер максимальное число одновременно поступивших запросов на передачу данных.
1
Вторым аргументом использовать виртуальные каналы является принцип инкапсуляции. Использование виртуальных каналов позволяет скрыть от разработчика прикладной программы детали реализации передачи данных по сети. Использование виртуальных каналов освобождает от необходимости отслеживания созданных сетевых соединений, тем самым обеспечивая экономию системных ресурсов.
Предложенный механизм возможно формализовать выводом математического соотношения, которое позволит вычислить сравнительную эффективность применения подсистемы передачи данных, основанную на виртуальных каналах, для решения конкретной задачи. Нетрудно предположить список параметров функции эффективности. К ним относятся: количество виртуальных каналов (N), средний
размер передаваемых блоков данных (S), оценка вероятности попытки одновременной передачи блоков данных (P). При этом предполагается, что объем служебного сетевого трафика можно вычислить.
Функция относительной эффективности будет выглядеть так, как показано в (1):
F(N, S, P) = EVc (N, S, P)/Eic(N, S, P) (1)
При этом функция принимает только положительные значения. Если эффективность виртуальных каналов выше, чем эффективность логических, функция принимает значения из интервала (1;+~). В обратном случае функция принимает значения из интервала (0; 1). При равных показателях значе-
ние функции равно 1. В этом случае использование обоих механизмов эквивалентно по производительности.
В приведенной формуле Evc - показатель эффективности виртуальных каналов, а Eic характеризует эффективность использования обычных логических каналов.
Также можно предположить, что эффективность использования малого количества виртуальных каналов будет меньше, чем у того же числа логических каналов. Однако с увеличением числа параллельно передаваемых потоков данных (N) эффективность будет расти и через некоторое время превысит значение, вычисленное для логических каналов.
Для анализа предложенной модели взаимодействия приложений посредством канала передачи данных на основе виртуальных каналов подходит математический аппарат сетей Петри. Построив сеть, описывающую работу предложенной динамической дискретной системы, можно выявить ее особенности и на этом основании сделать вывод о правильности построения модели.
Итак, согласно описанию предложенной модели, сеть Петри, ей соответствующая, будет выглядеть так, как показано на рисунке 3.
Каждый участник операции передачи данных представлен нитью в терминологии операционной системы Windows. Позиция P1 соответствует начальному состоянию, в котором находятся нити процесса 1 перед отправкой данных. Если объект синхронизации не занят, одна из нитей захватывает объект синхронизации и приступает к передаче данных, переходя в позицию P3. В это время объект синхронизации находится в состоянии «занят». По окончании передачи нить переходит в состояние P4, освобождая при этом объект синхронизации. Канал готов к передаче следующей порции данных. Переход t3 обозначает выполнение неких действий над переданными данными. По окончании этих действий нить переходит в состояние P5, в котором находятся нити процесса 2 перед отправкой ответных данных. Если объект синхронизации не занят, нить захватывает объект синхронизации и приступает к передаче данных, переходя в состояние P7. По окончании передачи данных нить переходит в состояние P8, символизирующее окончание работы алгоритма или совершение каких-либо действий над полученными данными. При выполнении перехода t5 выполняется освобождение объекта синхронизации. Далее сеть замыкается переходом в начальную позицию P1.
Проведя анализ представленной сети, необходимо отметить, что она обладает свойствами ограниченности, живости и достижимости. Это означает, что система синхронизации нитей в процессах, которые участвуют в обмене, организована правильно, система работает стабильно, тупиковые ситуации отсутствуют.
Разработанная модель может использоваться для передачи конфиденциальной информации. При этом данные, передаваемые одним приложением другому, должны быть зашифрованы до передачи в канал связи, и, соответственно, расшифрованы на приеме.
Блок шифрования/дешифрования может быть расположен на разных уровнях представления данных. Наиболее очевидны следующие варианты его месторасположения по модели OSI:
прикладной уровень;
сетевой уровень;
канальный уровень.
Рассмотрим каждый из предложенных вариантов подробнее.
Блок шифрования/дешифрования реализуется программно, если он расположен на прикладном или сетевом уровнях. В первом случае этот блок реализуется в программном коде прикладного приложения. Для сетевого уровня организация процесса шифрования/дешифрования возможна в составе драйвера.
На канальном уровне становится возможность реализации аппаратного шифрования. В этом случае потребуются дополнительные аппаратно-программные средства, реализующие такую возможность, так как в составе штатных средств ПЭВМ они отсутствуют.
При использовании аппаратного шифрования разработчику прикладного приложения фактически не требуется дополнительных действий для реализации шифрования передаваемых данных. Шифрование будет проходить на более низком уровне. Почти такая же ситуация складывается и на сетевом уровне. Однако следует отметить, что для работы на сетевом уровне может потребоваться дополнительная настройка параметров шифрования, например, указания адресатов.
В случае применения шифрования на прикладном уровне организация шифрования может быть вынесена в отдельный программный модуль со специальным интерфейсом с целью уменьшения трудозатрат на его использование.
На прикладном уровне подобным образом могут быть реализованы другие средства защиты информации, например, организация электронно-цифровой подписи передаваемых данных. Для этого на передаче необходимо поместить узел вычисления цифровой подписи, а на приеме - узел ее проверки. Однако необходимо отметить, что использование цифровой подписи при передаче данных по зашифрованному каналу связи для обычных систем является излишним. Более подробную информацию об электронно-цифровой подписи можно найти в [5].
2
Растущая высокими темпами информатизация нашего общества во многом определяет развитие вычислительной техники. Интеграция информационных систем растет с каждым днем. На этом фоне увеличивается количество распределенных систем обработки данных.
При проектировании таких систем особое внимание уделяется разработке механизма обмена данными между узлами системы. Описанный в данной статье механизм передачи данных представляет собой один из возможных вариантов построения подсистемы передачи данных между многопоточными приложениями. Использование предложенной модели построения виртуальных каналов может повысить эффективность построения распределенных систем передачи данных, в состав которых входят многопоточные приложения. Анализ существующих технологий построения виртуальных каналов, появившихся сравнительно давно, стал основой для создания новой технологии построения на прикладном уровне.
ЛИТЕРАТУРА
1. Руссинович М. Соломон Д. Внутреннее устройство Microsoft Windows... 4-е изд. 2005г. 992
стр. ISBN 5-469-01174-7,5-7502-0085.
2. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов - 3-е изд. — СПб.: Издательский дом «Питер», 2006. — 958 с. — ISBN 5-469-00504-6
3. Дуглас Камер. Сети TCP/IP, том 1. Принципы, протоколы и структура. — М. : «Вильямс»,
2003. — 880 с. — ISBN 0-13-018380-6
4. А. М. Кукушкин. «Виртуальные каналы в системах распределенной обработки данных». Материалы международной научно-практической конференции «МОЛОДЕЖЬ И НАУКА: МОДЕРНИЗАЦИЯ И
ИННОВАЦИОННОЕ РАЗВИТИЕ СТРАНЫ». - Пенза: Изд-во ПГУ, 2011. - 3 ч. - 362 с.
5. Информационная технология. Криптографическая защита информации. Функция хэширования
ГОСТ Р34.11-94, Госстандарт РФ, М., 1994.
Рисунок 1. Использование логических каналов передачи данных
р1 p3 t2 Р4 t3 Р5 P7 t5 p8 t6
Рисунок 3. Моделирование работы системы посредством сети Петри
3