Как построить беспроводную сенсорную сеть Converge-Cast на основе сетевого кодирования в Omnet с помощью INET
Я хочу построить базовую беспроводную сеть для конвергенции, чтобы протестировать кодирование сети в Omnet с помощью INET. Базовая структура этой сети показана на рисунке 1. Имеются два источника S1 и S1, два ретрансляционных узла C1 и C2 и один пункт назначения D. В этой топологии S1, C1 и C2 находятся в пределах диапазона широковещания друг друга, и S2 C1 и C2 находятся в пределах диапазона вещания друг друга. В определенный период времени две группы пакетов X = {x1, x2, …, X|x|} от S1 до D и Y = {y1, y2, …, Y|y|} от S2 до D принимаются С1 и С2. Таким образом, C1, C2 могут кодировать X и Y вместе перед их пересылкой.
(1) Подслушивание: каждый узел должен работать в беспорядочном режиме. Таким образом, ретранслятор C2 и C1 могут прослушивать пакеты, передаваемые из S1 и S2 в D соответственно.
(2) Кодирование: когда ретранслятор C1 принимает собственные пакеты X и Y, он кодирует эти пакеты вместе и передает закодированный пакет получателям D. Та же процедура будет выполнена в C2. Операция кодирования представляет собой просто простую случайную линейную комбинацию собственных пакетов в виде Z1=ga1*X1+gb1*Y1, где ga1 и gb1 - коэффициенты, случайно выбранные из поля Галуа G-порядка q-го порядка. А Z1 - это кодированный пакет. Коэффициенты будут включены в заголовок кодированных пакетов.
(3) Декодирование: D будет декодировать все пакеты в X и Y, используя принятые кодированные пакеты Z1 из C1 и C2 вместе.
(4) Преимущество: например, пакеты x1 и x2 должны быть соединены друг с другом в D. Однако соединение от S2 до C2 (LS2→C2) не удается. Очевидно, что в случае схем не-сетевого кодирования требуется по меньшей мере одна повторная передача, чтобы обеспечить успешную доставку пакета. Но все иначе, если использовать идею сетевого кодирования. Поскольку C1 может подслушивать x2, он будет объединять x1 и x2 посредством XOR или линейного сетевого кодирования [2] (на самом деле, XOR - это особый вид схемы линейного сетевого кодирования с GF(2)). Предположим, что кодированный пакет равен (x1 ⊕ x2). И аналогично, C2 может подслушать x1 и просто переслать его на D, потому что он получит только один пакет. Наконец, D может восстановить x2 путем reXOR кодированного пакета с x1, как показано на фиг.1(b). Следовательно, сетевое кодирование при конвергентном приведении способно снизить вероятность повторной передачи.
Я хотел бы использовать стандарт радиопередачи ieee802.11, который обычно используется в беспроводной сети. Я надеюсь, что этот стандарт может контролировать надежность канала или коэффициент доставки пакетов.
Для простоты, пусть S1 и S2 синхронизированы. Я не совсем уверен, как долго должен ждать пакет от S2, вы можете дать мне совет?
Да, я хочу умножить каждые 8 бит на ga1. Как насчет мод переполнения номеров.
Я хочу добавить значения. Если операция умножения и сложения труднодостижима. Мы можем просто восстановить операцию. Например, поскольку C1 и C2 получат и x1, и x2, и они выберут коэффициент для их умножения. Когда узел-приемник D принимает кодированный пакет, мы можем поместить эти четыре коэффициента в матрицу 2x2, например [C11, C12; C21, C22] чтобы проверить, являются ли они независимыми, если они независимы, можно предположить, что пакеты x1 и x2 могут быть успешно декодированы.