概述
网络传输,如上图,在局域网中,笔记本A 向 手机B发送数据,需要用到笔记本A的 IP地址、MAC地址,手机B的 IP地址、MAC地址,端口
其中,笔记本A肯定知道本机的 IP地址、MAC地址,也肯定知道手机B的 IP地址(IP地址相当于收信地址)
为什么需要目标设备的MAC地址
只知道B的IP地址是不够的,A必须知道 B的MAC地址,在 数据链路层 传输的 数据帧,必须有 A的MAC地址 和 B的MAC地址
传输过程
A向B发送数据时,先从ARP缓存查找B的MAC地址,如果没有,就发送 ARP广播
A 会发一个 ARP 广播
内容是:我的ip地址为:192.168.1.100,MAC 地址为 :00-E0-4C-36-12-3A,询问 IP 地址为 192.168.1.101 的 MAC 地址是多少?交换机收到该数据帧后,发现是广播帧,于是转发出去,并且会将该帧的源 MAC 地址(即 A 的 MAC 地址)添加到自己的 MAC 地址表中去

在本局域网运行的所有主机都会收到此ARP请求,B和自己的 IP 进行对比,发现匹配后,向A发送一个ARP响应,将 自己的MAC地址 54-26-96-D1-DD-DB 发送给A
A 收到 B 的回复后,得知 192.168.1.101 的 MAC 地址是 54-26-96-D1-DD-DB ,将 B的MAC地址 保存 到本地的 ARP 缓存 中,同时以 B 的 MAC 地址为目标地址将要传的数据封装成帧,发送出去
交换机再次收到 A 的数据帧,发现目的 MAC 地址是 54-26-96-D1-DD-DB ,于是将该数据转发给 B
B 成功收到 A 发来的数据
windows查看arp缓存
在cmd命令窗口执行下面命令:
arp -a
感谢:
https://blog.csdn.net/yibulianhua/article/details/5348839
https://blog.csdn.net/xiaoliuliu2050/article/details/81251925
https://blog.csdn.net/mbuger/article/details/73861017

