Lab Exercise – ARP
实验要求:
了解ARP(地址解析协议)是如何工作的。
一、实验操作
- 在命令行输入 ipconfig /all,找到以太网地址90-78-41-A4-3F-A8
- 命令行输入 netstat -r,找到默认网关的ip地址
- 启动wireshark,用arp进行过滤捕获
- 捕获开始后,在命令行输入arp -d,清除默认网关
- 打开任意网站,并等待wireshark捕获到arp类型的包
得到结果如下:
二、ARP协议
- 过滤协议,找出发送方或接收方是自己计算机的包。如下图所示,后面的以太网地址是自己的本机地址。
eth.addr==(自己的MAC地址)
- ARP包有两种,请求和应答包,请求信息将以“who”开始,如下图,并且后面的地址为默认网关地址。
- 查看请求包的内容,各字段含义如下:
Hardware type: Ethernet (1) Protocol type: IPv4 (ox0800) | 指明硬件是类型和协议使用的分别是以太网和iPv4,便于ARP将IP地址转为MAC地址。 |
---|---|
Hardware size: | 6 |
Protocol size: 4 | 表示以太网和IP地址的字节数 |
Opcode:request (1) | 说明是请求包 |
sender MAC address: | 发生方的MAC地址 |
sender IP address: | 发送方IP地址 |
Target MAC address:全0 | 目标MAC地址 |
Target IP address: | 目标IP地址。 |
这四个关键地址,会尽可能多的填写这四个地址,由于此时,还不知道目标的MAC地址,所以为0.
-
查看应答包的内容,其info一般为:xxxxxxx(ip地址) at yyyyyyyy(mac地址)
基本与请求包相同,不同的地方在于:
①Opcode:reply (2) 说明是应答包
②发生方接收方地址反转,原来的发生方变为接受方。
此时由于两个计算机已经提供的他们的MAC地址,此时字段应该全部填写。 -
画图
三、回答问题:
-
用来标识请求包的操作码是什么?那应答包呢?
答:Opcode字段:request (1) reply (2) -
一个请求的ARP头有多大?那应答包呢?
答:均为28字节。
-
对未知的目标MAC地址的请求中携带了什么值
答:全0 -
说明ARP是上层协议的“Ethernet Type”值是多少?
答:可以看到是0x0806
-
ARP是否应答广播(像ARP请求一样)?
答:是的。