Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги2 / монография 31

.pdf
Скачиваний:
0
Добавлен:
10.05.2024
Размер:
3.71 Mб
Скачать

Обмен сообщениями между каждой парой узлов сети производится по кратчайшим маршрутам, хранящихся в таблице маршрутов. Каждый узел хранит свою собственную таблицу маршрутов, поддерживаемую в актуальном состоянии.

Решение о том, какие данные необходимо реплицировать в конкретном узле сети, принимаются с учетом параметров взаимодействия этого узла с соседними узлами.

Объем памяти узла, выделенной для хранения элементов данных, зависит от потребности этого узла в элементе данных и не может превышать максимальную емкость памяти узла. Этот объем памяти может определяться частотой доступа узла к элементу данных, размером элемента данных и общим доступным пространством памяти узла.

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

Соседние файлы в папке книги2