菜鸟求助 linux下ARP请求发送和接收的问题

菜鸟求助 linux下ARP请求发送和接收的问题,第1张

如果一台主机本身有对某台主机的IP和MAC映射,那么发给它一个ARP的REPLY包时,目的IP如果是它本身已经有的映射的IP,它会更新对应IP的MAC地址但是如果我发给他的回应包当中目的IP和目的MAC事先并不在那台机器中存在映射,它不会将这条新的映射添加到它的ARP映射表中。

但是如果发送的是请求包,那么目的主机会将发送者的IP和MAC添加到自身的映射表中,无论之前是否有该映射,然后再向发送者回送一个REPLY包。

1、ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

2、在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。

3、一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。

总结:表面上看是ip之间的通信,实际是通过ARP广播将ip与mac对应形成映射关系。所以网络中事实存在着大量的ARP广播,所以抓包会抓到,如果不需要,可以选择过滤掉。谢谢采纳!!

Address Resolution Protocol 地址解析协议。

ARP只有两个过程, 一问,一答。共两个包。

WireShark可抓包,联网后,随时都会收到无数的 ARP 包,挑一个如下:

ARP询问包:

ARP回复包:

在本机上 ping 192.168.1.107 而收到如上一个回复包(192.168.1.107 是我虚拟机的 IP)。

ping 命令并不直接与 ARP 相关,而是因为 ping 的过程中,需先访问本机的 arp 表。

arp 表是 ip与mac 的键值对。若 该 IP (即192.168.1.107) 无键值对在表中,则需要先发送 arp 包,以此获得

mac,并将此 ip 与 mac 键值对填入 arp 表。才继续 ping *** 作。

注:ping 命令执行前,最好以管理员身份运行 cmd ,执行 arp -d 来删除本机的 arp 表,这样再 ping ,则一定可以看到 arp 过程。

如有帮助,就点个赞或者评论下。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8349496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存