Компания Google представила основанный на UDP экспериментальный протокол QUIC для ускорения Web
28 июня 2013 года
Компания Google представила новый сетевой протокол QUIC (Quick UDP Internet Connections), поддержка которого была в феврале без лишних пояснений интегрирована в репозитории Chromium. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования эквивалентные TLS/SSL.
Протокол создан для решения задач уменьшения времени установки соединения и минимизации задержек в процессе передачи, которые не удаётся решить в протоколе SPDY, вследствие использования TCP с его достаточно медленными методами установки и согласования соединений. По мнению Google, с развитием мобильных сетей важным становится не только высокая скорость передачи данных, но и возможность мгновенно установить соединение и обеспечить минимальные задержки между отправкой запроса и получением ответа (RTT, Round Trip Time). Параллельно Google продвигает решения для устранения проблем TCP, но процесс внесения изменений в реализацию первичного протокола растягивается на годы, а использование надстройки над UDP позволяет сразу получить результат, не требуя модификации сетевого стека операционной системы.
Работа над протоколом ещё не завершена, Google активно экспериментирует с используемыми в QUIC методами и теперь приглашает подключиться к подобным экспериментам всех желающих. Для тестирования текущего варианта QUIC подготовлена реализация клиента и сервера. Кроме того, Google начинает тестирование QUIC в условии реальных проектов, интегрировав поддержку данного протокола в тестовые сборки Chrome Сanary (для включения/выключения поддержки QUIC следует использовать настройку "Experimental QUIC protocol" в about:flags) и на некоторые из своих web-сервисов.
Среди особенностей протокола отмечается:
- Высокая безопасность, аналогичная TLS (по сути QUIC предоставляет возможность использования TLS поверх UDP);
- Почти мгновенная установка соединения (часто 0-RTT, т.е. данные можно передавать сразу после отправки пакета установки соединения), похожая на комбинацию TLS Snapstart и TCP Fast Open;
- Контроль за целостностью потока, предотвращающий потерю пакетов;
- Средства коррекции ошибок, минимизирующие задержки из-за повторной передачи потерянных пакетов. Использование специальных кодов коррекции ошибок на уровне пакета для сокращения ситуаций, требующих повторной передачи данных потерянного пакета. Криптографические границы блоков выравнены с границами пакетов QUIC, что уменьшает влияние потерь пакетов на декодирование содержимого следующих пакетов;
- Отсутствие проблем с блокировкой очереди TCP;
- Потеря пакета влияет на доставку только связанного с ним потока и не останавливает доставку данных в параллельно передаваемых через текущее соединение потоках;
- Поддержка идентификатора соединения, позволяющего сократить время на установку повторного соединения для мобильных клиентов;
- Возможность подключения расширенных механизмов контроля перегрузки соединения;
- Использование техники прогнозирования пропускной способности в каждом направлении для обеспечения оптимальной интенсивности отправки пакетов, предотвращая скатывание в состояние перегрузки, при которой наблюдается потеря пакетов.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.