ICMP协议分析
1.关于ICMP:
ICMP是(Internet Control Message Protocol)Internet控制报文协议。 ICMP协议是一种面向无连接的协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递和网络安全具有极其重要的意义。
2.为什么需要ICMP?
IP分组传送不可靠,可能会遭遇各种问题,如丢包,发生堵塞,产生很大的延迟,抖动等。ICMP用来向源报告这些问题或者状况。也可以用来测试网络。
3.ICMP消息格式:
类型:占8位 代码:占8位 检验和:占16位
说明:ICMP所有报文的前4个字节都是一样的,但剩下的其他字节则互不相同。
ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和。
8位类型和8位代码字段一起决定了ICMP报文的类型。
类型8,代码0:表示回显请求(ping请求)。
类型0,代码0:表示回显应答(ping应答)
类型11,代码0:超时
ICMP报文具体分为查询报文和差错报文(对ICMP差错报文有时需要做特殊处理,因此要对其进行区分。如:对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文,否则会出现死循环)