Мой провайдер иногда сбрасывает IP-фрагменты. Это проявляется в SSH следующим образом: я могу нормально входить в систему и запускать команды, которые выводят короткие строки, но выполнение чего-то вроде "ps fax" приводит к блокировке ссылки.
PMTU составляет 1500. Таким образом, кажется, что SSH пытается передать пакеты большего размера, которые затем фрагментируются и, следовательно, теряются. Я не могу легко уменьшить удаленный MTU, и я не хочу этого делать, так как MTU является правильным (1500).
Что здесь происходит? Я думал, что TCP устанавливает правильное значение MSS, чтобы избежать фрагментации. Как я получаю фрагменты?
РЕДАКТИРОВАТЬ: удаленной машиной является Centos 6.4. Под "иногда" я подразумевал, что у провайдера есть плохие дни, когда их сеть разрывается, и он действительно отбрасывает только фрагменты. Обнюхивая оба конца ссылки, я вижу, что Пакет и фрагменты большого пинга покидают мою систему, но только "основной" пакет достигает цели.
Проблема проявлялась как выше, а также черный экран при входе в сеанс RDP. Проблема исправлена, поэтому я не могу больше выполнять тесты, пока она не повторится.
Немного больше испытаний в другой системе показывает, что SSH устанавливает бит DF. Так что теперь я действительно не понимаю, что происходит.
Я не смог проверить, нужны ли фрагментированные сообщения ICMP (они не должны), так как сеть принимает пакеты до размера Ethernet (1500), поэтому мой собственный маршрутизатор будет выдавать нужное сообщение фрагмента.
Я пожаловался интернет-провайдеру, но они попытались убедить меня, что это было сделано специально, и что их сеть никогда не будет пинговать, как «ping -s 5000». Не правда, конечно. Особенно учитывая, что они это исправили.