赞
踩
ARP就是地址解析协议,属于链路层协议,其实从对IP的处理来说,也可说是网络层的协议之一,所以可以说成是2.5层协议(链路层是2层,网络层是3层)。
无论是服务器还是客户端,当上层组织好数据后,在IP层加上IP头,在链路层要加上源mac地址和目的mac地址。源mac地址是本机发送端的网卡地址,这个自身本来就知道,目标mac地址刚开始不知道的,也就是说我们知道对方的IP地址,但是mac地址是还不知道的,这个时候我们就要使用ARP协议来获取目标mac地址。
比如客户端要向服务器请求数据,上面说的我们要发送数据,但是目标的mac地址还不知道,就是说根据目标IP查询了ARP表,但是对应IP的mac地址为空。这个时候我们就知道要先获取目标mac地址,再发送数据。先判断目标ip和本机ip是否在同一网段(与掩码进行与运算)。是同一网段的话,说明我们可以广播发起ARP请求。也就是说ARP请求帧中目标mac地址为FF.FF.FF.FF,IP是已知的。网内所有的主机均能收到这个请求,IP等于目标IP的那一台主机知道请求的是自己的mac地址,将发过来的源ip和源mac加入自己的ARP表中,同时发送ARP应答帧(附加了自身的mac地址),其他主机会忽略ARP请求。
发送ARP请求的主机收到应答后,会更新ARP表,这时就有目标IP和目标mac对应的ARP表项了。就能正常组帧发送信息。
判断目标IP和源IP不是同一网段后,主机就晓得要通过网关来传递信息了。信息要先发送到网关机上,再由网关机转发,网关机是各个段的IP都能用的中继之一。这里在ARP表先查找目标IP对应的mac地址,结果是没有,IP不是同一网段,再找网关对应的mac地址,也没有。发起ARP请求,IP先为网关IP,mac地址为广播地址FF.FF.FF.FF。和同一网段的过程一样,获取网关的mac地址,收到ARP应答后,更新原目标IP对应网关mac地址,网关IP对应网关IP地址。发送信息时加上目标IP和mac地址(网关mac)发送到网关中,再由网关根据自身的ARP表将信息转发给目标IP的主机中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。