Recent Changes - Search:

Главная страница

Проекты

Статьи

Домашний WiFi роутер

Архив проектов

Загрузки

GitHub

SourceForge

edit SideBar

SmartHomeNetL3

Note: лучше все реализовывать в терминах SCADA

Маршрутизация

Сеть имеет четкую древрвидную структуру с централизацией - есть самый главный узел.

M - master - главный узел
R - router - задачей является обслуживать другие узлы и передавать их запросы master'у
D - device - исполнительное устройство (конечный узел)

Note: передача возможна только вида: M->D; передача вида D->D - запрещена
Note2: возможно, не стоит так ограничивать транспортный уровень

Router - это эдакий мини-мастер для ветки. У device может быть только один router. В паре R-R главным является тот, который ближе к master'у. На одной физической линии может быть только один router.

Note: в качастве аналогии можно взять шину USB

Router имеет два адреса: выданный сетью - для общения с master'ом, и некий фиксированный (например 0xffff) для того, чтобы device'ы могли сразу общаться со своим router'ом.

Каждый router и master должны хранить таблицы маршрутизаци для всего, что входит в их ветку. Проблемы:

  • таблицы маршрутизации могут быть большими;
  • в случае отказа router'а таблицы маршрутизации будут утеряны.

Возможные решения:

  • разработать механизм восстановления маршрутов;
  • как вариант, имея возможность восстановить маршрут до любого узла, хранить в таблице не все маршруты, а только самые используемые.

Note: arp whi-is не подходить, так как Ethernet не поддерживает маршрутизацию.
Note2: разделение на сети, как в TCP/IP тоде не подходит, так как это разделение подразумевает некоторые действия по настройке и администрированию сети.
Идея:' рассмотреть MESH-сети и маршрутизацию по hash'ам.''

Динамическая адресация устройств

- возможна, если кто-то один их раздает

Пул адресов:

  1. адрес - это некоторое число от 0 до N-1
  2. 0 - адрес master'а
  3. N-1 - адрес локального router'а: если узел отправляет пакет по адресу N-1, то его должен принять роутер, к кторому непосредственно подключен узел
    1. впрочем, если отправить пакет на адрнс 0, то его тоже может принять локальный роутер
  4. адреса в диапазоне [M; N-1] считаются временными
    1. из этого диапазона узел выбирает адрес случайным образом и использует его, чтобы получить постоянный адрес в диапазоне [1; M-1]
    2. дальще локального роутера временный адрес не виден
  5. адреса в диапазоне [1; M-1] являются глобальными и выдны всей сети

Note: Минус динамических адресов - адрес не идентифицирует однозначно устройство. Придется придумывать какой-нибудь механизм по типу серийного номера или уникального имени.
Note2: Плюс - зато будет не важно, как мы подключаем узел: мы его сразу увидем в системе и будем идентифицировать по имени или серийному номеру.

Альтернатива

Как вариант, можно рассмотреть сеть с жестко фиксированной конфигурацией.

  1. уникальные адреса жестко прошиваются в узлы
  2. конфигурация сети описана администратором и известна master'у

Для небольшой домашней сети, где новые устройства добавляются нечасто, этот подход может быть вполне оправданым.

Edit - History - Print - Recent Changes - Search
Page last modified on February 24, 2015, at 03:08 pm