我想了解一些行爲,我看到在發送UDP數據包的情況下。UDP IP分段和MTU
我有兩個小Java程序:一個傳輸UDP數據包,另一個接收它們。我在兩臺通過一臺交換機連接的計算機之間的網絡上本地運行它們。
兩個網絡適配器上的MTU設置(由/ sbin/ifconfig報告)均爲1500。
- 如果我發送大小爲< 1500的數據包,我會收到它們。預期。
- 如果我有1500 <大小< 24258我收到他們發送數據包。預期。我已經通過wireshark證實IP層將它們分解。
- 如果我發送的數據包大小爲> 24258,他們都將丟失。沒有預期的是。當我在接收端運行wireshark時,我沒有看到任何這些數據包。
我能夠看到與ping -s類似的行爲。
ping -s 24258 hostA
的作品,但
ping -s 24259 hostA
失敗。
有誰瞭解可能發生的情況,或者有什麼我應該尋找的想法?
兩臺計算機正在運行CentOS 5的64位。我使用1.6 JDK,但我並不認爲這是一個編程問題,它是一個網絡或操作系統問題。 IP協議的
你可能有更好的運氣問這在serverfault.com。 – 2010-09-14 19:27:27
wireshark在連接的發送端顯示「size> 24258」的數據包是什麼? – 2010-09-14 19:31:01
@Kaleb我不是wireshark專家,但發送端的捕獲看起來是相同的,無論數據包大小是>還是<24258.我看到分段的IP數據包,但我只看到UDP數據包的小數據包(我有非常小和非常大的數據包的組合)。我發送的數據是二進制數據,因此很難弄清楚哪些IP數據包屬於哪個UDP數據包。我可能會嘗試使用更可預測的數據進行更簡單的測試,並查看wireshark演示。但是直到明天我纔會明白。 @ire_and_curses,謝謝我不確定什麼serverfault完全包含。我可能會在那裏嘗試。 – wolfcastle 2010-09-14 20:42:58