Wireshark分析网络层ICMP协议 - 鲨鱼抓包
首页 博客文章 Wireshark分析网络层ICMP协议

Wireshark分析网络层ICMP协议

日期: 2022年5月20日 18:53
阅读: 244
作者: 鲨鱼抓包

摘要: ICMP协议是互联网控制信息协议,用来实现IP网络层和上层协议连通性测试和差错报告,我们经常使用的ping和Tracert就是基于ICMP协议开发的,源发送者或者上层程序根据返回的ICMP信息进行下一步动作执行。

ICMP协议是互联网控制信息协议,用来实现IP网络层和上层协议连通性测试和差错报告,我们经常使用的ping和Tracert就是基于ICMP协议开发的,源发送者或者上层程序根据返回的ICMP信息进行下一步动作执行。

ICMP协议

在详细了解ICMP之前先给大家一张:ICMP类型和代码对照表。

TYPE CODE Description Query Error
0 0 Echo Reply——回显应答(Ping应答) x  
3 0 Network Unreachable——网络不可达   x
3 1 Host Unreachable——主机不可达   x
3 2 Protocol Unreachable——协议不可达   x
3 3 Port Unreachable——端口不可达   x
3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特   x
3 5 Source routing failed——源站选路失败   x
3 6 Destination network unknown——目的网络未知   x
3 7 Destination host unknown——目的主机未知   x
3 8 Source host isolated (obsolete)——源主机被隔离(作废不用)   x
3 9 Destination network administratively prohibited——目的网络被强制禁止   x
3 10 Destination host administratively prohibited——目的主机被强制禁止   x
3 11 Network unreachable for TOS——由于服务类型TOS,网络不可达   x
3 12 Host unreachable for TOS——由于服务类型TOS,主机不可达   x
3 13 Communication administratively prohibited by filtering——由于过滤,通信被强制禁止   x
3 14 Host precedence violation——主机越权   x
3 15 Precedence cutoff in effect——优先中止生效   x
4 0 Source quench——源端被关闭(基本流控制)    
5 0 Redirect for network——对网络重定向    
5 1 Redirect for host——对主机重定向    
5 2 Redirect for TOS and network——对服务类型和网络重定向    
5 3 Redirect for TOS and host——对服务类型和主机重定向    
8 0 Echo request——回显请求(Ping请求) x  
9 0 Router advertisement——路由器通告    
10 0 Route solicitation——路由器请求    
11 0 TTL equals 0 during transit——传输期间生存时间为0   x
11 1 TTL equals 0 during reassembly——在数据报组装期间生存时间为0   x
12 0 IP header bad (catchall error)——坏的IP首部(包括各种差错)   x
12 1 Required options missing——缺少必需的选项   x
13 0 Timestamp request (obsolete)——时间戳请求(作废不用) x  
14   Timestamp reply (obsolete)——时间戳应答(作废不用) x  
15 0 Information request (obsolete)——信息请求(作废不用) x  
16 0 Information reply (obsolete)——信息应答(作废不用) x  
17 0 Address mask request——地址掩码请求 x  
18 0 Address mask reply——地址掩码应答

R1配置:
R1#configure ter
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface f0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#end
*Mar  1 00:01:06.451: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:01:07.499: %SYS-5-CONFIG_I: Configured from console by console
*Mar  1 00:01:07.507: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1#write memory
Building configuration...
[OK]

R2配置:
R2#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#interface f0/0
R2(config-if)#ip address 10.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#end
R2#
*Mar  1 00:01:58.843: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
R2#
*Mar  1 00:01:58.903: %SYS-5-CONFIG_I: Configured from console by console
*Mar  1 00:01:59.843: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R2#write memory
Building configuration...
[OK]

1.通过ping来观察ICMP协议的细节。

ping来观察ICMP协议

ping来观察ICMP协议

包含上面的广播包一共会发送5组请求和回复包,根据上面的ICMP类型分组可以看出来请求包Type是8,Code是0。回复包中Type是0,Code是0,进程号都是1,进程id也和请求包保持一致。

2.再通过traceroute  10.1.1.2

R1#traceroute 10.1.1.2

Type escape sequence to abort.
Tracing the route to 10.1.1.2
   1  10.1.1.2  28 msec   24 msec   8 msec

可以看出来,这里是通过UDP把数据包发出去的,而且TTL=1,这样一来数据包只能传输到下一个路由上,一旦TTL=0之后就会产生一个回复包(TTL超时),下次在发送就会TTL=2,如果继续超时同样返回TTL超时,如果被目标接收到,一般会出现端口不可达回复,在思科产品中这里的端口会默认为33434,一般目标不开启此端口。回复包还会把UDP请求包完整的返回给源地址。

traceroute  10.1.1.2

3.在Windows上最后一个回复包还是reply包。

reply包

reply包

Windows中最后一个回复包不会显示端口不可达,相比较而言微软的ICMP有可能会被屏蔽,而思科以UDP包发送出去,一般设备不会屏蔽UDP。

鲨鱼博客版权说明:本站文章以原创为主,部分来自网络,请转载时保留原文链接!
# 相关文章
回顶部