Низкая скорость PPPoE в Linux (Ubuntu)

У нас есть 2 ПК с Ubuntu 12.04 и соединение с кабелем 1000 Мбит / с. Затем мы запускаем iperf на обоих компьютерах и получаем скорость 900 м / бит, используя инструмент iftop .

Однако, когда мы устанавливаем сервер PPPoE на 1-м ПК и клиент PPPoE на 2-м ПК, а также iperf PPPoE , мы получаем только 430M / бит.

вопросов

  • Нормально ли, что PPPoE на Linux так медленно?
  • Есть ли способ получить скорость, аналогичную опции прямого подключения?

PPPoE имеет некоторые накладные расходы: 8 байт на пакет . См. Здесь . Таким образом, для отправки такого же количества данных требуется больше пакетов, тем самым эффективно уменьшая пропускную способность.

Очевидно, что 8 байт на пакет не должны иметь половину полосы пропускания, если пакеты достаточно большие (1000-1500 байт).

Но если iperf использует достаточно небольшие пакеты (возможно, 64 байта?), Накладных расходов должно быть достаточно, чтобы дать результаты, которые вы испытываете.

Вы также можете испытывать фрагментацию , то есть iperf пытается отправить пакеты с 1500 байт, в то время как PPPoE должен иметь 1492 MTU . Попробуйте iperf с опцией -M :

 -M, --mss n set TCP maximum segment size (MTU - 40 bytes) 

Чтобы быть безопасным, передайте ему значение 1400:

 iperf -c XXXX -M 1400 

Кроме того, попробуйте запустить его в течение некоторого времени, например, 60 или 120 секунд

 iperf -c XXXX -M 1400 -s 60 # or 120