Инженеры Google разработали новый алгоритм ускорения работы TCP – основного транспортного протокола для интернет-трафика. Им удалось оптимизировать скорость передачи трафика таким образом, чтобы он не засорял доступные маршруты.
Технология ускорения BBR (bottleneck bandwidth and roundtrip propagation time), учитывающая пропускную способность в узких местах и время прямого и обратного прохождения пакета, позволяет находить самый быстрый путь из имеющихся, повышая эффективность управления трафиком в условиях возникновения заторов в каналах. Ранее компания Google уже использовала BBR для ускорения трафика YouTube, а в июле эта технология стала доступна и пользователям Google Cloud Platform. Утверждается, что применение BBR позволяет ускорить и без того хорошо оптимизированный трафик YouTube в среднем на 4%, а в некоторых странах увеличение скорости может достигать 14%.
Попытки ускорения TCP
Протокол TCP разрабатывался в 1970-х годах в рамках стека TCP/IP и предусматривает разбиение данных на пакеты для последующей их передачи через Интернет. По оценкам Internet Engineering Task Force (IETF), более 90% IP-трафика передается сейчас посредством TCP.
В последние несколько десятилетий усилия, направленные на повышение эффективности TCP/IP, предпринимались регулярно. Многие из них были ориентированы на управление заторами. Протокол TCP предполагает замедление передачи данных при обнаружении перегрузок, которые определяются путем отслеживания числа потерянных при транспортировке пакетов.
«На протяжении многих лет это работало достаточно неплохо, потому что небольшие буферы коммутаторов и маршрутизаторов Интернета проектировались с учетом низкой пропускной способности каналов связи», – поясняется в блоге Google, посвященном BBR. Но в сегодняшних средах управление заторами на основе анализа потерь становится неприемлемым.
Один из авторов оригинального варианта TCP Ван Якобсон, принимавший активное участие и в разработке BBR, указал, что одного лишь замедления передачи данных при обнаружении потерь пакетов явно недостаточно. Этого слишком мало, и коррективы вносятся слишком поздно.
«При использовании BBR сидеть и ждать возникновения проблем (в том числе и потерь пакетов) нет никакого смысла, – пояснил он. – Моделируется труба определенной длины и диаметра, и мы определяем, какие объемы она способна пропустить».
Стандарты
BBR непрерывно оценивает пропускную способность и время прямого и обратного прохождения трафика по множеству маршрутов и знает, сколько времени понадобится данным для достижения конечной точки, если передавать их с определенной скоростью. При этом трафик пересылается на скоростях, с которыми сеть может справляться. Такой алгоритм более эффективен, чем контроль за заторами, предлагавшийся изначально.
Технология BBR совместима и с альтернативным транспортным протоколом QUIC (quick UDP internet connections), который был разработан Google и представлен на утверждение IETF в качестве стандарта.
Разработка BBR – уже не первая попытка ускорить TCP. Исследователи из Университета штата Северная Каролина занимались созданием одного из наиболее популярных алгоритмов управления заторами на основе анализа потерь, получившего название BIC (binary increase congestion control), а впоследствии – CUBIC. Здесь также производится расчет оптимальной скорости передачи данных в случае обнаружения заторов. Еще один популярный алгоритм управления заторами называется Reno.
Все они при выявлении заторов используют информацию о потерянных пакетах. По мнению Якобсона, BBR остается единственным алгоритмом, в котором наилучший маршрут определяется на основе анализа скорости прохождения трафика, без учета сведений о потерянных пакетах.
Реакция на BBR
Старший исследователь Networked Systems Group Миря Кюлевинд, возглавляющая также группу IETF Transport Area, которая вовлечена в деятельность по совершенствованию TCP, утверждает, что разработка стандартов организации транспортировки данных и управления ими займет немало времени. Попытки усовершенствовать TCP предпринимались десятки раз, но лишь один вариант был стандартизирован, и произошло это еще до разработки BIC и BBR.
«Стандартизировать общие схемы управления заторами весьма непросто, – заявила Кюлевинд. – Если же говорить о какой-то конкретной компании, которая займется разработкой и продвижением стандарта, на мой взгляд, у Google с учетом масштабов ее операций для этого имеется вполне достаточное количество ресурсов».
По словам Якобсона, цель Google заключается в том, чтобы придать BBR статус стандарта.
По мнению Кюлевинд, BBR выглядит весьма многообещающе. Reno и CUBIC основаны на сходных принципах и выявляют заторы на основе анализа потерь пакетов, последовательно снижая скорость в случае их обнаружения. BBR же для определения заторов использует информацию о времени прохождения пакетов.
Некоторые клиенты Google уже осознали преимущества BBR. Около полумиллиона сайтов в Google Cloud работают сегодня под управлением Wordpress. Основатель и технический директор компании, предоставляющей услуги хостинга для этих сайтов, Джейсон Коэн привел результаты исследований Google, в соответствии с которыми BBR позволяет увеличить пропускную способность в 2700 раз по сравнению с другими средствами, основанными на выявлении заторов путем анализа потерянных пакетов. Простоев в очередях становится в 25 раз меньше.
Клиенты Google Cloud Platform могут бесплатно воспользоваться BBR в автоматическом режиме при обращении к некоторым облачным сервисам GCP, к числу которых относятся Cloud Spanner, BigTable, Storage, CDN и Load Balancing.