Tôi đang cố gắng hiểu một số hành vi mà tôi thấy trong ngữ cảnh gửi gói UDP.Phân mảnh IP UDP và MTU
Tôi có hai chương trình Java nhỏ: một chương trình truyền các gói UDP và gói còn lại nhận các gói đó. Tôi đang chạy chúng cục bộ trên mạng của tôi giữa hai máy tính được kết nối thông qua một công tắc duy nhất.
Cài đặt MTU (được báo cáo bởi/sbin/ifconfig) là 1500 trên cả hai bộ điều hợp mạng.
- Nếu tôi gửi gói có kích thước < 1500, tôi nhận được gói. Kỳ vọng.
- Nếu tôi gửi gói với 1500 < kích thước < 24258 Tôi nhận được chúng. Kỳ vọng. Tôi đã xác nhận qua wireshark rằng lớp IP đang phân mảnh chúng.
- Nếu tôi gửi các gói có kích thước> 24258, chúng sẽ bị mất. Không mong đợi. Khi tôi chạy wireshark ở phía bên nhận, tôi không thấy bất kỳ gói nào trong số các gói này.
Tôi có thể thấy hành vi tương tự với ping -s.
ping -s 24258 hostA
công trình nhưng
ping -s 24259 hostA
thất bại.
Có ai hiểu điều gì có thể xảy ra hoặc có ý tưởng về những gì tôi nên tìm kiếm không?
Cả hai máy tính đều đang chạy CentOS 5 64 bit. Tôi đang sử dụng một JDK 1,6, nhưng tôi không thực sự nghĩ rằng đó là một vấn đề lập trình, đó là một mạng hoặc có thể vấn đề hệ điều hành.
Bạn có thể có may mắn hơn khi yêu cầu điều này trên serverfault.com. –
Công cụ wireshark hiển thị ở phía gửi kết nối cho các gói với 'size> 24258'? –
@Kaleb Tôi không phải là chuyên gia về Wireshark, nhưng việc chụp ở phía gửi cũng giống nhau dù kích thước gói là> hoặc <24258. Tôi thấy các gói IP bị phân mảnh, nhưng tôi chỉ thấy các gói UDP cho các gói nhỏ (tôi có kết hợp các gói rất nhỏ và rất lớn). Dữ liệu tôi gửi là nhị phân, vì vậy thật khó để tìm ra gói IP nào thuộc về gói UDP nào. Tôi có thể thử làm một bài kiểm tra đơn giản hơn với nhiều dữ liệu có thể đoán trước hơn và xem những gì wireshark hiển thị. Tôi có thể không nhận được điều đó cho đến ngày mai mặc dù. @ire_and_curses, cảm ơn tôi không chắc chắn chính xác máy chủ nào đã được bao hàm. Tôi có thể thử ở đó. – wolfcastle