Решено! Для получения полной информации см. http://comments.gmane.org/gmane.linux.drivers.e1000.devel/11813
Короче говоря, похоже, что подключенный сервер со скоростью 1 Гбит / с будет отправлять пакеты трафика во время фазы экспоненциального роста TCP. это затопило бы буферы в некоем промежуточном устройстве (кто знает что). Это оставляет два варианта:
1) Связаться с каждым промежуточным оператором сети и заставить их настроить соответствующие буферы, чтобы обеспечить мою желаемую пропускную способность и RTT. Вряд ли! 2) Ограничьте количество пакетов.
Я решил ограничить каждый поток TCP для работы со скоростью не более 100 Мбит / с. Число здесь довольно произвольное - я выбрал 100 Мбит / с просто потому, что знал, что предыдущий путь может обрабатывать 100 Мбит / с, и мне больше не нужно для отдельного потока .
Надеюсь, это поможет кому-то в будущем.
Основная проблема - большая задержка WAN. Будет очень хуже, если он также потеряет случайный пакет.
1, tcp_mem также необходимо установить большим, чтобы выделить больше памяти. Например, установите его как net.ipv4.tcp_mem = 4643328 6191104 9286656
2, вы можете захватывать пакеты через wirehark / tcpdump в течение нескольких минут, а затем анализировать, не были ли потеряны случайные пакеты. Вы также можете загрузить файл пакетов, если хотите.
3, вы можете попробовать настроить другие параметры tcp Например. установите tcp_westwood = 1 и tcp_bic = 1
Повторяя те же тесты через UDP с использованием iperf, проблема исчезает! Если TCP все время переходит в медленный запуск, ваша средняя пропускная способность может быть довольно низкой.
Между прочим, у вас есть ориентиры для Лондона и Лос-Анджелеса и Лондона до Лондона?