Я пытаюсь понять какое-то поведение, которое я вижу в контексте отправки пакетов UDP.
У меня есть две небольшие 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, но я действительно не думаю, что это проблема программирования, это сетевая проблема или проблема с ОС.