ARP协议
ARP:地址解析协议
ARP为IP地址到对应的硬件地址之间提供动态映射,这个过程是自动完成的。
ARP高速缓存
ARP高效运行的关键在于每个主机上都有一个ARP高速缓存。高速缓存存放了最近IP地址到硬件地址之间的映射记录。每一项的生存时间一般是20分钟,从被创建开始计算。
可以通过下面指令来查看高速缓存,参数a是显示所有内容。
arp -a
分组格式
分为8个字节的以太网首部和28个字节的ARP请求/应答部分
以太网首部
以太网首部前两个字段是以太网的原地址和目的地址,目的地址全是1是广播地址,局域网内所有以太网接口都要接收广播的数据帧。
然后是2个字节的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段是0x0806。
ARP请求或应答
硬件类型字段表示硬件地址的类型,值为1表示以太网地址。协议类型字段表示要映射的协议地址类型,值为0x0800即表示IP地址,这个值和IP数据报的以太网数据帧中的类型字段的值相同。
硬件地址长度和协议地址长度分别是指出硬件地址和协议地址的长度,以字节为单位。对于以太网上的ARP请求或应答来说,它们的值分别为6和4。
操作字段指出四种操作类型,分别是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)。
接下来的是发送端的硬件地址、发送端的协议地址、目的端的硬件地址、目的端的协议地址。
ARP代理
如果请求是从一个网络的主机发往另一个网络的主机,那么连接两个网络的路由器就可以回答该请求。这个过程称为ARP代理。这样可以使请求发起端误以为路由器就是目的主机,而实际上目的主机在路由器的另一边。路由器相当于目的主机的代理。
ARP代理也称为混合ARP或ARP出租。通过两个物理网络之间的路由器可以互相隐藏物理网络。
免费ARP
免费ARP是指主机发送ARP查询自己的IP地址。通常在系统引导期间进行接口配置的时候使用。
免费ARP有两个方面的作用:
- 一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。
- 如果发送免费ARP的主机正好改变了硬件地址,那么这个分组就可以使其他主机高速缓存中的硬件地址进行相应的更新。
ARP命令
参数a可以显示所有内容
root用户可以用参数d删除某一项内容
参数s可以增加高速缓存中的内容,还需要主机名和以太网地址,对应于主机名的IP地址和以太网地址会被永久的(没有超时值)加入到高速缓存中,除非在末尾加上关键字temp
位于命令行末尾的关键字pub加上参数s,可以使系统起着主机ARP代理的作用。
总结
在大多数TCP/IP实现中,ARP是一个基础协议,但是它的运行对于应用程序或者系统管理员来说一般是透明的。