一、题目
关于检测IP网络连通性时使用的命令,下面说法错误的有()。
A. ping 127.0.0.1,此命令用来检测主机的网线是否插好
B. ipconfig/release命令可以用来检测主机到本地网关的连通性
C. ping ::1,此命令用来检测主机的网线是否插好
D. ping命令可以用来检测主机到本地网关的连通性
二、答案
ABC
三、解析
A项,ping命令通常用于检测主机的连通性。如果该主机运行了TCP/IP协议并正确安装了网络配置,就可以收到回音。ping 127.0.0.1命令用来检测本机的网络配置是否正确,而不是检测网线是否插好,选项表述错误。
B项,ipconfig命令用于显示当前TCP/IP网络配置,ipconfig/release命令可以释放所有网络接口的配置,选项表述错误。
C项,ping ::1 命令也是用来检测本机的IPV6网络配置是否正确,选项表述正确,排除。
D项,ping命令通常用于检测主机的连通性,当选。
综上,此题答案为ABC。
四、扩展 — ICMP
ICMP的概念
ICMP协议是一种互联网协议,中文翻译为互联网控制消息协议。ICMP是基于IP协议在IP网络中传递控制信息和错误信息。ICMP协议主要是用于确认网络设备之间时候可以相互通信以及报告错误情况。
ICMP定义了多种报文类型,每种类型用于不同的目的。以下是一些常见的ICMP报文类型:
- Echo Reply(回显应答):用于响应Echo Request报文,常用于ping命令测试网络连通性。
- Destination Unreachable(目标不可达):用于指示数据包无法到达目的地,可能的原因包括网络不可达、主机不可达等。
- Redirect(重定向):用于通知发送方将数据包发送到更合适的路由器。
- Time Exceeded(超时):用于指示数据包在传输过程中经过的路由器的TTL(生存时间)减为0而被丢弃。
- Parameter Problem(参数问题):用于指示数据包中的某些参数出现问题。
- Source Quench(源点抑制):用于告知发送方减慢数据传输速率,以避免网络拥塞。
- Redirect(重定向):用于通知发送方将数据包发送到更合适的路由器。
- Echo Request(回显请求):用于测试网络连通性,常用于ping命令。
- Timestamp Request(时间戳请求):用于获取目标主机的时间戳信息。
- Timestamp Reply(时间戳应答):用于响应Timestamp Request报文,返回时间戳信息。
ICMP—Ping命令
ICMP协议实现方式和应用是通过软件—Ping。可以这么说,Ping就是软件,ICMP就是协议,软件使用协议来测试目的地址。
那么Ping的流程可以简述为以下过程:
- 在源设备执行ping命令,这时候该设备会构建一个ICMP Echo Request消息给目的主机,这个Echo报文的目的地址就是目的设备的IP地址。
- 源设备会将该消息通过自己的网络接口发送出去。
- 该数据会在网络中通过交换机和路由器传递到达目的设备。
- 目的设备收到该消息,经过解析,会相应的生成一个ICMP Echo Reply消息来回应。
- 目的设备的ICMP Echo Reply报文中的源目地址与源设备的ICMP Echo Request报文的源目地址相反。
- 当源设备收到目的设备的ICMP Echo Reply消息,证明该网络连通性正常
接下来我们以ICMP的reply报文的封装格式来详细讲解下
ICMP—Traceroute命令
Traceroute命令是利用ICMP差错报文进行一种应用。Traceroute是一个用于跟踪数据包在网络中传输路径的命令。它通过发送一系列的ICMP报文(通常是UDP报文)来确定数据包从源主机到目标主机经过的中间路由器。
Traceroute的原理如下:
- Traceroute选择一个目标主机,并从源主机发送一个初始的TTL(Time to Live)值为1的数据包,通常是一个UDP报文。TTL表示数据包在网络中允许通过的最大路由器跳数。
- 当第一个数据包到达第一个路由器时,它的TTL值减1,路由器检测到TTL为0时会将该数据包丢弃,并向源主机发送一个”Time Exceeded” ICMP报文作为响应。这个报文包含了该路由器的IP地址。
- 源主机接收到”Time Exceeded”报文后,记录下该路由器的IP地址,并发送下一个TTL值为2的数据包。这个过程不断重复,每次增加TTL值,直到目标主机被到达。
- 当数据包到达目标主机时,目标主机不会发送”Time Exceeded”报文,而是发送一个”Port Unreachable” ICMP报文,告知源主机数据包到达目标主机。这标志着Traceroute结束。
通过这种方式,Traceroute逐跳地确定数据包的传输路径。源主机根据接收到的ICMP报文中的路由器IP地址来确定路径,并测量每个路由器的往返时间(RTT)。通过收集这些信息,Traceroute可以显示出数据包从源主机到目标主机的路径以及每个跳点的延迟。
需要注意的是,Traceroute在实际使用时可能会受到网络配置和防火墙规则的限制,有时无法准确地显示完整的路径。此外,Traceroute可能会显示星号(*)来表示某些路由器不响应或过滤了ICMP报文。这些因素可能会影响Traceroute的结果和准确性。
Traceroute流程图和效果图如下:
ICMP的重定向
ICMP重定向是在一定条件下,如果网关设备发现终端设备有更优路由路径的时候,它会向终端设备发送ICMP重定向报文,请求终端设备改变数据发送方向。
如上图,主机A发送报文给服务器A,会向发送给网关RB,RB收到后发现,主机A可以走RA到达服务器A,这条路径会比走自己更加优,所以会向主机A发送Redirect报文,来重定向报文发送方向。