👨🦳 Дед из Стэнфорда хоронит TCP. Почему ИИ-кластерам понадобился новый транспортный протокол Homa
На прошедшей конфе AI Engineer 2026 профессор Джон Оустерхаут выдал базу... классический TCP и даже RoCE физически не вывозят современные ИИ-нагрузки.
Проблема в том, что сейчас ДЦ гоняют не только жирные потоки данных. Появилась куча микро-сообщений... синхронизация воркеров, метаданные, лукапы в KV-кэшах. И когда кластер за большие суммы денег простаивает, потому что GPU ждут один потерявшийся 50-байтовый пакет координации, бизнес начинает терять прибыли 🤑
TCP проигрывает по трем причинам:
🔴 Когда пачка нод одновременно шлет тяжелый трафик на один сервер, буфер на коммутаторе переполняется. Если в эту же очередь попадает крайне важный короткий пинг синхронизации, он тупо встает в пробку за гигабайтами тяжелого трафика. Микросекунды решают 🏃♂️
🔴 В TCP контроль перегрузки работает на стороне отправителя. Пока свитч накидает ECN-маркеров, пока получатель вернет ACK, пока удаленный отправитель поймет, что сеть легла и урежет окно... затор уже случился. Реакция идет по факту смерти пакетов.
🔴 TCP не видит границ сообщений. Короткое сообщение физически не может обогнать длинное, отправленное чуть раньше.
🙂 Homa - это транспортный протокол, созданный с нуля специально для ДЦ. Его архитектура строится на следующих моментах:
🟢 Как только получатель принимает первый пакет, он уже знает полный размер сообщения и сколько работы осталось.
🟢 Отправитель без спроса шлет только первые несколько пакетов. Остальной трафик он отправляет только получив разрешение от получателя. Получатель сам дирижирует входящим трафиком, не давая свитчу захлебнуться.
🟢 Мелкие пакеты динамически маркируются высшим приоритетом и раскидываются по хардварным очередям свитча, пролетая поверх жирных потоков.
В бенчах результаты шикарные:
🟣 Задержка для коротких сообщений снизилась в 13 раз (менее 100 микросекунд против более 1 миллисекунды у TCP).
🟣 При этом передача тяжелого трафика стала быстрее почти в 2 раза.
З.Ы. Сам 70+ летний Оустерхаут ради этого проекта вышел на полупенсию, чтобы фуллтайм коммитить в ядро Linux и лично саппортить тех, кто готов тестить протокол в бою. Вот это я понимаю - трушный выход с пенсии ради будущего ИТ 👴
Типичный 🥸 Сисадмин
Post #29973
3.35K

- 🔥 36
- ❤ 13
- 🤔 10
- 👍 3
- 👌 1