码迷,mamicode.com
首页 > 其他好文 > 详细

ARP协议(2)ARP协议格式详解

时间:2015-07-12 15:42:00      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:tcpip   arp   

一、协议格式
ARP协议的格式如下:
技术分享
分两大块来讲解:
1、红色框起来的是:以太网的首部,共14字节。
这部分是你不管发送什么以太网协议的数据包,它都是需要的,而且是必须的。各字段的说明:
字段 所占字节数 说明
以太网目的地址 6 要向哪台主机发送信息,主机的MAC地址
以太网源地址 6 信息是从哪台机器发送出来的,主机的MAC地址
帧类型 2 表示这是什么类型的数据包。如果是RAP的话,该值为:0x0806

2、蓝色框起来的部分,这就是ARP协议的格式(请求/应答)
字段 所占字节数 说明
硬件类型 2 通常填1,表示以太网硬件地址类型
协议类型 2 通常为0x0800,表示IP地址类型
硬件地址长度 1 MAC地址的长度,填6
协议地址长度 1 IP地址长度,填4
op 2 操作字段:
ARP请求:1
ARP相应:2
RARP请求:3
RARP相应:4
发送端以太网地址 6

发送端IP地址 4

目的以太网地址 6

目的以太网IP地址 4

对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。

二、分析ARP协议
这里要用到一抓包工具:wireshark,这是一免费的抓包工具,居于winpcap驱动,大家可以到网上去下载。下面我主要用这个工具来分析ARP协议格式。(Linux下可以用tcpdump来抓包,本ARP讲解全部都基于win7下)

1、wireshark基本用法
关于wireshark的用法,大家可以去搜索,而且在下载包里,也自带了一份使用说明。在这里简单讲解下它基本使用。

安装,打开wireshark会出现这样的界面:
技术分享

点击 抓包 -- 网络接口
技术分享

出现的窗口中,
第1列 详细信息, 就是你电脑里的网络适配器(网卡)的描述信息,我这有3个,第一个是无线网卡,第二个是虚拟的无线网卡,第三个是插入网线的网卡。
第2列 IP地址,就是每个网卡的IP/MAC地址。默认显示的是MAC地址,在上面在点击下,就会显示IP地址
第3列 包,是经过该网卡的包的数量
第4列 包数/秒, 是每秒经过该网卡包的数量
上面的3个网卡中,可以看出,只有第一个网卡是由流量的(包数),所以在这台机器上,第一个网卡是可用的。
当然,可能会同时存在多个可用的网卡,这个时候,要监听哪个网卡的数据,就由你来决定了。(可以通过IP/MAC地址来分辨)

wireshark可以有很多的过滤规则,如果不设置的话,它会显示所有经过该网卡的数据包。在这里,我先不对它进行过滤设置,点击上面的开始按钮,出现:
技术分享
图中,我用红框分割出了4部分:
第1部分 过滤:这里填写你要过滤的表达式(不是随便填的,可以参考它的说明文档)
第2部分 是主体部分,这里主要显示了经过该网卡的数据包,各段的含义,大家看字段名就可以看出是什么意思,这里我就不再赘述了。
第3部分 是对应包格式说明
第4部分 是原始数据包的内容(十六进制)

2、ARP包详解
好,这个时候,我们根据RAP的协议,来研究下,ARP在真正网络上是如何来传输的。
另外,wireshark一旦开启后,就不停地把包展现出来,为避免显示包数过多,而不必我们分析时,可进行暂停,如图:
技术分享

在Protocol这列我们找到ARP,如果太多,可以在 过滤框里输入arp回车,就把arp协议的过滤出来了

我们随便选出一ARP包:
技术分享

上面红色线或框的部分,就是我们之前说的ARP协议格式的各个字段,大家对照协议,就都明白了。


有同学就问了,这个包,那我可以控制它么?

好,下面一篇,我们主要来学习,如果对ARP进行编程。


版权声明:本文为博主原创文章,未经博主允许不得转载。

ARP协议(2)ARP协议格式详解

标签:tcpip   arp   

原文地址:http://blog.csdn.net/xiongxianhe/article/details/46850441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!