ARP 数据包格式分析

转载 2015年11月19日 10:13:47

1.ARP数据包格式

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。

ARP数据报的格式如下所示

2011-09-14-15-37

 

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。

2.例子分析

请求帧如下(为了清晰在每行的前面加了字节计数,每行16个字节):

以太网首部(14字节) 
0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06 
ARP帧(28字节) 
0000:                                           00 01 
0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37 
0020: 00 00 00 00 00 00 c0 a8 00 02 
填充位(18字节) 
0020:                               00 77 31 d2 50 10 
0030: fd 78 41 d3 00 00 00 00 00 00 00 00

以太网首部:目的主机采用广播地址,源主机的MAC地址是00:05:5d:61:58:a8,上层协议类型0x0806表示ARP。

ARP帧:硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0001表示请求目的主机的MAC地址,源主机MAC地址为00:05:5d:61:58:a8,源主机IP地址为c0 a8 00 37(192.168.0.55),目的主机MAC地址全0待填写,目的主机IP地址为c0 a8 00 02(192.168.0.2)。

由于以太网规定最小数据长度为46字节,ARP帧长度只有28字节,因此有18字节填充位,填充位的内容没有定义,与具体实现相关。

应答帧如下:

以太网首部 
0000: 00 05 5d 61 58 a8 00 05 5d a1 b8 40 08 06 
ARP帧 
0000:                                           00 01 
0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02 
0020: 00 05 5d 61 58 a8 c0 a8 00 37 
填充位 
0020:                               00 77 31 d2 50 10 
0030: fd 78 41 d3 00 00 00 00 00 00 00 00

以太网首部:目的主机的MAC地址是00:05:5d:61:58:a8,源主机的MAC地址是00:05:5d:a1:b8:40,上层协议类型0x0806表示ARP。

ARP帧:硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0002表示应答,源主机MAC地址为00:05:5d:a1:b8:40,源主机IP地址为c0 a8 00 02(192.168.0.2),目的主机MAC地址为00:05:5d:61:58:a8,目的主机IP地址为c0 a8 00 37(192.168.0.55)。

实际在开发板上的测试结果:

开发板发送给pc机实际抓包的结果一致:

发送60字节 ok 
0000  ff ff ff ff ff ff 08 90  90 90 90 90 08 06 00 01   ........ ........ 
0010  08 00 06 04 00 01 08 90  90 90 90 90 c0 a8 00 fa   ........ ........ 
0020  00 00 00 00 00 00 c0 a8  00 64 00 00 00 00 00 00   ........ .d...... 
0030  00 00 00 00 00 00 00 00  00 00 00 00               ........ ....
   

抓包软件实际显示发送的数据为:

收到42字节arp响应包但是实际上是64个字节? 
0000  08 90 90 90 90 90 00 1e  c9 45 61 9e 08 06 00 01   ........ .Ea..... 
0010  08 00 06 04 00 02 00 1e  c9 45 61 9e c0 a8 00 64   ........ .Ea....d 
0020  08 90 90 90 90 90 c0 a8  00 fa
  

开发板调试打印的结果: 
interrupt : st=1 status=1  len= 40 
receive data len=64 
08 90 90 90 90 90 00 1e c9 45 61 9e 08 06 00 01 
08 00 06 04 00 02 00 1e c9 45 61 9e c0 a8 00 64 
08 90 90 90 90 90 c0 a8 00 fa

00 00 00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 0a 
1f b2 53

现在有个问题:

在上文表述过以太网规定最小数据长度为46字节但是实际抓包的分析只有42个字节,这个怎么解释:

答:46个字节指的是以太网的帧,关键的是不包含以太网的首部也就是说14个字节的首部+28个字节的ARP响应帧(由于不够46个字节需要加上一些填充位,但是这些数据没有意义)+18个字节的填充位+4个字节的CRC校验位=64个字节,也就是说抓包得到的42个字节,实际在开发板上调试得到的数据为64个字节是正确的

原文地址:http://www.cnblogs.com/xmphoenix/archive/2011/09/14/2176323.html

arp包格式分析及实例解析

一、ARP包格式分析 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符...

ARP数据包讲解

一. 关于ARP协议的基础知识 1.ARP的工作原理 我们都知道以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址来传输以太网数...

TCP、UDP、IP、ARP的报文格式以及所代表的含义

TCP报文格式: (上图转载自http://wenku.baidu.com/view/04b0d780e53a580216fcfeaa.html) 源端口: 数据发送方的端口号。 ...

TCP/Socket学习----ARP数据报格式

TCP/Socket学习(亚嵌网络版图书) ARP数据报格式 ARP的作用: 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的 主机的硬件地址,而数据包首先是被网卡接...

C++解析ARP数据包(可选网卡)

转自王柏元的博客C++解析ARP数据包(可选网卡):http://wangbaiyuan.cn/c-resolution-arp-packets.html 在网络通讯时,源主机的应用程序知道目的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C/C++手动构造ARP包并发送至网络

所选题目: 1. 在熟悉ARP协议并了解Winpcap编程的前提下,构造ARP包,选择并打开网卡,将ARP包发送出去。 运行格式:程序名源IP地址目的IP地址目的MAC地址flag 源 IP   目的...

ARP 协议详解 ARP报文结构

ARP:地址解析协议(address Resolution protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。...

ARP协议详解 ARP报文结构

ARP ARP作用 ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议。 在局域网中,当主机或其它网络设备有数...
  • qliu83
  • qliu83
  • 2016年12月30日 09:56
  • 2227

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARP 数据包格式分析
举报原因:
原因补充:

(最多只允许输入30个字)