网络层(4.网际控制报文协议)

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

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

        ICMP不是高层协议,是IP层的协议

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

      

一、ICMP报文的种类

        ICMP报文种类有两种,即ICMP差错报文ICMP询问报文

        如上图,ICMP报文的前四个字节是统一的格式,共三个字段:类型、代码和检验和。接着四个字节的内容与ICMP的类型有关。最后是数据字段,长度取决于ICMP的类型。

ICMP 报文种类类型的值ICMP 报文的类型
差错报告报文3终点不可达
11时间超过
12参数问题
5改变路由(重定向)
询问报文8 或 0回送请求或回答
13 或 14时间戳请求或回答

        ICMP标准不断更新,有一些报文不再使用了,例如:信息请求与回答报文、掩码地址请求和回答报文、路由器询问和通告报文、源点抑制报文。

差错报告报文:

        所有的差错报告报文的中的数据字段都具有同样的格式:     

(1) 终点不可达

        当路由器或主机不能交付数据报时就向源点发送终点不可达数据报。

(2) 时间超过

        ①当路由器收到生存时间为0的数据时,除了丢弃该数据报外,还要向源点发送时间超过报文。

        ②当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已经收到的数据报片全部丢弃,并向源点发送时间超过报文。

(3) 参数问题

        当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题数据报。

(4) 改变路由

        路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器。

(5) 不应发送ICMP差错报告报文的情况

        对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。

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

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

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

询问报文:

(1) 回送请求和回答

        由主机或路由器向一个特定的目的主机发出的询问。收到报文的目的主机必须给源主机或路由器发送ICMP回送回答报文。

        这种询问报文用来测试目的站是否可达到以及了解其有关状态。

(2) 时间戳请求和回答

        是请某台主机或路由器回答当前的时期和时间(一个32位的字段,写入整数代表从1990年1月一日至今一共多少秒)。

        可用于时钟同步和测量。

二、ICMP应用举例

(1) 分组网间测探PING

        PING 用来测试两个主机之间的连通性。

        PING 使用了 ICMP 回送请求与回送回答报文。

        PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

最后显示的是统计结果:

       

 IP地址,发送的、收到的和丢失的分组数,往返时间的最小值、最大值和平均值。

(2) Traceroute 的应用举例

        在 Windows 操作系统中这个命令是 tracert。

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值