访问一个ip地址,它是先通过路由找到下一条地址,还是先尝试用arp协议找到mac地址

当你尝试访问一个 IP 地址时,系统会首先检查该目标 IP 地址是否在本地网络(同一个子网)内。具体的流程如下:

1. 检查目标 IP 地址是否在本地网络

  • 子网检查: 计算机会使用本地的 IP 地址和子网掩码来判断目标 IP 是否在同一个子网内。
  • 在同一个子网内: 如果目标 IP 地址与本机在同一个子网(即本地网络)内,系统将认为该 IP 地址可以通过二层网络(即直接通过以太网)访问。
  • 不在同一个子网内: 如果目标 IP 地址不在同一个子网内,系统会决定通过默认网关或路由表中的其他路由项来发送数据,这涉及到三层网络(L3)的路由。

2. ARP(地址解析协议)查询

  • 在本地网络内(同一子网):
    • 如果目标 IP 地址在同一个子网内,系统会检查本地 ARP 缓存,查看是否已经有对应的 MAC 地址。
    • 如果 ARP 缓存中没有该目标 IP 地址的 MAC 地址,系统将发送一个 ARP 请求,广播到本地网络,以请求目标 IP 地址的设备回复其 MAC 地址。
    • 收到目标设备的 ARP 响应后,系统会将该 MAC 地址和 IP 地址的映射缓存到本地 ARP 表中,然后使用这个 MAC 地址来封装二层帧并发送数据。
  • 不在本地网络内(跨子网):
    • 如果目标 IP 地址不在同一个子网内,系统会查找路由表,决定通过哪个网关(通常是默认网关)来转发数据包。
    • 系统会首先检查 ARP 缓存中是否有该网关 IP 地址的 MAC 地址。如果没有,会发送 ARP 请求以获取网关的 MAC 地址。
    • 获取到网关的 MAC 地址后,系统将数据包的目标 MAC 地址设为网关的 MAC 地址,然后将数据发送到网关。网关会继续处理该数据包并转发到目标网络。

3. 路由查找

  • 查找路由表: 在确定目标 IP 不在本地子网后,系统会查找路由表,确定下一跳(next hop)地址和接口。这一步是三层网络的操作。
  • ARP 解析网关: 路由表中指定的下一跳(通常是网关)的 IP 地址,然后再次通过 ARP 协议获取这个网关的 MAC 地址。

4. 总结:

  • 同一子网: 如果目标 IP 在同一个子网内,系统会直接通过 ARP 协议获取目标 IP 的 MAC 地址,然后在二层进行通信。
  • 不同子网: 如果目标 IP 不在同一子网内,系统首先查找路由表,确定通过哪个网关发送数据包,然后使用 ARP 协议获取网关的 MAC 地址,并将数据包发送到该网关。

所以,先通过路由找到下一跳地址使用 ARP 找到 MAC 地址 是一个递进的过程。对于不同子网的目标,路由查找先于 ARP,而对于同一子网的目标,直接进行 ARP 查询。

🔥运维干货分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅侠客

您的打赏是我创作旅程中的关键燃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值