ARP:将32位的IP地址转换为48位的物理地址。

ARP:将32位的IP地址转换为48位的物理地址。

IP地址是网络层的地址,连上互联网的每一台主机的每一个接口都会有一个IP地址,每台主机的每个网卡均有唯一的物理地址,物理地址在生产时就已经定死,无法改变,而每个网卡的IP地址是可以改变的(例如连上不同的wifi,IP地址也会不同)。

为什么有了IP地址还要有MAC地址,有MAC地址还要有IP地址?

首先要明白,物理网络是有许多结构的,不同的物理网络具有不同的mac地址格式,为了让不同的网络进行通信,那么就使用统一的IP地址好了,

mac地址是数据链路层的地址,并且mac地址出现时间比IP地址要早,保留mac地址很可能是为了向后兼容已有的网卡芯片,同时,并不是所有的网络都使用IP协议

ARP报文格式如下:

硬件类型(16位):指定物理地址的类型,1表示以太网。

上层协议类型(16位):指定要将MAC地址映射成什么协议的地址。0x0800表示IP地址。

MAC地址长度(8位):指定MAC地址的长度,单位是字节。

协议地址长度(8位):指定协议地址的长度,单位为字节。

操作类型:1表示ARP请求、2表示ARP回应、3表示RARP请求,4表示RARP回应。

接下来为发送源的物理地址和协议地址(由于回应时要知道发送个谁,以此来封装以太帧),目的物理地址和协议地址。

封装ARP请求时,发送源除了目的物理地址外都会填写。

当路由器或主机选择了某条路由时,首先会查找ARP缓存,若缓存中有对应IP地址的物理地址,则以此封装以太帧,否则会广播(为二层广播)ARP报文,每个主机接收到ARP请求报文后,会缓存发送源的IP——MAC对到ARP缓存中,目的主机会发送ARP回应(此时为单播),当发送源接收到回应时,会将目的方的IP——MAC对存放在ARP缓存中。在点到点的物理连接中,是不会用到ARP报文的,在启动时双方都会通告对方自己的IP地址,此时物理层的封装不需要MAC地址。windows上可以使用arp -a查看本机的ARP缓存。ARP缓存中的每个条目的最大存活时间为20分钟(从条目创建时开始计时)。

ARP代理:

之前说ARP请求是广播的,我们知道路由器是分割广播域的(这部分在CCNA总结中会讲),如果我们要查询的IP地址在外网怎么办?此时就需要ARP代理,当发送源广播ARP请求时,本地网络上不会有主机回应(因为IP地址是外网的),此时路由器会将回应该请求,则发送源误认为路由器就是目的主机,会将报文全部转发给它,在由路由器转发报文,则该路由器就被称为ARP代理。

免费ARP:

在主机开机配置时,会发送一个目的IP地址(ARP报文段中的目的IP地址)为自己IP地址的ARP请求报文,该报文称为免费ARP,其作用如下:

1、让主机确认本地网络上是否有与自己IP地址相同的主机,若有,则ICMP错误报文被返回。

2、若接收主机ARP缓存中本身就有发送源主机的IP——MAC对,则会更新,否则,会缓存发送源的IP——MAC对,这种情况在发送主机更换了物理网卡并重启后出现

ARP:将32位的IP地址转换为48位的物理地址。

猜你喜欢

转载自blog.csdn.net/huanchankuang3257/article/details/83106376
今日推荐