wireshark学习笔记
从一道面试题开始
A ping B 理论分析
注意:通过MAC判断--1单播,2组播,3广播, 手动修改MAC时不允许修改成组播或广播。
十六进制0x0b转为二进制时为11
-
A需要判断B是否和它是一个网段
A通过自己的掩码判断自己的网段是192.168.26.0/24,用自己的掩码与B主机的IP地址做与运算,计算出B主机的网段是192.168.26.0/24,于是A认为B与它处于同一网段。
-
A会按照通信规则,发ARP广播询问B主机的MAC地址
who has 192.168.26.3, tell 192.168.26.129
-
B主机由于和A主机处于同一个交换机的同一个VLAN,所以B主机会受到A发送的ARP广播,B主机执行以下内容:B主机不会再去判断A主机是否处于同一网段,而直接进行ARP单播回复,将自己的MAC地址告诉A
-
A主机受到B主机的回复后,就开始准备ICMP的单播请求报文
源IP:192.168.26.129 目标IP:192.168.26.3
源MAC:00:aa:aa:aa:aa:aa 目标MAC:00:bb:bb:bb:bb:bb
-
A发送的ICMP单播请求报文经过交换机的转发顺利到达B主机
-
此时,B会判断A是否与之处于同一网段,B通过自己的子网掩码判断自己的网段是192.168.26.0/27,然后通过自己的子网掩码判断A主机的网段为192.168.26.128/27,于是B主机认为A主机和它不在同一个网段。
-
此时,B主机需要请求网关的帮助,ARP广播网关的MAC地址,网关回复B以后,才会开始准备ICMP的回复报文:
源IP:192.168.26.3 目标IP:192.168.26.129
源MAC:00:bb:bb:bb:bb:bb 目标MAC:00:50:56:E7:51:F1
-
-
B发送的ICMP回复报文由网关转发到A主机之后,ICMP完成一次请求和回复。
B上抓的ARP包:
A上抓的ARP包: