为什么网桥不改变帧的 MAC 地址?

为什么网桥不改变帧的 MAC 地址?

我了解到路由器会使用其自己的传出接口之一更改数据包的 MAC 地址,而网桥不会发生这种情况。我发现很难理解这个实现下的逻辑,所以我希望你能帮助我。

太感谢了!

答案1

该路由器使用其自己的传出接口之一更改数据包的 MAC 地址,而网桥不会发生这种情况

路由器处理 IP 数据包(第 3 层):要做任何事情,它们都需要解包较低层的帧并取出 IP 数据包。完成后,他们需要将数据包打包到另一个适合传出接口的低级帧。该较低级别的帧通常是以太网帧,但值得注意的是,它不需要是。其中一个接口可能是不真正使用链路级地址的 PPP 链路,或者是使用其他类型的链路级地址的接口。 (PPP 形成点对点链路,所有帧都发往另一端,因此实际上不需要地址。)

形成新的以太网帧自然会将路由器的 MAC 地址作为该帧的第 2 层发送方,并将下一跳路由器作为第 2 层接收方。但是路由器不会修改 IP 数据包上的第 3 层 IP 地址,它会保留源地址,以便最终的 IP 接收者知道数据包来自哪里并可以进行回复,并且它会保留目标地址,以便下一跳路由器知道发送到哪里。

(也就是说,除非路由器执行 NAT,这会破坏美丽的画面。而且路由器也不会修改 IP 数据包:它们需要减少 TTL(生存时间)字段,对于 IPv4,修改相应的校验和,路由器可以进行数据包过滤以丢弃一些数据包,也许也查看更高级别的标头。)


因此,基本上,第 2 层以太网桥在第 2 层以太网帧上工作,根据第 2 层 MAC 地址进行转发,忽略内部内容(但从一种物理连接更改为另一种物理连接,例如,将双绞线铜缆更改为光纤)。路由器处理第 3 层 IP 数据包,根据 IP 地址进行转发,大多忽略内部内容,而是从一个第 2 层链路更改为另一个第 2 层链路。除此之外,例如,HTTP 代理将在 URL 上工作,大致将其作为“HTTP 目标地址”,保持不变,但使用一组新的源和目标 IP 地址形成新的较低级别“连接”。

相关内容