ARP协议的工作流程

坚持原创输出,点击蓝字关注我吧

3a7f89e938b67b38727a7c0927ca563b.png
图片来自网络

目录

  • 网络层的ARP协议

    • 1.ARP协议的目的

    • 2.ARP协议通讯过程

    • 3.总结

网络层的ARP协议

通过ARP协议知道对方的mac地址,已经知道对方ip地址的情况下,不知道mac地址。定义了一个ARP协议来解决这个问题。

因为在数据链路层的时候需要知道一个mac地址,然后才能进行数据链路层的封装。所以需要通过网络层的ARP协议来获取mac地址。

打开控制面板-网络连接-连接详细信息

1ca8a658956a1a5c93f21d73db420c41.png

物理地址:是这台电脑的mac地址。

IPv4地址:是这台电脑的ip地址。

通过ip对应成域名。mac地址不方便记忆,所以最先记住的是ip地址或域名。

要进行数据链路层的封装又必须要知道它的mac地址。所以用ARP协议,通过ip地址获取对方的mac地址。

1.ARP协议的目的

ARP-地址解析协议,实现通过对方的ip地址(域名)寻找对方的mac地址。

2.ARP协议通讯过程

举个例子:
a2605514e3c1364e632b22d9edd7e819.png
图片来自网络

目的:老师想给班级里一个学生a发消息催作业,用微信。

「老师」

1.先去微信通讯录查找有没有同学a的微信,如果有,直接给同学a发消息,让她交作业。

2.没有同学a的微信。去班级群发消息:“同学a的微信,给我一下,我是某某老师。”

同学a看到群里消息,她把微信单独发给老师。老师收到同学a回复的微信消息。

3.老师加好友,可以在微信通讯录找到同学a,可以直接发消息了。

给同学a单独发了一条消息:"同学a,我们要交作业了。"

同学a单独回复:"我马上交作业。""

「同学a」

1.添加老师的微信到微信通讯录。

2.私聊发消息。

这个过程就是ARP协议实现的过程。

同上:
c580793a7000ebd83f153ecf542c2948.png
图片来自网络

主机a给主机b发消息进行通信。

1.主机a找主机b的mac地址。

知道主机b的ip地址:192.168.1.2

主机a的ip地址:192.168.1.1

现在主机a要发消息,找主机b的mac地址。ARP表和微信通讯录很相似(ip地址和mac地址的对应表)。

2.如果找到了mac地址,去数据链路层封装mac地址,进行数据包的发送。

如果在ARP表里没有找到ip地址对应的mac地址,主机a发消息给主机b所在的主机群组。

主机a发广播消息:“谁有主机b(192.168.1.2)的mac地址,我是主机a(192.169.1.1)。”

主机b回复主机a一条单播消息:“我就是192.168.1.2,我的mac地址是xxxxx。”

主机b收到主机a的广播消息后,在回复消息之前。主机b保存主机a的mac地址和ip地址到自己的ARP表里面。

再找主机a通信的时候,就直接在ARP表里面找到主机a的ip地址和mac地址的对应关系,直接发送单播消息。

3.主机a收到主机b的单播消息,同样把主机b的ip地址和mac地址保存到ARP表里。

3.总结

1.主机a首先查看自己的ARP表,如果找到了主机b的mac地址,则直接对ip数据包进行帧封装,发送给主机b。

2.如果主机a在ARP表中找不到主机b的mac地址,则将缓存该数据报文,然后以「广播方式」发送一个ARP请求报文。

ARP请求报文中带上「源ip地址和源mac地址(主机a)」,目标ip地址和目标mac地址为主机b的ip地址和「全0的mac地址」

广播,该网段上的所有主机都可以接收到该请求。但只有被请求的主机(即主机b)会对该请求进行处理。

3.主机b比较自己的ip地址和ARP请求报文中的目标ip地址,当两者相同时进行如下处理:将arp请求报文中的发送端(即主机a)的ip地址和mac地址存入自己的ARP表中。

之后以「单播方式」发送arp响应报文给主机a,其中包含了自己的「mac地址」

4.主机a收到ARP响应报文后,将主机b的mac地址加入到自己的ARP表中以用于后续报文的转发,同时将ip数据包进行封装后发送出去。


413cd08577301e693cb887e367ec0664.png

公众号「清菡软件测试」首发,更多原创文章:清菡软件测试150+原创文章,欢迎关注、交流,禁止第三方擅自转载。如有转载,请标明出处。

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值