Исправлена ошибка, существовавшая в TCP-стеке ядра Linux 10 лет

Специалистами Google было разработано исправление, которое устраняет ошибку в TCP-стеке ядра Linux, существовавшую 10 лет. Вследствие существования ошибки происходило значительное снижение эффективности передачи данных.

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

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

Исправление ошибки внесли в хранилище исходного кода ядра Linux.