Перейти к содержимому


Фотография

[CC] Craftnet


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 127

#1 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 23 Июнь 2014 - 19:57

На сервере 164 успешно прошла тестирование глобальная сеть Craftnet.
Если вы знаете и используете API rednet, вас должна заинтересовать возможность связать между собой компьютеры, находящиеся на расстоянии гораздо дальше чем 64 блока.
Что для этого нужно? Два или более компьютеров, оборудованных беспроводными модемами и находящихся в зоне покрытия Craftnet. Расстояние между ними значения не имеет.
На данный момент зона покрытия имеет радиус порядка 600 блоков с центром в районе спауна.
Как этим пользоваться?
На каждый компьютер загружаем пакет функций для работы с Craftnet
http://pastebin.com/FJqsDgZP
Функций всего четыре. Вот они:
open() - инициализирует беспроводной модем. В отличии от стандартного rednet.open, не требует указывать сторону, на которой расположен модем. Возвращает true в случае удачной инициализации
getIP() - регистрирует компьютер в сети. Возвращает строку с адресом. Этот адрес понадобится другому компьютеру, если он захочет нам что то передать. Функции open и getIP достаточно вызвать один раз.
send(ip, mess) - передает сообщение mess компьютеру с адресом ip. Аналог функции rednet.send, только адрес не число, а строка, полученная функцией getIP.
receive([timeout]) - переводит компьютер в режим приема сообщений. Аналог функции rednet.receive. Необязательный параметр timeout, как и раньше, задает максимальное время ожидания. Возвращает 1) принятое сообщение 2) ip отправителя 3) ip получателя.

Выражаю признательность игроку Neo за идеи, высказанные при обсуждении структуры сети.

Rednet: предел - 64 блока;
Craftnet: бесконечность - не предел.


#2 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 25 Июнь 2014 - 20:25

Предлагаю потестировать WEB-сервер, созданный на базе Craftnet. Для доступа к серверу вам понадобится уже упоминавшаяся библиотека функций (pastebin get FJqsDgZP ip) и конечно же браузер (pastebin get Gn6ki1TH browser). Браузер нужно запускать на цветном компьютере, оснащенном беспроводным модемом. После запуска браузера кликаем на белую строку ввода адреса и вводим адрес пока единственного сайта (white.poem). [ATTACH]118[/ATTACH] Если всё сделано правильно, вы сможете ознакомиться с несколькими шедеврами мировой поэзии.

Прикрепленные изображения

  • 2014-06-25_20.19.30.jpg


#3 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 25 Июнь 2014 - 20:33

когда с сетью помочь? раскажи как динам маршрутизация работает??оч интересно

#4 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Июнь 2014 - 09:45

Сеть работает следующим образом. Имеется ряд роутеров, на данный момент семь штук. Каждый роутер имеет статическую таблицу маршрутизации, которая хранится в файле на диске роутера. Обычно она содержит только собственный ip-адрес роутера, но могут быть и исключения. После запуска роутеры начинают с определенным периодом (сейчас 5 минут) обмениваться своими маршрутами. Маршруты, полученные от другого роутера, сохраняются в ОЗУ. Каждый маршрут в таблице имеет параметр, который я называю "вес". Статические маршруты (загруженные из файла) имеют нулевой вес. Динамические - увеличивают свой вес на 1 при каждой передаче от роутера к роутеру. Т.е. если маршрут получен от соседнего роутера он будет иметь вес равный 1, если через одного то - 2. И т.д. Прежде чем добавить динамический маршрут, роутер сравнивает его вес с уже имеющимся в своей таблице и сохраняет маршрут с наименьшим весом. Это сделано для того, что бы хранить в таблице только самые короткие маршруты. Кроме того, маршруты подвержены старению. Если маршрут в течении периода не обновился, его вес увеличивается на единицу. Таким образом появляется шанс у более длинного, но более надежного маршрута. Благодаря этому сеть, хоть и не сразу, но восстанавливается в случае отключения одного из роутеров.
  • Alex, Totoro и Nazik_VN это нравится

#5 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Июнь 2014 - 10:36

Теперь по поводу адресации. Адресация в реализованной сети трехуровневая. Это значит, что ip-адрес, возвращаемый функцией getIP, складывается из трех составляющих. Вот пример адреса, который может вернуть getIP
white.snow.33
где: white - имя сегмента сети, snow - имя роутера, 33 - id компьютера.
Что такое сегмент? Для уменьшения размеров таблиц маршрутизации вся сеть делится на сегменты. Роутер хранит маршруты не ко всем роутерам сети, а к сегментам и к роутерам в своем сегменте.
Пример: предположим в сети сотня роутеров. Без сегментации каждому роутеру пришлось бы хранить сто маршрутов. Если сеть разбить на десять сегментов, в таблице маршрутизации каждого роутера будет девять маршрутов на соседние сегменты и десять маршрутов на роутеры своего сегмента. И того - 19.
На данный момент реализован только один сегмент - белый. Но планируется еще как минимум шесть.

А на счет помощи. Основные технические вопросы касающиеся доставки пакетов решены. Необходимо дальнейшее развитие сети. Наполнение web-серверов, создание электронной почты, чатов и т.д. Можешь подумать как перевести всё это дело на OpenComputers. И конечно актуальным является вопрос русификации.

#6 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 26 Июнь 2014 - 15:28

Сеть работает следующим образом. Имеется ряд роутеров, на данный момент семь штук. Каждый роутер имеет статическую таблицу маршрутизации, которая хранится в файле на диске роутера. Обычно она содержит только собственный ip-адрес роутера, но могут быть и исключения. После запуска роутеры начинают с определенным периодом (сейчас 5 минут) обмениваться своими маршрутами. Маршруты, полученные от другого роутера, сохраняются в ОЗУ. Каждый маршрут в таблице имеет параметр, который я называю "вес". Статические маршруты (загруженные из файла) имеют нулевой вес. Динамические - увеличивают свой вес на 1 при каждой передаче от роутера к роутеру. Т.е. если маршрут получен от соседнего роутера он будет иметь вес равный 1, если через одного то - 2. И т.д. Прежде чем добавить динамический маршрут, роутер сравнивает его вес с уже имеющимся в своей таблице и сохраняет маршрут с наименьшим весом. Это сделано для того, что бы хранить в таблице только самые короткие маршруты.
Кроме того, маршруты подвержены старению. Если маршрут в течении периода не обновился, его вес увеличивается на единицу. Таким образом появляется шанс у более длинного, но более надежного маршрута. Благодаря этому сеть, хоть и не сразу, но восстанавливается в случае отключения одного из роутеров.


вес можно не использовать , просто сделать так что самый первый пакет с маршрутом засчитывается а другие откидываютя . то есть представь сеть и идёт по ней маршрут пакет от A к D Изображение
то есть зачем использовать лишние операции с весом если можно сделать так. мои роутеры так работаю и всё прекрасно и минимум операции

#7 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 26 Июнь 2014 - 15:35

Теперь по поводу адресации. Адресация в реализованной сети трехуровневая. Это значит, что ip-адрес, возвращаемый функцией getIP, складывается из трех составляющих. Вот пример адреса, который может вернуть getIP
white.snow.33
где: white - имя сегмента сети, snow - имя роутера, 33 - id компьютера.
Что такое сегмент? Для уменьшения размеров таблиц маршрутизации вся сеть делится на сегменты. Роутер хранит маршруты не ко всем роутерам сети, а к сегментам и к роутерам в своем сегменте.
Пример: предположим в сети сотня роутеров. Без сегментации каждому роутеру пришлось бы хранить сто маршрутов. Если сеть разбить на десять сегментов, в таблице маршрутизации каждого роутера будет девять маршрутов на соседние сегменты и десять маршрутов на роутеры своего сегмента. И того - 19.
На данный момент реализован только один сегмент - белый. Но планируется еще как минимум шесть.

А на счет помощи. Основные технические вопросы касающиеся доставки пакетов решены. Необходимо дальнейшее развитие сети. Наполнение web-серверов, создание электронной почты, чатов и т.д. Можешь подумать как перевести всё это дело на OpenComputers. И конечно актуальным является вопрос русификации.

OpenComputers энергия для компьютера нужна,CC по лучше на эту тему

#8 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Июнь 2014 - 15:49

вес можно не использовать

Предположим, мы имеем вот такую сеть
1.gif
Как видим, возможны два маршрута от роутера 1 к роутеру 3. Вес одного из них равен 2, а другого - 3. Естественно выбран будет наиболее короткий маршрут с наименьшим весом. Но что случится если второй роутер выйдет из строя?
2.gif
Прежний маршрут станет недоступным и на какое то время связь прервется. Но к счастью есть старение маршрута. И через пять минут, когда он не обновится, его вес станет равным трем. А еще через пять и вовсе четырем. Вот тут то и стрельнет длинный маршрут, который продолжает обновляться.
  • Alex это нравится

#9 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 26 Июнь 2014 - 16:40

всё просто.

Если роутер С накрылся, до роутера D вообще ничего не дойдет

#10 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 26 Июнь 2014 - 18:01

Если роутер С накрылся, до роутера D вообще ничего не дойдет

я не так изобразил,забыл добавить еще один роутер

#11 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 286
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 28 мин.

Отправлено 09 Июль 2014 - 13:12

Быстрей расширяй сеть! а то на 1000 блоков от спавна не берет...

#12 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 286
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 28 мин.

Отправлено 09 Июль 2014 - 13:19

И еще есть идея сделать проводной инет в смысле написать такойже роутер только с одной стороны локальная сеть а с другой CraftNet

#13 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 09 Июль 2014 - 13:53

Быстрей расширяй сеть! а то на 1000 блоков от спавна не берет...

В какую сторону расширять? Не хотелось бы строить сеть там, где она никому ненужна.

И еще есть идея сделать проводной инет в смысле написать такойже роутер только с одной стороны локальная сеть а с другой CraftNet

Без проблем. Только это будет скорее не роутер, а мост между проводной и беспроводной сетью

#14 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 286
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 28 мин.

Отправлено 09 Июль 2014 - 14:01

тогда все ЗБС :)

В какую сторону расширять? Не хотелось бы строить сеть там, где она никому ненужна.

зайди на севрер и телепортируйся ко мне домой... я просто не знаю в какой стороне, я рядом с Rush'эм живу

#15 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 09 Июль 2014 - 14:18

Не знаю когда смогу зайти на сервер. Укажи координаты. Можно в личку

#16 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 286
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 28 мин.

Отправлено 09 Июль 2014 - 15:18

Не знаю когда смогу зайти на сервер. Укажи координаты. Можно в личку

Извини уже вышл...

#17 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 09 Июль 2014 - 19:57

Craftnet расширено на северо-запад

#18 Оффлайн   Syabro

Syabro
  • Пользователи
  • Сообщений: 286
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 28 мин.

Отправлено 09 Июль 2014 - 21:11

Спасибо!

#19 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 10 Июль 2014 - 02:40

Дмитрий, можешь указать карту покрытия приблизительно (концентрическими кольцами) или еще как-то?

П.С. За работу над программой выдаю стак иридия и иридиевую дрил 3 уровня, а также 3 ультимативно-гибридные солнечные панельки и "гравик".



#20 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 10 Июль 2014 - 12:30

Дмитрий, можешь указать карту покрытия приблизительно (концентрическими кольцами) или еще как-то?

Выкладываю карту покрытия на сегодняшний день
[ATTACH]122[/ATTACH]
Большая тонкая окружность - планируемое покрытие

Прикрепленные изображения

  • craftnet.gif

  • Alex это нравится

#21 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 11 Июль 2014 - 18:17

Круто,я соавтор,а мне ничего не дали.Zer0Galaxy,а так не красиво

#22 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 11 Июль 2014 - 18:58

Круто,я соавтор,а мне ничего не дали.Zer0Galaxy,а так не красиво

Пол стака иридия и одна солнечная панелька и гравик твои. Идет?

#23 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 11 Июль 2014 - 22:48

Пол стака иридия и одна солнечная панелька и гравик твои. Идет?

Zer0Galaxy,я не ресурсов хочу, просто я же тебе помогал,а ты про меня забыл.я показывал первые прототипы сети делился мыслями решали с тобой вместе, а тут ты про меня забыл как про соавтора. да и просто про наш общий проект сам по себе начал писать его.

#24 Оффлайн   fenixrus

fenixrus
  • Пользователи
  • Сообщений: 27
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 12 Июль 2014 - 08:18

кстати для меж пространства можно использовать ликующиеся карты из openComputers

#25 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 14 Июль 2014 - 13:58

кстати для меж пространства можно использовать ликующиеся карты из openComputers

А кто нибудь пробовал ОС с СС связывать?

#26 Оффлайн   fenixrus

fenixrus
  • Пользователи
  • Сообщений: 27
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 16 Июль 2014 - 10:58

А кто нибудь пробовал ОС с СС связывать?

в opencomputers есть блок (коммутатор aka "switch") он позволяет соединить сети CC с сетью OC

#27 Оффлайн   fenixrus

fenixrus
  • Пользователи
  • Сообщений: 27
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 16 Июль 2014 - 11:05

Надо кстати попробовать

#28 Оффлайн   fenixrus

fenixrus
  • Пользователи
  • Сообщений: 27
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 16 Июль 2014 - 11:28

Щас попробовал OC отправляет сообщение, а CC не хочет принимать ну не ловит он событие и все

#29 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 734
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 16 Июль 2014 - 12:38

Все ловит и туда и обратно. Только что проверял =) Даже взаимная сериализация/десериализация без проблем пашет.

#30 Оффлайн   Semoro

Semoro
  • Пользователи
  • Сообщений: 17
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 31 Июль 2014 - 13:05

Zer0Galaxy нужна твоя помощь в организации моста связи для Clor Tower, ибо не могу разобраться с кодом роутера




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных