ping 命令到底起什么作用?

ping 命令到底起什么作用?

我知道该ping命令用于检查是否可以从我的机器访问任何远程机器。

但我不知道它是如何确定这一点的。我大胆猜测,它会将一些示例数据发送到远程计算机的 80 端口,如果数据被送达,则表示可以访问。

如果我弄错了,请纠正我。

答案1

你应该读首先了解 ISO/OSI 层次模型。它解释了数据在从一个网络对等点传输到另一个网络对等点时是如何封装的,以及特定层在功能和信息交换方面是如何相互隔离的。浏览至示例协议列表

当你发送 ping 请求时,它会使用ICMP网络层(第 3 层)的协议。端口只是传输层(第 4 层)的概念,因此 ping 不知道端口的任何信息,也不需要到。

具体来说,它使用回显回复消息在 ICMP 中并等待响应。

ping 响应仅显示远程计算机可通过网络访问,但并未说明该计算机上正在运行哪些服务或哪些端口已打开。如果您想检查 TCP 端口 80 是否可访问,您(实际上)必须使用可以连接到 TCP 套接字的程序(例如telnet),或者理论上只需通过低级操作系统调用打开连接即可。

请注意,一些面向公共 Internet 的服务器可能配置为不响应 ICMP 回显请求。

答案2

它不使用 TCP 或 UDP(具有端口的协议),因此没有端口。

抓住 wireshark 并查看数据包本身。

IP 之后是 ICMP 协议。不使用 TCP 协议。“数据包”中没有 TCP 字段。IP 之后是 ICMP。(数据包这个词可以指发送的部分内容,或者我认为它可以指全部内容 - 我的意思是后者 - 我相信该定义用于电信领域)。

请注意,突出显示的部分是特定意义上的“数据包”,并且使用 IP,请参见突出显示的 IP 字段。再往前是 ICMP。在 wireshark 本身中更容易看到。因为您可以单击不同的“层”/协议,并看到突出显示的正确字节/字段。

经常使用的术语是层。使用 ISO/OSI 参考模型,但应用于 TCP/IP 架构。第 1 层是物理层,第 2 层是帧(您会看到以太网),第 3 层是数据包。ICMP 是一种第 3 层。5 并且没有第 4 层,因为没有 TCP。“层”是设计者想出的一种谈论这些字段的方式。

当(在网络中)人们说端口时,他们指的是 TCP 端口或 UDP 端口。没有 TCP 或 UDP,就没有端口。使用 OSI 术语 - TCP 和 UDP 存在于第 4 层,即传输层,因此没有端口。但在 wireshark 中你看不到 TCP 字段。

在此处输入图片描述

相关内容