Alexander Kuklev (akuklev) wrote,
Alexander Kuklev
akuklev

QUIC

Так сложилось, что в интернете лишь два кроссплатформенных протокола транспортного уровня: TCP и UDP. А всё остальное работает уже поверх них. TCP подходит (хоть и имеет врождённые недостатки) для пересылки длинных кусков информации, UDP для пересылки коротких датаграмм. Беда в том, что одному и тому же приложению по-хорошему нужно во время одной и той же сессии пересылать то и другое. Причём, иметь несколько каналов TCP-типа. Причём часть TCP-каналов и все UDP-каналы обычно лучше держать зашифрованными. Но вот беда, шифрование и инициализация сессии для каждого канала требуется отдельно. Чтобы это дело победить, ещё в 8 лет назад придумали протокол транспортного уровня (на самом деле тут склеиваются уровни с 4 по 6, но так и надо, если хочется эффективности) под названием SST (Structured Stream Transport), о котором я уже неоднократно писал: идея там в том, что сперва открывается сессия (опционально с шифрованием сразу или начиная с какого-то момента, когда оно нужно), а потом в её рамках открываются TCP-образные каналы, и можно посылать отдельные датаграммы. Естественно датаграммы быстры, с шифрованием и флагом «с уведомлением о вручении», если он поставлен, то датаграммы будут ресендиться, если долго не приходит ACKа. В общем удобный интерфейс для датаграмм и привычный по TCP интерфейс для, по существу обычные сокеты, только с небольшой дополнительной QoS-конфигурацией и фичами клёвыми.

Но просто так сделать протокол на замену TCP и UDP можно было только когда интернет был во младенчестве. Сейчас шансы произвести модернизацию только у гигантов. И гиганты пытаются. И пугает насколько плохо с этим справляются даже гиганты!

Несколько лет назад Google начал активно разрабатывать протокол QUIC, замену TCP для нужд веба (это менее амбициозная задача, чем SST). Так вот, интернет весь насквозь (начиная с магистральных маршрутизаторов и ядер операционных систем, и заканчивая домашними модемами и внутренностями браузеров) полон виртуозно оптимизированных костылей для обхода врождённых пороков TCP, и эти костыли встают дыбом против всего нового.

По своему дизайну QUIC просто со всех сторон лучше TCP, но победить TCP в боевых условиях одновременно по утилизации канала и скорости загрузки вебстраницы QUICу удаётся далеко не во всём спектре возможных условий, мягко говоря. По-моему, QUIC стабильно и воспроизводимо работает заведомо лучше отработанной сцепки HTTP (с агрессивным мультиплексингом) и TCP пока что менее чем в половине пространства параметров [продолжительность RTT, ширина канала, процент потерь, устойчивость канала].

Я очень надеюсь, что QUIC не только научится побеждать во всех случаях, но и станет когда-нибудь основой самостоятельного транспортного протокола (как гугловский SPDY уже стал основой для HTTP/2), без "over UDP", обретя в процессе стандартизации функционал SST, чтобы TCP и UDP можно было спокойно отправить на пенсию. Но когда мы дождёмся тех светлых времён?.. Ох не скоро.
Subscribe

  • (no subject)

    Встретил фотографию толпы футбольных фанатов, и она меня скорее напугала, у меня уж точно нет желания быть там среди них. Но внезапно я понял, что…

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 36 comments

  • (no subject)

    Встретил фотографию толпы футбольных фанатов, и она меня скорее напугала, у меня уж точно нет желания быть там среди них. Но внезапно я понял, что…

  • Прогресс

    Десять дней назад, вторая ступень SpaceX'овского корабля Starship своим ходом слетала своим ходом на десять километров вверх, и усмепшно приземлилась…

  • О водосбережении

    Как известно, питьевая вода во многих странах дефицитный ресурс. И даже в дождливой Германии летом иногда случаются засухи, в результате которых она…