ARP协议学习(一)解析

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑴ 查询 ARP 高速缓存 主机 A 的 ARP 高速缓存 IP 地址 物理地址 ⑶ 写 ARP 高速缓存 路由器的 ARP 高速缓存 IP 地址 172.16.1.9 物理地址 0x02608C5A263B ⑶ 主机 B 的 ARP 高速缓存 IP 地址 物理地址
⑴ 主机 A
⑵ 发送 ARP 请求
例如,在Windows NT网络中,如果输入项目后不进一步使用,物理 /IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目 很少或根本没有时,是正常的。
ARP高速缓存
静态ARP表项 一种控制地址映射表项超时值的方法是在ARP 高速缓存中创建 一个静态表项。静态表项是永不超时的地址映射表项。静态表 项主要用在一台主机经常向另一台主机发送ARP请求的情况下 ,为了提高效率,减少不必要的开销。
ARP工作原理
• ARP的操作示意图
ARP高速缓存
• 问题:发送端往往有多个IP数据报发送到同一个目的端。如果对 发送到同一个主机或路由器的每一个数据报都使用ARP,势必会 带来较大的开销。广播ARP请求不仅要耗费带宽,而且使得本地 网络中的每台主机都要处理该广播帧,或忽略或给出响应帧。 。
ARP高速缓存
TCP
UDP
C
4
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
IP
ICMP IGMP
ARP-工作原理
• 如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发 送一个广播arp request,请求包中包含了A主机的ip地址和mac地 址。 • 网络上其他主机并不响应ARP询问,直接丢弃,只有主机B接收到 这个帧时,才以单播方式向主机A做出回应arp reply,并带上自己 的ip和mac地址,而B主机收到A的请求包时也会将A主机的IP与 MAC对应关系保存在自己的缓存区
arp 说明:
1、使用ARP命令查看高速缓存内容前最好先ping 此台主机或路由器。
2、为了能抓到ARP协议包,最好在命令行中运行arp –d 清除arp缓存。
Arp -a
Arp –a inet_addr
Arp –d inet_addr/[*]
Arp –s inet_addr phy_addr
IP 地址:172.16.2.1 物理地址:0x00000C302412
IP 地址:172.16.1.1 物理地址:0x00000C302411 IP 地址:172.16.1.9 物理地址:0x02608C5A263B
主机 B IP 地址:172.16.2.5 物理地址:0x02608C401716
IP 地址:196.168.27.20 物理地址:0x45EF695A263B
位于同一子网的主机进行通信时的 ARP 请求过程
⑸ 更新 ARP 高速缓存 主机 A 的 ARP 高速缓存 IP 地址 196.168.27.22 ⑸ 主机 A IP 地址:196.168.27.20 物理地址:0x45EF695A263B 物理地址 0x45EF695A1716 主机 B 的 ARP 高速缓存 IP 地址 196.168.27.20 ⑷ 发送 ARP 应答 物理地址 0x45EF695A263B
ARP高速缓存——解析实例(同一网络)
⑴ 查询 ARP 高速缓存 主机 A 的 ARP 高速缓存 IP 地址 物理地址 ⑶ 写 ARP 高速缓存 主机 B 的 ARP 高速缓存 IP 地址 196.168.27.20 物理地址 0x45EF695A263B ⑶
⑴ 主机 A
⑵ 发送 ARP 请求
主机 B IP 地址:196.168.27.22 物理地址:0x45EF695A1716
位于不同子网的主机进行通信时路由器参与地址解析
ARP高速缓存——解析实例(不同网络)
• 可以使用ARP高速缓存表解决这个问题。
• 每个主机或路由器上都有一个 ARP 高速缓存表。这个高速缓存表 存放最近 Internet 地址到硬件地址之间的映射记录。高速缓存表 中每一项的生存时间有限,起始时间从被创建时开始算起。
ARP高速缓存
1 5
ARP Cache
B
2
3
A
6
ARP Cache
引言
• 静态映射:创建一个表,存储逻辑地址和物理地址的 关联关系。然后将网络上的每个主机都存储这个表。 缺点是映射表必须周期的更新,增加了网络的开销 • 动态映射:地址解析协议ARP和逆地址解析协议RARP
32bit IP地址 ARP 48bit MAC地址 RARP
什么是ARP
• ARP,Address Resolution Protocol即地址解析协议,实现 通过IP地址得知其物理地址。在TCP/IP网络环境下,每个 主机都分配了一个32位的IP地址,这种互联网地址是在 网际范围标识主机的一种逻辑地址。为了让报文在物理 网路上传送,必须知道对方目的主机的物理地址。这样 就存在把IP地址变换成物理地址的地址转换问题。以以 太网环境为例,为了正确地向目的主机传送报文,必须 把目的主机的32位IP地址转换成为48位以太网的地址。 这就需要在互连层有一组服务将IP地址转换为相应物理 地址,这组协议就是ARP协议。 • Arp只有两种封包:arp request和arp reply
ARP-分组格式
ARP 分组格式 1. 硬件类型:16bit,定义网络类型。以太网是 类型 1,取值0x0001。 2. 协议类型: 16bit,定义协议类型。对应IPv4 协议,值为 0x0800。 3. 硬件长度:8bit,定义以字节为单位的物理 (硬件)地址长度,即n的值。以太网是6。 4. 协议长度:8bit,定义以字节为单位的逻辑 (协议)地址长度,即m的值。IPv4的值为4。 5. 操作码:16bit,定义分组的类型。ARP请求为 0x0001, ARP应答为0x0002。 RARP请求为 0x0003, RARP应答为0x0004。
ARP
Ethernet
ARP高速缓存
按照缺省设置,ARP高速缓存中的项目是动态的,每当发送一个指定地 点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目 ARP高速缓存中地址映射表项的超时 问题:由于IP地址与物理地址的映射关系可能因网络接口或IP地 址的变化而发生变化,对于ARP高速缓存中地址映射表项都存在一个 过时的问题。一旦高速缓存的项目被输入,它们就已经开始走向失 效状态。 解决:给ARP高速缓存中的每一个表项设置一个超时值,使得每个 地址映射表项都有一个生命期。
字节
6 目的地址
ARP:0x0806 RARP: 0x8035 ARP/RARP 报文封装在以太网帧中格式
ARP-工作原理
• 每台主机或路由器都有一个ARP缓存表,用来保存 IP地址与MAC地址的对应关系。
• 以主机A(192.168.1.5)向主机(192.168.1.1)发 送数据为例。当发送数据时,主机A会在自己的 ARP缓存表中寻找是否有目标IP地址。如果找到了, 也就知道了目标MAC地址,直接把目标MAC地址写 入帧里面发送就可以了;
位于不同子网的主机进行通信时先完成对路由器的地址解析和数据传输
ARP高速缓存——解析实例(不同网络)
假设一台IP地址为172.16.1.9,子网掩码为255.255.255.0的客户机希望向 IP地址为 172.16.2.5的主机发送IP数据报。
⑸ 写 ARP 高速缓存 主机 A 的 ARP 高速缓存 IP 地址 172.16.1.1 ⑸ 物理地址 0x00000C302411 ⑺ 查询 ARP 高速缓存 路由器的 ARP 高速缓存 IP 地址 172.16.1.9 物理地址 0x02608C5A263B ⑺ ⑼ 写 ARP 高速缓存 主机 B 的 ARP 高速缓存 IP 地址 172.16.2.1 物理地址 0x00000C302412 ⑼
主机 B IP 地址:196.168.27.22 物理地址:0x45EF695A1716
位于同一子网的主机进行通信时的 ARP 应答处理
ARP高速缓存——解析实例(不同网络)
假设一台IP地址为172.16.1.9,子网掩码为255.255.255.0的客户机希望向 IP地址为 172.16.2.5的主机发送IP数据报。 当主机A要向主机B传输数据报时,TCP/IP软件会利用子网掩码确定主机 B位于远程子网上。
统收到一份目的为本机的ARP 请求报文
后,它就把硬件地址填进去,然后用两 个发送端地址分别替换两个目的地址,
并把操作字段置为2,最后把它发送回去。
问题:对于ARP请 求报文,目的硬件 地址填充什么值?
ARP-封装
• ARP/RARP分组直接封装在链路帧中
2 硬件 类型 0x0001 2 协议 类型 0x0800 1 1 2 6 4 6 4 硬件地 协议地 操作 发送者 发送者 目标 目标 址长度 址长度 类型 以太网地址 IP 地址 以太网地址 IP 地址 0x06 0x04 1:ARP 请求 2:ARP 应答 3:RARP 请求 4:RARP 应答 6 源地址 4 18 帧类型 ARP/RARP 报文 PAD CRC 2 28
ARP协议
引言
• 在以太网协议中规定,同一局域网中的一台主机要 和另一台主机进行直接通信,必须要知道目标主机 的MAC地址。而在TCP/IP协议栈中,网络层和传输 层只关心目标主机的IP地址。这就导致在以太网中 使用IP协议时,数据链路层的以太网协议接到上层 IP协议提供的数据中,只包含目的主机的IP地址。 因此需要能够将逻辑地址和相应的物理地址之间进 行映射。完成这样的映射可使用静态映射和动态映 射。
ARP-工作原理
• A收到B的回应包后便可得知B的MAC地址,将其存入ARP 缓存。此后A再向B发送数据时,就可以直接从缓存表中 查找B的地址了,然后直接把数据发送给B。 • 由于B在接收A的请求时也保存了A的地址信息,因此B要 向A发送数据也可以直接从缓存表中查找。 • ARP缓存表设置了生存时间TTL,在一段时间内(一般15 到20分钟,跟操作系统有关)如果表中的某一行没有使 用,就会被删除,这样可以大大减少ARP缓存表的长度, 加快查询速度。
问题:静态表项是固定不变的吗?
静态表项也有可能发生变化: 使用arp实用程序可以人工删除静态表项。 重新启动主机也会使静态表项丢失。 动态表项与静态表项冲突时,以动态表项为准
ARP实用命令
可以通过arp命令查看、添加和删除高速缓存中的内容。 ARP命令 arp命令可以显示、添加和删除arp内容。在windows和unix系统中都 有这个命令。 arp arp arp arp arp -a -g -d -d -s [inet_addr] 显示地址映射表项,[ ]为可选项。 [inet_addr] 功能与arp -a [inet_addr]相同。 inet_addr 删除由inet_addr所指定的表项。 * 删除所有表项 inet_addr phys_addr 增加由inet_addr和phys_addr 指定的静态表项。 /? 显示帮助
⑷ 发送 ARP 响应 ⑹ 发送数据帧
IP 地址:172.16.2.1 物理地址:0x00000C302412 ⑻ 发送 ARP 请求
主机 A
IP 地址:172.16.1.1 物理地址:0x00000C302411
主机 B
IP 地址:172.16.1.9 物理地址:0x02608C5A263B
IP 地址:172.16.2.5 物理地址:0x02608C401716
ARP来自百度文库分组格式
6.
发送方硬件地址、发送方协 议地址、目的硬件地址和目 的协议地址:它们是可变长度 字段。源和目的硬件地址对 应以太网都是48位地址。源 和目的协议地址对应IPv4协 议是32位地址。
ARP-分组格式
思考:各字段的填充值是什么?

对于一个 ARP 请求来说,除目的硬件地 址外的所有其他字段都有填充值。当系
相关文档
最新文档