一、协议格式
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协议格式详解相关推荐

  1. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

  2. CoAP协议学习笔记——CoAP格式详解

    CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型设备而言, ...

  3. RTMP协议封装AAC(ADTS)格式详解

    第一部分 AAC ADTS格式分析 AAC音频格式分析 AAC音频格式有ADIF和ADTS: ADIF:Audio Data Interchange Format 音频数据交换格式.这种格式的特征是可 ...

  4. HTTP响应协议格式详解

    文章目录 响应协议格式 1. 首行 状态码详解 2. 响应头header 响应协议格式 HTTP请求协议由首行.响应头(header).空行.正文(body)组成.通过空行来区别header和body ...

  5. UDP数据包协议格式详解

    源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号 报文长度(单位4byte):表示udp报头+udp数据总长度,有别于tcp,也没有选项 UDP报 ...

  6. COAP数据包协议格式详解

    Ver:版本编号,占2bit,固定01 T:报文类型,占2bit,CON=00,NON=01,ACK=10,RST=11 CON--需要被确认的请求,如果CON请求被发送,那么对方必须做出响应. NO ...

  7. TCP数据包协议格式详解

    出一个专栏把通信协议搞一下吧,万物互联的根本呀. IP 版本4位:4(二进制0100)表示IPv4,6(二进制0110)表示IPv6 报头长度(单位4byte):因为选项长度不确定,取值范围是5-15 ...

  8. 传输层两大协议:TCP与UDP详解(两者的联系与区别)

    一.TCP协议 1.TCP协议报文格式 TCP协议报文格式详解 2.TCP"三次握手"建立连接 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK( ...

  9. 计算机网络中的语法 语义 时序的概念,网络iso协议及语义语法时序详解

    网络iso协议及语义语法时序详解 计算机学习 网络协议的三要素 在计算机网路中,通信发生在不同系统的实体之间,,实体(entity)是能够发送和接收信息的任何事物.然而,两个实体间仅发送比特流就指望能 ...

  10. USB CCID类协议中的APDU命令详解

    出处:http://blog.chinaunix.net/uid-29124653-id-4573075.html 原文地址:USB CCID类协议中的APDU命令详解 作者:jeffasdasd 最 ...

最新文章

  1. 网络001 交换机基本配置
  2. CentOS 7配置LNMP开发环境及配置文件管理详解
  3. asp打开exe执行本地程序._基于QT应用程序打包成可执行程序exe
  4. java resp req_java request和response区别
  5. 一个搜集大量网页特效的网站
  6. 假如我们等不到对的人,就趁孤单让自己优秀起来。单身是最好的升值期
  7. 【Access2007】将Excel表导入至Access2007的当中一张已存在的表之中
  8. NBU 备份 SAP HANA
  9. Ant安装及环境配置
  10. 虚拟机网卡和linux bridge上tap设备的关系
  11. python爬duitang的摄影类图片
  12. 读书·2020(26本)
  13. GMF:OCL(Object Constraint Language)介绍
  14. Word2013制作中国的传统福字在屋门上贴的福字(福倒了)
  15. python全角数字_python 半角全角的相互转换
  16. 实体店数字化线上线下一体化经营转型
  17. ZooKeeper进阶之客户端命令行操作
  18. 计算机教学在语文中应用,计算机在语文教学中的应用.doc
  19. 调用ycwin.cpp接口的YC服务器源码ycs.js
  20. 智能优化算法及其MATLAB实例(第二版)——遗传算法2.1

热门文章

  1. 【随笔】那些免费友好的遥感影像数据下载网站
  2. 4.3.2 Calculating and Applying VaR
  3. 2021年11月软件设计师真题解析
  4. 母亲节为什么要定在5月的第二个星期日? [节假日]
  5. 女孩起名字:100个优秀的女孩名字大全
  6. java m个苹果n个篮子_m个苹果放入n个盘子问题
  7. 零基础玩转树莓派(六)—遥控小车
  8. “0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”
  9. 科技界、IT届的外号
  10. PHP语言之表单基础——educoder答案