ARP协议(地址解析协议)缓存
ARP协议的分类:普通ARP、反向ARP(RARP)、免费ARP和代理ARP网络
网络设备有数据要发送给另外一台网络设备时,必需要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,可是仅有IP地址是不够的,IP数据报文必须封装成帧才能经过数据链路进行发送。数据帧必需要包含目的MAC地址,所以发送端还必须获取到目的MAC地址。经过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
ide
举个简单的例子,若是你有某我的的经度,可是没有某我的的纬度,你是没法找到他的,相反,你有了他的经纬度,你就必定都能找到他,经度表明IP,纬度表明MAC地址。spa
工做流程:代理
A主机要给B主机发送数据
路由
第一步:首先,A主机查看本身的ARP缓存当中有没有B的MAC地址,若是没有,则到第二步;工作流
第二步:A找不到B的MAC地址,因而,A想了个办法,A将ARP的请求广播发送到本地全部的网络,A的源IP地址和源MAC地址都包括在里面;it
第三步:在本地全部的主机当中,以前咱们知道,IP地址工做在3层,在其余主机在解封装到第三层的时候,判断这是否是属于本身的IP,若是不属于,就丢弃;若是属于,就将A的IP和MAC添加到本身的ARP缓存当中。io
第四步:主机B将包含本身的IP和MAC地址发送给Aclass
这个过程简单的来讲,就是广播请求,单播回应。
代理ARP
位于不一样网络的网络设备在不配置网关的状况下,可以经过ARP代理实现相互通讯。
工做流程:
第一步:A给B发送数据,这时候A发送一个ARP广播请求
第二步:路由器识别了A和B不在一个网段内,因而路由器广播了一个请求,主机B接受到路由器的请求后便返回了一个确认;
第三步:同时,路由器告诉A,之后想找B,直接找我就能够了,把你发送的数据包的MAC地址换成个人MAC就行了,我来转发你的数据;
一、主机和路由器发送和接收数据的原理:
主机发送数据:
a):目标主机和本身在同一个网络内,主机发送的数据包的二层MAC地址就是远端主机的MAC地址
b):目标主机和本身不在同一个网络内,主机发送的数据包的二层MAC地址就是本身默认网关的MAC地址
2.主机接收数据:
先查看二层MAC地址,若是是本身的MAC,或是本身所在组的组播MAC,或是广播MAC,则继续向上解封装,不然丢弃;
而后查看三层IP地址,若是是本身的IP,或是本身所在组的组播IP,或是广播IP,则接收,不然丢弃。
3.路由器发送数据:
a):目标主机和本身在同一个网络内,路由器发送的数据包的二层MAC地址就是远端主机的MAC地址
b):目标主机和本身不在同一个网络内,主机发送的数据包的二层MAC地址就是下一跳路由器的MAC
PS:数据包在通过路由器转发的时候,其IP地址不变,MAC地址改变
RARP:反向地址解析协议
做用:已知MAC,解析IP
无端ARP(免费ARP):SIP和DIP是同一个地址
做用:用来检测IP地址的惟一性(若是有主机回应这个ARP,则说明地址重复)