C/C++教程

计算机网络 网际控制报文协议 ICMP

本文主要是介绍计算机网络 网际控制报文协议 ICMP,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

介绍

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol)

ICMP是互联网的标准协议

ICMP允许主机或路由器报告差错情况和提供有关异常的报告。

但ICMP不是搞成协议(看起来好像是高层协议,因为ICMP报文是装在IP数据报中,作为其中的数据部分),而是IP层协议。

ICMP报文作为IP层数据报的数据,加上数据包的首部,组成IP数据报发出去。

ICMP报文作为IP层数据报的数,加上数据报的首部,组成IP数据报发送出去。ICMP报文格式如下

ICMP数据报

1 ICMP报文的种类

ICMP报文的前4个字节是统一的格式,共有三个字段:

类型、代码和校验和

接着的4个字节的内容与ICMP类型有关

1.1 ICMP差错报告报文

1、终点不可达

2、时间超过

3、参数问题

4、改变路由(重定向)(Redirect)

ICMP差错报告报文

不同发送ICMP差错报告报文的几种情况

1、对ICMP差错报告报文不在发送ICMP差错报告报文

2、对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文

3、对具有多播地址的数据报都不发送ICMP差错报告报文。

4、对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

1.2 ICMP询问报文

有两种:

1、回送请求和回答报文

2、时间戳请求和回答报文

下面集中的ICMP报文不在使用

1、信息请求与回答报文

2、掩码地址请求和回答报文

3、路由器询问和通告报文

4、源点抑制报文

2 ICMP应用举例

2.1 ping

PING (Packet InterNet Group)

1、ping用来测试两个主机之间的连通性

2、ping使用了ICMP回送请求与回送回答报文

3、ping是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP会UDP

ping测试主机的性

ping测试主机的性

2.2 Tracetoute

1、在Windows操作系统各种这个命令是tracert

2、用来跟踪一个分组从源点到终点的路径

3、它利用IP数据报中的TTL字段和ICMP时间超过差错报告报文实现对源点到终点路径的跟踪。

这篇关于计算机网络 网际控制报文协议 ICMP的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!