TCP 和 UDP 都会产生 ICMP 端口不可达错误吗?

TCP 和 UDP 都会产生 ICMP 端口不可达错误吗?

机器 X 上的程序尝试打开到机器 Y 上端口 5376 的 UDP 连接,以及到机器 Z 上端口 8632 的 TCP 连接。但是,Y 和 Z 上没有应用程序在相应端口上侦听。将会产生 ICMP 端口不可达错误?


我的尝试:

ICMP 端口不可达是类型 3 中的代码 3

3.3.端口不可达- 如果指定的传输协议(例如 UDP)无法在最终目的地的传输层解复用数据报,但没有协议机制来通知发送方,则生成


我阅读了许多与此主题相关的在线内容。但是,我仍然心存疑虑,我无法用正确的参考说出任何有关 TCP 的内容。我得出的结论是它应该适用于 TCP 和 UDP,因为 ICMP 是网络层协议,并且与传输层协议(即 TCP、UDP)无关。因此,它不关心 TCP 或 UDP,它对 TCP 和 UDP 都返回错误。我需要验证。

答案1

目标无法到达是由主机或其入站网关生成的,用于通知客户端由于某种原因目标无法到达。目标无法到达消息可能是由于 TCP、UDP 或其他 ICMP 传输而生成的。无法到达的 TCP 端口会以 TCP RST 进行响应,而不是像预期的那样以目标无法到达类型 3 进行响应。

从:https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable

相关内容