CUBIC TCP

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

CUBIC — реализация протокола TCP с оптимизированным алгоритмом предотвращения заторов для высокоскоростных сетей с большой задержкой (так называемых «протяжённых сетей с повышенной пропускной способностью» или «long fat networks»).

Он менее агрессивен и имеет больше эволюционных улучшений по сравнению с BIC TCP, в котором размер «окна» определяется кубической функцией, зависящей от времени, прошедшего после последней потери пакета, и изменением размера «окна», при котором произошла потеря. Для кубической функции существуют ещё два периода роста «окна». Первый — это участок резкого роста, где «окно» резко вырастает до размера, предшествующему предыдущему периоду нагрузки. Второй — это более спокойный участок роста, где CUBIC постепенно проверяет возможность использования большей пропускной способности: сначала медленно, затем все быстрее. CUBIC теряет много времени на «плато» между резким и постепенным ростом, но это позволяет способствовать стабилизации параметров сети перед тем, как CUBIC начнёт проверку большей пропускной способности.

Другим главным отличием CUBIC от стандартного TCP является то, что CUBIC не зависит от приёма подтверждений (ACK) для увеличения размера «окна». Размер «окна» CUBIC зависит только от последнего затора. В стандартном TCP потоки с коротким RTT (двусторонней задержкой) получают подтверждения быстрее и поэтому их окно перегрузки (cwnd) растёт быстрее, чем у потоков с большим RTT. CUBIC предлагает более справедливое деление полосы пропускания между соревнующимися TCP-потоками за счёт того, что рост окна перегрузки не зависит от RTT.

CUBIC TCP реализован и используется по умолчанию в ядре Linux версий 2.6.19 и выше.

См. также[править | править код]

Помимо алгоритмов, которые предотвращают заторы трафика с помощью "окна", есть класс алгоритмов, включая BBR от Google, которые явно рассчитывают текущую скорость отправки данных, называемую скорость отправляемых данных ("sending rate")[1]

Примечания[править | править код]

  1. Congestion control PK3C Kernel Module for video streaming and data servers. Дата обращения: 1 августа 2021. Архивировано 1 августа 2021 года.

Ссылки[править | править код]

  • CUBIC
  • BIC и CUBIC (перевод обзорной статьи и обсуждение)