В експериментални версии поддръжка на протокола HTTP/3, който реализира надстройка за работа на HTTP върху протокола QUIC. Протоколът QUIC беше добавен в браузъра преди пет години и оттогава се използва за оптимизиране на работата със услугите на Google. Използваният в Chrome вариант на QUIC от Google в някои детайли се различаваше от варианта от IETF, но сега реализациите са синхронизирани.
HTTP/3 стандартизира използването на QUIC като транспорт за HTTP/2. За активиране на HTTP/3 и варианта QUIC от спецификациите на IETF е необходимо да се стартира Chrome с опции «—enable-quic —quic-version=h3-23», след което при отваряне на тестовия сайт в режим на инспектиране на мрежата в инструментите за разработчици активността по HTTP/3 ще се показва като «http/2+quic/99».
Напомняме, че протоколът (Quick UDP Internet Connections) се развива от Google от 2013 г. като алтернатива на комбинацията TCP+TLS за Web, решаваща проблемите с дългото време за установяване и преговори на връзките в TCP и премахваща забавяния при загуба на пакети по време на прехвърляне на данни. QUIC е надстройка над протокола UDP, поддържаща мултиплексиране на множество връзки и осигуряваща методи за криптиране, еквивалентни на TLS/SSL. Обмисленият протокол вече е интегриран в сървърната инфраструктура на Google, включен в Chrome, за включване във Firefox и активно използван за обслужване на клиентски заявки на сървъри на Google.
Основни QUIC:
- Висока сигурност, подобна на TLS (по същество QUIC предоставя възможност за използване на TLS над UDP);
- Контрол за целостта на потока, предотвратяващ загуба на пакети;
- Възможност за незабавно установяване на връзка (0-RTT, в около 75% от случаите данните могат да се предават веднага след изпращането на пакета за установяване на връзката) и осигуряване на минимални забавяния между изпращането на запитването и получаването на отговора (RTT, Round Trip Time);
- Не използване на повторно предаване на пакета със същия номер на последователност, което позволява да се избегне двусмислие при определяне на получените пакети и да се премахнат таймаутите;
- Загубата на пакет влияе само на доставката на свързания с него поток и не спира доставката на данни в паралелно предавани през текущото съединение потоци;
- Средства за корекция на грешки, минимизиращи забавянията поради повторно предаване на изгубени пакети. Използване на специални кодове за корекция на грешки на ниво пакет, за да се намалят ситуациите, изискващи повторно предаване на данни от изгубения пакет.
- Криптографските граници на блоковете са подравнени с границите на пакетите QUIC, което намалява влиянието на загубите на пакети върху декодирането на съдържанието на следващите пакети;
- Липса на проблеми с блокиране на опашката TCP;
- Поддръжка на идентификатор на съединение, позволяваща да се съкрати времето за установяване на повторно съединение за мобилни клиенти;
- Възможност за свързване на разширени механизми за контрол на претоварването на съединението;
- Използване на техника за прогнозиране на пропускната способност във всяка посока за осигуряване на оптимална интензивност на изпращане на пакети, предотвратявайки свличането в състояние на претоварване, при което се наблюдава загуба на пакети;
- Забележимо на производителността и пропускната способност в сравнение с TCP. За видеосервизи като YouTube, прилагането на QUIC показва намаление на операциите за повторно буфериране при гледане на видео с 30%.
Източник: opennet.ru
