我们希望防止网络中的环路,无论是 LAN 还是 WAN。然而,对于第 2 层 LAN 网络,STP 用于防止循环交换机。但是在第 3 层使用 TTL 字段。为什么不将 STP 也用于第 3 层?
第 3 层的生成树
第 3 层没有环路问题,相反,ARPANET(最终成为 Internet)的目的是建立一个网状网络,可以抵御攻击(即丢失节点不会影响整个网络的 IE) )。
实际上,网络中第 3 层的“循环”越多,网络就越健壮。
首先,您需要记住,IP 和以太网是不同的人为满足不同需求而设计的不同协议。我知道供应商喜欢使用术语“第 2 层”和“第 3 层”,就好像协议是某些一致协议栈的一部分一样,但它们并不意味着它们确实如此。
以太网旨在为建筑物或校园提供本地网络。传统的以太网网络本质上是一条总线,中继器/集线器/网桥/交换机将其扩展为一棵树。
然而,从性能和可靠性的角度来看,树很糟糕,网络中心的网桥/交换机成为瓶颈和单点故障。网络越大,情况就越糟糕。
STP 在某种程度上解决了可靠性问题。链路聚合在某种程度上解决了性能问题,但总体而言,它仍然是构建大型网络的糟糕方式。由于 STP 禁用链接,大量容量处于空闲状态,并且数据包通常需要比到达目的地所需的更长的路由,如果 STP 根失败,则可能会在整个网络中看到影响。
IP 设计用于互连多个网络,其中至少一个(阿帕网)已经拥有多个站点。试图强迫网络变成一棵树是没有意义的。相反,IP 网络依靠静态定义的路由和路由协议的组合来确定数据应该发送到哪里。
“TTL”是一个安全阀,可以阻止错误路由的数据包永远循环。在正常操作中它不应达到零。
有趣的是,以太网的可扩展性问题以及对地理上分散的大型以太网域的需求(例如,允许数据中心之间的无缝 VM 迁移)导致人们在其他协议之上运行以太网。新的热点似乎是使用 VXLAN 将以太网帧封装在 UDP 数据包中,然后使用 BGP 来控制它们的发送位置。
在第 3 层构建生成树是没有意义的,因为每个数据包可以从源到目的地采用不同的路径;这是设计使然。
正如您所提到的,防止数据包在第 3 层网络中永远循环的机制(除非存在路由错误,否则永远不会发生)是生存时间字段(TTL),其值在每一跳减少 1 .