Компания Google представила (http://blog.chromium.org/2013/06/experimenting-with-quic.html) новый сетевой протокол
QUIC (Quick UDP Internet Connections), поддержка которого была в феврале без лишних пояснений интегрирована (http://www.opennet.ru/opennews/art.shtml?num=36180) в репозитории Chromium. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирвоание нескольких потоков в рамках одного соединения и обеспечивающую методы шифрования эквивалентные TLS/SSL. Протокол создан для решения задач уменьшения времени установки соединения и минимизации задержек в процессе передачи, которые не удаётся решить в протоколе SPDY, вследствие использования TCP с его достаточно медленными методами установки и согласования соединений. По мнению Google, с развитием мобильных сетей важным становиться не только высокая скорость передачи данных, но и возможность мгновенно установить соединение и обеспечить минимальные задержки между отправкой запроса и получением ответа (RTT, Round Trip Time). Параллельно Google продвигает решения для устранения проблем TCP, но процесс внесения изменений в реализацию первичного протокола растягивается на годы, а использование надстройки над UDP позволяет сразу получить результат, не требуя модификации сетевого стека операционной системы.
Работа над протоколом ещё не завершена, Google активно экспериментирует с используемыми в QUIC методами и теперь приглашает подключиться к подобным экспериментам всех желающих. Для тестирования текущего варианта QUCK подготовлена реализация клиента (https://code.google.com/p/chromium/codesearch#chromium/src/n... и сервера (https://code.google.com/p/chromium/codesearch#chromium/src/n.... Кроме того, Google начинает тестирование QUIC в условии реальных проектов, интегрировав поддержку данного протокола в тестовые сборки Chrome Сanary (для включения/выключения поддержки QUIC следует использовать настройку "Experimental QUIC protocol" в about:flags) и на некоторые из своих web-сервисов.
Среди особенностей (https://docs.google.com/document/d/1lmL9EF6qKrk7gbazY8bIdvq3... протокола отмечается:
- Высокая безопасность, аналогичная TLS (по сути QUIC предоставляет возможность использования TLS поверх UDP);
- Почти мгновенная установка соединения (часто 0-RTT, т.е. данные можно передавать сразу после отправки пакета установки соединения), похожая на комбинацию TLS Snapstart (http://tools.ietf.org/html/draft-agl-tls-snapstart-00) и TCP Fast Open (http://en.wikipedia.org/wiki/TCP_Fast_Open);
- Контроль за целостностью потока, предотвращающий потерю пакетов;
- Средства коррекции ошибок, минимизирующие задержки из-за повторной передачи потерянных пакетов. Использование специальных кодов коррекции ошибок на уровне пакета для сокращения ситуаций, требующих повторной передачи данных потерянного пакета. Криптографические границы блоков выравнены с границами пакетов QUIC, что уменьшает влияние потерь пакетов на декодирование содержимого следующих пакетов;
- Отсутствие проблем с блокировкой очереди TCP;
- Потеря пакета влияет на доставку только связанного с ним потока и не останавливает доставку данных в параллельно передаваемых через текущее соединение потоках;
- Поддержка идентификатора соединения, позволяющего сократить время на установку повторного соединения для мобильных клиентов;
- Возможность подключения расширенных механизмов контроля перегрузки соединения;
- Использование техники прогнозирования пропускной способности в каждом направлении для обеспечения оптимальной интенсивности отправки пакетов, предотвращая скатывание в состояние перегрузки, при которой наблюдается потеря пакетов;
URL: http://blog.chromium.org/2013/06/experimenting-with-quic.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=37310