昨天的面试官问我,什么是ping的端口号以及哪些协议ping使用TCP / UDP。
采访之后,我在互联网上搜索,发现不同的结果,有人说ICMP使用端口7,有人说它不使用端口号,在一个站点上我发现它使用IP协议1,依此类推。
谁能为我提供正确的解释?
此致Nishad
昨天的面试官问我,什么是ping的端口号以及哪些协议ping使用TCP / UDP。
采访之后,我在互联网上搜索,发现不同的结果,有人说ICMP使用端口7,有人说它不使用端口号,在一个站点上我发现它使用IP协议1,依此类推。
谁能为我提供正确的解释?
此致Nishad
Answers:
标准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握手,而是仅执行前两个步骤并测量它们之间的延迟。测量完成后,将发送RST ACK以关闭半开连接。然后重复该过程,直到达到计数器/持续时间或您终止了该过程。使用TCP Ping(我经常使用它来测试系统管理员正在工作的服务器上的开放端口)可以指定要测试的目标端口(以验证服务器正在侦听某个端口)。源端口只是一个临时的随机端口。
如果您想查看一个TCP Ping实用程序的示例(我在Windows系统上使用的示例),请执行以下步骤: TCPing。同样,NMAP附带了一个名为NPING的实用程序,该实用程序具有一个标志,允许它也执行基于TCP的ping。
注意,某些网络设备也具有此功能,例如使用某些较新的操作系统版本的Cisco ASA。该命令是:ping tcp <destination IP> <destination port>