学习ARP
-
学习ARP
1.ARP是地址解析协议,每个主机都有一张“ARP”表,每当一台主机接入网络的时候这台主机是怎么发现其它设备?它是怎么判断IP地址是否冲突?依靠的就是ARP
当PC1 Ping PC2的时候PC1是不知道PC2是谁的,哪么它就会这样子发包
结构是 Frame(Ethernet()/ARP()) 一层一层包裹起来Frame不用理会下面学习Ethernet与ARP包
Ethernet头
|
长度(位)
|
48
|
48
|
16
|
|
数据类型
|
FF:FF:FF:FF:FF:FF 目标以太网地址
|
c8:21:58:a0:08:c5
源以太网地址
|
0x0806
帧类型
|
|
组成
|
14字节 以太网首部
|
||
目标以太网地址:FF:FF:FF:FF:FF:FF 就是广播,由于PC1 ARP表中没有PC2的ARP表这里就会自动生成
源以太网地址:c8:21:58:a0:08:c5 带上自己的mac地址
帧类型:0x0806 这个是ARP报文标识符 比如0x0800是IPv4标识符 ----有许多标识符都一一对应每个标识符的含义
上面这三个结构构成了以太网头部 Ethernet
抓包分析Ethernet头
传输过程它就是这样子 当我们看到Destination 脑子第一反应 这是一个广播包 看到Source 这是源mac地址,看到Type:0x0806 这是ARP包
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ARP包
|
16
|
16
|
8
|
8
|
16
|
48
|
32
|
48
|
32
|
|
1
硬件类型
|
0x0800
协议类型
|
6
硬件地址长度
|
4
协议地址长度
|
1
操作码
|
c8:21:58:a0:08:c5
源硬件地址
|
172.20.10.4
源协议地址
|
00:00:00:00:00:00
目标硬件地址
|
172.20.10.10
目标协议地址
|
|
28字节 ARP请求/应答
|
||||||||
硬件类型:1 以太网接口类型
协议类型:0x0800 标识为IPv4标识符
硬件地址长度与协议地址长度大多数都是这两位6,4
操作码:1 1为ARP请求,2为ARP应答,3为RARP请求,4为RARP应答
源硬件地址:c8:21:58:a0:08:c5 源硬件地址就是自己IP这个是知道的
源协议地址:172.20.10.4 源IP我们自己也是知道的
目标硬件地址:00:00:00:00:00:00 目标地址硬件不知道填全0
目标协议地址:172.20.10.10 我们也知道目标地址
上面这9个结构构成了ARP包
抓包分析ARP包结构
当看到Hardware type 我们知道是以太网接口类
Prtocol Type 为IPv4标识符 ,
Hardware size 与Protocol 硬件地址长度与协议地址长度
Sender MAC address: 发送方MAC地址也就是源MAC地址
Sender IP address:发送放IP地址
Target MAC address:目标MAC地址
Target Ip address :目标IP
查看完整的数据包:
PC1会把这个包发给三台PC,还会问 谁是172.20.10.10 告诉172.20.10.4
这里是172.20.10.10的应答报文reply为2 就是应答

浙公网安备 33010602011771号