Я хотел бы использовать Compound TCP в Ubuntu.
На странице Википедии написано:
В дополнение к Windows, CTCP был также портирован на Linux [...] Начиная с версии ядра 2.6.17, модуль был несовместим и не компилируется из-за Изменения в API ядра.
blockquote>Есть ли более новая реализация, которая работает правильно?
Составной TCP от Microsoft является лишь одной реализацией протокола алгоритма перегрузки. В Linux это было отброшено, как вы уже нашли, и кажется, что TCP Illinois был прямым преемником, но больше не использовал его.
Некоторая работа была проделана для реализации Иллинойса с 2.6.22: Статья LWN: Предварительная версия TCP Illinois . Это также, кажется, все еще доступно в текущих версиях: net/ipv4/tcp_illinois.c
в linux-stable tree .
TCP New Reno , другая альтернатива, основанная на RFC3782 , кажется наиболее часто используемой в Linux и полностью интегрированной в ядро. См. Также справочную страницу tcp(7)
:
blockquote>tcp_available_congestion_control (String; read-only; since Linux 2.4.20) Show a list of the congestion-control algorithms that are registered. This list is a limiting set for the list in tcp_allowed_congestion_control. More congestion-control algorithms may be available as modules, but not loaded.
Проверьте доступные в вашей системе:
cat /proc/sys/net/ipv4/tcp_available_congestion_control
и активные:
cat /proc/sys/net/ipv4/tcp_congestion_control
Измените активный, написав ему (пример
reno
):echo reno | sudo tee /proc/sys/net/ipv4/tcp_congestion_control
Итог: вы, вероятно, уже используете очень современную и очень эффективную перегрузку TCP Алгоритм протокола просто с использованием новейшего ядра Linux.
Насколько я мог видеть, он был удален из основного ядра (см. git commit ). Согласно поиску в git, он никогда не возвращался. Так что запись в Википедии правильная. У вас нет шансов заставить его работать (пока вы не перепишите код).