[an error occurred while processing this directive]
|
и удобный способ.
1) все уст-ва имеют уникальный адрес
2) поиск уст-в осуществляется посылкой ШВ пакета, в тело которого ставят отметки все через кого он прошел, чтоб этими устройствами повторно он не обрабатывался, при достижении получателя пакет автоматически отсылается обратно по известному маршруту.
3) создается соединение, между узлами, на каждом транзитном узле создается временная запись маршрутизации, в соответствии с входящим ID соединения.
4) ID соединения для одного соединения между разными узлами в цепочке могут быть различными
Ист<-(ID=4)->Транзит<-(ID=6)->Получатель.
т.е. заполняются свободные записи о соединениях.
5) по команде разрушить соединение, записи удаляются, так же они удаляются по таймауту, если продолжительное время не было обмена, с уведомлением соседних узлов.
6) Кроме ID соединения нужно ввести проверочный код(можно 1 байт), растущий при каждом новом соединении для каждого ID отдельно.
примерная таблиц соединений
Порт источника | ID соединения | IDcount | Порт полутеля | таймаут
7) Пакеты можно отсылать в обоих направлениях используя ID полученное при создании соединения, а источником будет являтся инициатор соединения.
Получаем динамическую маршрутизацию, минимум загрузки канала при обмене, недостаток необходима память для регистрации соединений на каждом узле.
Можно конечно пойти более простым путем, ведя только таблицу динамической маршрутизации, но тогда в каждом пакете нужно будет держать адрес источника и получателя, а таблица соединений замениться на таблицу маршрутов
исходящий порт | адрес уст-ва | таймаут
в случае отсутствия получателя в таблице пакет убивается, а проход ШВ пакетов разрешен только пакета поиска узла см.п.2
E-mail: info@telesys.ru