美文网首页
计算机网络:网络层(3)

计算机网络:网络层(3)

作者: 李白开水 | 来源:发表于2020-03-31 21:23 被阅读0次

ICMP协议

为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP( nternet Control Message Protoco)。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是因特网的标准协议。但ICMP不是高层协议,而是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP报文格式如图所示。


ICMP报文格式

ICMP协议的种类:
ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。
ICMP报文的前4个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的4个字节的内容与ICMP的类型有关。最后面是数据字段,其长度取决于ICMP的类型。

几种常用的ICMP报文类型
ICMP报文的代码字段是为了进一步区分某种类型中的几种不同的情况。检验和字段用来检验整个ICMP报文。我们应当还记得,IP数据报首部的检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错ICMP差错报告报文共有五种,即
(1)终点不可达
当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
(2)源点抑制
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
(3)时间超过
当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
(4)参数问题
当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
(5)改变路由(重定向)
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

所有的ICMP差错报告报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。
提取收到的数据报的数据字段的前8个字节是为了得到运输层的端口号(对于TCP和UDP)
以及运输层报文的发送序号(对于TCP)。这些信息对源点通知高层协议是有用的。整个IMP报文作为IP数据报的数据字段发送给源点。


image.png

下面是不应发送ICMP差错报告报文的几种情况。

  • 对ICMP差错报告报文不再发送ICMP差错报告报文
  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  • 对具有多播地址的数据报都不发送ICMP差错报告报文
  • 对具有特殊地址(如1270.0.0或0.00.0)的数据报不发送ICMP差错报告报文。

常用的ICMP询问报文有两种,即:
(1)回送请求和回答 ICMP
回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。
(2)时间戳请求和回答 ICMP
时间戳请求报文是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。时间戳请求与回答可用来进行时钟同步和测量时间。

ICMP的一个重要应用就是分组网间探测PING( Packet InterNet Groper),用来测试两个主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层IMP的一个例子。它没有通过运输层的TCP或UDP。

相关文章

  • 计算机网络 - 目录

    计算机网络01 - 应用层 计算机网络02 - 传输层 计算机网络03 - 网络层 计算机网络04 - 数据链路层...

  • 计算机网络篇——网络层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——应用层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——传输层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 计算机网络篇——链路层

    计算机网络系列 计算机网络篇——概述 计算机网络篇——链路层 计算机网络篇——网络层 计算机网络篇——传输层 计算...

  • 初窥网络协议1

    计算机网络分布有五层 1.应用层(DNS,HTTP,HTTPs) 2.传输层(UDP,TCP) 3.网络层(IP层...

  • 计算机网络目录

    计算机网络目录 运输层网络层应用层

  • 计算机网络自顶向下--运输层

    本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....

  • 计算机网络自顶向下--链路层

    本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....

  • 计算机网络 复习笔记 物理层

    目录 计算机网络 复习笔记 概述 计算机网络 复习笔记 物理层 计算机网络 复习笔记 数据链路层 计算机网络 复习...

网友评论

      本文标题:计算机网络:网络层(3)

      本文链接:https://www.haomeiwen.com/subject/lynguhtx.html