欢迎,来自IP地址为:3.239.87.20 的朋友



如图所示,假设所有设备均以开启并工作正常,图中的交换机为二层交换机,两台终端也已经设置完成。

步骤1、User 1 ping 远程 User 2。由于两台 PC 被路由器分开,并且它们位于不同的网络(子网)上。User 1 主机使用位计算的ANDing 方法确定目标 IP 位于远程网络上,因此 User 1将使用其默认网关

步骤2、User1 在其 ARP 缓存中查找默认网关 IP 地址。如果没有,它会发送 ARP 请求(嘿,IP 为 192.168.1.1的设备,你的 MAC 是多少?)

步骤3、SW- 1 获取到该帧;识别出该帧是 ARP 广播,因此 SW-1 处理该帧,添加 MAC 源地址和它进入的接口号

步骤4、ARP 的广播帧(所有 FFFF),SW-1  将帧发送到同一  VLAN 中除接收端口之外的所有端口(帧不会移动到 OSI 中的上层,而是数据链路负责处理)

步骤5、广播 ARP 到达 Router, Router 接受帧,因为目标 IP 地址与接收端口的 IP 地址匹配

步骤6、Router 使用接收到的信息更新其 ARP 表,并使用接收端口的 MAC 地址回复 ARP 请求。(我是192.168.1.1,我的 MAC是 0a.11.2c.e3.4x.9a)。ARP 响应帧会返回到 User 1

步骤7、SW-1 具有 User 1 的 MAC,但添加了 Router 的 MAC 并仅向 User 1 发送响应帧。User 1 接收 APR 响应并将信息放入其 ARP 缓存中

步骤8、现在,User 1 可以继续最初尝试执行的操作。User 1 获取缓存中存储的默认网关的 MAC,并使用上层协议构建数据包

步骤9、User 1 向 User 2 发送数据包。源 IP 为 User 1,目标 IP 为 User 2;源 MAC 为 User 1,目标 MAC 是路由器的Fa0/1。 交换机接收数据包并从连接到 Router 的端口转发,直到现在,它也没有做任何特别的事情

步骤10、Router 查看目标 MAC 。发现就是为了他,于是处理帧并查看目的 IP 地址。发现止标 IP 是直接连接的,因此它将处理数据包(路由器知道直接连接的网络;User 2 是直接连接的)

步骤11、如果 Router 的缓存中没有 User 2 的 MAC 地址,它将在连接 User 2 的接口上发送 ARP 广播。Router 等待来自 User 2 的 ARP 响应,而不是来自 SW-2 的 ARP 响应,尽管 ARP 帧将在往返于 User 2 的途中经过 SW-2。SW-2 正在做与 SW-1 相同的事情:构建 MAC 表

步骤12、当 User 2的 MAC 在缓存中时,Router 将通过添加 User 2 的 MAC 地址作为目标来处理数据包。并将其出接口 MAC 作为源。数据包中的 IP 相同。SW-2 接收帧,添加 MAC 地址(如果表中尚未存在)

步骤13、如果端口是接入端口并且位于同一 VLAN 上,SW-2 和 SW-1 将处理帧。假设 Router 和 User 2 在同一 VLAN 上,SW-2 会将帧转发给 User 2。User2 接收帧,读取目标 MAC,剥离以太网报头和报尾,并查看目标 IP, 发现是发送给自己处理的数据包是一个 ICMP 数据包,因此 ICMP 进程通过发送 Echo Replay 消息来处理它

步骤14、响应包的 IP 地址进行了倒换:源IP(User 1)成为目的 IP,目标 IP (User 2) 成为源 IP。数据链路层接收数据包并以 User 2 的 MAC 作为源和 Router 上默认网关的 MAC 进行封装(目标 IP 位于不同的网络)

步骤15、响应数据包于是返回 User 1 。返回路径不需要ARP过程,因此返回速度会更快

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注