ARP协议学习(一)解析

合集下载

ARP详解

ARP详解

一、ARP攻击原理及防范在局域网中如果时常上不了网,但是网络的连接正常,而局域网的网络情况却时好时坏,那么这很可能就是ARP欺骗已经发作的征兆。

ARP的内容和原理:ARP的全称是:Address Resolution Protocol,也就是地址解析协议。

顾名思义,其主要作用就是“地址解析”,即通过目标设备的IP地址,查询目标地址的MAC地址。

在局域网中,如果要在两台主机之间进行通信,就必须要知道目标主机的IP地址,但是起到传输数据的物理设备网卡并不能直接识别IP地址,只能识别其硬件地址MAC地址,MAC地址是一个全球唯一的序列号并由12个16进制数构成。

主机之间的通信,一般都是网卡之间的通信,而网卡之间的通信都是根据对方的MAC地址来进行工作的,而ARP协议就是一个将数据包中的IP地址转换为MAC 地址的网络协议。

ARP在局域网中的作用:而在规模越来越庞大的局域网中,存在上百台主机已经很普及,如何在这么多的主机的MAC地址中,快速又准确的记住每个网卡对应的IP地址和MAC地址的对应关系,这就要依靠一个存在于所有主机中的ARP缓存表来进行记录。

例如局域网中有A、B两台主机并通过交换机相连接,当A需要给B所在的IP地址发送数据时,A就要先查找自己的ARP缓存表,看其中是否存在这个IP的MAC地址,如果有就直接发送。

如果没有,那么A就要向整个局域网发送广播要求使用这个IP地址的主机进行响应,B收到广播后会向A返回一个响应信息,说明自己的MAC和A所要发送的IP地址是对应关系,而A收到B所返回的信息后会将这个IP和MAC进行记录,以后如果要再发送信息,则可以从ARP缓存表中直接查找并发送。

ARP病毒的危害:ARP缓存表记录了所有和和其宿主主机进行通讯过的其他电脑的MAC-IP对应关系,而漏洞也恰恰在此。

如果局域网中的一台电脑进行欺骗性地使用自己的IP地址来冒充其他主机的MAC地址。

比如:在B和C的通讯时,这时出现一台A机器,它告诉B说它就是C,结果B机器就认为它是C了,并且在B的缓存中,原先C的IP地址被对应到了A的MAC上。

arp地址解析协议

arp地址解析协议

ARP地址解析协议简介ARP(Address Resolution Protocol)是一种用于解析本地IP地址和MAC地址之间对应关系的协议。

在TCP/IP网络中,当一个主机需要与另一个主机通信时,通常需要知道目标主机的MAC地址。

而ARP协议就是用来获取目标主机的MAC地址的。

ARP工作原理1.当源主机要发送数据包给目标主机时,首先检查自己的ARP缓存表中是否有目标主机的IP地址对应的MAC地址。

如果有,则直接使用该MAC地址进行通信。

2.如果ARP缓存表中没有目标主机的信息,则源主机会发送一个ARP请求广播包到局域网内的所有主机。

该ARP请求包包含源主机的IP地址以及MAC地址。

3.接收到ARP请求广播包的主机会检查自己的IP地址是否与ARP请求包中的目标IP地址相匹配。

如果匹配,则该主机会向源主机发送一个ARP 响应包,包含自己的IP地址和MAC地址。

4.源主机收到ARP响应包后,会将目标主机的IP地址和MAC地址添加到ARP缓存表中,并使用该MAC地址进行通信。

ARP缓存表ARP缓存表是每个主机上存储IP地址与MAC地址对应关系的表格。

它用于加快ARP解析的速度,避免频繁地发送ARP请求包。

当一个主机收到ARP响应包时,会将目标主机的IP地址和MAC地址添加到ARP缓存表中。

在后续的通信过程中,主机会直接使用ARP缓存表中的MAC地址进行通信。

ARP缓存表通常具有以下信息:- IP地址:目标主机的IP地址。

- MAC地址:目标主机的MAC地址。

- 接口:用于与目标主机通信的网络接口。

ARP欺骗ARP欺骗(ARP Spoofing)是一种恶意攻击技术,黑客通过伪造ARP响应包来篡改ARP缓存表中的对应关系。

一旦攻击成功,黑客就可以拦截、修改或重定向通信流量,从而实施中间人攻击。

为了防止ARP欺骗攻击,可以采取以下措施: - 使用静态ARP表:将重要主机的IP地址和MAC地址手动添加到ARP缓存表中,这样可以防止被攻击者伪造。

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构

ARP协议详解ARP报文结构ARP协议详解与ARP报文结构ARP(Address Resolution Protocol,地址解析协议)是一个重要的网络协议,用于将IP地址与MAC地址相互映射。

在局域网中,每个主机都有一个唯一的IP地址和MAC地址,而ARP协议则负责通过目标IP地址获取对应的MAC地址,从而实现数据包的正确传输。

一、ARP工作流程ARP的工作流程可以简单概括为以下几个步骤:1. 发送ARP请求:源主机A在发送数据包时,会先检查目标主机B的IP地址是否与自己在同一局域网中,如果不是,则需要获取目标主机的MAC地址。

A会根据目标主机的IP地址构建一个ARP请求包(ARP Request),该包中包含源主机A的IP地址、MAC地址以及目标主机的IP地址。

然后,A会将ARP请求包广播发送到局域网中的所有主机。

2. 接收ARP请求:局域网中的其他主机收到ARP请求包后会进行筛选,只有与ARP请求包中的目标IP地址相同的主机会继续处理。

3. 发送ARP响应:局域网中的目标主机B收到ARP请求包后会将自己的MAC地址信息封装在一个ARP响应包(ARP Reply)中,并发送给源主机A。

该ARP响应包中包含目标主机B的IP地址、MAC地址以及源主机A的IP地址。

4. 更新ARP缓存表:源主机A收到ARP响应包后会将目标主机B的IP地址与其对应的MAC地址映射关系添加到本地的ARP缓存表中,以备将来使用。

5. 数据传输:当主机A获取到目标主机B的MAC地址后,就可以将待发送的数据包封装在以太网帧中,通过局域网将数据包传输给目标主机B。

二、ARP报文结构ARP报文结构包括以下字段:1. 硬件类型(Hardware Type):占2字节,表示硬件接口类型,例如以太网。

2. 协议类型(Protocol Type):占2字节,表示网络协议类型,例如IPv4或IPv6。

3. 硬件地址长度(Hardware Address Length):占1字节,表示源和目标MAC地址的长度,通常为6(以太网中的MAC地址长度)。

ARP协议详解

ARP协议详解

ARP协议详述1.ARP协议概述IP数据包常通过以太网发送。

以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。

因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。

在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。

地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。

ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。

目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。

发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。

如果有一个不被信任的节点对本地网络具有写访问许可权,那么也会有某种风险。

这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。

ARP机制常常是自动起作用的。

在特别安全的网络上,ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的。

图1 以太网上的ARP报文格式图1是一个用作IP到以太网地址转换的ARP报文的例子。

在图中每一行为32位,也就是4个八位组表示,在以后的图中,我们也将遵循这一方式。

硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1。

协议类型字段指明了发送方提供的高层协议类型,IP为0806(16进制)。

硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用。

操作字段用来表示这个报文的目的,ARP请求为1,ARP响应为2,RARP请求为3,RARP 响应为4。

当发出ARP请求时,发送方填好发送方首部和发送方IP地址,还要填写目标IP地址。

当目标机器收到这个ARP广播包时,就会在响应报文中填上自己的48位主机地址。

2 ARP使用举例我们先看一下linux下的arp命令(如果开始arp表中的内容为空的话,需要先对某台主机进行一个连接,例如ping一下目标主机来产生一个arp项):d2server:/home/kerberos# arpAddress HWtype HWaddress Flags Mask Iface211.161.17.254 ether 00:04:9A:AD:1C:0A C eth0Address:主机的IP地址Hwtype:主机的硬件类型Hwaddress:主机的硬件地址Flags Mask:记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目。

ARP工作原理和ARP协议解码详解

ARP工作原理和ARP协议解码详解

ARP工作原理和ARP协议解码详解ARP(Address Resolution Protocol,地址解析协议)是一种用于解决IP地址和MAC地址之间映射关系的协议。

在电子网络中,数据通过IP地址进行传输,而以太网的数据帧则使用MAC地址进行传输。

ARP协议的作用就是通过IP地址查找对应的MAC地址,以便在发送数据时能够正确地通过以太网传输。

ARP的工作原理可以分为两个阶段:请求阶段和应答阶段。

在请求阶段,当主机A想要发送数据给主机B时,首先检查本地ARP缓存中是否有主机B的IP地址对应的MAC地址。

如果有,则直接使用该MAC地址;如果没有,则会发送一个ARP请求广播到局域网上的所有主机。

这个广播包会包含主机A的IP和MAC地址,请所有收到广播包的主机回答自己的IP和MAC地址。

在应答阶段,主机B收到主机A发送的ARP请求广播后,会检查广播包中的目标IP地址是否与自己的IP地址相同。

如果相同,则会将自己的IP和MAC地址添加到ARP应答包中,并发送给主机A。

主机A收到主机B的应答后,会将主机B的IP和MAC地址添加到本地ARP缓存中。

这样,在主机A发送数据时,就可以通过ARP协议查找到主机B的MAC地址,然后将数据封装为以太网帧,以目标MAC地址为主机B的MAC地址发送出去。

需要注意的是,ARP协议是工作在网络层以太网的协议,不仅支持IPv4地址的解析,还支持IPv6地址的解析。

此外,ARP协议是基于局域网的,只能解析同一片段中的IP地址和MAC地址的映射关系。

ARP协议的解码可以通过抓包工具来实现。

Wireshark是一款常用的网络抓包工具,在Wireshark中可以看到ARP协议的详细信息。

解码ARP协议的步骤如下:1. 打开Wireshark,点击开始捕获按钮,开始抓包。

2.选择要抓取的网络接口,点击开始捕获按钮。

3. 过滤ARP协议,只显示与ARP协议相关的数据包。

可以在过滤框中输入"arp",点击过滤按钮。

ARP协议学习

ARP协议学习

ARP原理(1)A R P发送一份称作A R P请求的以太网数据帧给以太网上的每个主机。

这个过程称作广播,如图(ARP)中的虚线所示。

A R P请求数据帧中包含目的主机的I P地址(主机名为b s d i),其意思是“如果你是这个I P地址的拥有者,请回答你的硬件地址。

”(2)目的主机的A R P层收到这份广播报文后,识别出这是发送端在寻问它的I P地址,于是发送一个A R P应答。

这个A R P应答包含I P地址及对应的硬件地址。

(注:如果目的主机不存在,根据TCP重传机制,一般将在75秒后不再重新发送。

)(3)收到A R P应答后,使A R P进行请求—应答交换的I P数据报现在就可以传送了。

(4)发送I P数据报到目的主机。

ARP高速缓存A R P高效运行的关键是由于每个主机上都有一个A R P高速缓存。

这个高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录。

高速缓存中每一项的生存时间一般为2 0分钟,起始时间从被创建时开始算起。

ARP的分组格式在以太网上解析I P地址时,A R P请求和应答分组的格式如下图所示抓包截图:以太网目的地址就是目标MAC地址。

如上图中的就是广播给所有人。

以太网源地址就是源MAC地址。

帧类型就是说明后面数据类型。

对于ARP请求或英达来说,该字段的值为0x0806。

可见抓包图形容词hardware(硬件)和protocol(协议)用来描述ARP分组中的各个字段。

例如,一个ARP请求分组询问协议地址(这里是I P地址)对应的硬件地址(这里是以太网地址)。

硬件类型字段表示硬件地址的类型。

它的值为1即表示以太网地址。

如抓包图:一个是以太网址,一个是IP地址接下来两个字段规定后四个字段的长度op操作字段指出四种操作类型,它们是A R P请求(值为1)、A R P应答(值为2)、R A R P请求(值为3)和R A R P应答(值为4)。

这个字段必需的,因为A R P请求和A R P应答的帧类型字段值是相同的。

ARP通信协议学习总结

ARP通信协议学习总结

TCP/IP之ARP调试在编写ARP程序及调试之前需要知道ARP协议的概念、工作原理、ARP的格式和ARP数据包的填充,下面将我编写ARP程序及调试过程写出来。

第一步ARP协议的基础知识1.ARP的定义及工作原理地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。

于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。

这就是ARP协议要做的事情。

ARP工作过程可以简单描述为以下三步:①A首先广播一个ARP报文;②网上的所有主机都接收到报文;③只有B识别,回答A,发送定向ARP报文;2.ARP包的格式图1以太网使用ARP请求或发送格式由上图可以看出ARP数据包由两部分组成:以太网首部+以太网ARP帧。

首先分析以太网首部,以太网首部它将存在于任何一个协议数据包的前面,格式如下,以太网首部填充的是接收方的是MAC地址,此处通常是ff-ff-ff-ff-ff-ff即在局域网内发送广播;发送方的MAC地址(根据实际情况而定),ARP帧类型默认值为0x0806。

表格1 以太网首部帧格式表格2 ARP帧格式3.ARP数据包的填充ARP请求数据包的填充:按照表格2和表格3依次填充数据ARP应答数据包的填充:按照表格2和表格3填充,只要交换接收者和发送者的MAC和IP即可第二步编程实现ARP请求和应答在了解ARP基本知识的基础上,开始编写程序以及程序调试。

整体的流程图为:我做的ARP协议主要实现的功能:设置DM9000的MAC地址为:12-34-56-78-9a-bc,IP 地址为192.168.2.2,并且知道PC机的IP地址为192.168.2.225,目前想知道PC机的MAC地址。

即通过ARP协议来解析PC机的MAC地址。

实现的步骤如下:1.dm9000初始化dm9000初始化的过程,实际上就是填写和设置dm9000寄存器的过程,寄存器的名称宏定义在dm9000.h中,具体的配置过程如下:void DM9000_init() //DM9000初始化{DM9000_write(DM9000_NCR,0x01); //第一次软件复位DELAY_US(20);DM9000_write(DM9000_NCR,0x00); //清除复位位DM9000_write(DM9000_NCR,0x01); //为了确保复位正确,第二次软件复位DELAY_US(20);DM9000_write(DM9000_NCR,0x00); //清除复位位DM9000_write(DM9000_GPR,0x01); //PHY掉电DELAY_US(20);DM9000_write(DM9000_GPR,0x00); //PHY激活DELAY_US(3000); //至少延时2msDM9000_write(DM9000_NSR,0x2c); //清除发送完成标志DM9000_write(DM9000_ISR,0x3f); //清除中断标志位DM9000_write(DM9000_RCR,0x39); //丢弃长数据包,丢弃CRC校验错误数据包,接收使能DM9000_write(DM9000_TCR,0x00); //禁止发送DM9000_write(DM9000_NCR,0x00); //配置为正常模式DM9000_write(DM9000_IMR,0x80); //使能SRAM的读/写指针在指针地址超过SRAM的大小时自动DM9000_write(DM9000_PAB0,0x12); //dm9000的mac地址写到PARDM9000_write(DM9000_PAB1,0x34);DM9000_write(DM9000_PAB2,0x56);DM9000_write(DM9000_PAB3,0x78);DM9000_write(DM9000_PAB4,0x9a);DM9000_write(DM9000_PAB5,0xbc);DM9000_write(DM9000_NSR,0x2c); //再一次清除发送完成标志DM9000_write(DM9000_ISR,0x3f); //清除中断标志位DM9000_write(DM9000_IMR,0x81); //开接收中断,关掉发送中断}2.构建ARP请求包ARP数据包=以太网首部(14字节)+ARP帧格式(28字节)+18字节的填充字(填充字为0)。

ARP详解

ARP详解

1.ARP作用ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。

在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。

但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从IP地址到物理地址的映射。

APR就是实现这个功能的协议。

2.ARP报文结构ARP报文分为ARP请求和ARP应答报文,报文格式如图1-1所示。

图 1 ARP报文结构●硬件类型:表示硬件地址的类型。

它的值为1表示以太网地址;●协议类型:表示要映射的协议地址类型。

它的值为0x0800即表示IP地址;●硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。

对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;●操作类型(OP):1表示ARP请求,2表示ARP应答;●发送端MAC地址:发送方设备的硬件地址;●发送端IP地址:发送方设备的IP地址;●目标MAC地址:接收方设备的硬件地址。

●目标IP地址:接收方设备的IP地址。

3.ARP地址解析过程假设主机A和B在同一个网段,主机A要向主机B发送信息。

如图1-2所示,具体的地址解析过程如下:(1)主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。

如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2)如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。

ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。

由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

引言
• 静态映射:创建一个表,存储逻辑地址和物理地址的 关联关系。然后将网络上的每个主机都存储这个表。 缺点是映射表必须周期的更新,增加了网络的开销 • 动态映射:地址解析协议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-分组格式
6.
发送方硬件地址、发送方协 议地址、目的硬件地址和目 的协议地址:它们是可变长度 字段。源和目的硬件地址对 应以太网都是48位地址。源 和目的协议地址对应IPv4协 议是32位地址。
ARP-分组格式
思考:各字段的填充值是什么?

对于一个 ARP 请求来说,除目的硬件地 址外的所有其他字段都有填充值。当系
位于不同子网的主机进行通信时路由器参与地址解析
ARP高速缓存——解析实例(不同网络)
位于不同子网的主机进行通信时先完成对路由器的地址解析和数据传输
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 ⑼
• 可以使用ARP高速缓存表解决这个问题。
• 每个主机或路由器上都有一个 ARP 高速缓存表。这个高速缓存表 存放最近 Internet 地址到硬件地址之间的映射记录。高速缓存表 中每一项的生存时间有限,起始时间从被创建时开始算起。
ARP高速缓存
1 5
ARP Cache
B
2
3
A
6
ARP Cache
ARP工作原理
• ARP的操作示意图
ARP高速缓存
• 问题:发送端往往有多个IP数据报发送到同一个目的端。如果对 发送到同一个主机或路由器的每一个数据报都使用ARP,势必会 带来较大的开销。广播ARP请求不仅要耗费带宽,而且使得本地 网络中的每台主机都要处理该广播帧,或忽略或给出响应帧。 。
ARP高速缓存
ARP-工作原理
• 如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发 送一个广播arp request,请求包中包含了A主机的ip地址和mac地 址。 • 网络上其他主机并不响应ARP询问,直接丢弃,只有主机B接收到 这个帧时,才以单播方式向主机A做出回应arp reply,并带上自己 的ip和mac地址,而B主机收到A的请求包时也会将A主机的IP与 MAC对应关系保存在自己的缓存区
统收到一份目的为本机的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 说明:
1、使用ARP命令查看高速缓存内容前最好先ping 此台主机或路由器。
2、为了能抓到ARP协议包,最好在命令行中运行arp –d 清除arp缓存。
Arp -a
Arp –a inet_addr
Arp –d inet_addr/[*]
Arp –s inet_addr phy_addr
主机 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 响应 ⑹ 发送数据帧
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 物理地址:0x02608C40网络)
⑴ 查询 ARP 高速缓存 主机 A 的 ARP 高速缓存 IP 地址 物理地址 ⑶ 写 ARP 高速缓存 主机 B 的 ARP 高速缓存 IP 地址 196.168.27.20 物理地址 0x45EF695A263B ⑶
⑴ 主机 A
⑵ 发送 ARP 请求
主机 B IP 地址:196.168.27.22 物理地址:0x45EF695A1716
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
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协议
引言
• 在以太网协议中规定,同一局域网中的一台主机要 和另一台主机进行直接通信,必须要知道目标主机 的MAC地址。而在TCP/IP协议栈中,网络层和传输 层只关心目标主机的IP地址。这就导致在以太网中 使用IP协议时,数据链路层的以太网协议接到上层 IP协议提供的数据中,只包含目的主机的IP地址。 因此需要能够将逻辑地址和相应的物理地址之间进 行映射。完成这样的映射可使用静态映射和动态映 射。
例如,在Windows NT网络中,如果输入项目后不进一步使用,物理 /IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目 很少或根本没有时,是正常的。
ARP高速缓存
静态ARP表项 一种控制地址映射表项超时值的方法是在ARP 高速缓存中创建 一个静态表项。静态表项是永不超时的地址映射表项。静态表 项主要用在一台主机经常向另一台主机发送ARP请求的情况下 ,为了提高效率,减少不必要的开销。
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。
字节
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实用程序可以人工删除静态表项。 重新启动主机也会使静态表项丢失。 动态表项与静态表项冲突时,以动态表项为准
相关文档
最新文档