Назад | Перейти на главную страницу

TCP зависает в интерактивных сеансах

У меня возникла проблема во внутренней сети моего учреждения. Я сижу напротив A и пытаюсь подключиться к серверу B в другом городе.

Мои сеансы ssh зависают довольно часто, особенно когда у меня много вывода на экран или страниц вверх / вниз в $ PAGER или окна изменения на экране GNU. В сеансе ssh пересылка X11 слишком медленная, чтобы ее можно было использовать.

Мои сеансы vrdp (с VBoxHeadless) также часто зависают, обычно когда я перетаскиваю окно внутри удаленной гостевой ОС.

Я попытался использовать tcpdump, чтобы выяснить, почему, и заметил, что до зависания отправляется много пакетов с флагом PSH от A, а через некоторое время сразу много пакетов ACK от B.

ping от A до B дает задержку 40 мс, а traceroute дает 4 перехода. wget дает пропускную способность в среднем ~ 50 Мбит / с, но скорость очень нестабильна. Все три маршрутизатора по пути используют Cisco IOS 12.X (обозначены как nmap).

В чем проблема? Как я могу подробнее изучить эту проблему? Любые намеки или идеи приветствуются.

Может быть проблема с mtu (максимальная единица передачи). Если внезапно происходит большой трафик, соединение зависает, потому что один пакет был слишком большим. Это может произойти, если обнаружение пути mtu не работает. Особенно с подключениями DSL, так как накладные расходы pppoe уменьшают mtu. Обычно для устранения проблемы используется ограничение MSS на каналах DSL.

Вы можете протестировать mtu с помощью команды ping: используйте команду ping -s host для отправки команды ping на удаленный хост. Начните с размера 100 и увеличивайте его сотнями до 1500 (нормальный Ethernet MTU).

HTH.

Я согласен, нам неоднократно приходилось корректировать размер MTU, чтобы исправить те же проблемы. 800 - хороший размер для DSL-соединений.

Дэйв