A-A+
ARP协议的工作原理
主机A向主机B发送一个数据,这个数据中包含了发送者的ip地址和MAC地址。在数据发送之前,主机A会查看自己的ARP缓存表,寻找目标ip地址,如果找到了目标ip地址,也就知道了目标MAC地址,因此这个时候(即数据链路层)就会将数据进行封装成帧(即数据帧),直接发送给目标就OK了。
那么如果在ARP缓存表中没有找到目标ip地址,这个时候还是会将数据进行封装成帧,在网络中发送一个广播---ARP请求报文,在这个报文中的二层中写了“MAC address ff ff ff ff ff ff ”这里的意思就是指:请求寻找主句B的MAC地址。在同一个网段中的所有设备都收到了主句A发送来的请求报文,在将报文的帧脱掉露出数据包时发现了它寻找的目标不是自己的,就会直接将数据包丢掉,不予理会;而在发现它寻找的目标就是自己时,就会将发送者的ip地址,MAC地址记存在自己的ARP缓存表中,然后就进行回包。
那么在回包之前,主机B会将自己的ip地址和MAC地址写进数据包中,(这个时候主机B就成为发送者了,那么数据包的源ip地址和源MAC地址就是指主机B的,目标ip地址和目标MAC地址就是指主机A了。)然后再将数据包进行封装成数据帧。进行回包。这个时候主机A收到了主机B发送来的数据帧时,脱掉数据帧,打开数据包,就会看到自己要寻找的ip地址和MAC地址了,然后就会将这信息记存在自己ARP缓存表中。