1

当我收到一个 UDP 数据包(尤其是 rtp)时,我有一个不同的现象。它是由 Windows 7 Professional K 的 Windows 版本不同而发生的。

UDP 数据包在我的电脑上没有打开 udp 端口​​的情况下正常发送(我在wireshark 上看到过),但是在 Windows XP SP3 上,UDP 数据包在没有打开 udp 端口​​的情况下不会发送。

恰好一半的数据包正常到达,但其余的数据包没有到达。所以,我的电脑制作了一个 ICMP 类型 3(无法访问的端口错误)数据包并发送它。

我想知道有什么不同,具体来说。

4

1 回答 1

1

如果您正在“在线”运行 Wireshark(通常是您运行它的方式),则无论本地防火墙设置和端口是否打开,您都应该看到所有数据包(UDP/TCP/w/e else)。如您所见,如果端口未打开,您的计算机将响应一个 ICMP 数据包,告诉源它无法在该端口上通信。然后你不太可能看到来自那台机器的更多数据包,因为试图通信的程序已被告知你不会接受该端口上的通信。但是,无论操作系统如何,在发送 ICMP 数据包之前,源无法知道端口是否打开,因此即使相应端口打开,您也应该看到 UDP 数据包。

可能发生的事情是 RTP 库注意到您的机器不接受数据包并停止发送它们。我的猜测是您启动了应用程序/服务,然后启动了 Wireshark,此时 ICMP 数据包已经被发回。发送应用程序/服务缓存您的计算机不会接收此类数据包并停止发送到您的计算机的事实。特别是,这样做可能是为了防止您的机器(以及多播环境中的任何其他机器)向发送者发送 ICMP 数据包垃圾邮件。

于 2012-10-10T00:46:06.040 回答