
- •Анализ теоретических основ построения сети на базе технологии Netsukuku
- •4.1 Анализ протокола сети
- •4.1.1 Сетевая модель
- •4.1.2 Топология сети
- •4.1.3 Трассирующий пакет
- •4.1.4 Динамика сети
- •4.1.5 Оптимизация qspn
- •4.2 Анализ топологии сети
- •4.2.1 Основные определения
- •4.2.2 Топологии сети
- •4.3 Маршрутизация cidr
- •4.3.1 Внутренняя карта и ее миопия
- •4.3.2 Фаза присоединения
- •4.4 Анализ доменной структуры сети
- •4.5 Взаимодействие Netsukuku с Интернетом
- •4.5.1 Ip ограничение
- •4.5.2 Распределенные интернет-подключения
4.3 Маршрутизация cidr
Бесклассовая адресация (англ. Classless InterDomain Routing, англ. CIDR) — метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Использование этого метода позволяет экономно использовать ограниченный ресурс IP-адресов, поскольку возможно применение различных масок подсетей к различным подсетям.
QSPN, для каждого уровня, выстраивает маршруты, необходимые для подключения каждого (g)node ко всем другим (g)nodes того же самого уровня. Маршруты будут сохранены в картах каждого узла.
Если узел N = g3 ·g2 ·g1 ·g0 хочет достигнуть узла М, который принадлежит другим gnodes, например М = g3 · g2 · h1 · h0, это добавит CIDR маршрут в таблицe маршрутизации ядра:
все пакеты, адреса которых g3 ·g2 ·h1 ·0... 255 будут отправлены в шлюз X.
Мы позже увидим почему шлюз X был выбран.
4.3.1 Внутренняя карта и ее миопия
Мы определяем маршрут rN узла N следующим образом:
rN: = (dst, gw, rem)
где: dst - узел: узел адресата маршрута
gw - узел: шлюз маршрута
rem - число: значение REM маршрута
Мы будем использовать dst (r), gw (r), rem (r), для индикации соответственно первое, второй и третий элемент r. Допустим VN является объединением всех соседей N. Допустим R является набором всех маршрутов узла N (для простоты мы рассматриваем только один показатель для всех маршрутов. Однако, как это можно легко увидеть что следующие суждения правильны для разных показателей маршрутов (нужно только использовать другие устанавки Rm для каждого показателя m)).
Мы можем определить следующий отношение эквивалентности:
С
мы указываем эквивалентный класс r.
Возьмем
является
оптимальным маршрутом маршрутов в
со шлюзом x, где
,
то есть:
Рассмотрите следующее подмножество R:
где
G - gnode
уровня 1 таким образом что
В
этом пункте мы можем определить внутреннюю
карту N как подмножество
,
где
.
Следующее свойство будет иметь место:
c
Алгоритмически,
когда узел N хочет сохранить в М
маршрут s,
который имеет то же самое назначение
маршрута
,
следующий алгоритм будет принят:
if
if
[s
лучше чем t]
заменям t на s;
else ничего неделаем;
else сохраняем s в M;
Причина для вышеупомянутых определений то, что узел N, чтобы достигнуть любой другой узел сети только должен будет знать, кому из его соседей посылают пакеты.
Маршрут сохраняем во внутренней карте, при помощи етой тройки(dst,gw,rem), а не последовательности узлов, поэтому узел N не знает весь свой путь. Поэтому мы может сказать, что обзор узла N всей сети является миопией, или локальным. Как мы будем видеть позже, эта миопия может быть легко применена к более высоким уровням. Отметим также то, что QSPN v2 является независимым от вышеупомянутых определений, то есть его работа не изменяется.
С точки зрения QSPN v2, урони являются "плоскими", потому что распространение ETP3 в целой сети точно такое же как прежде, кратко: пакет распостраняется, пока это не интересно, подразделение узлов в gnodes
просто проигнорируем. Единственное добавленное правило служит, чтобы сэкономить пространство:
допустим
что T является универсальным Трассирующим
пакетом и пусть
будет конечной последовательностью
узлов. Каждая подпоследовательность
таким образом, что
,
где G - gnode любого уровня, заменен
идентификатором G. rem, связанный с
идентификатором G, является суммированием
rem каждой тройки (dst, gw, rem) подпоследовательности.
Это правило правильно для любого уровня,
и его называют правилом группы.
Плоские урони.
Некоторые примеры:
1. Трассирующий пакет
11.22.1, 11.22.80, 11.22.35
не
может быть группирован, потому что
2. Трассирующий пакет
11.22.1, 11.22.80, 11.22.35, 11.44.13
может быть группирован в следующем Трассирующем пакете:
11.22. *, 11.44.13
3. Трассирующий пакет
11.22.1, 11.22.80, 11.22.35, 11.44.13, 55.32.20
может быть группирован в следующем трассирующем пакете:
11. *, 55.32.20 (4.2)
Описание маршрута во внешней карте является локальным, как во внутренней карте. Например, когда узел 55.32.12 получает Трассирующий пакет (4.2), он сохранит следующий маршрут:
(dst = 11.* = любой узел gnode 11, gw = мой сосед 55.32.20, rem)
Наконец, набор М использованный для описания ETP в разделе QSPN, изменен от набора всех маршрутов внутренней карты к набору всех маршрутов (внутренний и внешний).
Аппроксимизация правила группы.
Правило
группы подразумевает что узел
не может знать внутренности G,
то есть он не знает, какие узлы принадлежит
G и как они расположены. Фактически,
оптимальный маршрут r c, чтобы достигнуть
любого узла G является только маршрутом,
который достигает узел
,
который является самым близким узлом
G к c.
Однако маршрут r правилен достигнуть
любого узла
,
потому что gnode, по определению, является
подключенным набором узлов (см. 4.1.1). То,
что не сохраняется, является точностью
маршрута: r - оптимальный маршрут, чтобы
достигнуть
,
но это не может быть оптимальный маршрут,
чтобы достигнуть
,
где
.
В каждый случай, r - приближение оптимального
маршрута, чтобы достигнуть
:
с тех пор
,
d знает оптимальный маршрут
,
таким образом маршрут
будет
.
приближение может быть улучшено с
использованием causting маршрутизации и
налагая, который значение rem маршрута
содержало в G,
где b
является bnode, и не слишком отличается
от любого другого маршрута
,
содержавшийся в G.