一.ARP和RARP
网络传输中,根据目的ip地址通过路由选择可以在互联网中传输,但是如果不知道目的接口,那么也就不知道包该传输到某个网络或某个子网中哪台主机。arp(地址解析协议)即可根据目的ip来获取目的接口从而使俩台主机正常通信。RARP与ARP相反,逆地址解析协议。arp为不同的网络层提供地址解析服务。
二.ARP传输过程
主机要与目的主机进行通信,那么首先得进行tcp连接,发tcp连接请求,tcp请求包根据路由选择到达目的网络或局域网,但是目的接口未知,不能进一步把tcp包送达主机,这时就得利用arp解析协议来
获取目的接口地址:
1.主机发出ARP请求包,目的ip地址广播
2.网络中所有主机都接受到arp请求包,网络中的所有主机ip与arp请求包中的ip地址不同则丢弃arp包,找到相同则给发出arp请求包的主机回应一个arp回应包,包里包含主机的接口地址
3.源主机收到目的主机的arp回应包,获取到目的接口地址,和目的主机进行tcp三次握手,链接通信
如图:
三.ARP格式
arp请求包格式如图:
Destination: Broadcast (ff:ff:ff:ff:ff:ff) 目的接口地址 全1 广播地址
Source: HuaweiTe_d8:80:02 (9c:c1:72:d8:80:02) 源接口地址
Type: ARP (0x0806) 协议类型
Padding: 000000000000000000000000000000000000 因为arp以太网头18字节,arp段28字节,总共字节才46,因为以太网帧最小长度是60,所以得填充字符达到最小长度
Hardware type: Ethernet (1) 硬件类型 表示硬件地址的类型,1表示以太网地址
Protocol type: IP (0x0800) 协议 表示要映射的协议地址类型 和硬件类型来确定arp包的类型 例如硬件类型1表示要获取硬件地址 协议ip指要映射的是ip地址 指经过ip来映射出接口地址
Hardware size: 6 硬件地址的长度
Protocol size: 4 协议地址的长度
Opcode: request (1) arp包操作类型 1为arp请求包 2为arp回应包
Sender MAC address: AsustekC_c0:5d:04 (78:24:af:c0:5d:04) 源mac地址
Sender IP address: 192.168.10.145 (192.168.10.145) 源ip地址
Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00) 目的mac地址
Target IP address: 192.168.10.126 (192.168.10.126) 目的ip地址
四.ARP高速缓存
主机与目的主机通信那么每次都得发arp来获取目的主机的硬件地址,不仅会增加带宽的拥堵,也会降低主机与目的主机的连接速度。arp高速缓存就是用来解决此种情况的,每台主机都有一个arp高速缓存,类似于一张ip与硬件地址的映射表,主机可以通过arp高速缓存查询目的地址是否在其中,有则可以获取到ip对应的接口地址,没有发送arp获取,高速缓存中的数据不会永远存在,只存在于一段时间内,时间一过便从缓存中删除,用户可以设置主机高速缓存的生存周期
五.arp代理
有些路由器可以代替主机回应arp请求包,让主机以为是目的主机回应的。
1.主机发出arp请求包来获取目的主机的接口地址
2.当arp包传送到目的主机上接的路由器时,路由器中有张路由表,把目的主机ip地址对应的接口地址组arp包回应给源主机
3.源主机收到arp回应包,以为是目的主机发来的,使用回应包里的目的接口地址与目的主机进行通信
六.免费arp
有一种比较特殊的arp,即免费arp,它是主机对自己本身ip地址来发送arp请求包。它的作用主要有两点:
1.来查询所属的网络或局域网中是否有相同ip地址的主机
2.来更新其他主机的arp缓存,当主机硬件地址变了,主机发出一个免费arp,其他主机获取到arp报文更新arp高速缓存
七.RARP
逆地址解析协议
版权声明:本文为博主原创文章,未经博主允许不得转载。