arp地址解析

20180712124208.png

A: 192.168.1.2

0A-11-22-33-44-01


B: 192.168.1.3

0A-11-22-33-44-02


C: 192.168.1.4

0A-11-22-33-44-03



ARP(地址解析协议),OSI把网络工作分为七层,ip地址在OSI模型的第三层(网络层),mac地址在第二层(数据链路层)


在链路层上,主机和交换机用他们的物理地址来标志,即48位的物理地址,也是是我们通常所说的网卡地址(MAC地址)。


在网络层上,主机和路由器用逻辑地址来标志,逻辑地址在本地是唯一的,但在全局上不一定。在TCP/IP协通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。



地址解析协议ARP(Address Resolution Protocol),负责完成逻辑地址向物理地址的动态映射,将32位逻辑地址(IP地址)转换为48位的物理地址(MAC地址)。



当主机A和主机B通信时,arp协议可以将主机B的ip地址(192.168.1.3)解析成主机B的mac地址(0A-11-22-33-44-02),工作流程:

1. 确定已知B的ip地址为192.168.1.3,A查看自己的arp缓存表检查主机B匹配的mac地址,如果有记录,则通过arp缓存表直接转发。


2. 如果主机A没有在arp缓存表中找到映射,它将询问192.168.1.3的ip地址,从而将arp的请求广播发送到局域网,


arp请求中mac地址和ip地址如下:

源A:

mac   192.168.1.2

ip 0A-11-22-33-44-01


目标B:

mac:为空(00:00:00:00:00:00)

ip 192.168.1.3


3. 局域网中的所有主机收到arp报文之后,主机B查看目标ip与本地匹配,则将arp中的源mac,ip添加到自己的arp缓存表中,并将包含自己的mac与ip的arp消息回复给A;主机C查看arp消息中的目标ip地址与本地不匹配,则将arp请求丢弃。


4. A收到回复消息后,将arp消息的目标mac与ip映射关系添加到自己的arp缓存表中,下次通信则直接通过arp缓存表通信


    为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止


猜你喜欢

转载自blog.51cto.com/calabash/2140856