1 / 29

互联网应用技术 第二节 互联网技术 第十章 差错与控制报文( ICMP )

互联网应用技术 第二节 互联网技术 第十章 差错与控制报文( ICMP ). 冯健文 Fengjw@hstc.edu.cn. 内容安排. ICMP 概述 ICMP 报文格式 ICMP 差错报文 ICMP 控制报文 Ping 程序 Traceroute 程序. 为什么需要 ICMP. IP 数据报机制要求高效率,但处于通信子网最高层,要求能处理通信子网的问题。 IP 协议集中于数据传输,不关心传输质量 提出了 ICMP 协议,进行差错控制等管理 ICMP 把差错和控制一起处理,大部分应用属于控制。. ICMP 协议与 IP 协议.

holt
Download Presentation

互联网应用技术 第二节 互联网技术 第十章 差错与控制报文( ICMP )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 互联网应用技术第二节 互联网技术第十章 差错与控制报文(ICMP) 冯健文 Fengjw@hstc.edu.cn

  2. 内容安排 • ICMP概述 • ICMP报文格式 • ICMP差错报文 • ICMP控制报文 • Ping程序 • Traceroute程序

  3. 为什么需要ICMP • IP数据报机制要求高效率,但处于通信子网最高层,要求能处理通信子网的问题。 • IP协议集中于数据传输,不关心传输质量 • 提出了ICMP协议,进行差错控制等管理 • ICMP把差错和控制一起处理,大部分应用属于控制。

  4. ICMP协议与IP协议

  5. ICMP协议与IP协议 • ICMP报文封装在IP数据报的数据部分进行传输。 • ICMP报文的IP数据报报头“协议”域标明数据区内容为ICMP报文 • 应该把ICMP单独作为一层,放于IP层之上吗?

  6. ICMP报文格式

  7. 消息类型 描述 源抑制 抑制发送过多分组的主机 超时 报告分组由于计时器为0 而被丢弃 目的不可达 报告数据报无法传递到最终目的地或目的程序 重定向 告诉主机有关地理路线 要求分段 要求对分组进行分段而IP头部规定不让分段 回声请求 向一台机器发出请求看是否还活着 回声应答 是的,我还活着 地址屏蔽请求 向路由器请求地址屏蔽码 地址屏蔽应答 路由器回送一个32位的地址 屏蔽码 五种差错报文和四种信息报文

  8. ICMP差错报文 • 差错报文的功能是提供差错报告 • 差错报告的特点: • 1、没有规定对差错报告应采取的处理方式; • 2、差错报告的传送是从网关到源机的。

  9. ICMP差错报文 • ICMP差错报文机制的特点: • 1、差错报文作为普通数据传输; • 2、差错报告数据区必须包含故障数据报报头及数据区前64比特数据; • 3、差错报文是在出错数据报丢弃后产生的。

  10. ICMP差错报文 • 信宿不可到达报告 • 以下情况,网关会发现信宿不可到达: • 1、信宿机硬件不在运行; • 2、信宿地址不存在; • 3、网关不知道去信宿的路径。 • 该报告产生的原因可分为12种。

  11. ICMP差错报文 • 信宿分为四个层次概念: • 网络、主机、协议、端口 • 全局性的协议地址必须包括网络、主机和协议地址,因此可能引发网络或主机或协议不可到达的错误。

  12. ICMP差错报文 • 网络不可到达:寻径故障 • 主机不可到达:信宿没运行或不存在 • 协议和端口不可到达:协议和端口故障或不存在

  13. ICMP差错报文 • 超时报告 • 当路由表出错时,可能会出现循环的路径 • 因此在IP数据报中增加TTL域和定时器技术,当时间到,就丢弃数据报 • 此时就向信源发送ICMP超时报告 • 参数出错报告 • 当数据报报头或选型参数出错,而且必须丢弃数据报时,产生此报告

  14. ICMP控制报文 • 拥塞控制与源抑制报文 • 当大量数据报涌入网关,网关不能立即处理时,网关就会产生拥塞 • 原因: • 1、网关的处理速度太慢 • 2、网关输入数据的速率大于输出线路容量 • 但根本原因时没有足够的网关缓冲区

  15. ICMP控制报文 • TCP/IP拥塞控制采用源抑制技术,即抑制信源机发出数据报的速率 • 三个阶段: • 1、网关发现拥塞,发出ICMP源抑制报文 • 发送报文方式: • (1)若输出队列已满,每丢弃一个新数据报,就发送报文; • (2)当输出队列超出警告界限,对新数据报的信源发送报文; • (3)有选择抑制传输率高的信源

  16. ICMP控制报文 • 2、信源机收到源抑制报文,在一定时间间隔后,按一定速率降低发往某信宿的传输率。 • 3、拥塞解除后,信源机恢复传输率。

  17. ICMP控制报文 • 路径控制与重定向报文 • 互联网的寻径由网关的路由表决定,主机的路由表来自与本网络的网关。 • 主机启动只有最少的路由信息,然后不断从网关获取路由信息。 • 当路径改变时,网关将发送ICMP重定向报文给主机。 • ICMP重定向报文只用于网关与主机间。

  18. ICMP控制报文

  19. ICMP请求/应答控制报文 • 回应请求与应答报文 • 用于测试信宿机的可到达性。 • 可达性:如果从主机A发出的分组可以到达主机B,则A可达B。 • 报文是双向的,假如成功,不但说明信宿机可到达,而且数据报传输系统工作正常。 • 主机的网络层代码会对到来的ICMP回声请求进行应答。也可以设置对ICMP回声请求屏蔽。

  20. ICMP请求/应答控制报文 • 时戳请求与应答报文 • 用于机器间时钟同步 • 首先利用该报文从其他机器获取时钟时间,经估算后再同步时钟。 • 需要计算报文往返延迟。 • 这种报文效果有限。

  21. ICMP请求/应答控制报文 • 地址模请求与应答 • 因为子网的格式是不标准的,所以该报文用于主机向网关查询地址模(掩码)。 • 如无盘工作站启动时,查询自己的地址模

  22. Ping程序 • “p i n g”这个名字源于声纳定位操作。P i n g程序由Mike Muuss编写 • PING程序利用ICMP回答请求/应答报文来测试一台远程计算机是否可达。

  23. Ping程序 标识符置成发送进程的I D号 序列号从0开始,每发送一次新的回显请求就加1

  24. Ping程序 • 标识符,可用于区别多个PING程序。 • 序列号,用于查看是否有分组丢失、失序或重复。 • 要打印出序列号和T T L,并计算往返时间( T T L位于I P首部中的生存时间字段) • p i n g程序通过在I C M P报文数据中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在I C M P报文中的时间值,即是往返时间。 • 其他命令参数

  25. Traceroute程序跟踪路由 • Tr a c e r o u t e程序可以看到I P数据报从一台主机传到另一台主机所经过的路由。 • Tr a c e r o u t e程序使用I C M P报文和I P首部中的T T L字段(生存周期) • 每个处理数据报的路由器都需要把T T L的值减1或减去数据报在路由器中停留的秒数。由于大多数的路由器转发数据报的时延都小于1秒钟,因此T T L最终成为一个跳站的计数器,所经过的每个路由器都将其值减1。

  26. Traceroute程序跟踪路由 • 当路由器收到一份I P数据报,如果其T T L字段是0或1,则路由器不转发该数据报。相反,路由器将该数据报丢弃,并给信源机发一份I C M P“超时”信息。 • Tr a c e r o u t e程序的关键在于包含这份I C M P信息的I P报文的信源地址是该路由器的I P地址。

  27. Traceroute程序跟踪路由 • Tr a c e r o u t e程序的操作过程。 • 它发送一份T T L字段为1的I P数据报给目的主机。处理这份数据报的第一个路由器将T T L值减1,丢弃该数据报,并发回一份超时I C M P报文。这样就得到了该路径中的第一个路由器的地址。 • 然后Tr a c e r o u t e程序发送一份T T L值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。 • 但是目的主机哪怕接收到T T L值为1的I P数据报,也不会丢弃该数据报并产生一份超时I C M P报文,这是因为数据报已经到达其最终目的地。那么我们该如何判断是否已经到达目的主机了呢? • Tr a c e r o u t e程序发送一份U D P数据报给目的主机,但它选择一个不可能的值作为U D P端口号(大于30 000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的U D P模块产生一份“端口不可达”错误的I C M P报文。 • 这样,Tr a c e r o u t e程序所要做的就是区分接收到的I C M P报文是超时还是端口不可达,以判断什么时候结束。

  28. Traceroute程序跟踪路由 • 输出的第1个无标号行给出了目的主机名和其I P地址,指出t r a c e r o u t e程序最大的T T L字段值。 • 输出的后面两行以T T L开始,接下来是主机或路由器名以及其I P地址。 • 对于每个T T L值,发送3份数据报。每接收到一份I C M P报文,就计算并打印出往返时间。 • 如果在5秒种内仍未收到3份数据报的任意一份的响应,则打印一个星号,并发送下一份数据报

  29. ICMP和路径MTU检测 • 路径MTU :源端到目的端路径上的最小MTU。 • 源端进行路径MTU检测可以避免中途分段。 • 源端利用“要求分段”ICMP进行路径MTU检测:首先将探测IP分组头部的不要分段标志置位;当到达比IP分组小的MTU网络时,路由器返回“要求分段”ICMP;源端重新发送一个较小的探测IP分组并同样设置不要分段标志,如此这般直到到达目的地。

More Related