Компания Google представила новый сетевой протокол QUIC (Quick UDP Internet Connections), поддержка которого была в феврале без лишних пояснений интегрирована в репозитории Chromium. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирвоание нескольких потоков в рамках одного соединения и обеспечивающую методы шифрования эквивалентные TLS/SSL.
Протокол создан для решения задач уменьшения времени установки соединения и минимизации задержек в процессе передачи, которые не удаётся решить в протоколе SPDY, вследствие использования TCP с его достаточно медленными методами установки и согласования соединений. По мнению Google с развитием мобильных сетей важным становиться не только высокая скорость передачи данных, но и возможность мгновенно установить соединение и обеспечить минимальные задержки между отправкой запроса и получением ответа (RTT, Round Trip Time).
Работа над протоколом ещё не завершена, Google активно экспериментирует с используемыми в QUIC методами и теперь приглашает подключиться к подобным экспериментам всех желающих. Для тестирования текущего варианта QUCK подготовлена реализация клиента и сервера. Кроме того, Google начинает тестирование QUIC в условии реальных проектов, интегрировав поддержку данного протокола в тестовые сборки Chrome (canary) и на некоторых из своих web-сервисов.
Среди особенностей протокола отмечается:
- Высокая безопасность, аналогичная TLS (по сути QUIC предоставляет возможность использования TLS поверх UDP);
- Почти мгновенная установка соединения (часто 0-RTT), похожая на комбинацию TLS Snapstart и TCP Fast Open;
- Контроль за целостностью потока, предотвращающий потерю пакетов;
- Средства коррекции ошибок, минимизирующие задержки из-за повторной передачи потерянных пакетов (повторно передаются только те пакеты, которые не пришли);
- Отсутствие проблем с блокировкой очереди TCP;
- Поддержка идентификатора соединения, позволяющего сократить время на установку повторного соединения для мобильных клиентов;
- Возможность подключения расширенных механизмов контроля перегрузки соединения.