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».