ARP协议的工作流程

电子说

1.2w人已加入

描述

网络层的ARP协议

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

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

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

ARP协议

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

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

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

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

1.ARP协议的目的

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

2.ARP协议通讯过程

举个例子:

ARP协议

图片来自网络

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

「老师」

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

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

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

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

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

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

「同学a」

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

2.私聊发消息。

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

同上:

ARP协议

图片来自网络

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

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

知道主机b的ip地址:192.168.1.2

主机a的ip地址:192.168.1.1

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

如果找到了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。”

2.主机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数据包进行封装后发送出去。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分