Компания Mozilla обяви намерението си да започне постепенно внедряване на протоколите HTTP/3 и QUIC в версия Firefox 88, планирана за 19 април (първоначално, релизът се очакваше на 20 април, но, според графика, е преместен с един ден). В началото поддръжката на HTTP/3 ще бъде активирана само за малък процент от потребителите и, ако не възникнат непредвидени проблеми, ще бъде доведена до всички до края на май. В нощните версии и бета версиите HTTP/3 беше включен по подразбиране в края на март.
Напомняме, че реализацията на HTTP/3 в Firefox е основана на развиващия се проект neqo на компанията Mozilla, който предоставя реализация на клиента и сървър за протокола QUIC. Кодът на компонентите за поддръжка на HTTP/3 и QUIC е написан на езика Rust. За управление на включването на HTTP/3 в about:config е предвидена опция „network.http.http3.enabled“. В клиентския софтуер експерименталната поддръжка на HTTP/3 също е добавена в Chrome и curl, а за сървъри е налична в nginx, както и под формата на nginx модул и тестов сървър от компанията Cloudflare. От страна на уебсайтовете поддръжката на HTTP/3 вече е осигурена на сървърите на Google и Facebook.
Протоколът HTTP/3 все още е в стадия на чернова спецификация и не е окончателно стандартизиран в IETF. За използването на HTTP/3 е необходима поддръжка от страна на клиента и сървера на същата версия на черновата на стандарта QUIC и HTTP/3, която се посочва в заглавието Alt-Svc (Firefox поддържа черновите спецификации от 27 до 32).
HTTP/3 определя използването на протокола QUIC като транспорт за HTTP/2. Протоколът QUIC (Quick UDP Internet Connections) се развива от компанията Google от 2013 година като алтернатива на комбинацията TCP+TLS за Web, решаваща проблемите с дългото време на установяване и преговор на връзките в TCP и елиминираща забавянията при загуба на пакети по време на предаване на данни. QUIC представлява надстройка над протокола UDP, поддържаща мултиплексиране на няколко връзки и осигуряваща методи за криптиране, еквивалентни на TLS/SSL. В процеса на разработка на стандарта в IETF протоколът е променен, което е довело до появата на две паралелно съществуващи версии, една за HTTP/3, а втората поддържана от Google (Chrome поддържа и двата варианта).
Основни характеристики на QUIC:
- Висока сигурност, подобна на TLS (по същество QUIC предоставя възможност за използване на TLS над UDP);
- Контрол за целостта на потока, предотвратяващ загуба на пакети;
- Възможността за мигновено установяване на връзка (0-RTT, в около 75% от случаите данните могат да се предават веднага след изпращане на пакета за установяване на връзка) и осигуряване на минимални закъснения между изпращането на заявка и получаването на отговор (RTT, Round Trip Time);
- Използването на друг номер на последователност за повторно предаване на пакета, което позволява да се избегне двусмисленост при определяне на получените пакети и да се премахнат тайм-аутите;
- Загубата на пакет влияе само на доставката на свързания с него поток и не спира доставката на данни в паралелно предавани през текущото съединение потоци;
- Средства за корекция на грешки, минимизиращи забавянията поради повторно предаване на изгубени пакети. Използване на специални кодове за корекция на грешки на ниво пакет, за да се намалят ситуациите, изискващи повторно предаване на данни от изгубения пакет.
- Границите на криптографските блокове са подравнени с границите на QUIC пакетите, което намалява влиянието на загубите на пакети върху декодирането на съдържанието на следващите пакети;
- Липса на проблеми с блокиране на опашката TCP;
- Поддръжка на идентификатор на съединение, позволяваща да се съкрати времето за установяване на повторно съединение за мобилни клиенти;
- Възможност за свързване на разширени механизми за контрол на претоварването на съединението;
- Използване на техника за прогнозиране на пропускната способност във всяка посока за осигуряване на оптимална интензивност на изпращане на пакети, предотвратявайки свличането в състояние на претоварване, при което се наблюдава загуба на пакети;
- Забележимо увеличение на производителността и капацитета в сравнение с TCP. За видеосервизи като YouTube, прилагането на QUIC показа 30% намаление на операциите по повторно буфериране при гледане на видео.
Източник: opennet.ru
