返回顶部

学习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 就是应答
 
 
 
 
 
posted @ 2020-11-23 12:21  一身白_粉条  阅读(282)  评论(0)    收藏  举报