Facebook опубликовал результаты экспериментов с новым алгоритмом контроля перегрузки (congestion control) - COPA, оптимизированным для передачи видеоконтента. Алгоритм предложен исследователями из Массачусетского технологического института. Предложенный для тестирования прототип COPA написан на С++, открыт под лицензий MIT и включён в состав mvfst, развиваемой в Facebook реализации протокола QUIC...Подробнее: https://www.opennet.me/opennews/art.shtml?num=51893
Почти всё что угодно работает лучше чем CUBIC или newreno - дефолты линуха и фряхи, просто потому что они для средней температуры по больнице.Для потокового видео на всяких линках с большим RTT (50+мс) и потерями у меня очень хорошо работали hybla и htcp.
Притом на момент тестов htcp в линухе работал сильно лучше чем во фряхе (при максимально одинаковых настройках стёков), тогда она кажется была ещё 10.х.
До гуглового у меня руки не дошли попробовать.
Ещё забавно, но они видимо не в курсе, что приложение может для каждого отдельного сокета выставлять свой СС, те можно в одном приложении юзать CUBIC, newreno, htcp, hybla и что угодно ещё на разных сокетах, разом.
Те если видим что нужны малые задержки - ставим один СС, если гоним потокове видео или файл - другой СС и нет проблем.
Не обязательно извращатся и делать мегаумный и мегасложный СС который сам эвристиками будет разруливать.
Я перешёл с yeah на htcp. Разницы не заметил, поскольку потери нездоровая тема. Ну т.е. между westwood и htcp разницы точно 0 было, а вот насчёт cubic не уверен. Для bbr нужно включать QoS, я ещё подумаю об этом.
Ох, дай угадаю: ты тестировал westwood и htcp скачивая файлик к себе?)
Тогда у меня интересная инфа: СС отрабатывает только на передачу.westwood и элинойс и ещё что то из старья - вообще полный мусор, у меня они в локалке даже 100м не могли заполнить в один конект.
htcp - очень быстро разгоняется, он сразу линк в полку забивает и старается так держать, но в случае потерь восстанавливает скорость несколько хуже, чем hybla.
hybla тоже не плохо рагоняется на старте, но всё же у неё плавный старт а не взрывообразный, но фишка в том, что она очень корректно держит скорость при потерях и rtt от 50 ей не мешает.
кубик, ньюрено и кто то там ещё - так, середнячки, не полный мусор но и толку с них мало.
Ещё когда то на швабре была статья с тестированием разных СС, у них результаты не релевантные моим получились.
Не, раздавал файлы для китайского ботнета. На кубике передача падала до нуля каждые несколько секунд, была такая лесенка. Когда поменял, до нуля больше не провисало. А вествуд на файфае лучше был емнип, так что не так уж и плох он.
> Тогда у меня интересная инфа: СС отрабатывает только на передачу.нет, только что тестировал, скрипт вроде такого
for I in `seq 100 110`; do
for A in bbr cubic htcp yeah; do
sysctl net.ipv4.tcp_congestion_control=$A
sleep 3
time curl -s -o /dev/null http://somebigfile
done 2>&1 | tee tcptest$I
done
разница весьма заметная, среднее квадратичное:
bbr 100
yeah 128
cubic 136
htcp 137
scalable 153
dctcp 162
westwood 174
hybla 176
lp 177
illinois 206
highspeed 236
bic 239
cdg 296
veno 313
nv 314
vegas 343
вторая итерация, уже с bbr на сервере:
bbr 57
cubic 67
htcp 65
yeah 65
так что серверные настройки важнее, но клиентские тоже влияют
Хм, при забитой скачиванием файла полосе браузер не может скачивать картиночки. Поможет ли QoS? Наверное же поможет, да? Должен?
Они ошибочно считают, что всё видео должно быть потоковым.
> Они ошибочно считают, что...у них есть свой интернет, как у гугля.
>всё видео должно быть потоковым.
>свой интернет
На первый взгляд отдает чем-то похожим на ledbat
Здесь интересно совместное проживание устройств с разными алгоритмами в одной сетке. Ведь вроде как BBR душит CUBIC - соединения с BBR забирают полосу у кубиковских.
Ну забирают, и фиг с ними.
Кубик вообще фуфел.У меня msd умеет в рамках одного приложения на разные биндинги вешать разные СС :)
Те СС можно задавать для конкретного сокета, а не только для всей системы разом. Это работает на фре и линухах.
Если новый алгоритм вытесняет и кубик и ббр, то и вашему фуфелу на всех биндингах, сокетах, фряхах и линухах не поздоровится. ну и фиг с ним. продолжайте наблюдение.
> Здесь интересно совместное проживание устройств с разными алгоритмами в одной сетке. Ведь
> вроде как BBR душит CUBIC - соединения с BBR забирают
> полосу у кубиковских.чудес не бывает. или пропускная способность выше и душить соседей, или пропускная способность ниже, зато fair (и потенциально недозагружен канал в случае потерь/неравномерной пропускной способности как у wifi или сотовых сетей).
Крутота, спасибо Facebook, ушел делать убийцу YouTube
Да уж, пейсбук и перегрузка сора -- прям символично.