主要看看ICMP协议的一种应用,ping命令,请求应答报文对。在command命令行里用ping。
其中arp -a 显示了当前arp缓存里的内容,当前只有一项,就是网关的。
然后ping一台主机,当然是本网段内的主机,然后在用arp -a 发现arp缓存中多出了一项。
这就说明了,第一个ping包发出之前,是先发了一个ARP请求包来获得目的机的mac地址,然后再发出4个ping包并收到4个回复。此时该主机的mac地址就记录在了arp缓存中,当然他会有生存时间,一般大概是20分钟。
如果我们马上在ping一次,就不会再发ARP请求包了,因为mac地址已经在缓存中了。
请求包结构
应答包结构
scapy测试:自己组了ping请求包,发现Ethernet层的dst已经填好了,说明是直接从ARP缓存取来的。
ICMP()默认情况下是request包
下面是发送。并显示了回复包的内容: