Netsukuku
Netsukuku («Нетсукуку», «Нецукуку») — проект распределённой ячеистой равноранговой глобальной компьютерной сети.
Недостатки Интернета, являющиеся причинами необходимости Netsukuku[править | править код]
Интернет представляет собой иерархичную сеть, управляемую интернациональными компаниями и организациями, которые поддерживаются правительством. Каждый бит Интернет-трафика проходит через частные магистральные сети и роутеры.
Интернет-провайдеры предоставляют связь с остальными пользователями, которые находятся на нижнем уровне этой пирамиды иерархии. Нет никакой возможности разделить собственность Интернета, и пользователи могут подсоединяться к сети только согласно условиям, продиктованным Интернет-провайдерами.
Интернет сегодня олицетворяет способ доступа к информации, знаниям и общению.
Около 1 миллиарда людей могут подсоединиться к этой великой частной магистрали, но остаются 5 миллиардов людей, которые не имеют такой возможности…
Интернет был организован с целью гарантирования безопасного и защищённого соединения между двумя узлами сети. Но сейчас возникла парадоксальная ситуация: если Интернет-провайдеры решат приостановить свою работу, то какие-то страны могут быть просто отрезаны от Интернета.
Кроме того, Интернет не анонимен: Интернет-провайдеры, интернациональные компании и операторы связи могут без каких либо ограничений выяснять происхождение и анализировать информацию, проходящую через их сервера.
Централизованный и иерархично организованный Интернет, как результат, создаёт другую идентичную систему, основанную на нем — DNS. Услуга Домены Имён (DNS) управляется теми же Интернет-провайдерами, домены буквально продаются через похожие централизованные системы. Такая структура позволяет очень просто локализовать любой компьютер, подсоединённый к Интернету, без каких либо особых усилий.
Интернет был рождён для удовлетворения военных нужд по безопасности для администрации США, не для гарантирования свободы коммуникаций и информации: для возможности связи друг с другом пользователи Интернета вынуждены подчиниться интернациональным компаниям, чья единственная цель — расширять свою гегемонию. Сегодня все попытки получить больше свободы, конфиденциальности в Интернете встречают нежелание, страх, противоречат интересам... Самый альтернативный выход из этой ситуации — это дать пользователям распределённую, децентрализованную, эффективную сеть, в которой все пользователи находятся на одном уровне, без привилегий и без ограничивающих условий, словно жители одного города всемирной свободной сети.
Реализация[править | править код]
NETSUKUKU — это ячеистая сеть передачи данных, или p2p сеть, которая автоматически генерируется и самостоятельно поддерживается. Она создана для управления неограниченным числом узлов с минимальными затратами процессорного ресурса и памяти. Благодаря этому в будущем возможно построение всемирной распределённой, анонимной и не контролируемой сети, отдельно от Интернета, без поддержки каких-либо служб, провайдеров и тому подобного. Такая сеть состоит из компьютеров, физически соединённых друг с другом, поэтому нет необходимости надстройки над уже существующей сетью. NETSUKUKU создаёт только пути, которые соединяют компьютеры в единую сеть. Иначе говоря, NETSUKUKU заменяет 3-й уровень современной модели OSI другим протоколом маршрутизации.
NETSUKUKU, будучи распределённой и децентрализованной сетью, может создавать реально распределённые системы, как Abnormal Netsukuku Domain Name Anarchy, которая будет заменять современную иерархию системы DNS.
NETSUKUKU автоматически управляема. Она создаёт сама себя и может функционировать автономно. При подсоединении нового узла к NETSUKUKU сеть автоматически переписывает себя, и все остальные узлы знают наиболее быстрый и эффективный путь к новоприбывшему узлу. Узлы не имеют привилегий или ограничений по сравнению с остальными узлами: они представляют собой части одной сети. С увеличением числа узлов сеть растёт, становясь более эффективной. В NETSUKUKU нет различий между локальной и глобальной сетью, поэтому говорить о LAN бессмысленно.
Такая сеть не может быть контролируема или разрушена, потому что она полностью децентрализованная и распределённая. Единственный способ разрушить такую сеть — это физически вывести из строя каждый сигнальный узел, входящий в неё.
Внутри NETSUKUKU кто угодно, когда угодно и откуда угодно может подсоединиться к сети без каких-либо бюрократических проволочек или правового согласия. Более того, каждый узел динамичен и не постоянен. IP адрес, идентифицирующий компьютер, выбирается случайно, поэтому его невозможно сопоставить с реальным физическим местом источника сигнала. К тому же, нет никакого контакта с какими-либо организациями.
Пропускная способность ограничивается возможностями нынешних сетевых карт.
NETSUKUKU — это ячеистая сеть, или p2p сеть, построенная на протоколе динамической маршрутизации Npv7_HT. В настоящее время существует достаточно много протоколов и алгоритмов для динамического управления, но они все отличаются от Npv7_HT, поскольку используются строго для создания маленьких сетей. Управление Интернетом также осуществляется различными протоколами, такими как OSPF, RIP или BGP, в основе которых лежат классические алгоритмы, способные находить наилучший путь для достижения узла в сети. Данные протоколы требуют больших ресурсов процессора и памяти. По этой причине для подобных целей предназначены специальные компьютеры. Ни один из этих протоколов не сможет создать и поддерживать такую сеть, как NETSUKUKU, в которой каждый узел управляется самостоятельно, потому что маршрутная карта всех путей, хранящаяся на каждом компьютере в сети, требовала бы около 10 Гбайт пространства.
Структура Npv7 — сеть как фрактал. Для расчёта всех необходимых путей связи узла со всеми остальными узлами протокол использует особый алгоритм, называемый Quantum Shortest Path Netsukuku (QSPN). Фрактал — это математическая структура с дробной размерностью, которая обладает свойством рекурсивности: каждая её часть является уменьшенной копией целого. Поэтому возможно большое сжатие структуры, которая может безгранично расширяться. А это значит, что нужно всего лишь несколько килобайт для хранения всей карты маршрутов NETSUKUKU. Структура маршрутной карты NETSUKUKU может быть также определена как высококластеризованный граф узлов.
С другой стороны, QSPN представляет собой метаалгоритм в том смысле, что не следует никаким математическим правилам, а использует случайность и Хаос, которые не требуют сложных вычислений. QSPN выполняется в реальных сетях, узлы посылают QSPN пакеты для создания сети. По этой причине не всегда верно утверждение, что определённый пакет будет отослан раньше какого-либо другого.
NETSUKUKU не ограничивается созданием только сетей из компьютеров. Это протокол, который может использоваться в любой ситуации, когда надо соединить точки между собой.
Мобильная телефонная сеть представляет собой тысячи узлов, связанных с одним узлом, который распределяет трафик и передаёт информацию узлу назначения. NETSUKUKU может быть использована в мобильных телефонах, сделав бессмысленным существование многочисленных операторов сотовой связи.
NETSUKUKU может быть внедрена в любые коммуникационные системы, которые сейчас используются.
Протокол Npv7[править | править код]
Протокол NETSUKUKU, первая версия.
NETSUKUKU использует свой собственный протокол Npv7, который родился из трёх предыдущих версий. Первый был очень похож на нынешние протоколы динамического управления: сеть была фактически разделена на несколько групп, и каждый сигнальный узел имел чёткую карту полной сети. Такая система не могла работать с NETSUKUKU, так как требовалось постоянно обновлять карту сети и каждое обновление приводило к перегрузке сети. Кроме того, после каждого обновления сети требовалось пересчитать все пути.
Разграничения NETSUKUKU.
Базовые определения:
- src_node
- Исходный узел. Узел, который отправляет пакет узлу назначения dst_node.
- dst_node
- Узел назначения. Узел, который получает пакет от исходного узла src_node.
- r_node
- Удалённый узел, от узла X, это любой узел связанный с узлом X.
- g_node
- Группа узлов или группа групп узлов.
- b_node
- Пограничный узел — узел, соединённый с двумя (r_node) узлами из разных (g_node) групп узлов.
- h_node
- Цепляющийся узел — узел, подсоединяющийся к NETSUKUKU.
- int_map
- Внешняя карта. Внешняя карта узла X содержит информацию о группе узлов (g_node), к которой он принадлежит.
- ext_map
- Внешняя карта. Карта содержит информацию о группах узлов.
- bmap/bnode_map
- Карта пограничных узлов. Карта содержит информацию о (b_node) пограничных узлах.
Npv7 II Лазерная передача, направленная сразу нескольким неспецифицированным приёмникам.
Npv7 II вторая версия прокола Npv7.
NETSUKUKU разделена на много маленьких групп узлов, до ста узлов в каждой группе, и каждый узел имеет внешнюю карту маршрутов. Все группы организованны в мультигруппы, называемые quadro group_node. Для того, чтобы создать новый маршрут и соединится с заданным узлом, исходный узел, использую свою внешнюю карту, сначала ищет наилучший путь до пограничного узла группы, к которой принадлежит узел назначения.
QSPN[править | править код]
Тому, кто знаком с физикой волны, будет просто понять, как работает qspn. Если бросить камень в бассейн с водой, то можно наблюдать следующее: волны начинают распространяться из начальной точки, причём каждая волна рождает новую волну, которая продолжает распространяться и рождать все новые и новые волны. Когда волна ударяется о края бассейна или о какую-то преграду, она отражается и начинает распространяться в обратную сторону. В применении к qspn камень — это qspn_starter, бассейн — gnode, а каждая волна — tracer_pkt. Каждая новая волна несёт с собой информацию о родившей её волне. Когда tracer_pkt(волна) достигает extreme_node (препятствия или границы бассейна), рождается qspn_open (отражённая волна).
QSPN базируется на описанном принципе. Начиная трассировку узлов, каждый узел посылает qspn_pkt, называемый qspn_close, становясь тем самым qspn_starter. Qspn_pkt это обычный tracer_pkt, но его метод вещания немного отличается от остальных. Каждый пакет, который получает qspn_close, «закрывает» линк узла, от которого получил этот пакет и отсылает пакеты по всем своим остальным линкам. Все последующие полученные qspn_close пакеты будут переправляется по всем оставшимся незакрытым линкам. Через некоторый промежуток времени появляются узлы, у которых все линки будут закрыты. Такие узлы становятся extreme_node и посылают в качестве ответа другой qspn_pkt пакет (qspn_open). Другими словами, qspn_open пакет отправляется, после того как получены qspn_close пакты от всех узлов. Пакет qspn_open содержит всю информацию, собранную в последнем полученном пакете qspn_close. Extreme_node посылает пакет qspn_open по всем своим линкам, кроме того узла, от которого он получил последний qspn_close; этому узлу отсылается пустой пакет. Другими словами, пакет qspn_open отправляется после того, как узел получил пакет qspn_close от всех узлов. Узел, получивший пакет qspn_open, открывает все линки. Узлы со всеми открытыми связями абсолютно ничего не делают. Таким образом, гарантируется законченность обмена пакетами qspn_close. У qspn_open пакетов также есть идентификационный номер(sub_id) — число, которое идентифицирует во внешних картах узлы «extreme_node», сгенерировавшие эти qspn_open пакеты. Sub_id, сгенерированный в самом первом пакете и не меняющийся во всех порождённых(qspn_open) пакетах, используется для управления большим числом qspn_pkt пакетов, так как рано или поздно каждый узел сгенерирует пакет qspn_open, и все они должны быть независимы и отличны друг от друга. Действительно, все узлы, которые имеют только одну связь, — это узлы extreme_node, ведь когда они получают qspn_close, они уже закрыты. После отправки пакета qspn_open узел не может отвечать больше никому и ни на какие полученные qspn_pkt пакеты, поэтому он больше ничего не отправляет.
Узел qspn_starter, который запустил qspn, становится обычным узлом, но не отправляет пакет qspn_open, так как отправил первый qspn_close. Кроме того, чтобы обновить свою собственную карту, узел будет использовать все полученные qspn_close пакеты, кроме тех, которые были отправлены такими же qspn_start узлами. Таким образом, поддерживается стабильность в случае наличия более одного узла «qspn_starter».