ICMP协议
Internet Control Message Protocol, ICMP Internet控制报文协议是用于在IP主机和路由器之上传递消息,基于IP协议,因此是工作在网络层。
由于IP协议是提供不可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。而ICMP辅助IP,当出现IP数据无法访问目标等故障时,会自动发送ICMP消息。
ICMP主要功能:
- 确认IP包是否成功到达主机(信息查询)
- 分析丢包的原因(差错通知)
ICMP的类型
ICMP数据包的类型有十多种,其中常见的有以下几种:
- 响应请求:源主机发送一个Type=8的ICMP报文,如果数据消息在传输过程中没有出现问题,那么目标返回一个Type=0的ICMP报文。
- 目标不可达:当消息无法到达目的时(例如不存在的端口),会返回一个目标不可达类型的ICMP报文。
- 源抑制:源抑制充当一个流量控制的角色,通知主机减少数据包流量。
- 超时报文:如果数据包在网络中传输时间较长(例如拥塞),则会返回一个超时的ICMP报文。
应用:
ping命令:源主机在使用ping命令测试可达性时,会产生ICMP请求报文,目的主机收到后回复ICMP应答报文。如果在规定时间源主机没有收到应答报文则认为目的主机不可达。
ping -t 无限ping
ping -n 数字 ping指定数量个包