ARP协议详解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长度,加快查询速度。
ARP工作原理
ARP的操作示意图
ARP-分组格式
ARP 分组格式 1. 硬件类型:16bit,定义网络类型。以太网是
类型 1,取值0x0001。 2. 协议类型: 16bit,定义协议类型。对应
IPv4协议,值为 0x0800。 3. 硬件长度:8bit,定义以字节为单位的物理
IP 地址
物理地址

IP 地址:172.16.2.1

⑵ 发送 ARP 请求
物理地址:0x00000C302412
主机 A
IP 地址:172.16.1.1
物理地址:0x00000C302411
IP 地址:172.16.1.9
物理地址:0x02608C5A263B
主机 B
IP 地址:172.16.2.5 物理地址:0x02608C401716
问题:对于ARP请 求报文,目的硬件 地址填充什么值?
ARP-封装
ARP/RARP分组直接封装在链路帧中
2 硬件 类型
0x0001
2 协议 类型
0x0800
字节
6
目的地址
1
1
2
6
4
6
4
硬件地 协议地 操作 发送者
发送者 目标
目标
址长度 址长度 类型 以太网地址 IP 地址 以太网地址 IP 地址
当主机A要向主机B传输数据报时,TCP/IP软件会利用子网掩码确定主机 B位于远程子网上。
⑴ 查询 ARP 高速缓存
主机 A 的 ARP 高速缓存
IP 地址
物理地址
⑶ 写 ARP 高速缓存
路由器的 ARP 高速缓存
Baidu Nhomakorabea
IP 地址
物理地址
172.16.1.9 0x02608C5A263B
主机 B 的 ARP 高速缓存
ARP、RARP协议基础知识
➢ 引言 ➢ 什么是ARP ➢ ARP工作原理 ➢ ARP高速缓存 ➢ ARP实用命令 ➢ ARP高速缓存-解析实例 ➢ 什么是RARP,及其分组格式、工
作原理
引言
在链路层上,主机和路由器用它们的物理 地址来标志,即48 bit物理地址。物理地 址是本地地址,在本地范围内是唯一的, 但是在全局上不一定,它通常用硬件实现。
位于不同子网的主机进行通信时先完成对路由器的地址解析和数据传输
ARP高速缓存——解析实例(不同网络)
假设一台IP地址为172.16.1.9,子网掩码为255.255.255.0的客户机希望向 IP地址为 172.16.2.5的主机发送IP数据报。
⑸ 写 ARP 高速缓存
主机 A 的 ARP 高速缓存
6. 发送方硬件地址、发送 方协议地址、目的硬件 地址和目的协议地址:它 们是可变长度字段。源 和目的硬件地址对应以 太网都是48位地址。源 和目的协议地址对应 IPv4协议是32位地址。
ARP-分组格式
思考:各字段的填充值是什么?
对于一个 ARP 请求来说,除目的硬件 地址外的所有其他字段都有填充值。当 系统收到一份目的为本机的ARP 请求报 文后,它就把硬件地址填进去,然后用 两个发送端地址分别替换两个目的地址, 并把操作字段置为2,最后把它发送回去。
IP 地址
物理地址
⑵ 发送 ARP 请求 ⑴
⑶ 写 ARP 高速缓存
主机 B 的 ARP 高速缓存
IP 地址
物理地址
196.168.27.20 0x45EF695A263B

主机 A
主机 B
IP 地址:196.168.27.20 物理地址:0x45EF695A263B
IP 地址:196.168.27.22 物理地址:0x45EF695A1716
ARP高速缓存
静态ARP表项 一种控制地址映射表项超时值的方法是在ARP 高速缓存中创建 一个静态表项。静态表项是永不超时的地址映射表项。静态表 项主要用在一台主机经常向另一台主机发送ARP请求的情况下 ,为了提高效率,减少不必要的开销。
问题:静态表项是固定不变的吗?
静态表项也有可能发生变化: 使用arp实用程序可以人工删除静态表项。 重新启动主机也会使静态表项丢失。 动态表项与静态表项冲突时,以动态表项为准
ARP高速缓存
按照缺省设置,ARP高速缓存中的项目是动态的,每当发送一个指定地 点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目
ARP高速缓存中地址映射表项的超时 问题:由于IP地址与物理地址的映射关系可能因网络接口或IP地 址的变化而发生变化,对于ARP高速缓存中地址映射表项都存在一个 过时的问题。一旦高速缓存的项目被输入,它们就已经开始走向失 效状态。 解决:给ARP高速缓存中的每一个表项设置一个超时值,使得每个 地址映射表项都有一个生命期。 例如,在Windows NT网络中,如果输入项目后不进一步使用,物理 /IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目 很少或根本没有时,是正常的。
ARP实用命令
可以通过arp命令查看、添加和删除高速缓存中的内容。 ARP命令
arp命令可以显示、添加和删除arp内容。在windows和unix系统中都
有这个命令。
arp -a [inet_addr] 显示地址映射表项,[ ]为可选项。
arp -g [inet_addr] 功能与arp -a [inet_addr]相同。
引言
静态映射:创建一个表,存储逻辑地址和物理地址 的关联关系。然后将网络上的每个主机都存储这个 表。缺点是映射表必须周期的更新,增加了网络的 开销
动态映射:地址解析协议ARP和逆地址解析协议 RARP
32bit IP地址
ARP
RARP
48bit MAC地址
什么是ARP
ARP,Address Resolution Protocol即地址解析协议, 实现通过IP地址得知其物理地址。在TCP/IP网络环境 下,每个主机都分配了一个32位的IP地址,这种互联 网地址是在网际范围标识主机的一种逻辑地址。为了让 报文在物理网路上传送,必须知道对方目的主机的物理 地址。这样就存在把IP地址变换成物理地址的地址转换 问题。以以太网环境为例,为了正确地向目的主机传送 报文,必须把目的主机的32位IP地址转换成为48位以 太网的地址。这就需要在互连层有一组服务将IP地址转 换为相应物理地址,这组协议就是ARP协议。
2、为了能抓到ARP协议包,最好在命令行中运行arp –d 清除arp缓存。
Arp -a
Arp –a inet_addr
Arp –d inet_addr/[*]
Arp –s inet_addr phy_addr
ARP高速缓存——解析实例(同一网络)
⑴ 查询 ARP 高速缓存
主机 A 的 ARP 高速缓存
位于同一子网的主机进行通信时的 ARP 请求过程
⑸ 更新 ARP 高速缓存 主机 A 的 ARP 高速缓存
主机 B 的 ARP 高速缓存
IP 地址
物理地址
196.168.27.22 0x45EF695A1716
IP 地址
物理地址
196.168.27.20 0x45EF695A263B

⑷ 发送 ARP 应答
ARP高速缓存
可以使用ARP高速缓存表解决这个问题。
每个主机或路由器上都有一个 ARP 高速缓存表。这个高速缓 存表存放最近 Internet 地址到硬件地址之间的映射记录。高 速缓存表中每一项的生存时间有限,起始时间从被创建时开始 算起。
ARP高速缓存
1 ARP
B
5 Cache
A2
6
TCP
(硬件)地址长度,即n的值。以太网是6。 4. 协议长度:8bit,定义以字节为单位的逻辑
(协议)地址长度,即m的值。IPv4的值为4。 5. 操作码:16bit,定义分组的类型。ARP请求
为0x0001, ARP应答为0x0002。 RARP请 求为0x0003, RARP应答为0x0004。
ARP-分组格式
IP 地址
物理地址
172.16.1.1 0x00000C302411
⑺ 查询 ARP 高速缓存
路由器的 ARP 高速缓存
IP 地址
物理地址
172.16.1.9 0x02608C5A263B
⑼ 写 ARP 高速缓存
主机 B 的 ARP 高速缓存
IP 地址
物理地址
172.16.2.1 0x00000C302412
在网络层上,主机和路由器用逻辑地址来 标志,逻辑地址在互联网全局上是唯一的。 在TCP/IP协议族中称为IP地址,长度是32 位(IPv4)。
引言
在以太网协议中规定,同一局域网中的一台主机 要和另一台主机进行直接通信,必须要知道目标 主机的MAC地址。而在TCP/IP协议栈中,网络 层和传输层只关心目标主机的IP地址。这就导致 在以太网中使用IP协议时,数据链路层的以太网 协议接到上层IP协议提供的数据中,只包含目的 主机的IP地址。因此需要能够将逻辑地址和相应 的物理地址之间进行映射。完成这样的映射可使 用静态映射和动态映射。
主机 A
主机 B
IP 地址:196.168.27.20 物理地址:0x45EF695A263B
IP 地址:196.168.27.22 物理地址:0x45EF695A1716
位于同一子网的主机进行通信时的 ARP 应答处理
ARP高速缓存——解析实例(不同网络)
假设一台IP地址为172.16.1.9,子网掩码为255.255.255.0的客户机希望向 IP地址为 172.16.2.5的主机发送IP数据报。
0x06
0x04
1:ARP 请求 2:ARP 应答
3:RARP 请求
4:RARP 应答
6
2
28
18 4
源地址 帧类型 ARP/RARP 报文 PAD CRC
ARP:0x0806 RARP:0x8035
ARP/RARP 报文封装在以太网帧中格式
ARP高速缓存
问题:发送端往往有多个IP数据报发送到同一个目的端。如果 对发送到同一个主机或路由器的每一个数据报都使用ARP,势 必会带来较大的开销。广播ARP请求不仅要耗费带宽,而且使 得本地网络中的每台主机都要处理该广播帧,或忽略或给出响 应帧。 。

⑷ 发送 ARP 响应

IP 地址:172.16.2.1 物理地址:0x00000C302412 ⑼
主机 A
⑹ 发送数据帧 IP 地址:172.16.1.1
ARP-工作原理
A收到B的回应包后便可得知B的MAC地址,将其存入 ARP缓存。此后A再向B发送数据时,就可以直接从缓 存表中查找B的地址了,然后直接把数据发送给B。
由于B在接收A的请求时也保存了A的地址信息,因此B 要向A发送数据也可以直接从缓存表中查找。
ARP缓存表设置了生存时间TTL,在一段时间内(一般 15到20分钟,跟操作系统有关)如果表中的某一行没 有使用,就会被删除,这样可以大大减少ARP缓存表的
ARP-工作原理
如果在ARP缓存表中没有找到目标IP地址, 主机A就会在网络上发送一个广播arp request,请求包中包含了A主机的ip地址 和mac地址。
网络上其他主机并不响应ARP询问,直接丢 弃,只有主机B接收到这个帧时,才以单播 方式向主机A做出回应arp reply,并带上自 己的ip和mac地址,而B主机收到A的请求 包时也会将A主机的IP与MAC对应关系保存 在自己的缓存区
arp -d inet_addr 删除由inet_addr所指定的表项。
arp -d *
删除所有表项
arp -s inet_addr phys_addr 增加由inet_addr和phys_addr
指定的静态表项。
说明ar:p /?
显示帮助
1、使用ARP命令查看高速缓存内容前最好先ping 此台主机或路由器。
Arp只有两种封包:arp request和arp reply
ARP-工作原理
每台主机或路由器都有一个ARP缓存表,用来保 存IP地址与MAC地址的对应关系。
以主机A(192.168.1.5)向主机B (192.168.1.1)发送数据为例。当发送数据时, 主机A会在自己的ARP缓存表中寻找是否有目标 IP地址。如果找到了,也就知道了目标MAC地址, 直接把目标MAC地址写入帧里面发送就可以了;
UDP
3 ARP
Cache
C
4
IP ICMP IGMP ARP
Ethernet
1. ARP cache is checked 2. ARP request is sent 3. ARP entry is added 4. ARP reply is sent 5. ARP entry is added 6. IP packet is sent
相关文档
最新文档