ARP协议学习(一)解析
- 格式:ppt
- 大小:909.00 KB
- 文档页数:26
一、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(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(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协议详述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(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原理(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应答的帧类型字段值是相同的。
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)。
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)会对该请求进行处理。
ARP协议解析与应用ARP(Address Resolution Protocol),地址解析协议,是一种用于在局域网中将IP地址解析为对应MAC地址的协议。
在计算机网络中,IP地址用于标识网络中的设备,而MAC地址则是用于标识设备的物理地址。
ARP协议的作用是通过IP地址查询对应的MAC地址,以实现数据的传输。
在本文中,我们将对ARP协议进行解析,并探讨其在实际应用中的作用与功能。
一、ARP协议概述1. ARP协议的定义ARP协议是一种地址解析协议,其作用是根据IP地址查询对应的MAC地址。
它通过广播的方式发送ARP请求,在局域网中寻找目标设备的MAC地址,以便进行数据传输。
一旦获取到目标设备的MAC地址,就可以通过以太网(Ethernet)传输层实现数据的传输。
2. ARP协议的工作原理ARP协议的工作原理可以分为以下四个步骤:a) 发送ARP请求:源设备向网络中的所有设备发送ARP请求,请求目标设备的MAC地址。
b) 目标设备响应ARP请求:目标设备接收到ARP请求后,将其MAC地址作为ARP响应发送给源设备。
c) 源设备收到ARP响应:源设备接收到目标设备的ARP响应后,将其存储在本地的ARP缓存中,以便将来的数据传输。
d) 数据传输:源设备通过目标设备的MAC地址将数据进行传输。
二、ARP协议的应用1. IP地址与MAC地址转换ARP协议的主要应用是实现IP地址与MAC地址之间的转换。
当一个设备需要与网络中的另一个设备进行通信时,首先需要知道目标设备的MAC地址,而通过ARP协议,可以通过目标设备的IP地址查询到其对应的MAC地址,从而实现数据的传输。
2. ARP缓存管理每次进行ARP请求响应之后,源设备会将目标设备的IP地址与MAC地址存储在本地的ARP缓存中,以便将来的数据传输。
ARP缓存管理是对这些缓存条目进行管理和维护的过程。
当ARP缓存中的某条目过期或者失效时,源设备会重新发送ARP请求以更新对应的MAC地址。
arp协议知识点总结一、ARP协议的原理1.1 ARP协议的作用ARP协议主要用于解决IP地址和MAC地址之间的对应关系问题。
在计算机网络中,通信双方需要知道对方的MAC地址才能实现数据包的传输。
而IP地址是用于标识设备的网络位置,通信双方在知道对方的IP地址后,就需要根据这个IP地址获取对应的MAC地址,从而实现数据的传输和通信。
1.2 ARP协议的原理ARP协议的原理就是在通信双方知道对方的IP地址后,通过广播的方式发送ARP请求报文,请求对方提供其对应的MAC地址。
收到ARP请求的设备会向发送请求的设备回复ARP应答报文,其中包含了其对应的MAC地址。
然后发送方根据这个MAC地址就可以构建数据帧,将数据包发送给对应的设备。
二、ARP协议的工作流程2.1 ARP协议的工作原理ARP协议的工作流程可以分为以下几个步骤:(1)发送ARP请求:当主机A需要和主机B进行通信时,首先会在本地ARP缓存表中查找主机B的IP地址对应的MAC地址。
如果找不到,则会发送ARP请求广播给本地子网中的所有主机,请求对应IP地址的MAC地址。
(2)接收ARP请求:所有的主机都会收到这个ARP请求广播,但只有主机B会对其进行回应。
(3)发送ARP应答:主机B接收到ARP请求后,会向主机A发送ARP应答报文,其中包含了自己的MAC地址。
(4)更新ARP缓存表:主机A收到ARP应答后,就会将主机B的IP地址和MAC地址对应关系更新到本地ARP缓存表中,以便以后再次通信时可以直接获取到对应的MAC地址。
2.2 ARP协议的工作流程图以下是ARP协议的工作流程图:[图]三、ARP协议的特点3.1 ARP协议的特点(1)ARP协议是一种简单、有效的地址解析协议,能够实现IP地址和MAC地址之间的对应关系。
(2)ARP协议是一种无状态协议,通信双方只是简单地请求和回应,没有任何状态信息保存。
(3)ARP协议是在数据链路层上的协议,其主要作用是将IP地址和MAC地址进行映射,实现了网络层和数据链路层之间的转换。