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