“ping” 在哪个端口上工作?

“ping” 在哪个端口上工作?

ping该命令默认起作用的特定端口号是什么?

同样在 Linux 系统上,有没有办法自己找出它在哪些端口号上运行并为其配置不同的端口号?

答案1

Ping 使用ICMP 协议它没有像 TCP 和 UDP 协议那样的端口。

如果您需要查看 Linux 系统上 Ping 是否被禁用,您可以检查:

cat /proc/sys/net/ipv4/icmp_echo_ignore_all
  • 0 表示启用 Ping。(系统将响应 ping)
  • 1 表示 Ping 已禁用(系统将不会响应 ping)

答案2

TCP/IP 使用四层网络堆栈。链路层处理物理介质以及如何传输字节,互联网层处理 IP 地址以及如何将数据从一个节点路由到另一个节点,传输层处理 TCP 和 UDP 会话,应用层是用户程序通常用于与网络交互的部分。

Ping 是作为 ICMP(Internet 控制消息协议)的一部分实现的,ICMP 处理诸如错误、拥塞等问题。ICMP 在 Internet 层实现,因此完全不知道诸如加密、端口、会话以及上游层提供的其他内容,也不知道字节是如何从 A 点物理传输到 B 点的(这是链路层的重点)。

所有这些意味着 ping 本质上没有端口。它们不在任何端口号上运行,因为这些端口号是在不同的级别实现的。当您请求 ping 时,此操作实际上绕过了应用程序层和传输层,并直接要求 Internet 层诊断连接(即查看获取响应需要多长时间)。这通常直接在网络驱动程序中实现,不需要任何特殊的用户应用程序来请求或响应 ping。

您可以打开或关闭 ping 响应,但您无法配置您所询问的层中实际上没有概念的东西。对于任何给定的操作系统,您只需查看在线手册以了解如何启用或禁用 ping 响应。另一个答案详细介绍了在 Linux 上启用/禁用它,而这个答案旨在解决为什么没有可以配置用于 ping 的端口。

答案3

传统的“Ping”使用的是ICMP协议,与有“端口”概念的TCP、UDP是不同的,我画了一张图,比较容易理解:

答案4

“ping” 在哪个端口上工作?

没有任何。

Ping 实际上并不是传统意义上的服务。不存在 ping 守护进程服务器。

Ping(正式名称为 ICMP Echo)由内核中的 IP 驱动程序提供,在某些具有硬件卸载功能的架构中,甚至可能由硬件本身提供。正如其他人提到的,它使用 ICMP。世界并不分为 udp 或 tcp。

其他第 4 层协议具有不同程度的共性,例如 ICMP、IGMP、PPTP、IPSec 的一部分。

ping 有一个分支,称为 tcping,它使用您选择的 tcp 端口,完成与 ping 大致相同的任务。在这种情况下,仍然没有“ping 服务器”。“服务器”是您将其指向的任何服务器软件。

相关内容