Я пытаюсь придумать механизм использования ретрансляторов для обнаружения петель, а затем отключить порты, чтобы разорвать петли. Возможно ли, чтобы любое решение работало на 100%?
2 ответа
Для этого есть стандартный протокол, называемый протоколом связующего дерева.
Как следует из названия, он работает, создавая связующее дерево сети - подмножество сети, которое включает в себя все узлы, но не содержит петель - и затем отключает все порты, которые не являются частью связующего дерева. Если ссылка в связующем дереве выходит из строя, например, если кто-то отключает кабель, протокол может автоматически обновить связующее дерево и активировать другой путь (который ранее был отключен, потому что он мог бы образовать цикл).
Обновление: STP заменено мостовым соединением по кратчайшему пути IEEE 802.1aq.
Интеллектуальные коммутаторы, которые реализуют протокол Spanning Tree Protocol (STP), будут пытаться разорвать петли путем выборочного отключения портов, если они обнаружат, что их собственные пакеты BPDU возвращаются к ним. Кроме того, их протоколы безопасности могут отключать порты, где был обнаружен любой BPDU, если указанный порт был назначен только для одного терминала.
Тем не менее, чистые ретрансляторы и концентраторы обычно не знают о концепции сетевого пакета, не говоря уже о петле сети. Они работают на физическом уровне (L1), часто делая немного больше, чем просто усиливая сигнал и пытаясь синхронизировать тактовые импульсы портов. И большинство (все?) неуправляемые коммутаторы на самом деле не лучше, когда дело доходит до петель сети.