Еще один RTP — можно ли [и нужно ли] заменить HTTP

На технологических площадках обсуждается потенциальная [очередная] альтернатива HTTP для передачи крупных файлов. Мы решили обсудить, о чем идет речь и что может предложить новый протокол, который только начинает «обрастать» спецификацией.

Фотография: Olegs Jonins / Unsplash
Фотография: Olegs Jonins / Unsplash

Новые эксперименты

Альтернативный протокол называется RITP (Reliable Immutable Transfer Protocol). Его предложил разработчик под ником binarycat. Изначально протокол носил имя RTP, но оно было изменено, чтобы избежать путаницы с другими протоколами с похожими аббревиатурами вроде Real-time Transport Protocol (используется для трафика реального времени) и Reliable Transport Protocol (компонент маршрутизации EIGRP).

По словам автора, новый протокол — это попытка обойти некоторые особенности реализации HTTP. Во-первых, HTTP слишком гибкий: механизмы детекции ошибок и восстановления опираются на опциональные заголовки, из-за чего реализация требует нескольких слоёв fallback-решений. Во-вторых, в работе HTTP возможны коллизии (mid-air collisions). RITP же предлагает альтернативу с более строгими правилами обработки.

Суть предложения

RITP представляет собой протокол с сохранением состояния (stateful). Он напоминает 9P, используемый для организации взаимодействия компонентов операционной системы Plan 9. По мнению автора, выбор в пользу stateful был сделан потому, что stateless-решения расходуют пропускную способность, раз за разом пересылая одни и те же данные.

Запросы и ответы в RITP имеют три обязательных поля: длина сообщения, его тип и токен, указывающий на принадлежность к цепочке сообщений (бэтч). Токены уникальны в рамках соединения. Изначально запросы на установление соединения использовали URN, но их заменили на мультихеш. Стандартные команды и ответы описаны в драфте RITP.

Мнения и критика

Проект привлёк внимание пользователей Hacker News, которые обсудили инициативу в тематическом треде. В целом сообщество назвало идею интересной с концептуальной точки зрения, но усомнилось в необходимости разрабатывать замену HTTP.

Один из участников обсуждения ранее пытался разработать «упрощённую версию HTTP», но пришёл к выводу, что после добавления базовых функций результат всё равно напоминает минимальную реализацию HTTP-запроса. Он отметил, что возможный прирост в производительности не оправдывает сложность разработки. Он также добавил: «Я не вижу, как stateful-протокол может быть проще, чем HTTP/1.1 с range-запросами».

Но даже если предположить, что протокол «приживется» в экосистеме, он рискует остаться нишевой историей — инструментом для узкого круга энтузиастов. И его массовое внедрение под вопросом, поскольку HTTP хорошо справляется с передачей крупных неизменяемых файлов. Кроме того, все серверы и устройства поддерживают HTTP, а высокая производительность достигается оптимизацией клиентских приложений.

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

Больше попыток

Стоит признать, что альтернативные протоколы появляются с некоторой регулярностью. И это, в каком-то смысле, воплощение сюжета комикса xkcd-927 в жизнь.

Фотография: Patrick Turner / Unsplash
Фотография: Patrick Turner / Unsplash

Так, в 2022-м Джон Аустерхаут, учёный в области информатики и создатель языков Tcl и Tk, опубликовал научную работу под названием «Пришло время заменить TCP в дата-центрах». В ней он утверждает, что проблемы TCP в дата-центрах неразрешимы.

В качестве примера одной из проблем автор приводит балансировку нагрузки и предлагает использовать принципиально новый транспортный протокол — Homa. Аустерхаут также выступает одним из его авторов и даже работал над реализацией Homa в ядре Linux. Однако, как признает сам Аустерхаут, замена TCP маловероятна. Главные препятствия — стандартизация и массовое внедрение. И если кто-то и решит сделать первый шаг, это обязательно должна быть большая компания — интернациональный ИТ-гигант, за которым последуют другие, менее значимые организации.

Что еще почитать

  • Почему IPv6 быстрее и как его внедрить — рассказываем о преимуществах протокола и темпах его внедрения в СНГ, а также делимся собственным кейсом реализации поддержки IPv6 и DualStack IPv4/IPv6 на уровне оператора связи.

  • Перспективы 6G и системный подход к мобильным сетям — это подборка открытых материалов (от книг и исследований до аналитических разборов) по Mobile Edge Computing, архитектуре мобильных сетей и принципам беспроводной связи.

  • Сетевые технологии с нуля — это еще одна подборка книг и материалов, которые помогут разобраться в основах данного направления. В списке — руководства и открытые источники, которые пригодятся начинающим специалистам.

  • Кто и для чего строит сети IPv6. Ранее мы обсуждали, как идёт миграция на протокол нового поколения. В этой статье рассказываем о проектах по развертке сетей в форматах Mostly-IPv6 и Only-IPv6. А также для каких целей эти сети строят.

  • Что думают регуляторы по поводу ограничений на загрузку данных из интернета. В мире интерес к этой теме увеличивается — регуляторы расследуют злоупотребления ограничениями на загрузку контента. Обсуждаем мнения телекомов, правозащитных организаций и других участников сообщества.

© Habrahabr.ru