ARP学习总结

ARP为地址解析协议,它将逻辑地址(例如IP地址)映射为物理地址。原有的一种映射方式是通过静态映射,静态映射是创建一个表,它将物理地址和逻辑地址关联起来,但是当网络上的主机发生变化时,该表中的项并不能动态更新,这给管理和维护造成了很多的影响。所以,ARP采用动态映射机制,能找到目标IP地址的物理网卡地址。

在任何时候,发送端必须有接收站的逻辑IP地址,但是IP数据包必须封装成帧才能通过物理网络。这就表示,发送站必须有接收站的物理网卡地址。因此需要一个从逻辑地址到物理地址的映射。当发送端需要找到另一个主机或路由器在此网络上的物理地址时,它就发送一个ARP查询分组。这个分组包括发送站的物理地址和IP地址,以及接收站的IP地址。该查询在网络上是广播的形式发送。网络中的每一个主机或路由器都接收和处理这个ARP分组,但只有意图中的接收者才识别其IP地址,并发回ARP响应分组。

分组格式如下图所示:

封装

ARP分组时直接封装在数据链路帧中的。ARP报文在网络层,但它在IP层下面。所以不经过IP层封装。封装后的帧格式如下图所示:

代理ARP

代理ARP是可以代表一组主机的ARP。当一个路由收到一个ARP请求时(这个ARP请求的主机是它子网内的主机或者路由)就会回复这个ARP请求,并把自己的硬件地址放到回复的报文中。这样,当发送端的数据报到达时,该ARP代理路由器就进行转发。

ARP的设计

ARP软件包由以下几个构建组成:高速缓存表、队列、输出模块、输入模块、和高速缓存控制模块。如下图所示:

高速缓存表:高速缓存表存储着发送站发往同一个IP地址的数据报的硬件地址信息等,这些缓存项可用于那些发往相同IP地址的数据报找到已经缓存好的信息。

队列:ARP软件包维持着一组队列,每一个队列对应于一个目的地,用来在ARP试图解析硬件地址时保留IP分组。

输出模块将未解析的分组发送到相应的队列。输入模块从一个队列中拿走一个分组,并连同解析出的物理地址一起发送给数据报链路层来传输。

输出模块:

输入模块:

高速缓冲控制模块:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值