IP流量的网络交换机功能

网络工程 转变 路由器 ip
2022-02-23 03:18:18

假设两台计算机和一台路由器连接到第 2 层以太网交换机。两台计算机都在路由器的 IP 网络上注册。计算机 1 的用户使用计算机 2 的 IP 地址向计算机 2 发送 ICMP ping 请求。我的理解(可能不正确)是这种通信不会通过路由器,只会通过交换机,因为计算机 1 保留了一个 ARP 表,并且能够在发送之前将计算机 2 的 IP 地址解析为其 MAC 地址。我的问题是双重的:

1) 源计算机最初“学习”目标计算机的 MAC 地址并因此能够在其 ARP 表中注册这种关系的机制是什么?

2)这两台计算机在技术上是否仍然通过 IP(第 3 层)进行通信?还是他们在第 2 层技术上实现 ICMP?我的困惑源于 ICMP 被认为是“IP 协议”这一事实。

2个回答

该交换机仅是第 2 层,仅维护一个包含 MAC 地址和交换机端口的表。

PC 是第 3 层设备,将使用 ARP 来查找他们想要与之交谈的其他 L3 设备的 MAC 地址。一旦知道 IP 到 MAC 地址的映射,发送 PC 就会在目标字段中创建一个包含远程 PC 的 IP 的数据包。然后这个数据包被转换成一个帧,目标字段中包含远程 PC 的 MAC 地址,然后发送到网络上。

直接回答问题 1) 交换机检查所有传入帧以将源 MAC 地址映射到该接口。然后交换机检查目标 MAC 地址字段以确定将帧发送到哪里,它对帧数据字段(包含 IP 数据包的位置)中的 IP(或 IPv6)地址不感兴趣。如果不知道数据包的目标 MAC 地址,则交换机会将数据包泛洪到收到它的 VLAN 中的所有端口。

问题 2) 是的,PC 正在通过 IP 进行通信。您不需要知道远程 PC 的 mac 地址,因为它是作为网络堆栈的一部分处理的。

要发送 ICMP ping,需要 L2 和 L3 连接。

当计算机 1 意识到计算机 2 的 MAC 地址不在其 ARP 表中时,它将向计算机 2 发送 ARP 请求。ARP 请求将使用 FF:FF 的目标 MAC 地址发送到计算机 2 的 IP 地址的目标:FF:FF:FF:FF,这是广播 MAC 地址,表示该帧将被发送到 L2 网段中的所有主机。但是,只有与 ARP 请求的 IP 目标匹配的主机才会响应,在这种情况下是计算机 2,所有其他主机都会丢弃它。当计算机 2 收到 ARP 请求时,它将使用源 IP 和 MAC 将包含其 MAC 地址的单播 ARP 响应发送回计算机 1。收到 ARP 响应后,计算机 1 将拥有计算机 2 的 IP 地址和 MAC 地址,并且能够完全通信。

为了回答您的另一个问题,ICMP 被认为在第 3 层运行。OSI 模型中的每一层都依赖于它下面的层。