响应 ICMP 流量的 ICMP 代码,而不是 UDP/TCP

网络工程 第 3 层 icmp
2022-03-02 08:54:19

我正试图围绕一个概念来思考,但遇到了一些麻烦。如果我 ping 8.8.8.8,10.8.1.1 会回复我“目标端口无法访问”。

Ping 使用 ICMP,因此它没有“端口”(除非您使用 udp 或 tcping),所以我不清楚 ICMP 响应代码所指的“端口”。google 同志对 UDP/TCP 流量的响应代码非常热情,但 ping 是 icmp 发起的流量。任何人都可以澄清一下吗?或者至少指出我正确的方向?

1个回答

ICMP 在RFC 792中定义。

Time Exceeded Message包括原始 IP 报头和 IP 数据包有效负载的前 64 位您的本地 IP 堆栈提取此信息并生成一条消息给原始进程。

对于 ping - 或ICMP Echo Request - 有一个 16 位标识符,其用途与传输层协议标头中的端口号相同。(NAT 路由器使用完全相同的标识符将入站ICMP Echo 回复转换回前一个请求的发起主机的私有 IP 地址。)