ARP包解析及工作原理

ARP数据包42字节

参照以下例子:
前12字节为以太网的目的地址(54 89 98 0f 2b be)和源地址(54 89 98 5b 5b 8a),当目的地址全为1时是以太网广播地址,
此时ARP还未建立缓存表,这时源主机只知道目的主机的IP地址,并不知道MAC地址,所以
通过广播的是方式将ARP请求数据包发送出去,这时同一网段上的以太网接口都会接收到广播的数据包

2字节的帧类型,对于ARP包来说字段为0x0806(08 06)
之后为ARP数据包部分
2字节的硬件类型,表示发送方想要知道的硬件接口类型,对于以太网MAC地址,它的值为1(00 01)
2字节的协议类型,表示要映射的协议地址类型,值为0x0800时,即表示要映射为IP地址(08 00)
1字节硬件地址长度(06) 1位协议地址长度(IP)(04)
2字节操作字段,指出了ARP数据包的类型,arp请求值为1,arp应答值为2(00 02)
6字节发送方以太网MAC地址(54 89 98 5b 5b 8a)
4字节发送方IP地址(0a 00 00 02)
6字节目的端的以太网MAC地址(54 89 98 0f 2b be)
4字节目的段的IP地址(0a 00 00 01 )10.0.0.1

PAD凑足46字节,省略未写

例子:

54 89 98 0f 2b be 54 89 98 5b 5b 8a 08 06 00 01
08 00 06 04 00 02 54 89 98 5b 5b 8a 0a 00 00 02
54 89 98 0f 2b be 0a 00 00 01 

ARP解析过程

(1)当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2匹配的MAC地址

(2)如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。
     该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。

(3)主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。

(4)主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。

(5)主机PC1收到PC2发挥的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。
     当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息

猜你喜欢

转载自blog.csdn.net/m0_53685032/article/details/127213314