我正在尝试想出一种机制,使用中继器检测环路,然后关闭端口以打破环路。是否有任何解决方案可以 100% 奏效?
答案1
有一个标准协议,称为生成树协议。
顾名思义,它的工作原理是构建网络的生成树(包含所有节点但不包含环路的网络子集),然后禁用不属于生成树的任何端口。如果生成树中的链接发生故障,例如,如果有人拔掉电缆,协议可以自动更新生成树并激活另一条路径(该路径之前被禁用,因为它会形成环路)。
更新: STP 被取代为IEEE 802.1aq 最短路径桥接。
答案2
智能开关可以实现生成树协议 (STP)如果检测到自己的端口,将尝试通过选择性关闭端口来打破环路BPDU 数据包给他们回复。此外,他们的安全协议可能会关闭任何如果所述端口被指定为仅单终端,则会检测到 BPDU。
这就是说,纯粹中继器和枢纽大多数人不知道网络数据包的概念,更不用说网络环路了。它们在物理层 (L1) 运行,通常只做放大信号和尝试保持端口时钟同步。而且大多数(所有?)非托管交换机在网络环路方面并没有真正做得更好。