正如标题所写,我的第一个问题是,第 2 层和第 3 层广播有什么区别?
如果主机发送第 2 层广播,交换机会将其发送到主机的所有端口,但不会发送到连接的其他交换机(上行链路),这是正确的,不是吗?但为什么呢?
它如何识别已经连接了开关?
答案1
如果是以太网,第 2 层广播将发送到广播 mac 地址 ffff:ffff:ffff,因此任何设备都可以接收。第 3 层广播将发送到广播网络地址,对于 10.1.1.0/24 的 IP 网络,该地址将是 10.1.1.255。如果 IP 网络通过以太网,第 3 层广播也会导致第 2 层广播。
交换机向同一广播域(即同一 VLAN,可以是所有端口)中的所有端口发送第 2 层广播。其中一些端口可能连接了其他交换机,这些交换机将在端口上接收广播,并将其发送到与传入端口位于同一广播域中的所有其他端口。所以不,这是不正确的。
但事实并非如此 — 参见 2。
请注意,这个答案没有讨论中继,这增加了答案的一点复杂性,但并没有真正改变前提。
答案2
基本上,第 2 层交换机利用其缓存表中的 Mac 地址来快速地将信息从一个端口传递到另一个端口。第 3 层交换机利用 IP 地址来执行相同操作。虽然前面的解释是“什么”,但对于网络人士来说,下面的“如何”要有趣得多。
本质上,第 2 层交换机本质上是一个多端口透明桥。第 2 层交换机将了解连接到每个端口的 MAC 地址并传递标记为这些端口的帧。它还知道如果帧从端口发出,但正在寻找它所连接的端口的 MAC 地址并丢弃该帧。虽然单 CPU 桥以串行方式运行,但当今基于硬件的交换机以并行方式运行,从而实现极快的交换。可以想象,第 3 层交换是路由器和交换机的混合体。
有不同类型的第 3 层交换,路由缓存和基于拓扑的交换。在路由缓存中,交换机需要路由处理器 (RP) 和交换引擎 (SE)。RP 必须侦听第一个数据包以确定目的地。此时,交换引擎在缓存表中创建一个快捷方式条目,以便其余数据包可以遵循。由于处理能力的进步和内存成本的大幅降低,当今高端第 3 层交换机实现了基于拓扑的交换,它构建一个查找表并用整个网络的拓扑填充它。数据库保存在硬件中,并在那里被引用以保持高吞吐量。它利用最长的地址匹配作为第 3 层目的地。
那么,什么时候以及为什么会使用 l2 而不是 l3 而不是路由器呢?简而言之,路由器通常位于私有网络和公共网络之间的网关。路由器可以执行 NAT,而 l3 交换机则不能(想象一下拥有整个互联网拓扑条目的交换机!!)。在一个非常扁平的小型网络中(意味着整个站点只有一个私有网络范围),将所有服务器和客户端连接到互联网的 L2 交换机可能就足够了。
对于较大的网络,或者需要包含广播流量或使用 VOIP 的网络,使用 VLAN 的多网络方法是合适的,而当使用 VLAN 时,L3 交换机是自然之选。虽然单板路由器可以工作,但如果有任何显著的 VLAN 间流量,路由器很快就会超负荷,因为路由器必须为收到的每个数据包做出复杂的路由决策。