Zer0Galaxy 2 187 Опубликовано: 23 июня, 2014 На сервере 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: бесконечность - не предел. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 25 июня, 2014 Предлагаю потестировать WEB-сервер, созданный на базе Craftnet. Для доступа к серверу вам понадобится уже упоминавшаяся библиотека функций (pastebin get FJqsDgZP ip) и конечно же браузер (pastebin get Gn6ki1TH browser). Браузер нужно запускать на цветном компьютере, оснащенном беспроводным модемом. После запуска браузера кликаем на белую строку ввода адреса и вводим адрес пока единственного сайта (white.poem). [ATTACH]118[/ATTACH] Если всё сделано правильно, вы сможете ознакомиться с несколькими шедеврами мировой поэзии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 25 июня, 2014 когда с сетью помочь? раскажи как динам маршрутизация работает??оч интересно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 26 июня, 2014 Сеть работает следующим образом. Имеется ряд роутеров, на данный момент семь штук. Каждый роутер имеет статическую таблицу маршрутизации, которая хранится в файле на диске роутера. Обычно она содержит только собственный ip-адрес роутера, но могут быть и исключения. После запуска роутеры начинают с определенным периодом (сейчас 5 минут) обмениваться своими маршрутами. Маршруты, полученные от другого роутера, сохраняются в ОЗУ. Каждый маршрут в таблице имеет параметр, который я называю "вес". Статические маршруты (загруженные из файла) имеют нулевой вес. Динамические - увеличивают свой вес на 1 при каждой передаче от роутера к роутеру. Т.е. если маршрут получен от соседнего роутера он будет иметь вес равный 1, если через одного то - 2. И т.д. Прежде чем добавить динамический маршрут, роутер сравнивает его вес с уже имеющимся в своей таблице и сохраняет маршрут с наименьшим весом. Это сделано для того, что бы хранить в таблице только самые короткие маршруты. Кроме того, маршруты подвержены старению. Если маршрут в течении периода не обновился, его вес увеличивается на единицу. Таким образом появляется шанс у более длинного, но более надежного маршрута. Благодаря этому сеть, хоть и не сразу, но восстанавливается в случае отключения одного из роутеров. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 26 июня, 2014 Теперь по поводу адресации. Адресация в реализованной сети трехуровневая. Это значит, что ip-адрес, возвращаемый функцией getIP, складывается из трех составляющих. Вот пример адреса, который может вернуть getIP white.snow.33 где: white - имя сегмента сети, snow - имя роутера, 33 - id компьютера. Что такое сегмент? Для уменьшения размеров таблиц маршрутизации вся сеть делится на сегменты. Роутер хранит маршруты не ко всем роутерам сети, а к сегментам и к роутерам в своем сегменте. Пример: предположим в сети сотня роутеров. Без сегментации каждому роутеру пришлось бы хранить сто маршрутов. Если сеть разбить на десять сегментов, в таблице маршрутизации каждого роутера будет девять маршрутов на соседние сегменты и десять маршрутов на роутеры своего сегмента. И того - 19. На данный момент реализован только один сегмент - белый. Но планируется еще как минимум шесть. А на счет помощи. Основные технические вопросы касающиеся доставки пакетов решены. Необходимо дальнейшее развитие сети. Наполнение web-серверов, создание электронной почты, чатов и т.д. Можешь подумать как перевести всё это дело на OpenComputers. И конечно актуальным является вопрос русификации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 26 июня, 2014 Сеть работает следующим образом. Имеется ряд роутеров, на данный момент семь штук. Каждый роутер имеет статическую таблицу маршрутизации, которая хранится в файле на диске роутера. Обычно она содержит только собственный ip-адрес роутера, но могут быть и исключения. После запуска роутеры начинают с определенным периодом (сейчас 5 минут) обмениваться своими маршрутами. Маршруты, полученные от другого роутера, сохраняются в ОЗУ. Каждый маршрут в таблице имеет параметр, который я называю "вес". Статические маршруты (загруженные из файла) имеют нулевой вес. Динамические - увеличивают свой вес на 1 при каждой передаче от роутера к роутеру. Т.е. если маршрут получен от соседнего роутера он будет иметь вес равный 1, если через одного то - 2. И т.д. Прежде чем добавить динамический маршрут, роутер сравнивает его вес с уже имеющимся в своей таблице и сохраняет маршрут с наименьшим весом. Это сделано для того, что бы хранить в таблице только самые короткие маршруты. Кроме того, маршруты подвержены старению. Если маршрут в течении периода не обновился, его вес увеличивается на единицу. Таким образом появляется шанс у более длинного, но более надежного маршрута. Благодаря этому сеть, хоть и не сразу, но восстанавливается в случае отключения одного из роутеров. вес можно не использовать , просто сделать так что самый первый пакет с маршрутом засчитывается а другие откидываютя . то есть представь сеть и идёт по ней маршрут пакет от A к D то есть зачем использовать лишние операции с весом если можно сделать так. мои роутеры так работаю и всё прекрасно и минимум операции Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 26 июня, 2014 Теперь по поводу адресации. Адресация в реализованной сети трехуровневая. Это значит, что ip-адрес, возвращаемый функцией getIP, складывается из трех составляющих. Вот пример адреса, который может вернуть getIP white.snow.33 где: white - имя сегмента сети, snow - имя роутера, 33 - id компьютера. Что такое сегмент? Для уменьшения размеров таблиц маршрутизации вся сеть делится на сегменты. Роутер хранит маршруты не ко всем роутерам сети, а к сегментам и к роутерам в своем сегменте. Пример: предположим в сети сотня роутеров. Без сегментации каждому роутеру пришлось бы хранить сто маршрутов. Если сеть разбить на десять сегментов, в таблице маршрутизации каждого роутера будет девять маршрутов на соседние сегменты и десять маршрутов на роутеры своего сегмента. И того - 19. На данный момент реализован только один сегмент - белый. Но планируется еще как минимум шесть. А на счет помощи. Основные технические вопросы касающиеся доставки пакетов решены. Необходимо дальнейшее развитие сети. Наполнение web-серверов, создание электронной почты, чатов и т.д. Можешь подумать как перевести всё это дело на OpenComputers. И конечно актуальным является вопрос русификации. OpenComputers энергия для компьютера нужна,CC по лучше на эту тему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 26 июня, 2014 вес можно не использоватьПредположим, мы имеем вот такую сеть Как видим, возможны два маршрута от роутера 1 к роутеру 3. Вес одного из них равен 2, а другого - 3. Естественно выбран будет наиболее короткий маршрут с наименьшим весом. Но что случится если второй роутер выйдет из строя? Прежний маршрут станет недоступным и на какое то время связь прервется. Но к счастью есть старение маршрута. И через пять минут, когда он не обновится, его вес станет равным трем. А еще через пять и вовсе четырем. Вот тут то и стрельнет длинный маршрут, который продолжает обновляться. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 26 июня, 2014 всё просто.Если роутер С накрылся, до роутера D вообще ничего не дойдет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 26 июня, 2014 Если роутер С накрылся, до роутера D вообще ничего не дойдетя не так изобразил,забыл добавить еще один роутер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 81 Опубликовано: 9 июля, 2014 Быстрей расширяй сеть! а то на 1000 блоков от спавна не берет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 81 Опубликовано: 9 июля, 2014 И еще есть идея сделать проводной инет в смысле написать такойже роутер только с одной стороны локальная сеть а с другой CraftNet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 9 июля, 2014 Быстрей расширяй сеть! а то на 1000 блоков от спавна не берет...В какую сторону расширять? Не хотелось бы строить сеть там, где она никому ненужна.И еще есть идея сделать проводной инет в смысле написать такойже роутер только с одной стороны локальная сеть а с другой CraftNet Без проблем. Только это будет скорее не роутер, а мост между проводной и беспроводной сетью Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 81 Опубликовано: 9 июля, 2014 тогда все ЗБС В какую сторону расширять? Не хотелось бы строить сеть там, где она никому ненужна.зайди на севрер и телепортируйся ко мне домой... я просто не знаю в какой стороне, я рядом с Rush'эм живу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 9 июля, 2014 Не знаю когда смогу зайти на сервер. Укажи координаты. Можно в личку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 81 Опубликовано: 9 июля, 2014 Не знаю когда смогу зайти на сервер. Укажи координаты. Можно в личкуИзвини уже вышл... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 9 июля, 2014 Craftnet расширено на северо-запад Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Syabro 81 Опубликовано: 9 июля, 2014 Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 9 июля, 2014 Дмитрий, можешь указать карту покрытия приблизительно (концентрическими кольцами) или еще как-то?П.С. За работу над программой выдаю стак иридия и иридиевую дрил 3 уровня, а также 3 ультимативно-гибридные солнечные панельки и "гравик". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 10 июля, 2014 Дмитрий, можешь указать карту покрытия приблизительно (концентрическими кольцами) или еще как-то?Выкладываю карту покрытия на сегодняшний день[ATTACH]122[/ATTACH] Большая тонкая окружность - планируемое покрытие 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах