TCP/IP 5 ICMP 网络控制报文协议
1、ICMP的作用
ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议( TCP或UDP)使用。一些 ICMP报文把差错报文返回给用户进程。 这里需要注意的是ICMP是封装在IP报文里面的。
2、ICMP报文的类型
ICMP主要分为查询报文(例如ping)和差错报文,端口不可达或者是重定向等等,但是需要注意的是ICMP的差错报文不会产生差错报文,这是为了防止报文无限制的传输下去。
下面各种情况都不会导致产生ICMP差错报文:
1) ICMP差错报文 (但是,ICMP查询报文可能会产生ICMP差错报文)。
2) 目的地址是广播地址或多播地址的 I P 数据报。
3) 作为链路层广播的数据报。
4) 不是IP分片的第一片
5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。
3、ping程序
ping程序是对两个TCP/IP系统连通性进行测试的基本工具 。它只利用ICMP回显请求和回显应答报文,而不用经过传输层( TCP/UDP)。 Ping服务器一般在内核中实现 ICMP的功能。
4、Traceroute程序
在一个TCP/IP网络中 ,traceroute程序是不可缺少的工具 。其操作很简单:开始时发送一个 TTL字段为1的UDP数据报,然后将TTL字段每次加1,以确定路径中的每个路由器。每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。