如果交换机在它的表中没有目的地,它就会泛洪到所有(除了发送)端口。如果可以,为什么它不总是这样做,因为它比在表中查找要快?我想这与冲突有关:当 2 个节点同时在同一介质上传输时。但是无论如何冲突总是会发生,并且可以使用CSMA修复。我猜 CSMA 很慢并且想要避免?
如果我们有集线器和洪水的标签就好了。
如果交换机在它的表中没有目的地,它就会泛洪到所有(除了发送)端口。如果可以,为什么它不总是这样做,因为它比在表中查找要快?我想这与冲突有关:当 2 个节点同时在同一介质上传输时。但是无论如何冲突总是会发生,并且可以使用CSMA修复。我猜 CSMA 很慢并且想要避免?
如果我们有集线器和洪水的标签就好了。
cpt_fink 和 Shane 已经给出了很好的答案,但我会加 0.02 美元...
假设您淹没了进入交换机的每一帧,您实际上是将我们称为交换机的东西变成了集线器。这会导致以下问题:
仅供参考:YLearn 提供了一些关于泛洪如何导致有线网络问题的实际示例。
最后的想法:
如果交换机总是泛滥而不是学习 mac 地址,那么交换拓扑在现代网络中将不再可行。工程师会尽快采用路由,因为上面列出的三个问题对许多有线网络设计来说都是致命的。
有趣的是,无线 802.11 仅实现了上述列表中的隐私和安全;否则 wifi 会出现上述问题,即向所有主机“泛滥”非广播流量(从技术上讲,它不会泛滥,但结果是一样的)。802.11 的隐私和安全措施使 wifi 至少成为一个可行的选择。
编辑:
Celeritas 在评论中说:
...你说交换机更安全,但我严重怀疑人们选择交换机而不是集线器是因为他们想要安全性,安全性将建立在不同的级别。如果答案没有使用太多行话,例如什么是“线性”,那就太好了?
恐怕你误解了为什么人们选择交换机而不是集线器。人们选择交换机而不是集线器,因为上面列出的所有三个缺点都是有线网络的问题。
802.11 wifi 具有集线器所具有的三个问题中的两个;然而,wifi内置的隐私和安全措施使其在某些情况下成为可行的选择。
抱歉让您混淆“线速”一词。线速意味着您以有线 NIC 的速度发送流量。在千兆以太网链路上,线速取决于您发送的数据包大小,但线速不能超过 GE NIC 的传输速度,即每秒 1,000,000,000 位。
您认为最好进行泛洪,限制交换机的总吞吐量以有效地限制其最慢链路的带宽,以避免查询 MAC 地址表的几纳秒时间?
我认为你看错了——切换提供了比泛洪更好的性能,而且查找表的成本极低,在大多数情况下,这是在硬件中完成的。性能权衡绝对有利于切换泛洪。
Mike 发布了一个很好的答案,但让我提供一些示例来说明淹没所有流量所固有的问题。
想象一下,您有一个带有 24 个 1000baseT 端口的交换机(即能够或以 1000 Mbps 的速度运行 - 虽然在现实世界中无法真正实现,但为了简单起见,我们可以说我们可以)。端口 01-20 连接计算机/工作站,端口 21-23 连接服务器,端口 24 连接“互联网网关”。
Computer01 开始将原始视频片段推送到 Server21。Server21 能够获取完整的 1000Mbps 原始视频素材并将其编码为指定格式,然后“实时”将其返回给上传原始素材的主机。因此,Computer01 将 150Mbps 的原始素材发送到 Server21,然后返回 10Mbps 的数据流。
随着数据被淹没,现在有 160Mbps 的数据从交换机上的所有端口发送出去。此时没有性能问题,但 Computers02-20、Server22-23 和网关也都接收 160Mbps 的数据,他们每个人都必须处理这些数据,直到知道它不适合他们,然后丢弃流量。
Computer02-06 也开始将原始视频片段推送到 Server21。
有了另外五台计算机,我们现在已经达到了 960Mbps 的流量,所有端口都被淹没了。同样,这低于我们每秒 1000 Mbps 的限制,但相差不大。同样,网络上的大多数设备都将接收此流量,并且必须对其进行某种程度的处理。
只有 6 台活动计算机和一台服务器,我们几乎达到了泛洪网络的容量。网络上的剩余设备几乎没有剩余容量,例如如果 Computer07 想要从 Server22 开始 FTP 下载。
当我们达到 1000Mbps 限制时会发生什么?哪些流量不会被淹没?这对性能有何影响?
现在想象一下在一个完全填充的 48 端口交换机上(即更多的计算机/服务器/端点)。堆叠 7 个 48 端口交换机怎么样?具有 1000 个交换机端口的企业网络?
或者,在一个混合环境中,您可能在同一网络上有 10baseT、100baseTX 和 1000baseT 端口。上面的 Computer01 将完全使网络上较慢的设备完全饱和。
Computer10 开始从 Server23 导出患者列表并将其下载为 XML 文件。
这可能不会占用太多带宽,虽然通常网络设备会丢弃不是针对自身的流量,但情况并非总是如此。在这个网络上,计算机 15 已经受到攻击,它现在监视它接收到的所有流量,现在还能够“下载”包含患者列表的 XML 文件。
为了防止出现这种情况,您现在需要通过某种方式加密或保护所有内部流量。这需要资源来开发,资源来验证一切是否安全,而终端上的资源本身就可以加密/解密一切。
所以,回到你最初的问题,“如果可以,为什么不总是这样做,因为它比在表中查找要快?” 大多数交换机使用专门的硬件来非常非常快速地进行这些查找。这不是以微秒为单位,而是以纳秒为单位(并且不会达到两位数)。它也不依赖于 CPU 或内存资源。
将此与每个站点在检查和丢弃所有不必要的流量时所需的处理量进行比较(通常也以纳秒为单位,但它需要由每个设备完成,而不仅仅是交换机)。
或者当网络拥塞时超时并重新传输帧所需的时间(可能以秒为单位)。
或者在想要以安全方式进行通信的每组两个设备之间建立某种加密所需的时间(这很容易引入微秒延迟)。此外,这可能需要额外的流量(例如 SSL/TLS 交换等)。
在拥有多个设备的网络上淹没所有流量是完全不可行的。
简短回答 - 泛滥不会随着带宽和用户数量的增加而扩展。