网络技术基础知识-深入浅出网工第二个协议icmp

发布时间:2022-06-27 16:15:04

下面是小编为大家整理的网络技术基础知识-深入浅出网工第二个协议icmp,供大家参考。

网络技术基础知识-深入浅出网工第二个协议icmp

 

 深入浅出网工第二个协议---Internet 控制报文协议 ICMP ICMP 简介 ICMP(Internet Control Message Protocol)是网络层的一个重要协议 ICMP 的作用:用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。

 ICMP 协议中用到的报文类型:Echo-Request 和 Echo-Reply 两种报文 使用的都是单播报文。

 ICMP 错误报告 ICMP 定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。比如,如果网络中发生了环路,导致报文在网络中循环,最终 TTL 超时,这种情况下网络设备会发送 TTL 超时消息给发送端设备。又比如如果目的不可达,则中间的网络设备会发送目的不可达消息给发送端设备。

 总结

 注意:ICMP 定义了多种消息类型,用于不同的场景 有些消息不需要 Code 字段来描述具体类型参数,仅用 Type 字段表示消息类型。

 有些 ICMP 消息使用 Type 字段定义消息大类,用 Code 字段表示消息的具体类型。

  ICMP 重定向 主机 A 希望发送报文到服务器 A,于是根据配置的默认网关地址向网关 RTB 发送报文。网关 RTB 收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备 RTA,因为此转发路径是更优的路径。所以 RTB 会向主机发送一个Redirect 消息,通知主机直接向另一个网关 RTA 发送该报文。主机收到 Redirect 消息后,向 RTA 发送报文,RTA 会将报文转发给服务器 A。

 发生重定向的条件: 第一:同接口进出 第二:满足第二条源和下一跳同网段 第三:路由器 RTB 发出的重定向报文

 典型应用

  PING 应用 Ping 是检测网络连通性的常用工具,同时也能够收集其他相关信息

 PING 常用的配置参数说明如下 -a(source-ip-address)参数 指定发送 ICMP ECHO-REQUEST 报文的源 IP 地址。如果不指定源 IP 地址,将采用出接口的 IP 地址作为 ICMP ECHO-REQUEST 报文发送的源地址。

 现在全网已经互通了,我们在 R1 上面验证一下 ping 命令的参数

  在 R1 上查看到达 3.3.3.3 路由的出接口为 R1 的 G0/0/0 接口

 所以:默认情况下,R1 访问目标地址的时候,所携带的源 IP 地址是 12.1.1.1 即自己的接口 IP 地址作为源 IP 地址访问目标 IP 地址 验证-a 参数的用法:

 R1 访问目标地址的时候,所携带的源 IP 地址是 1.1.1.1 即自己的 loopback 0 地址

 -c(count)参数 指 定 发 送 ICMP ECHO-REQUEST 报 文 次 数 。

 缺 省 情 况 下 发 送 5 个 ICMP ECHO-REQUEST 报文。

 -h(ttl-value)参数 指定 TTL 的值。缺省值是 255。

  -t(timeout)参数 指定发送完 ICMP ECHO-REQUEST 后,等待 ICMP ECHO-REPLY 的超时时间。

 注意:ping 命令的输出信息中包括目的地址、ICMP 报文长度、序号、TTL 值、以及往返时间。序号是包含在 Echo 回复消息(Type=0)中的可变参数字段,TTL 和往返时间包含在消息的 IP 头中。

 TRACERT 应用 Tracert 是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路

  TRACERT 常用的配置参数如下:

 -a (source-ip-address)参数 指定 tracert 报文的源地址。

 -f (first-ttl)参数 指定初始 TTL。缺省值是 1。

 -m (max-ttl)参数 指定最大 TTL。缺省值是 30。

 -name 参数 使能显示每一跳的主机名。

 -p (port)参数 指定目的主机的 UDP 端口号。

 TRACERT 原理 第一步:发送一个 UDP 报文,TTL 值为 1 RTA 向目的端主机 B 发送一个 UDP 报文,TTL 值为 1,目的 UDP 端口号是大于 30000的一个数,因为在大多数情况下,大于 30000 的 UDP 端口号是任何一个应用程序都不可能使用的端口号。

 第一跳(RTB)收到源端发出的 UDP 报文后,判断出报文的目的 IP 地址不是本机 IP地址,将 TTL 值减 1 后,判断出 TTL 值等于 0,则丢弃报文并向源端发送一个 ICMP超时(Time Exceeded)报文(该报文中含有第一跳的 IP 地址 10.0.0.2),这样源端就得到了 RTB 的地址。

 第二步:发送一个 UDP 报文,TTL 值为 2 源端收到 RTB 的 ICMP 超时报文后,再次向目的端发送一个 UDP 报文,TTL 值为 2。第二跳(RTC)收到源端发出的 UDP 报文后,回应一个 ICMP 超时报文,这样源端就得到了 RTC 的地址(20.0.0.2)。

 第 N 步:发送一个 UDP 报文,TTL 值为 N

 以上过程不断进行,直到目的端收到源端发送的 UDP 报文后,判断出目的 IP 地址是本机 IP 地址,则处理此报文。根据报文中的目的 UDP 端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该 UDP 端口号,则向源端返回一个 ICMP 端口不可达(Destination Unreachable)报文。

 源端收到 ICMP 端口不可达报文后,判断出 UDP 报文已经到达目的端,则停止 Tracert程序,从而得到数据报文从源端到目的端所经历的路径(10.0.0.2;20.0.0.2;30.0.0.2)

推荐访问:网络技术基础知识-深入浅出网工第二个协议icmp 第二个 深入浅出 基础知识

版权所有:众一秘书网 2005-2024 未经授权禁止复制或建立镜像[众一秘书网]所有资源完全免费共享

Powered by 众一秘书网 © All Rights Reserved.。备案号: 辽ICP备05005627号-1