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

Странный лимит 2 Мбит / с для одиночного TCP-соединения на 24 Мбит / с ADSL2 +

У меня D-Link DSL-2500U / BRU / D, режим ADSL - "ADSL2 + AnnexM EU-56", настроен как мост и подключен к рабочей станции linux (Gentoo). Линия достаточно хороша, у меня стабильная скорость 2,09 МБ / с (т.е. около 18-20 Мбит / с) ... но я вижу эту скорость только при загрузке торрентов или при загрузке чего-либо с использованием нескольких подключений (например, запуск нескольких процессов wget параллельно) .

Загрузка одного процесса wget со скоростью всего 200 КБ / сек в среднем из любого места (например, kernel.org или других серверов, которые я пробовал). Когда wget запустился, он может начать загрузку с размером до 400-500 КБ, но быстро снизит скорость примерно до 100 КБ, а затем медленно увеличит ее до 150-200 КБ. Конечно, этот вопрос касается любого одиночное TCP-соединение, а не только в wget.

Я пробовал использовать тот же wget для kernel.org в WinXP SP3 и LiveCD с OpenSUSE-11.3, Ubuntu-9.04 и Ubuntu-6.10 - просто чтобы исключить возможность неправильной конфигурации моей рабочей станции Gentoo. Во всех этих ОС я вижу одну и ту же проблему - один wget не может загружаться быстрее 200 КБ / сек, но я могу запускать несколько wget на этой скорости одновременно, так что это не ограничение линии ADSL.

Первоначально я думаю, что эта проблема связана с неким поставщиком Интернет-услуг, но позже я обнаружил, что WinSeven может получать данные с kernel.org со скоростью 1-2 МБ / сек! Также я пытался переключить модем с моста на маршрутизатор режим и получил 1-2 МБ / с в одном wget в моем Gentoo, так что эта проблема, вероятно, не связана с ISP.

MTU установлен на 1500 на eth0 и 1492 на ppp0. Я заметил, что WinSeven использует MTU 1480 на интерфейсе pppoe и пробовал то же значение на Linux - это не помогает. Также я пробовал поиграть с различными оптимизациями tcp, используя sysctl (rmem / wmem / etc.) - тоже безуспешно.

Есть идеи, как это исправить, не переключая модем с моста на маршрутизатор?

Возможно, проблема с MTU на клиенте PPPoE.

На странице руководства pppoe предлагается использовать параметр -m, чтобы ограничить размер сегмента TCP до 1412:

-m MSS

Causes pppoe to clamp the TCP maximum segment size at the specified value. Because of PPPoE overhead,
the maximum segment size for PPPoE is smaller than for normal Ethernet encapsulation. This could cause
problems for machines on a LAN behind a gateway using PPPoE. If you have a LAN behind a gateway, and the
gateway connects to the Internet using PPPoE, you are strongly recommended to use a -m 1412 option. This
avoids having to set the MTU on all the hosts on the LAN.