Я пытаюсь понять какое-то поведение, которое я вижу в контексте отправки пакетов UDP.UDP IP Fragmentation и MTU
У меня есть две небольшие программы Java: одна, которая передает UDP-пакеты, а другая, которая их получает. Я запускаю их локально в своей сети между двумя компьютерами, подключенными через один коммутатор.
Настройка MTU (сообщенная/sbin/ifconfig) равна 1500 на обоих сетевых адаптерах.
- Если я отправляю пакеты с размером < 1500, я их принимаю. Ожидаемое.
- Если я отправляю пакеты с 1500 < размер < 24258 Я принимаю их. Ожидаемое. Я подтвердил через wirehark, что IP-уровень фрагментирует их.
- Если я отправляю пакеты размером> 24258, они теряются. Не ожидается. Когда я запускаю wirehark на принимающей стороне, я не вижу ни одного из этих пакетов.
Мне удалось увидеть подобное поведение с помощью ping-s.
ping -s 24258 hostA
работает, но
ping -s 24259 hostA
терпит неудачу.
Кто-нибудь понимает, что может произойти, или есть идеи о том, что я должен искать?
Оба компьютера работают CentOS 5 64-бит. Я использую 1,6 JDK, но я действительно не думаю, что это проблема программирования, это проблема с сетью или, может быть, с ОС.
Возможно, вам больше повезло с просьбой об этом на serverfault.com. –
Что делает wirehark на отправляющей стороне соединения для пакетов с 'size> 24258'? –
@Kaleb Я не эксперт в проводнике, но захват на отправляющей стороне выглядит одинаково, если размер пакета равен> или <24258. Я вижу фрагментированные IP-пакеты, но я вижу только UDP-пакеты для небольших пакетов (у меня есть сочетание очень маленьких и очень больших пакетов). Данные, которые я отправляю, являются двоичными, поэтому трудно понять, какой IP-пакет принадлежит тому, что UDP-пакет. Я мог бы попробовать провести более простой тест с более предсказуемыми данными и посмотреть, что показывает wirehark. Я, возможно, не доберусь до этого до завтра. @ire_and_curses, спасибо, что я не был уверен, что именно серверное шифрование точно охвачено. Я могу попробовать. – wolfcastle