在对以太网网络上的通信问题进行故障排除时,Ping命令是最广泛使用的诊断工具之一。

这种受欢迎程度是因为每个人都知道如何使用命令,执行起来非常简单。

在对通信问题进行故障排除时,我们在无法正常工作时听到的最常见的一句话是“但我可以ping通”,就好像这一点应该作为确切的证据,证明一切都按预期工作,通信服务器选择不通信。

本文介绍了一些关于Ping命令的常见误解,特别是如何有效地使用它,什么时候它可能不是任务的最佳工具,以及Ping的更好的替代方案(提供实际上可操作的数据)。

什么是Ping命令?

在命令提示符下键入ping 1.1.1.1会发生什么?

Ping旨在告诉用户主机是否可以在IP网络上访问,并通过发送ICMP(Internet控制消息协议)回应请求来执行此操作,远程主机(我们正在ping的IP地址)将在收到时回显。

虽然这无疑是有用的,但Ping命令在它告诉我们的内容中也非常有限,因为ICMP位于IP协议之上(毕竟它是Internet控制消息协议)并且不需要像TCP或UDP这样的传输协议。

为什么这很重要?

在Internet协议描述主机之间的通信的地方,传输协议(如TCP或UDP)描述了在这些主机上运行的进程之间的通信。如果没有传输层,Ping命令将永远无法向我们提供有关远程主机的信息:

正在监听连接

有一个开放的接口

将接受我们流程的连接

甚至是我们想要与之沟通的合适主机

Ping命令只会告诉我们主机响应指定IP地址的echo请求。

因此,Ping命令的缺点可以概括为命令根本没有给我们足够的信息来巧妙地得出控制器或网络节点不通信的原因。那么,Ping命令的哪些替代方案在这种情况下值得考虑?

什么是Tracert命令?

Tracert命令在很大程度上起到与Ping命令相同的作用,并且只应用于确定在指定的IP地址处是否存在响应的内容,仅此而已。

如果您正在ping同一子网上的设备,则Tracert和Ping将执行完全相同的操作。当ping不在同一子网或网络上的主机时,会发现Tracert的强大功能,因为它不仅会显示终端设备是否响应,还会显示到达该远程主机的路由路径。

如果Tracert在路径中的任何特定点发生故障,则很容易识别通信中断的特定位置。

Tracert通过发送与ping相同的ICMP Echo请求来完成此操作,但它使用“Time To Live”字段来控制消息可以跳转的距离。第一个数据包以TTL为1发送,路径中的第一个跳转将减少为0,并以“Time to live exceeded in transit/运行中的超时时间”响应,这有助于我们的机器现在知道第一个跳转的IP地址路由路径。

然后以TTL为2发送第二个回应请求,以便消息可以在超时之前到达路径中的第二跳。然后是3的TTL,4的TTL,依此类推,直到我们得到Echo响应,并且我们知道'ping'数据包已经到达我们试图到达的目标节点。

就像ping一样,Tracert结果告诉我们在远程主机上是否有运行的应用程序/固件/通信模块能够与我们通信 - 只是远程主机支持IP并且可以访问。

因此,我们现在已经确定,在许多情况下,Ping和Tracert命令在解决通信问题的有效性方面基本相同。我们还能尝试什么?

什么是Portqry实用程序?

如果Ping命令没有给我们任何可操作的数据,并且Tracert命令没有给我们任何可操作的数据, 我们如何得到一些我们可以用来确定设备是否正在监听连接以及通信问题可能是什么是?这个问题将我们带到PortQryUI--一个可从Microsoft下载的实用工具。

虽然它没有预先安装Windows,但PortQryUI是一个非常轻量级的实用程序,不仅可用于识别主机是否可访问,还可用于确定在该主机上运行的进程是否可访问和/或是否愿意接受连接。

知道1.1.1.1是DNS服务器,正如我们之前建立的那样,让我们​​针对DNS端口53运行Portqry。

我们可以看到,首先,Portqry尝试在使用TCP和UDP查询端口之前将IP地址解析为DNS主机名(在此处成功完成 - “one.one.one.one”),并且因为实用程序知道53是DNS端口,它也向端口发送DNS查询。

Portqry有三种可能的结果:

正在监听 - 该实用程序得到了端口的积极回应

不监听 - 该实用程序收到了端口的回复,告诉我们要离开

已过滤 - 该实用程序未收到来自端口的任何响应,无论是正面还是负面

现在让我们在实验室中使用本地Modbus PLC进行尝试,我们知道这可以通过端口502(默认的Modbus端口)看到连接请求。

这次我扫描一系列端口502-503,仍然要求检查TCP和UDP。

结果并不令人惊讶; 主机名称解析失败,因为它只是一个PLC(虽然它没有超出PLC分配DNS名称的可能性的范围,大多数不是),并且查询结果确实显示有一个进程在端口502上侦听传入的TCP连接。

现在,显然,我们实验室中的Modbus PLC没有任何通信问题。但是,您现在可以想象,当Portqry实用程序以“Not Listening”或“Filtered”响应端口和传输时,对于无响应的设备有多么有用,我们希望在正常通信情况下能够得到肯定的响应。

但是,如果我们从Portqry得到积极响应但仍然没有成功通信,我们还能做些什么呢?

什么是Netstat?

虽然Netstat命令不提供远程设备接受连接的能力的信息,或者远程主机是否可以在网络上访问,但在查看本地计算机上的套接字状态时,它是非常宝贵的资源。

运行简单的netstat枚举本地套接字信息,显示本地和远程地址,套接字状态以及与该主题关联的进程ID(在想要跟踪哪个应用程序正在使用端口时特别有用)。在对PLC的连接问题进行故障排除时,套接字状态将是最有用的列,因为它可以深入了解发生问题的连接顺序。过滤后(使用FIND)可以轻松过滤任何关键字的Netstat列表; 包括IP地址和端口:

在解释Socket状态时,至少在一般情况下 - 理解TCP状态图以查看错误发生在连接序列中的哪个位置。毫无疑问,这是有用的,只是触及netstat能够表达的表面,建议运行netstat /?查看所有可用选项。

什么是Wireshark?

如果所有其他方法都失败了,并且上面的工具显示一切都应该工作,那么Wireshark就是我们的首选诊断工具。Wireshark将捕获网卡上的所有流量,并将向我们显示目标设备与我们的计算机之间究竟发生了什么。

因此,虽然Ping命令肯定有其作为一个非常基本的故障排除工具,但它不应该被误认为是一个完成所有工作的工具。

两台计算机怎么ping通,怎么ping网络(2个网段电脑怎么ping通)相关推荐

  1. 两台计算机互联,其中一台能ping通另一台却无法连通,执行Ping成功而网络无法使用 的解决

    两台计算机互联,其中一台能ping通另一台却无法连通 其中一台能Ping通另一台计算机,但在开始-运行中输入192.168.1.X时却提示"找不到网络路径" 最佳答案 你把网卡上的 ...

  2. 两台计算机ping上传文件,两台电脑传文件(两台电脑之间如何快速传输几百G的文件)...

    两台电脑传文件(两台电脑之间如何快速传输几百G的文件)导语:电脑与电脑之间进行文件传输,对于经常使用电脑的人来说,这是再正常不过的一个操作了.可是几百GB的文件该如何传输呢?通过宽带网络进行传输?由于 ...

  3. 两台计算机ping上传文件,两台电脑如何传文件,教你一根网线两台电脑超高速传输文件...

    电脑与电脑之间进行文件传输,对于经常使用电脑的人来说,这是再正常不过的一个操作了.可是几百GB的文件该如何传输呢?通过宽带网络进行传输?由于带宽的限制,效率太低.通过移动硬盘进行传输?前提得先买一个移 ...

  4. 求助:同一台路由器LAN口和WAN口处在不同的网段为什么能Ping通?

    求助:同一台路由器LAN口和WAN口处在不同的网段为什么能Ping通? 如题:为了方便说明问题,举如下例子 同一台路由器的WAN口地址一般为公网地址,比如30.0.0.2,LAN口地址为私网地址,比如 ...

  5. 两台计算机共享公文包,公文包怎么共享,给其它电脑使用_公文包什么人使用

    内容导航 10条解答 1.公文包内的软件无法使用 公文包内的软件无法使用我认为很有可能,这种东西都是要写入引导区的, 密码忘记是很麻烦的! 2.怎么共享别的电脑的共享资源 怎么共享别的电脑的共享资源你 ...

  6. ROS实现两台计算机之间的网络通信

    转载: https://blog.csdn.net/banzhuan133/article/details/77825445 1.准备工作 两台装有ROS的笔记本,并知道他们的IP地址和主机名. 主机 ...

  7. 不使用网线就无法将两台计算机连接成网络,不通过路由器将两台计算机连接到网络的方法不止一种-如何将两台计算机连接到局域网...

    现在有许多数据传输方法,最常见的是U盘,LAN,Internet等. 人们已经习惯了基于Internet和wifi的这种生活方式. 我记得很多年前,当时互联网还不是很发达,有几个共享同一间卧室. 我的 ...

  8. 直接连接计算机的网络是,两台计算机直接连接

    用一根网线连起来就行了 网卡是目前使用最多地连网设备,在双机互联的解决方案中, 网卡也是速度最快的一种.我们通过在两台计算机中分别安装一块 网卡,通过细缆或双绞线进行连接,可以使双机互联的速度达到10 ...

  9. 要在某一房间中两台计算机之间,关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。要在某一房间中两台计算机之间实现网络通信,下列方法不可行的是...

    集市交易中的叫卖声和敲击声是最一种特殊的民俗现象,局域建和接入间中计算机之间实其共同特点为 网广网为什么有人会产生心理困扰() 牙周组织在受到异常的力作用其损伤一直存在,域网因特房但也会有组织修复 ...

  10. 两台计算机通过传统电话网络,计算机网络的复习题.doc

    计算机网络的复习题 第2章 计算机网络的层次化结构 填空题 ? 开放系统互连参考模型(OSI模型)从底层往高层共分为_______._______.______.传输层.会话层.表示层和应用层七个层次 ...

最新文章

  1. [转载] sql server 2000系统表解释
  2. linux ftp 团队认证,linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
  3. rust投递箱连接箱子_灭火器箱存在的必要性
  4. 为什么要重写hashcode( )和equals( )?
  5. VC++ 6.0 C8051F340 USB PC侧通信 Demo
  6. Laravel核心解读--服务提供器(ServiceProvider)
  7. java8-2-Lambda表达式
  8. c语言 博客园,C语言l|博客园作业10
  9. 给自己一个没有退路的悬崖
  10. java-用for循环打印大写字母(部分简单大写字母)
  11. 。三十功名尘与土,八千里路云和月。莫等闲,白了少年头,空悲切
  12. 增大图像感受野方法的总结
  13. 写代码时发现……还是Python牛逼
  14. 个人对系统拆分的理解
  15. 科技云报道:“奇袭”混合云,青云QingCloud站上C位
  16. 字幕文件与视频文件对不上的处理方式
  17. Meteor android apk打包两种方式
  18. prometheus联邦集群
  19. 《调色师手册:电影和视频调色专业技法(第2版)》——往返工作流程(Round-Trip workflows)...
  20. 原生ajax crossO,总鳍鱼Crossopterygian

热门文章

  1. Python注释(多行注释和单行注释)用法详解
  2. Spyder python 多行注释快捷键
  3. 什么软件可以测试睡眠质量心率,Beddit:粘在床上就能测试心率的睡眠监测器
  4. 获取微信公众号文章封面图的方法
  5. 电商业务中的五大机器学习问题!
  6. Spring事务(2)使用Spring事务完成转账小例子
  7. 矩阵L2,1范数及矩阵L2,p范数的求导
  8. numpy_linspace函数
  9. 80386汇编_寄存器 寻址方式介绍
  10. 损失函数、代价函数、目标函数、适应度函数的区别与联系