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

4.1 引言

       ARP为IP地址到对应的硬件地址之间提供动态映射。之所以用动态这个词是因为这个过程

是自动完成的,也就是ARP广播。ARP广播的数据帧中包含目的主机的IP地址,其意思是“如果

你是个这个IP地址的拥有者,请回答你的硬件地址”。


4.2 一个例子 

      在一个以太网中,发送端必须把IP地址转化为mac地址。这是先去查arp表,看IP对应的mac的

地址是什么,如果arp表中有对应的map记录,则根据mac地址在以太网中传输数据帧;如果没有就

发送ARP广播,在ARP数据帧中包含目的主机的IP地址,根据ARP的应答确定mac地址。


补充:arp表和mac表的区别

(1) arp是三层设备才有,如:路由器、主机;mac表二层设备才有,如交换机;

(2) arp表阐述ip地址与mac地址的对应关系,而mac表阐述mac地址与接口的对应关系。

4.3 ARP 高速缓存

     命令:arp -a   //显示高速缓存所有的内容


4.4 ARP 的分组格式


注意:ARP请求/应答的数据帧长度都是48字节(14字节的以太网首部,28字节的ARP数据)

 

(1) 以太网首部的“以太网目的地址”,在ARP请求时是全为1 的广播地址。

(2) 两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806;

(3) 硬件类型字段表示硬件地址的类型。值为1即表示以太网地址;协议类型字段值为0x0800即表示IP地址类型。

(4) 两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址长度,以字节为单位。

     对于以太网IP地址的ARP请求或应答来说,它们的值分别为6和4。

(5) 操作字段指出四种类型,ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和RARP应答(值为4)。

     这个字段是必须的,因为ARP请求和RARP应答的帧类型字段值是相同的。

(6) 以太网数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。

  

     对于一个ARP请求来说,(ARP请求报文)除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一

份目的IP地址为本机的的ARP请求报文后,就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端

地址,并把操作字段置为2,最后把它发送回去。


4.5 ARP举例

 

1. tcpdump拦截的ARP请求的数据帧分析


(1) 第一行中输出的字段ARP,表明此数据帧是一个ARP请求。

(2) arp或ip后面的值60指的是以太网数据帧的长度,由于ARP请求或应答的数据帧长都是42(28字节的ARP数据,

     14字节的以太网帧头),因此,每一帧都必须加入填充字符以达到以太网的最小长度的要求:60字节。

(3) 发送ARP请求与收到ARP回答之间的延时是2.2ms,而在0.7ms之后发出第一段TCp报文。本例中,用ARP

    进行动态地址解析的时间小于3ms。

(4) 从第二行看,ARP请求时广播,但是ARP应答直接发送到请求主机,而不是广播。

 

2 对不存在主机的ARP请求

 

4.6 ARP 代理

 

    如果ARP请求时从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,

这个过程称为ARP代理。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机。路由器的功能

当于目的主机的代理。

     如果在主机gemini上执行arp命令,发现,子网140.252.1上的netb和sun的mac地址是相同的。


  当子网140.252.1(gemini)上的其他主机有一份IP数据报要传给地址为140.252.1.29的sun时,gemini比较

网络号(140.252)和子网号(1),因为它们都是相同的,发送ARP请求。路由器netb识别出该IP地址属于它的

一个主机,于是把140.252.1作为mac地址回答。主机gemini通过以太网发送数据报到netb,netb转发到sun。

(之后的数据报由sun路由根据数据报中的目的Ip再做路由)

 




     ARP代理的其他用途:通过两个物理网络之间的路由器可以相互隐藏物理网络。在这种情况下,两个
物理 网络可以 使用相同的网络号,只要把中间的路由器设置成一个ARP代理。


4.7 免费ARP

     指主机发送ARP查找自己的IP地址,即源目的IP地址都是自己。免费ARP可以有两个方面的作用:
    1) 一个主机可以通过免费ARP来确定另一个主机是否设置了相同的IP地址。主机发送免费ARP如果收到
       一个回答, 那么就会在输出错误信息。
    2) 如果发送免费ARP的主机正好改变了mac地址,那么这个分组可以使其他主机高速缓存中旧的mac地
        址进行相应 的更新。场景:主备切换,发送免费ARP。
     

4.8 ARP命令

(1) arp -a //显示arp缓存中内容;
(2) arp -d   // 删除缓存中的某项
(3) arp -s // 在缓存中添加某项内容,并且是永久性的,也就是说没有过期时间,  
     除非在命令的末尾加上关键字temp。
(4) 位于命令行末尾的关键字pub和-s选项一起,可以使系统起着主机ARP代理的作用。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值