为什么需要 ICMP
IP数据报机制要求高效率,但处于通信子网最高层,要求能处理通信子网的问题。 IP协议集中于数据传输,不关心传输质量提出了 ICMP协议,进行差错控制等管理 ICMP把差错和控制一起处理,大部分应用属于控制。
五种差错报文和四种信息报文五种差错报文和四种信息报文 消息类型消息类型 描述描述源抑制源抑制 抑制发送过多分组的主机抑制发送过多分组的主机超时超时 报告分组由于计时器为报告分组由于计时器为 0 0 而被丢弃而被丢弃目的不可达目的不可达 报告数据报无法传递到最终目的地或目的程序报告数据报无法传递到最终目的地或目的程序重定向重定向 告诉主机有关地理路线告诉主机有关地理路线要求分段要求分段 要求对分组进行分段而要求对分组进行分段而 IPIP 头部规定不让分段头部规定不让分段回声请求回声请求 向一台机器发出请求看是否还活着向一台机器发出请求看是否还活着回声应答回声应答 是的,我还活着是的,我还活着地址屏蔽请求地址屏蔽请求 向路由器请求地址屏蔽码向路由器请求地址屏蔽码地址屏蔽应答地址屏蔽应答 路由器回送一个路由器回送一个 3232 位的地址 屏蔽码位的地址 屏蔽码
ICMP差错报文超时报告当路由表出错时,可能会出现循环的路径因此在 IP数据报中增加 TTL域和定时器技术,当时间到,就丢弃数据报此时就向信源发送 ICMP超时报告参数出错报告当数据报报头或选型参数出错,而且必须丢弃数据报时,产生此报告
ICMP控制报文 TCP/IP拥塞控制采用源抑制技术,即抑制信源机发出数据报的速率 三个阶段: 1、网关发现拥塞,发出 ICMP源抑制报文 发送报文方式: ( 1)若输出队列已满,每丢弃一个新数据报,就发送报文; ( 2)当输出队列超出警告界限,对新数据报的信源发送报文; ( 3)有选择抑制传输率高的信源
ICMP控制报文路径控制与重定向报文互联网的寻径由网关的路由表决定,主机的路由表来自与本网络的网关。主机启动只有最少的路由信息,然后不断从网关获取路由信息。当路径改变时,网关将发送 ICMP重定向报文给主机。 ICMP重定向报文只用于网关与主机间。
ICMP请求 /应答控制报文 回应请求与应答报文 用于测试信宿机的可到达性。 可达性:如果从主机 A发出的分组可以到达主机 B,则 A可达 B。
报文是双向的,假如成功,不但说明信宿机可到达,而且数据报传输系统工作正常。
主机的网络层代码会对到来的 ICMP回声请求进行应答。也可以设置对 ICMP回声请求屏蔽。
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 份数据报的任意一份的响应,则打印一个星号,并发送下一份数据报
Top Related