windows的ping命令,windows操作系统下的ping命令

  windows的ping命令,windows操作系统下的ping命令

  win10 ping命令:ping命令的作用和原理。很多朋友不知道ping是做什么的,怎么用的。今天,边肖将向您介绍win10 ping命令:ping命令的功能和原理。

  我们遇到网络不通的情况,都知道要ping一下,看看网络情况。你知道ping命令背后的逻辑吗?知道是怎么实现的吗?

  访问:

  Win10 19h1原图免激活Win10纯版

  一、「ping」命令的作用和原理?

  简单地说,“ping”是一个命令,用于检测本地计算机是否可以到达网络中的另一台主机。如果两台主机之间的ping失败,这意味着两台主机无法建立连接。Ping是定位网络不通的重要手段。

  Ping基于ICMP协议,该协议称为Internet控制消息协议。ping命令将向目标主机发送ICMP回应请求消息,并等待目标主机返回ICMP回应回复。由于ICMP协议要求目标主机在收到消息后,向源主机返回ICMP应答消息,如果源主机在一定时间内收到目标主机的应答,则表明两台主机之间的网络是可达的。

  举一个例子来描述“ping”命令的工作过程:

  假设有两台主机,主机A(192.168.0.1)和主机B(192.168.0.2)。现在我们想监控主机A和主机B之间的网络是否可达,因此我们在主机A上输入命令:ping 192.168.0.2。

  这时ping命令会在主机A上建立一个ICMP请求包(包的内容后面会详细介绍),然后ICMP协议会把这个包和目标IP(192.168.0.2)等信息传递给IP层协议。

  IP层协议得到这个信息后,从源地址(即本地IP)、目的地址(即目的IP: 192.168.0.2)和一些其他控制信息构造一个IP数据包。

  IP包建好之后,还不够,还需要添加MAC地址。所以需要通过ARP映射表找到目标IP对应的MAC地址。当获得目标主机的MAC地址和本地MAC后,交给数据链路层,组装成数据帧,按照以太网的介质访问规则发送出去。

  当主机B接收到这个数据帧时,它将首先检查它的目的MAC地址是否是本地的,如果是,它将接收并处理它。收到后,它会检查这个数据帧,取出数据帧中的IP包,交给主机的IP层协议。IP层协议检查完后,会取出互联网控制报文协议,交给ICMP协议处理。当这一步完成时,它将构造一个ICMP响应包,并将其发送回主机a。

  在一定时间内,如果主机A收到响应包,说明主机A和主机B之间的网络是可达的;如果不是,则表示网络不可达。除了监视它是否可到达之外,响应时间和启动时间之间的差值也可以用于计算数据包的延迟时间。

  通过ping的过程可以发现,ICMP协议是这个过程的基础,非常重要。因此,下面将详细解释ICMP协议。

  二、什么是「 ICMP 」?

  众所周知,ping命令是基于ICMP协议的。那么我们看下图就明白了,ICMP协议是通过IP协议发送的,也就是ICMP报文封装在IP包中。

  IP协议是一种无连接和不可靠的数据包协议,它不能保证数据将被送达。因此,我们需要其他模块来帮助实现数据传输。这里介绍ICMP协议。

  当传输的IP包异常时,ICMP会将异常信息封装在包中,然后发送回源主机。

  详细拆解上图看看:

  继续分解ICMP协议模块:

  从图中可以看出,因特网控制消息协议包括8位类型字段、8位代码字段和16位校验字段以及选项数据。

  ICMP协议大致可以分为两类:

  查询消息类型

  错误消息类型

  查询消息类型:

  消息主要用于ping查询、子网掩码查询、时间戳查询等。

  上面提到的ping命令的过程,其实对应的是ICMP协议查询报文类型的使用。当主机A构建ICMP请求数据包时,其ICMP类型字段使用8(回应请求),当主机B构建ICMP回复数据包时,其ICMP类型字段使用0(回应回复)。更多类型请参考上表。

  对于查询报文类型的理解,请参考文章开头的ping过程,这里不再赘述。

  消息类型:

  错误主要发生在数据传输发送不正确的时候。

  包括:目标不可达(网络不可达、主机不可达、协议不可达、端口不可达、分片禁止等。)、超时、参数问题、重定向(网络重定向、主机重定向等。),等等。

  该消息通常包含导致错误的IP数据包的第一个片段的IP报头,以及片段数据部分的前8个字节。

  当IP包的传输出现错误时(比如主机不可达),ICMP协议会将错误信息打包后发回给源主机,这样源主机就知道如何处理了。

  是否可以只在出现错误时使用错误消息类型?不一定。

  Traceroute是个例外。Traceroute是一种常用工具,用于检测源主机和目标主机之间的路由。Traceroute的原理是利用ICMP规则制造一些错误事件,然后根据错误事件评估网络路由。

  具体做法是:

  Traceroute设置一个特殊的TTL值来跟踪源主机和目的主机之间的路由数量。首先,它向目标主机发送一个TTL=1的UDP数据包。那么这个包一旦在路上遇到路由器,TTL就会变成0(TTL规则是每经过一个路由器就减1)。因为TTL=0,所以路由器会把这个包扔掉,然后会生成一个错误类型(超时)的互联网控制报文协议并发回到源主机,这就是错误包。此时,源主机获得第一个路由节点的IP和相关信息。

  然后,源主机向目标主机发送另一个TTL=2的UDP数据包。再经历一遍上面的过程,就知道第二个路由节点的IP和耗时信息了。

  如此反复,Traceroute可以获得从主机A到主机b的所有路由器的信息。

  但是,有一个问题。如果数据包到达目标主机,即使目标主机收到TTL值为1的IP数据包,也不会丢弃该数据包,也不会生成超时ICMP应答数据包,因为该数据包已经到达目的地。那么,我们如何确定数据包是否已经到达目标主机呢?

  Traceroute方法是当源主机向目的主机发送UDP包时,会设置一个不可达的目的端口号(例如大于30000的端口号)。然后,当这个包真正到达目的主机时,目的主机发现没有对应的端口号,于是会产生一个“端口不可达”的错误ICMP报文,返回给源主机。

  可见Traceroute的原理真的很棘手,很有意思。

  三、怎样使用 Ping 这命令来测试网络连通呢?

  连通性问题是由多种原因造成的,例如本地配置错误、远程主机协议故障等。当然也包括设备故障。

  首先说一下使用Ping命令的步骤。

  使用Ping检查连通性有六个步骤:

  1.使用ipconfig /all观察本地网络设置是否正确;

  2.Ping 127.0.0.1、127.0.0.1环回地址Ping环回地址是检查是否设置了本地TCP/IP协议;

  3.Ping本机的IP地址,以检查本机的IP地址是否设置错误;

  4.Ping这个网络的网关或者IP地址,从而检查硬件设备是否有问题,或者本地网络连接是否正常;(此步骤在非局域网中可以忽略)

  5.Ping本地DNS地址。这样做是为了检查DNS是否可以传输IP。

  6.Ping远程IP地址,主要是检查这个网络或者这个机器和外界的连接是否正常。

  以上就是边肖今天给大家介绍的win10 ping命令:ping命令的功能和原理的详细内容。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: