您的位置:首页 > 理论基础 > 计算机网络

《TCP/IP详解 卷1:协议》 读书笔记 第四章 ARP:地址解析协议

2015-12-01 19:13 886 查看

第四章 ARP:地址解析协议

1.引言

ARP为IP地址与对应的硬件地址之间提供动态的映射。

2.ARP运行过程

每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。

当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。

此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址。

源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

××点对点链路不使用ARP。

3.ARP分组格式




操作字段指出四种操作类型.1为ARP请求,2为ARP应答,3为RARP请求,4为让RARP应答。

4.ARP代理

ARP请求从一个网络发往另一个网络,连接2个网络的路由可以回答该请求,这个过程叫做委托ARP或代理ARP.

代理ARP是ARP协议的一个变种。对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机伪装成另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。

代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。

××需要注意的是,一般,简单来说,ARP请求只会请求自己本网段的,在设置了默认网关的情况下,不是本网段的所有报文都会发送到默认网关(其实会先查路由器)。网关会判断,如果这个地址是它直连的,那么他会发送ARP请求,如果不是,网关会将报文扔给它自己的网关(先查路由器)~

5. gratuitous ARP

指主机广播ARP请求查询自己的IP地址。

作用:

(1)确定同一网段中是否有与本机相同的IP.

(2)更新同一网段内其他们主机保存的该请求IP的ARP缓存(当我们的主机正好改变了硬件地址的时候可以这样做)。

6. arp命令

使用以下命令可查看arp缓存:

[code]$ arp -a


超级用户可以用参数-d来删除表项。

-s参数可以用来增加表项,新增加的内容是永久性的(比如没有超时值),除非在命令行末尾加上关键字temp。

如果位于命令行末尾的关键字pub和-s选项一起使用,则可以使系统起着主机ARP代理的作用。

实验中我们可用tcpdump来抓包分析。

ARP高速缓存超时值一般为20分钟(不完整表项则为3分钟),而且每次在访问表项时会重新设置超时值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: