nuclight: (Default)
[personal profile] nuclight
Наткнулся тут на http://netsukuku.freaknet.org/

Товарищи предлагают совершенно новый тип сети, альтернативу иерархично построенному Инернету. Построена сеть на p2p-принципах - каждый узел вяжется с несколькими соседями, и каждый - опять же роутер. Написана уже тестовая бета-версия софта Netsukuku - это всего лишь роутинг-демон и DNS-резольвер, пока только для Linux. C интернетом оно несовместимо, тестируют пока на wi-fi связи. Как утверждается, оно уже реально работает.
Интересны принципы этой сети. Авторы хотят избавиться от иерархичного построения сети, когда трафик и подключение теоретически контролируются и кто-то политически может кого-то отключить. Но предлагаемая, схема, очевидно, требует, чтобы каждый узел-роутер знал маршрут до каждого узла в сети, что, опять же очевидно, невозможно - сейчас пограничные роутеры должны быть весмьа мощными машинами. Авторы предлагают учиться у Природы (муравейники etc.), эксплуатируя Хаос, и таким образом, сделав Сеть самоподобной, ужать таблицу маршрутизации всего до нескольких килобайт (порядка 1024 маршрутов в ядре для IPv4).

Как это работает. Отдельные узлы (level 0) объединяются в group_node (level 1), который сейчас может содержать до 256 узлов. Узел хранит внутреннюю карту - знает, как добраться до каждого узла в своей группе. Дальше - внешние карты, т.е. маршрутизирует на группу назначения, а те внутри себя разберутся. Дальше, групноды объединяются в групноды следующего уровня, тоже до 256 максимум, которые впрочем тоже называются group_node (level 2). То есть, для IPv4 будет 3 уровня, для v6 - 15, а принципиально неограниченное количество узлов. На уровне групнодов роутинг между ними осуществляют пограничные b_node, на следующем уровне это пограничные g_node в их роли и т.д.

Протокол роутинга у них называется QSPN (Quantum Shortest Path Netsukuku). Он выглядит так - узел (например при включении в сеть) запускает трассировочный броадкаст - который распространяется как волна. То есть, принцип Гюйгенса - каждый узел пускает вторичные волны, пакет трассировки сохраняет в себе пройденный путь. Линк, с которого пришла волна, узлом "закрывается" - если "закрылись" все линки узла, он запускает обратную волну на открытие - своего рода отражение волны от препятствия. Таким образом требуется относительно небольшое число пакетов, чтобы выяснить всю топологию подсети. То же повторяется пограничными узлами на более высоких уровнях для групнодов.

У вас еще не возникла стойкая ассоциация с BGP ? :) Может, авторы просто не знали, что современный Интернет примерно так и работает ? Только лишь автономные системы (AS) не иерархичны (уровень только один). Опять же пройденные AS сохраняются в атрибуте пути, это обязательно. И т.д.

IP адреса здесь выделяются динамически рандомно при включении в сеть, как функция от времени, чтоб у каждого уникальный был. Поэтому-то оно с инетом сейчас и несовместимо. Хотя это всего лишь схема L3 - дальше те же TCP и UDP и вообще все неизменно. Кстати, зная топологию всей сети, они хранят 10 лучших маршрутов и осуществляют балансировку нагрузки каналов.

И о DNS. Предложено заменить иерархию DNS анархией. Выглядит это так: от резольвемого имени вычисляется хэш - это будет IP-адрес машины, у которой собственно и спросим, во что резольвится имя. p2p-природа, естественно, порождает Стройную Систему Костылей и Подпорок (TM) - такого узла может и не быть. Для надежности инфу хранит еще и вся групнода, а т.к. и ее может и не быть, пройдемся по соседним номерам групнод и т.д. Отдельная песня - сообщения регистрации и апдейта DNS-имени, трехдневные таймауты и т.д. Так что я совсем не удивился, прочитав о реверсе вот это:

7.8.2 noituloser emantsoh esreveR

If a node wants to know all the related hostnames associated to an ip, it
will directly contact the node which possides that ip.


Спуфьте на здоровье :)

Резюме:
Сейчас софт представляет собой простого userland-демона, всего лишь устанавливающего маршруты в ядре и служащего DNS-сервером на 127.0.0.1. Динамический рандомный IP делает несовместимым это с текущим инетом, поэтому полигон в сером диапазоне класса A (10.0.0.0/8). Реализация, как говорят, требует всего лишь 355 Кб памяти под оперируемые данные. В общем, там еще много интересного, и документ и FAQ написаны живым языком, читать однозначно стоит.

Хотя я таки сторонник иерархии...
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

February 2017

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
262728    

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 10:34 pm
Powered by Dreamwidth Studios