Проекты GitHub SourceForge |
Проекты /
SmartHomeNetL3Note: лучше все реализовывать в терминах SCADA МаршрутизацияСеть имеет четкую древрвидную структуру с централизацией - есть самый главный узел. M - master - главный узел
R - router - задачей является обслуживать другие узлы и передавать их запросы master'у
D - device - исполнительное устройство (конечный узел)
Note: передача возможна только вида: M->D; передача вида D->D - запрещена Router - это эдакий мини-мастер для ветки. У device может быть только один router. В паре R-R главным является тот, который ближе к master'у. На одной физической линии может быть только один router. Note: в качастве аналогии можно взять шину USB Router имеет два адреса: выданный сетью - для общения с master'ом, и некий фиксированный (например 0xffff) для того, чтобы device'ы могли сразу общаться со своим router'ом. Каждый router и master должны хранить таблицы маршрутизаци для всего, что входит в их ветку. Проблемы:
Возможные решения:
Note: arp whi-is не подходить, так как Ethernet не поддерживает маршрутизацию. Динамическая адресация устройств
Пул адресов:
Note: Минус динамических адресов - адрес не идентифицирует однозначно устройство. Придется придумывать какой-нибудь механизм по типу серийного номера или уникального имени. АльтернативаКак вариант, можно рассмотреть сеть с жестко фиксированной конфигурацией.
Для небольшой домашней сети, где новые устройства добавляются нечасто, этот подход может быть вполне оправданым. |