1. ARP广播原理:
(1)A(135.24.25.23)和同一网段内的主机B(135.24.25.32)通信
查找arp 表没有32 IP的MAC地址
判断A 和B 是在同一局域网内,A向局域网发送ARP广播,B收到广播后 会把自己的MAC地址以广播的形式发送给A,A获取到B的MAC 保存到自己的ARP缓存中,通讯开始
(2)A(135.24.25.23)和不同同一网段内的主机B(135.24.25.32)通信
A判断B和自己不在同一局域网
A发送一个广播获取网关的MAC地址,网关收到广播后向A返回自己的MAC
A按照网关的MAC地址开始通信,网关收到这个数据包后向下一跳路由网关获取MAC,把这个数据包发到下一个网关
2.ARP数据包格式
以太网首部:
字段 长度(Byte) 默认值 备注
接收方MAC 6 广播时,为 ff-ff-ff-ff-ff-ff
发送方MAC 6
Ethertype 2 0x0806 0x0806是ARP帧的类型值
ARP包:
字段 长度(Byte) 默认值 备注
硬件类型 hdtyp 2 0x1 以太网类型值
上层协议类型protyp 2 0x0800 上层协议为IP协议
MAC地址长度hdsize 1 0x6 以太网MAC地址长度为 6
IP地址长度 prosize 1 0x4 IP地址长度为 4
操作码 op 2 0x1表示ARP请求包,0x2表示应答包
发送方MAC smac[6] 6
发送方IP sip[4] 4
接收方MAC dmac[6] 6
接收方IP dip 4
填充数据 18 因为物理帧最小长度为64字节,前面的42字节再加上4个CRC校验字节,还差18个字节