同一网络中的数据包流
先决条件 – ARP 如何工作?
要将数据包从源传输到目标,必须知道目标的 MAC 地址和 IP 地址。如果目标 MAC 地址不存在,则 ARP 将首先解决此问题,然后数据包将被传递到目标主机。
网络中的数据包流有一些简单的规则:
- 如果目标主机与源主机位于同一网络中,则数据包将使用 MAC 地址直接传送到目标主机。
- 在网络内,数据包将根据 MAC 地址进行传递。
- MAC 地址从不跨越其广播域。
现在,首先,我们必须了解 ARP。
地址解析协议 –
地址解析协议是第 2 层(数据链路层)协议,用于查找已知 IP 地址的 MAC 地址。
有一些与 ARP 相关的重要术语:
ARP 缓存是由 ARP 维护的表,其中包含一个 IP 地址及其关联的 MAC 地址和类型。如果 MAC 地址是动态学习的,则类型将是动态的,如果 MAC 地址是手动添加的,则类型将是静态的。
ARP 请求是由源生成的广播消息,用于在最初未解析 ARP 的情况下查找目标 MAC 地址。
ARP 回复是从目标设备到源设备的单播消息,其中包含目标 MAC 地址。
解释 -
ARP过程中包含的步骤如下:-
当源想要向目标设备发送数据包时,
1.检查源ARP缓存是否解析了ARP。如果 ARP 没有被解析,它将暂停数据包并生成一个 ARP 请求。
2. 如果 ARP 已经解析,则数据包将被传递到目标主机。
3. ARP 请求在整个网络中广播,以找出设备有一个目标 IP 地址。
注意 –如果目标存在于同一网络中,则 ARP 将找出目标 MAC 地址,但如果它存在于不同网络中,则 ARP 将找出默认网关 MAC 地址。
4. 目的IP地址的设备收到ARP请求后,更新自己的ARP缓存。
5. 目标主机生成一个包含它自己的 MAC 地址的 ARP 回复。
6. 现在,具有源 IP 地址的设备收到 ARP 回复并更新其 ARP 缓存。
7. 由于源IP地址和目的IP地址和MAC地址现在都可用,因此,数据包被传递到目的主机。
现在,我们对 ARP 协议有了一个概念。让我们看看数据包流。
现在我们将了解当目的地存在于同一网络(源网络)中时数据包如何传递到目的地。
这是主机 A 的 IP 地址为 192.168.1.1,主机 B 的 IP 地址为 192.168.1.2,路由器在接口 fa0/0 上的 IP 地址为 192.168.1.3 的拓扑。
现在如何源设备将知道目标存在于相同或不同的网络中。让我们明白:-
源IP地址、源子网掩码与目的IP地址、源子网掩码之间进行AND运算。如果两者的结果相同,则目的地存在于同一网络中,否则存在于不同的网络中。
让我们尝试从主机 A ping 主机 B。
如您所见,生成了 2 个数据包,一个是 ICMP,另一个是 ARP(绿色)。生成 ARP 帧是因为主机 A 尚未与主机 B 通信,即 ARP 尚未解析,即首先解析 ARP,以便主机 A 具有主机 B MAC 地址的条目。
如前所述,ARP 请求将首先在网络中针对目标 IP 地址进行广播,因为路由器不转发广播数据包。如上图所示,交换机接收到广播请求。
交换机广播 ARP 请求,因为以太网标头中的条目是 FFFF.FFFF.FFFF(广播 MAC 地址)。
如上图所示,请求被主机 B 接收。主机 B 立即生成一个 ARP 回复,指定它自己的 MAC 地址。
现在主机 B 向主机 A 单播 ARP 回复,交换机收到该回复,然后将其转发给主机 A,如上图 2 所示。
笔记 -
交换机能够单播回复,因为当主机 A 广播 ARP 请求时,交换机在其 MAC 表中放置了主机 A 的条目。同样,当交换机接收到主机 B 时,交换机也为主机 B 放置了条目
ARP 回复。
现在 ARP 已经解析,ICMP 将从主机 A 单播到主机 B(如上所示)。
现在 ICMP 确认数据包将从主机 B 单播到主机 A,即主机 B 从主机 A 成功 ping 通,如上图所示。