13

Я понимаю, что реализация стека TCP в Windows и Linux различна. Windows использует алгоритм управления перегрузкой, известный как TCP Reno, в то время как Linux использует Cubic.

Как соотносятся два протокола, если они сосуществуют в одной сети? Правда ли, что Cubic(Linux) более агрессивен и может в итоге получить большую долю пропускной способности?

2 ответа2

12

Во-первых, то, что вы говорите, на самом деле не правильно

  • Linux до версии ядра 2.6.18 использует BIC по умолчанию.
  • Ядро Linux 2.6.19 и новее по умолчанию использует CUBIC .
  • Механизмы управления перегрузкой TCP в Linux являются подключаемыми, например, вы можете изменить их в данный момент.
  • Windows XP и более ранние версии используют TCP Reno (или New Reno)
  • В Windows Vista и более поздних версиях также имеется составной TCP, который по умолчанию включен в Server 2008 и может быть включен в Vista и Windows 7 при необходимости.

Все эти алгоритмы являются самонастраивающимися в соответствии с доступной пропускной способностью сети, задержкой, доступной памятью и т.д. Они также имеют множество параметров конфигурации, которые позволяют настраивать их вручную.

Таким образом, вы не можете реально сравнивать одно с другим, не глядя на конкретную топологию сети, используемое оборудование и программное обеспечение и т.д. Это не значит, что одно лучше другого или будет использовать большую долю доступной полосы пропускания. Это правда, что CUBIC менее агрессивен, чем BIC, но на практике другие соображения часто более важны, чем тот, который используется в алгоритме перегрузки TCP.

Если вы не пытаетесь настроиться на очень узкий и необычный сетевой сценарий, все эти алгоритмы работают достаточно хорошо и честно из коробки.

4

Обратите внимание, что алгоритм управления перегрузкой влияет только на восходящий трафик и, следовательно, только на восходящую полосу пропускания.

При этом, Cubic на самом деле более агрессивен, особенно для сетей с продуктом с большой задержкой пропускной способности. Существует даже правило, встроенное в реализацию Linux, чтобы никогда не использовать меньшую скорость отправки, чем в той же ситуации:

Кубический алгоритм Linux также включает в себя код, который гарантирует, что кубический алгоритм по крайней мере такой же агрессивный, как стандартный TCP

- Лейт, Шортен, МакКаллаг, Экспериментальная оценка Cubic-TCP

Таким образом, при загрузке обновлений Windows во время просмотра видео Youtube ваш трафик Youtube может истощить ваш трафик Microsoft, и вы ничего не можете с этим поделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .