PING 端口号?

网络工程 通讯协议 UDP 国际会议
2021-07-29 13:13:40

昨天面试官问我ping的端口号是什么,ping使用TCP/UDP的协议是什么。

面试后我在互联网上搜索,发现不同的结果有人说 ICMP 使用端口 7,有人说它不使用端口号,在一个站点上我发现它使用 IP 协议 1,等等。

谁能帮我做出正确的解释?

4个回答

标准 ping 命令不使用 TCP 或 UDP。它使用ICMP。更准确地说,使用了 ICMP 类型 8(回声消息)和类型 0(回声回复消息)。ICMP 没有端口!

有关更多详细信息,请参阅RFC792

我想给你一个额外的答案,特别是对问题的这一部分:

... 有人说 ICMP 使用端口 7

端口 7(TCP 和 UDP)用于“echo”服务。

如果该服务在计算机上可用,则可以使用 UDP 端口 7代替ICMP 来执行“ping”。

但是,大多数现代计算机都没有运行“echo”服务,因此使用 UDP 端口 7 而不是 ICMP 执行“ping”是行不通的。

并且:正如“而不是 ICMP”这句话已经表明的那样,通过 UDP 端口 7 的“ping”使用 ICMP,而是使用 UDP,这是一种完全不同的协议!

正如其他人已经指出的那样,通常 ping 是基于 ICMP 的并且没有端口。然而,有一个 TCP Ping 之类的东西,而不是典型的 3 次 TCP 握手,只执行前 2 个步骤并测量两者之间的延迟。测量完成后,将发送 RST ACK 以关闭半开连接。然后重复该过程,直到达到计数器/持续时间或您终止该过程。使用 TCP Ping(我经常使用它来测试我的系统管理员工作的服务器上的开放端口),您可以指定要测试的目标端口(以验证服务器正在侦听某个端口)。源端口只是一个短暂的随机端口。

如果您想查看 TCP Ping 实用程序的示例(我在 Windows 系统上使用的实用程序),请访问: TCPing此外,NMAP 带有一个名为 NPING 的实用程序,它有一个标志,允许它也执行基于 TCP 的 ping。

请注意,某些网络设备也具有此功能,例如使用某些较新操作系统版本的 Cisco ASA。命令是:ping tcp <destination IP> <destination port>

Ping 使用的不是端口而是协议。Ping 通过向目标主机发送 Internet 控制消息协议 (ICMP) 回显请求数据包并等待 ICMP 回显回复来进行操作。但是,出于安全考虑,这通常被禁用。