解读《TCP/IP详解》(卷1):04章:ARP(地址解析协议)

来源:互联网 发布:特朗普访华意义知乎 编辑:程序博客网 时间:2024/05/16 01:59

1.引言

        
        其中MAC地址又称硬件地址、网络接口地址。Medium/MediaAccess Control(介质访问控制)简称是MAC,可不是苹果的Mac。
  • ARP为IP地址到对应硬件地址之间提供动态映射。动态的含义是指这一过程自动完成,对于应用层用户和系统管理员是透明的。
  • RARP,顾名思义,提供与ARP相反的过程。它被无盘系统使用,比如无盘工作站或X终端。可访问下一篇博文

    解读《TCP/IP详解》(卷1):05章:RARP(逆地址解析协议)

2.ARP高速缓存

        每台主机都运行着一个生存时间维尼20分钟的ARP高速缓存,用来存放最近访问的Internet网络地址(不一定是IP地址)与硬件地址之间的映射记录,正是基于此,ARP才得以高效运行。
        在高速缓存中的表项一般都设置了超时值,也就是说当查询硬件地址操作的时间超出此限制会显示time out信息。从伯克利系统(BSD)演化而来的系统中,一般对完整的表项设置的超时值为20分钟,而不完整表项则为3分钟。这相当于一个定时器,用来删除完整或不完整的表项。
        可以在终端中使用arp -a来查看缓存中的所有内容。

3.ARP分组格式


        图中数字表示所占字节数,前3个字段(14个字节)为【以太网首部】,后面的的9个字段(28字节)为【ARP请求/应答】
  • 【帧类型】表示后面的数据类型。值为0x0806时表示ARP的请求应答。
  • 【硬件类型】表示的硬件地址的类型。值为1时表示以太网。
  • 【协议类型】表示要映射的地址协议类型。值为0x0800时表示为IP协议。这与包含IP数据报的以太网数据帧中的协议类型的值相同,这是被有意设计的。(参见前面博文配图)
  • 【硬件地址长度】【协议地址长度】顾名思义表示映射双方的长度。以太网的IP地址的ARP请求(目前最常用情况)中两个字段值分别为6和4。举例说明。在命令行输入arp -a。可以看到映射。IP地址占4个字节,硬件地址占了6个字节,一目了然了吧。
  • 【op】即【操作字段】,它包含四种类型。由于ARP的请求与应答是相同的帧类型字段,所以要引入操作字段才能加以区分。1ARP请求2ARP应答3RARP请求4RARP应答
  • 后面的字段与前面的字段有重复信息。
        “对于一个ARP请求来说,除目的地址外其他都有填充值。当系统收到一份目的端为本机的ARP请求时,它就把硬件地址填进去,然后用两个目的端地址填充两个发送端地址,并把操作字段置为2,然后发回去”

4.ARP代理

        就是当一个主机向另一个主机发送ARP请求时,这两台主机间的路由器可以响应此请求。源主机误以为路由器就是目的主机,这是常见的网络攻击的方法(ARP欺骗)。这一过程称为ARP代理或委托ARP。
        但是存在的即是合理的,路由器的一个重要功能就是将“广播”的包封闭在局域网内,不让扩散出去,为了避免广播风暴。广播风暴打个比方就是一个会场里,每个人都同时讲话一定乱成一团。但是通过子网划分,将这些广播风暴封闭在局域网内,就能减少影响。而ARP请求是一个广播包,因此也会被路由封闭在局域网内,但若在此局域网内查询不到结果,又该如何将此请求传到局域之外呢?答案就是利用路由器的ARP代理功能。将ARP请求发送出去。

5.免费ARP

        是指主机发送ARP请求查询本机的IP地址。通常发生在系统的引导期间进行接口配置的时候。
作用是:
  1. 一个主机用来确定另一台主机是否设置了相同的IP地址。如果没有相同IP则无应答(这是希望得到的结果),如果收到应答,在终端生成错误日志,报告系统管理员出现了不正确的配置。(也有可能是黑客的MAC地址欺骗攻击。导致出现相同IP)
  2. 如果发送免费ARP的主机更换了网卡(关机之后更换再开机),或者发生宕机之后启用了备份主机。那么存在其他主机ARP缓存中的硬件地址如果还保持不变,报文就会无法正确传递。而这个请求则会使其他主机中旧的高速缓存得到更新。
2 0