icmp 端口不可达错误消息

问题描述 投票:0回答:3

我正在将 UDP 数据包从一台 PC 发送到另一台 PC。我正在使用 Wire Shark 观看整个活动。我注意到有一段时间数据包从一个系统到另一个系统的传输很顺利。然后突然开始出现带有错误

ICMP
'port unreachable'
数据包。然后它们消失一段时间,UDP 数据包再次顺利传输。然后这些 ICMP 数据包再次出现相同的“端口不可达”错误。然后这些ICMP数据包又消失了等等。并且这种情况会周期性地持续下去。

任何人都可以阐明这可能是什么原因吗?

icmp
3个回答
6
投票

发生这种情况的原因是接收器上没有进程在该端口上等待。

您需要有一个客户端,该客户端打开了一个套接字,并且已对该端口执行了bind()。


6
投票

当正常运行的会话被“端口不可达”消息中断时,会出现一个可能与“端口不可达”消息相关的奇怪错误。当您检查对话时,您会发现无法访问的端口正在正常工作。帧正在往返于端口号时,突然出现 - 端口无法访问。这表明报告主机中存在过载情况或进程优先级配置问题。有问题的进程被换出内存,并且无法足够快地换回以避免无法访问的指示。

来源:https://www.savvius.com/resources/compendium/tcp_ip/unreachable#port_unreachable


0
投票

我遇到了 PackEth 的问题 - 可以生成原始数据包的实用程序。然而,系统不知道 PackEth 将向哪个端口发送任何数据包。我正在发送 UDP 数据包。因此,即使我实际上收到了来自接收者(其他机器)的响应,系统也会生成 ICMP。

所以我认为您正在运行一个发送原始内容的应用程序?或者系统失去了应用程序正在侦听的端口的跟踪?

PackETH 没有监听任何内容,所以我在创建原始数据包时总是得到该响应,所以我知道在这种情况下我可以打开 nc 来监听端口或忽略 ICMP 消息

这类似于 https://serverfault.com/questions/949708/why-is-my-computer-making-unreachable-icmp-requests-to-the-gateway

复制粘贴以供参考

这些不是 ICMP 请求。相反,它们是对路由器所做的事情的反应:根据您显示的信息,您的路由器正在向您的计算机发送带有源端口的 UDP 数据包,并且您的计算机上没有套接字等待此数据包。这就是为什么您的机器会发回 ICMP 无法访问,其中包含意外数据包的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.