Компания Mozilla обяви намерението си да започне поетапно въвеждане на протоколите HTTP/3 и QUIC в версията на Firefox 88, планирана за 19 април (първоначално, релизът се очакваше на 20 април, но, изглежда, според графика, е преместен с един ден). Първоначално поддръжката на HTTP/3 ще бъде активирана само за малък процент от потребителите и, ако не възникнат неочаквани проблеми, ще бъде разширена до всички в края на май. В нощните сборки и бета версията HTTP/3 беше включен по подразбиране в края на март.
Припомняме, че реализацията на HTTP/3 в Firefox се основава на разработвания от компанията Mozilla проект neqo, предоставящ реализация на клиента и сървър за протокола 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) се развива от 2013 г. от компания Google като алтернатива на комбинацията 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
