Есть система связи. В ней несколько десятков устройств. Все данные - по двум проводам. Протокол - простой: старт+кому+команда+CRC8
Есть теоретическая вероятность, что будут хулиганы, которые подключится и будут слать команды последовательно перебором на все адреса. Хотя адресное поле весьма велико, но вероятность "попадания" на задействованный адрес - велика.
Что применить из программной реализации в протоколе?
придумал только решение усложнением протокола:
Передающее устройство выдает команду подчиненному и случайный код.
Подчиненное устройство принимает эти данные и код, выполняет преобразование кода и выдает его передающему устройству.
Передающее устройство выполняет те же преобразования и сравнивает на идентичность. При несовпадении команда игнорируется.
Но этот метод увеличивает продолжительность времени обмена, что также увеличивает и вероятность повреждения пакетов с информацией.
Делать единый код\ключ на сеанс не получается - система не имеет единого контроллера, все сами по себе.


