arp 协议

ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议. ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。 ARP工作过程分为两个阶段,一个是ARP请求过程,一个是ARP响应过程.

1.PC1 和 PC2 的详细通信过程如下所示

(1)当主机 PC1 想发送数据给主机 PC2 时,首先在自己的本地 ARP 缓存表中检查主机 PC2 匹配的 MAC 地址。

(2)如果主机 PC1 在缓存中没有找到相应的条目,它将询问主机 PC2 的 MAC 地址,从而将 ARP 请求帧广播到本地网络上的所有主机。该帧中包括源主机 PC1 的 IP地址和 MAC地址。本地网络上的每台主机都接收到 ARP 请求并且检查是否与自己的 IP 地址匹配。如果主机发现请求的 IP 地址与自己的 IP 地址不匹配,它将会丢弃 ARP 请求。

(3)主机 PC2 确定 ARP 请求中的 IP 地址与自己的 IP 地址匹配,则将主机 PC1 的地址和 MAC 地址添加到本地缓存表。

(4)主机 PC2 将包含其 MAC 地址的 ARP 回复消息直接发送回主机 PC1(这个数据帧是单播)。

(5)当主机 PC1 收到从主机 PC2 发来的 ARP 回复消息时,会将主机 PC2 的 IP 和 MAC地址添加的自己的 ARP 缓存表。本机缓存是有生存期的,默认 ARP 缓存表的有效期是 120s。当超过该有效期后,将再次重复上面的过程。主机 PC2 的 MAC 地址一旦确定,主机 PC1将能向主机 PC2 发送 IP 通信了。

2.ARP缓存表维护工具——arp命令。该命令用于查询本机ARP缓存中的IP地址和MAC地址的对应关系、添加或删除静态对应关系等。用户也可以通过使用arp命令验证ARP缓存条目的生命周期。ARP命令的语法格式   arp –v。

3. 缓存表中保存中多个ARP条目。每个ARP条目都是由一个IP地址和一个对应的MAC地址组成。

4. 使用arp -a查看绑定的ARP条目.

5.清空所有的ARP条目    arp –d。

注意:使用arp命令在Windows和Linux下删除ARP缓存条目的方法有点区别。在Linux下,删除ARP条目时,必须指定接口地址。在Windows下,可以直接执行arp -d命令删除。在Linux下,如果不指定接口时,将会提示“arp: need host name”信息.

ARP应答协议报文格式

广播类型的MAC地址:0XFF-FF-FF-FF-FF-FF

硬件类型:表明ARP协议实现在哪种类型的网络上。

协议类型:表示解析协议(上层协议)。这里一般是0800,即IP。

硬件地址长度:MAC地址长度,此处为6个字节。

协议地址长度:IP地址长度,此处为4个字节。

操作类型:表示ARP协议数据包类型。1表示ARP协议请求数据包,2表示ARP协议应答数据包。

ARP协议应答协议报文和ARP协议请求协议报文类似。不同的是,此时以太网帧头部的目标MAC地址为发送ARP协议地址解析请求的MAC地址,而源MAC地址为被解析的主机的MAC地址。同时,操作类型字段为2,表示ARP协议应答数据包,目标MAC地址字段被填充为目标MAC地址。

下面拿某一个包举个例子:

Frame 33: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0

以上内容表示这是第33帧数据包的详细信息。其中,该包的大小为42个字节。

Ethernet II, Src: 02:00:04:78:01:7b (02:00:04:78:01:7b), Dst: Broadcast (ff:ff:ff:ff:ff:ff)

以上内容表示以太网帧头部信息。其中源MAC地址为02:00:04:78:01:7b,目标MAC地址为ff:ff:ff:ff:ff:ff(广播地址)。这里的目标地址为广播地址,是因为主机PC2不知道PC1主机的MAC地址。这样,局域网中所以设备都会收到该数据包。

Address Resolution Protocol (request)

以上内容表示地址解析协议内容,request表示该包是一个请求包。在该包中包括有ARP更详细的字段信息,如下所示:

Address Resolution Protocol (request) #ARP请求包

Hardware type: Ethernet (1) #硬件类型

Protocol type: IP (0x0800)#协议类型

Hardware size: 6 #硬件地址

Protocol size: 4#协议长度

Opcode: request (1)#操作码。该值为1表示是个ARP请求包

Sender MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) #发送端MAC地址

Sender IP address: 10.1.1.142 (10.1.1.142) #发送端IP地址

Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00) #目标MAC地址

Target IP address: 10.1.1.166(10.1.1.166) #目标IP地址

通过以上内容的介绍,可以确定这是一个在以太网上使用IP的ARP请求。从该内容中,可以看到发送方的IP(10.1.1.142)和MAC地址(02:00:04:78:01:7b),以及接收方的IP地址(10.1.1.166)。由于目前还不知道目标主机的MAC地址,所以这里的目的MAC地址为00:00:00:00:00:00。

关于以上ARP头部的内容和前面介绍的ARP请求报文格式是相对应的,如下

应答不同的是:

1. Opcode: reply (2) #操作码为2表示该包是ARP响应包 。

2.从该行信息中,可以知道PC2获取到了PC1主机的MAC地址。这样就完成通信了。

时间: 2024-10-22 21:02:55

arp 协议的相关文章

arp协议及运用

Arp协议和Arp欺骗 今天更深入了解网络的传输的原理.如两台计算机建立连接的过程:两台计算机之间通信,在数据链路层转发靠MAC地址,在网络传输则靠IP地址.但是在两台计算机建立连接之前,只知道对方的IP地址,那么要怎么样获取对方的MAC地址呢? 这时就要先发一个ARP数据包,来获取对方的MAC地址. 地址解析协议, 即ARP(AddressResolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主

TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

转http://blog.csdn.net/goodboy1881/article/details/668556 —————————————————————————————————————————————————————— 把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UD

图解ARP协议(三)ARP防御篇-如何揪出"内鬼"并"优雅的还手"

一.ARP防御概述 通过之前的文章,我们已经了解了ARP攻击的危害,黑客采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网攻击.流量被限.账号被窃的危险.由于攻击门槛非常低,普通人只要拿到攻击软件就可以扰乱网络秩序,导致现在的公共网络.家庭网络.校园网.企业内网等变得脆弱无比. 所以,如何进行有效的ARP防御?作为普通用户怎么防御?作为网络/安全管理员又怎么防御?有哪些ARP防御软件?如果被ARP攻击了,如何揪出"内鬼",并"优雅的还手"?

ARP协议详解

ARP协议简介 IP地址属于网络层,但ip地址在传输的时候需要跨越不同的物理网络进行交换,此时如果一台主机要将一个帧发送到另一台主机,光知道其ip地址是不够的,还需要知道其有效的“硬件地址”. ARP(地址解析协议)就提供了一种在32位IPv4地址和以太网的48位MAC地址(硬件地址)之间的映射. ARP提供的是网络层地址到相关硬件地址的“动态映射”,即:会自动执行和随时间变化,而不需要系统管理员的配置.(如一台一台主机改变了它的网卡后(mac地址改变),ARP可以在一定延时后继续正常工作) 整

Lvs原理及部署之ARP协议

1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC地址). 在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址.为了让报文在物理网络上传输,还必须要知道对方目的主机的物理地址(MAC)才行.这样就存在把IP地址转换成物理地址的地址转换的问题. 我们以以太网环境为例说明,为了正确地向目的主

ARP协议及ARP欺骗详解

ARP协议及ARP欺骗详解 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源.ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记

浅谈ARP协议以及应用

0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议,在网络中,有IP地址和MAC地址,在链路层发送报文时使用的是MAC硬件地址,这时需要将IP地址转换为48bit MAC地址,这就会使用到ARP协议. 如下,有两台主机,239主机ping向238主机.当本地ARP缓存中没有238主机对应的项时,会发起ARP广播请求,之后使用arp命令查看ARP缓存,

ARP协议

ARP协议 原文地址:http://blog.csdn.net/tigerjibo/article/details/7351992#t4 前言:ARP协议的作用: 1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议.最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址. 2为什么要有ARP? OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface

Networking - ARP 协议

ARP 协议概述 ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址.网段上的每台主机都维护着一个被称为 ARP Table 或 ARP Cache 的表格,其中包含着网段上其他主机的 IP 地址与物理地址的对应关系.当主机需要向网段上的其他主机发送数据时,它会查看 ARP Cache 来获得目的的物理地址.ARP 缓存是动态变化的.如果要接收数据的地址当前并不存在于 ARP Cache,主机就会广播一个 ARP 请求帧.ARP 请

6.HCNA-HNTD——ARP协议

网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址).IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送.数据帧必须要包含目的MAC地址,因此发送端还必须获取目的MAC地址.通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的. 学习目标: 1. 掌握ARP的工作原理 2. 理解ARP缓存表的作用 一台网络设备要发送数据给另一太网络设备时,必须要知道对