在第 2 层,帧直接从主机传递到主机,这意味着每个源主机与目标主机位于同一网络上。为了从一个网络到另一个网络(互联网),我们有第 3 层协议,例如 IP(互联网协议)。
第 2 层的主机通过广播找到彼此,并在它们不知道目的地的地方交换泛洪帧,因此无法扩展,并且您有单独的网络和协议来连接单独的网络。
- 假设您有一个办公室,其计算机连接在 LAN 上。为什么不能所有的计算机都充当自己的路由器,让办公室成为第 3 层拓扑?为什么第 2 层是必要的?
在某些方面,每台主机都是一个路由器,并且内置了第 3 层。但每台主机可能只有一个与网络的连接。路由器在网络之间路由数据包,它们将有多个接口。路由器是网络上知道如何到达其他网络的主机。对于网络上的流量,第 2 层帧直接寻址到目标主机,但要到达不同的网络,帧的地址是路由器的地址。如果路由器没有到目标网络的路径,它会丢弃数据包。
- 是什么阻止我们将防火墙实现为任意第 3 层拓扑中的节点,而不是位于网络层和链路层的接口?
防火墙是物理层和数据链路层的一个节点,它可能有一个用于管理的网络地址和(在大多数情况下)每个接口。网络地址是第 3 层地址,因此拓扑是第 3 层。
- 为什么我们使用不同的协议(生成树与路由)来解决本质上相同的问题?
生成树和路由是具有不同目的的非常不同的协议。生成树旨在通过在单个网络上设置到根网桥的单个无环路路径来防止第 2 层环路。路由旨在将数据包从一个网络发送到另一个网络。第 2 层和第 3 层都可能有循环(非常糟糕)。生成树是一种防止第 2 层出现循环的协议,因为第 2 层帧只会传播和放大,直到网络崩溃(发生得非常快)。IP(第 3 层协议)的 TTL 在数据包被设备处理时会递减,因此数据包不会像第 2 层帧那样永远循环,但路由协议通常会尝试防止路由循环,但路由器仍然可以配置为循环。
请记住,路由协议不路由数据包,它们让路由器交换路由信息。路由器根据路由表中的内容路由数据包,这些路由表可以由路由协议填充(直接连接的网络和静态配置的路由也可以比从路由协议学习的路由更优先地填充路由表)。一个更好的类比是将交换机 MAC 地址表与路由表进行比较。路由器可以使用路由协议从其他路由器获知目的地的位置。交换机直接从通过每个交换机的帧中学习目标接口,但不与其他交换机通信。
还要记住,不同的协议是由不同的人在不同的时间为不同的目的定义的,它们由不同的团体和标准机构维护。我们今天使用的(主要是以太网,虽然被 Wi-Fi 和 IPv4 补充和取代)是市场选择的。Bob Metcalfe(以太网)和 Vint Cerf(IP)真的不知道彼此或对方在做什么。每个人都为自己的目的制定了一个协议。