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

29
互互互互互互互 互互互 互互互互互 互互互 互互互互互互互ICMP 互互互 [email protected]

Upload: holt

Post on 20-Mar-2016

211 views

Category:

Documents


5 download

DESCRIPTION

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

TRANSCRIPT

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

冯健文 [email protected]

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

为什么需要 ICMP

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

ICMP协议与 IP协议

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

ICMP报文格式

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

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

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

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

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

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

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

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

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

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

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

ICMP控制报文

ICMP请求 /应答控制报文 回应请求与应答报文 用于测试信宿机的可到达性。 可达性:如果从主机 A发出的分组可以到达主机 B,则 A可达 B。

报文是双向的,假如成功,不但说明信宿机可到达,而且数据报传输系统工作正常。

主机的网络层代码会对到来的 ICMP回声请求进行应答。也可以设置对 ICMP回声请求屏蔽。

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

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

Ping程序 “p i n g” 这个名字源于声纳定位操作。 P i

n g程序由Mike Muuss 编写 PING程序利用 ICMP回答请求 /应答报文来测试一台远程计算机是否可达。

Ping程序

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

Ping程序 标识符,可用于区别多个 PING程序。 序列号,用于查看是否有分组丢失、失序或重复。 要打印出序列号和 T T L,并计算往返时间( T

T L 位于 I P 首部中的生存时间字段) p i n g程序通过在 I C M P报文数据中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在 I C M P报文中的时间值,即是往返时间。 其他命令参数

TracerouteTraceroute程序跟踪路由程序跟踪路由

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。

TracerouteTraceroute 程序跟踪路由程序跟踪路由当路由器收到一份 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地址。

TracerouteTraceroute 程序跟踪路由程序跟踪路由 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报文是超时还是端口不可达,以判断什么时候结束。

TracerouteTraceroute 程序跟踪路由程序跟踪路由 输出的第 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 份数据报的任意一份的响应,则打印一个星号,并发送下一份数据报

ICMPICMP和路径和路径 MTUMTU检测检测

路径MTU :源端到目的端路径上的最小 MTU。 源端进行路径MTU 检测可以避免中途分段。源端利用“要求分段” ICMP进行路径MTU 检测:

首先将探测 IP分组头部的不要分段标志置位;当到达比 IP分组小的MTU网络时,路由器返回“要求分段” ICMP;源端重新发送一个较小的探测 IP分组并同样设置不要分段标志,如此这般直到到达目的地。