
книги2 / монография 31
.pdfОбмен сообщениями между каждой парой узлов сети производится по кратчайшим маршрутам, хранящихся в таблице маршрутов. Каждый узел хранит свою собственную таблицу маршрутов, поддерживаемую в актуальном состоянии.
Решение о том, какие данные необходимо реплицировать в конкретном узле сети, принимаются с учетом параметров взаимодействия этого узла с соседними узлами.
Объем памяти узла, выделенной для хранения элементов данных, зависит от потребности этого узла в элементе данных и не может превышать максимальную емкость памяти узла. Этот объем памяти может определяться частотой доступа узла к элементу данных, размером элемента данных и общим доступным пространством памяти узла.
6.5.1.Описание формальной модели предлагаемого метода распределения реплик
Топология беспроводной сети MANET представлена в виде неориентированного взвешенного графа = ( , ), в котором N – множество из K вершин графа (мобильные устройства сети), а X – множество взвешенных ребер графа. Пусть 1, 2 , тогда = (1, 2) это ребро графа, соединяющее две вершины 1, 2 графа (или канал радиосвязи между мобильными устройствами, соответствующими вершинам 1, 2). Каждому ребру графа присвоен вес. Значение веса ребра — это расстояние между двумя вершинами графа, инцидентными данному ребру.
Так как беспроводная сеть MANET мобильна, и ее вершины могут перемещаться в произвольных направлениях на произвольное расстояние, то и топология сети MANET тоже изменяется со временем. Может меняться как количество узлов в сети, так и расстояния между ними.
Каналы связи между узлами рассматриваемой сети ненадежны и имеют ненулевую вероятность отказа при передаче сообщений между узлами.
Обозначим как вероятность отказа канала связи между узлами и . Будем считать, что = для симметричных каналов. Отказ канала связи при передаче сообщения между узлами может произойти из-за внешних негативных воздействий (помехи) на канал, но главным образом отказы каналов происходят из-за
179
ограниченной дальности действия радиоканалов узлов сети. При этом вероятность отказа канала связи между двумя узлами можно оценить, учитывая дальность радиосвязи каждого узла и фактическое расстояние между ними. Если два узла находятся в зоне действия радиосвязи (в зоне радиовидимости) одного или обоих узлов, то они могут связываться друг с другом. Чем больше расстояние между двумя узлами, тем больше значение вероятности отказа канала связи между этими узлами.
Для оценки возможности обмена данными между узлами задается предел LP – минимальное допустимое значение вероятностиотказа канала связи между парами узлов сети. При этом, если значение вероятности отказа канала связи между узлами и превышает минимальное значение LP, то между двумя этими узлами связь невозможна.
Если необходимо в узле k сети иметь определенный элемент данных, то он реплицируется (копируется) из ближайшего узла n, соседнего по отношению к узлу k в котором имеется необходимый элемент данных.
Каждый узел сети имеет подмножество соседних (смежных) узлов. Для узла k сети соседним узлом будет другой узел n сети, который:
-находится в зоне радиовидимости узла k,
-и вероятность отказа канала связи между этой парой узлов будет меньше заданного предела LP.
Т.е. соседним узлом для узла k сети будет такой узел n, с которым возможен обмен данными без отказа канала связи между этими узлами.
Введем следующие обозначения:
|
|
̅̅̅̅̅ |
N – множество узлов сети такое, что = { }, = 1, . |
||
|
|
|
RR (radio range) радиус зоны радиовидимости узлов, одинаковый для всех узлов, определяющий зону радиовидимости узла.
|
̅̅̅̅ |
– |
множество |
(кортеж) |
номеров |
= { }, = 1, |
оригинальных элементов данных (не реплик), где I это количество оригинальных элементов данных, используемых в сети.
180
= { } – кортеж с размерами памяти, необходимой для хранения элементов данных или их идентичных реплик в любом узле сети.
̅– максимальный объем памяти для хранения элементов данных и их реплик в узле сети (объем одинаков для всех узлов сети).
= ‖ ‖– матрица размерности 2 , в которой элементы
первой строки это номера элементов данных, к которым в узле k генерируются запросы. Элементы второй строки - это средние частоты запросов к соответствующему элементу данных , генерируемых в узле в течение некоторого заданного интервала времени (интервал передислокации реплик). Экземпляры матриц хранятся в актуальном состоянии в каждом из K узлов сети. Изменение значений элементов матрицы происходит периодически, через каждый
заданный интервал времени. Каждому элементу данных
соответствует счетчик обращений к соответствующему элементу данных, сгенерированных за текущий интервал времени. В момент окончания текущего интервала времени
значение счетчика копируется в элемент данных и его
значение обнуляется для подсчета обращений в очередном интервале.
= ‖ ‖ – матрица размерности × × 1, в которой хранится информация о размещении в узлах сети элементов данных, к которым в узле k генерируются запросы. Каждая из K строк матрицы содержит: в первом элементе строки – номер узла сети, а все последующие элементы строк содержат номера элементов данных, размещенных в
соответствующем узле. Элементы матрицы 1 содержат признак того, является ли соответствующий элемент данных
репликой (РЭД при 1 = 0) или оригинальным элементом данных (ОЭД при 1 = 1). Аналогичные по структуре строк экземпляры матрицы хранятся в каждом узле сети. Информация в этих матрицах обновляется при получении узлами с матрицами сообщений, посылаемых каждым узлом сети сразу после каждого размещения/удаления в этом узле информационного элемента.
181
= { 1, … , , … , } – кортеж, элемент
которого содержит текущее значение объема свободной памяти узла k, которую можно использовать для размещения в этом узле необходимого в этом узле элемента данных.
Значение объема свободной памяти узла k уменьшается на величину при размещении в узле k элемента данных и увеличивается на величину при удалении элемента данных из памяти узла k. Значение для каждого из узлов сети не может превышать величину S – ограничение на максимальный объем памяти, который можно использовать для размещения элементов данных в узлах сети.
XY- матрица размерности × 2 с координатами текущего
местоположения узлов мобильной сети = ‖ , ‖, =
̅̅̅̅̅. Идентичные экземпляры таблицы хранятся в каждом
1,
узле сети. Данные в матрице обновляются периодически, через заданный интервал времени передислокации реплик, путем передачи широковещательных сообщений узлами, изменившими свое местоположение.
GAM – (graph adjacency matrix) матрица смежности взвешенного графа = ( , ), в которой каждой дуге графа соответствует расстояние между смежными вершинами графа.
Расстояние между двумя вершинами графа , (мобильными узлами сети) вычисляется в соответствии с известной формулой (6.1):
|
|
|
|
|
|
|
|
|
(6.1) |
dist |
kn |
= √(x |
n |
− x |
)2 + (y |
n |
− y )2 |
||
|
|
|
k |
|
k |
|
В этой формуле значения координат ( , ) и ( , ) вершин графа (узлов мобильной сети) берутся из таблицы XY, данные которой обновляются всякий раз, когда меняется местоположение любого узла мобильной сети. После каждого обновления таблицы XY сразу же пересчитывается и матрица GAM смежности графа.
|
– таблицы кратчайших путей |
для каждого узла k |
|
̅̅̅̅̅ |
|
|
( = 1, ) размерности × 3. Строки таблицы содержат три |
|
|
элемента: - n – номер узла сети, - pl – длина кратчайшего пути |
|
|
от узла k до узла n, - pnl – список |
узлов, включенных в |
|
182 |
|
кратчайший путь от узла k до узла n. В каждом k-м узле сети хранится своя таблица с параметрами кратчайших путей от данного узла к остальным узлам сети.
Описание алгоритма определения подмножества узлов сети, соседних для узла k сети.
Для узла k из k-й строки таблицы XY берутся координаты
( , ).
Затем в таблице XY последовательно отбираются строки, соответствующие тем узлам n сети, расстояние до которых от узла k не превышает значения RR – радиуса зоны радиовидимости узла k.
При этом расстояние между узлами рассчитывается по формуле
(6.1).
Для проверки того, выходит ли узел n за границу зоны радиовидимости узла k, проверяется справедливость неравенства:
≤
Если неравенство не выполняется, то узел n не включается во множество соседних узлов узла k.
Возвращаемся на шаг 2.
Затем для каждого узла n, отобранного на предыдущем шаге, рассчитывается значение – вероятности отказа канала связи между узлами k и n:
= ⁄
Если полученное значение вероятности будет больше LP – ограничения на минимальное допустимое значение вероятности отказа канала связи между парами узлов сети, т.е.
>
то узел n не включается во множество соседних узлов узла k. Причина – высокая вероятность отказа канала связи между двумя узлами. Поэтому обмен сообщениями между рассматриваемой парой узлов не производится.
Если вероятность отказа канала не превышает лимит LP, то узел n включается во множество соседних узлов для узла k.
183
Переход к отбору очередного узла сети (шаг 2).
Если все строки таблицы XY просмотрены, то алгоритм заканчивает работу.
Если в полученном множестве соседних узлов отсутствует узел с необходимым элементом данных, то элемент данных реплицируется из удаленного узла по кратчайшему маршруту через один или несколько промежуточных узлов в текущий узел.
6.5.2. Описание эвристического алгоритма передислокации реплик элементов данных в сети
MANET
Цели работы данного алгоритма заключается в том, чтобы:
Сократить количество глобальных запросов, генерируемых в сети, которые маршрутизируются для обработки в узлы сети, удаленные от узла-источника запроса, т.е. в узлы сети, не входящие во множество соседних узлов.
Увеличить количество локальных запросов, которые обрабатываются в самом узле-источнике запроса (необходимые данные хранятся в этом же узле) или адресуются одному из соседних узлов, расположенных в зоне радиовидимости узла-источника запроса.
Глобальные запросы маршрутизируются по кратчайшим путям через один или несколько транзитных узлов к узлам сети, расположенным на более удаленном расстоянии вне зоны радиовидимости запрашивающего узла. Затраты времени и ресурсов на обработку таких запросов и доставку ответов на них в запрашивающий узел существенно выше, чем затраты на обработку локальных запросов.
Алгоритм работает автономно в каждом узле сети. Работа алгоритма в отдельном узле сети начинается в момент, когда заканчивается текущий интервал времени передислокации реплик для данного узла. Подсчет времени ведется каждым узлом автономно и не зависит от других узлов сети. Ниже на рисунке 5.6 представлена блок-схема алгоритма.
184

Рис. 6.6. Блок-схема алгоритма репликации в узлах сети
MANET
Опишем работу алгоритма на примере произвольно выбранного k-го узла сети. В других узлах сети алгоритм работает аналогично и независимо от других узлов.
Шаг 1. Проверка наличия в узле k необходимых данных ( =
̅̅̅̅̅ . 1, )
Анализируются элементы матрицы = ‖ ‖. В первой строке
матрицы отбираются номера элементов данных , к которым в текущем узле генерируются запросы. Отбор производится, начиная с элемента данных, к которому в текущем узле генерируется наибольшее количество обращений, и продолжается просмотр
185
остальных элементов данных в порядке убывания частот обращений к этим элементам данных.
Если все элементы матрицы просмотрены, то алгоритм переходит к Шагу 6 и заканчивает работу.
Для каждого очередного элемента данных проверяется наличие его реплики или оригинала в памяти текущего узла.
Если соответствующая реплика или оригинал элемента данных есть в памяти узла, то алгоритм переходит к проверке следующего элемента данных в матрице , к которому в узле генерируются запросы, поскольку репликация данного элемента в текущем узле не требуется. Возврат алгоритма к Шагу 1.
Если текущий элемент данных отсутствует в памяти узла, то алгоритм переходит к Шагу 2.
Если в узле хранится реплика или оригинал текущего элемента данных, то алгоритм продолжает проверку наличия в узле очередного элемента данных.
Если все элементы матрицы просмотрены, то работа алгоритма в данном узле заканчивается.
Шаг 2. Решение о размещении (репликации) элемента данных в текущем узле.
Элемент данных размещается в узле k, если в этом узле генерируются запросы к данному элементу данных.
Прежде чем элемент данных будет размещен в узле k, для этого узла выполняются следующие действия:
Для узла k определяется множество соседних узлов (в соответствии с описанным ранее алгоритмом), затем выполняются две проверки.
Проверяется наличие среди соседних узлов, такого узла, который хранит копию (или оригинал) элемента .
Если такие узлы есть, то сравниваются частоты доступа к элементу в узле k и в каждом из этих соседних узлов.
Если частота доступа к данному элементу в узле k меньше, чем хотя бы в одном из соседних узлов, то элемент данныхв узле k не размещается. Алгоритм переходит к Шагу1.
186
Иначе элемент данных размещается (реплицируется) в узле k, путем его копирования из ближайшего соседнего узла. Алгоритм переходит к Шагу 3.
Затем происходит переход к проверке необходимости размещения очередного элемента данных. Алгоритм переходит к Шагу 1.
Если среди соседних узлов нет ни одного узла с элементом
данных , то выполняется поиск элемента данных среди удаленных узлов, расположенных вне зоны радиосвязи узла k и производится копирование (репликация) элемента из ближайшего удаленного узла сети, имеющего необходимый элемент данных. Алгоритм переходит к Шагу 4.
Шаг 3. Репликация из соседнего элемента данных в текущем узле.
Проверяется наличие в узле k свободной памяти,
достаточной для размещения элемента , т.е. проверяется выполнение условия: ≥ .
Если условие выполнено, то элемент данных размещается в узле k. При этом соответствующим образом корректируется
матрица и элемент кортежа . Алгоритм переходит к Шагу 1.
Если это условие не выполнено, то делается попытка увеличения доступной памяти в узле k. Для этого из памяти узла k удаляется один или несколько наименее востребованных элементов данных, имеющих наименьшую частоту доступа к ним из узла k и в тоже время не являющихся оригинальными элементами. Удаление элементов делается для того, чтобы освободить объем памяти, достаточный для размещения нового элемента
данных . Оригинальные элементы из памяти узла не удаляются.
Если один или несколько элементов данных удалены из памяти текущего узла, то производится корректировка таблиц текущего узла.
Если удалось освободить объем памяти, достаточный для размещения элемента данных, то этот элемент данных
187
размещается в узле. Соответствующим образом корректируется матрица и элемент кортежа . Алгоритм переходит к Шагу 1.
Если в узле k нет достаточного объема памяти для размещения элемента данных и увеличить ее не удалось, то элемент данных будет размещен не в узле k, а в другом, соседнем узле сети с меньшим количеством обращений к этому элементу. Алгоритм переходит к Шагу 1.
Шаг 4. Репликация элемента данных из удаленного узла сети. Если среди соседних узлов текущего узла k нет ни одного узла с
необходимым элементом данных, то выполняется поиск узла с данным элементом среди узлов, удаленных относительно текущего узла k.
Для поиска такого удаленного узла сначала используется матрица , с информацией о том, в каких узлах размещены те или иные элементы данных. Определяются те удаленные узлы, в которых размещен элемент данных (оригинал или реплика), необходимый в узле k.
Если таких узлов не найдено, то
в узле k создается оригинал необходимого элемента данных,
вносятся коррективы в соответствующие таблицы параметров системы,
переход алгоритма к Шагу 5.
Если найден один или несколько удаленных узлов с необходимым элементом данных, то в таблице с кратчайшими путями от узла k до других узлов сети, выбирается узел с необходимым элементом данных, путь к которому от узла k самый короткий.
Затем выполняется переход к Шагу 3, в ходе которого выполняются действия, необходимые для размещения элемента данных в текущем узле. При этом учитывается особенность, которая заключается в том, что элемент данных пересылается в узел k не из соседнего узла, а из найденного удаленного узла по найденному ранее кратчайшему пути.
188