天天看点

ARP(Address Resolution Protocol,地址解析协议)

ARP负责将某个IP地址解析为对应的MAC地址,在以太网中,两台主机的进行直接通信是必须知道目标主机的MAC地址。

  两台计算机要进行直接通信需要知道MAC地址,计算机A对要传输给计算机B的数据进行封装成数据帧,帧中有源MAC地址(主机A的地址)和目标MAC地址(计算机B的地址)。

  问题来了,在同一个网络中,计算机A只知道计算机B的IP地址,想要进行通信该怎么办?这个时候就需要地址解析协议了,ARP的工作流程:首先,计算机A会查询自己natai的本地缓存,看有没有计算机B的IP地址对应的MAC地址,如果有将这个MAC地址填入目标MAC地址封装数据帧并发送出去。 如果计算机A在本地缓存中并没有查到计算机B的IP对应的地址,此时计算机A会发送一个APR的查询包(ARP Request),这个包的源MAC地址为计算机A的MAC地址,源IP是计算机A的IP,目标IP是计算机B的IP,目标MAC地址则为广播MAC地址(FF:FF:FF:FF:FF:FF)。在同一网络下的所有计算机都会收到这个广播包,并对数据包进行解析,发现目标MAC地址不是自己,但是是广播地址,就把这个数据包解封传到网络层,网络层会检查包中的目标IP是否和自己的一样,不一样则丢弃这个包(检查包的时候也会看自己的本地缓存中有无源目标IP和对应的地址,若没有的话则添加),一样的话就说明自己就是目标主机,此时这个目标主机会把源主机的IP和MAC缓存在本地,然后给计算机A发送一个ARP的回应包(ARP Reply),这个包中的源IP和MAC地址为计算器B的IP和地址,目标IP和地址为计算机A的IP和地址。这是一个单播包,只会发送给目标MAC地址的计算机(A),计算机A收到相应包后就获得了计算机B的MAC地址,即可通信。

!!!只有目标MAC地址为广播MAC地址的时候,同一网络下的所有计算机才能都收到数据包。不然只是单播包,只会传输给目标MAC地址的那台计算机

IT

继续阅读