2012-10-10 58 views
1

當我得到一個UDP包(特別是rtp)時,我有一個不同的現象。它發生在Windows 7專業版的窗口版本K.windows xp vs 7,有什麼區別UDP接受規則

UDP數據包通常沒有打開udp端口在我的電腦上(我在wireshark上看到它),但是,在Windows XP SP3,UDP數據包不是沒有開放的udp港口。

正常達到一半的數據包正常,但其餘的未達到。所以,我的電腦做一個ICMP類型3(無法到達的端口錯誤)數據包併發送它。

我想知道有什麼特別的區別。

回答

1

如果你運行Wireshark「at the wire」(通常是如何運行它),無論本地防火牆設置和端口是否有端口,都應該看到所有數據包(UDP/TCP/w/e else)開了。正如您已經注意到的,如果端口未打開,您的計算機將響應一個ICMP數據包,告訴源端無法在該端口上通信。然後,您不太可能看到來自該機器的更多數據包,因爲試圖通信的程序已被告知您不會接受該端口上的通信。但是,無論操作系統如何,在發送ICMP數據包之前,源無法知道端口是否打開,因此即使相應的端口處於打開狀態,您也應該看到UDP數據包。

可能發生了什麼是RTP庫注意到您的機器不接受數據包並停止發送它們。我的猜測是你啓動了應用程序/服務,然後啓動Wireshark,此時ICMP數據包已經被髮回。發送應用程序/服務會緩存您的計算機不會收到此類數據包並停止發送到您的計算機的事實。特別是,這可能是爲了讓您的機器(以及任何其他人處於多播環境中)免於使用ICMP數據包對發件人進行垃圾郵件。

+0

但是,爲什麼要生成一個ICMP數據包,其中一半呢?我不知道它..我想,每個數據包都無法到達端口,因爲我不打開我的端口 –

+0

你的英語有點混亂。詢問爲什麼ICMP數據包僅在傳入UDP數據包的一半封閉端口上生成? – CrazyCasta

+0

是的,我的意思是。 –

相關問題