Firefoxтун түнкү жана бета түзүмдөрү демейки боюнча HTTP/3 протоколун колдоону камтыйт. Туруктуу бутакта, HTTP/3 киргизүү 88-апрелге пландаштырылган Firefox 20 чыгарууга пландаштырылган. Chrome 3-жылдын октябрында HTTP/2020ти тандап иштете баштаган.
Firefox'тун HTTP/3 колдоосу Mozilla'нын neqo долбооруна негизделген, ал кардар үчүн ишке ашырууну камсыз кылат жана сервер QUIC протоколу үчүн. HTTP/3 жана QUIC колдогон компоненттердин коду Rust тилинде жазылган. HTTP/3ти иштетүү үчүн, about:config файлында "network.http.http3.enabled" опциясы жеткиликтүү. Кардар программасы үчүн Chrome жана curl'га эксперименталдык HTTP/3 колдоосу да кошулду жана серверлер Ал Nginxте, ошондой эле Cloudflare компаниясынын Nginx модулу жана тест сервери катары жеткиликтүү. HTTP/3 кардарынын функционалдуулугун текшерүү үчүн бир нече тест сайттары ишке киргизилген.
HTTP/3 протоколу дагы эле спецификациянын долбоорунун стадиясында турат жана IETF тарабынан толук стандартташтырылган эмес. HTTP/3 QUIC протоколун HTTP/2 үчүн транспорт катары колдонууну аныктайт. QUIC (Quick UDP Internet Connections) протоколу 2013-жылдан бери Google тарабынан Web үчүн TCP+TLS айкалыштырууга альтернатива катары иштелип чыккан, TCP'де туташуулар үчүн узак орнотуу жана сүйлөшүү убакыттары менен көйгөйлөрдү чечет жана маалымат учурунда пакеттер жоголуп кеткенде кечигүүлөрдү жок кылат өткөрүп берүү. QUIC - UDP протоколунун кеңейтилиши, ал бир нече туташуулардын мультиплексин колдойт жана TLS/SSLге барабар шифрлөө ыкмаларын камсыз кылат. IETF стандартын иштеп чыгуу учурунда протоколго өзгөртүүлөр киргизилип, эки параллелдүү бутактардын пайда болушуна алып келди, бири HTTP/3 үчүн, экинчиси Google тарабынан колдоого алынган (Chrome эки вариантты тең колдойт).
QUICтин негизги өзгөчөлүктөрү:
- TLS сыяктуу жогорку коопсуздук (чынында, QUIC UDP үстүнөн TLS колдонуу мүмкүнчүлүгүн камсыз кылат);
- Пакеттин жоголушун алдын алуу үчүн агымдын бүтүндүгүн көзөмөлдөө;
- Дароо байланыш түзүү мүмкүнчүлүгү (0-RTT, болжол менен 75% учурларда, маалымат туташууну орнотуу пакетин жөнөткөндөн кийин дароо берилиши мүмкүн) жана суроо-талапты жөнөтүү менен жооп алуунун ортосундагы минималдуу кечигүүлөрдү камсыз кылуу (RTT, Айлануу убактысы) ;
- Пакетти кайра жөнөтүүдө башка катар номерин колдонуу, ал кабыл алынган пакеттерди идентификациялоодо түшүнүксүздүктү болтурбайт жана тайм-ауттардан арылтат;
- Пакеттин жоголушу аны менен байланышкан агымдын жеткирилишине гана таасирин тийгизет жана учурдагы байланыш боюнча параллелдүү берилүүчү агымдарда маалыматтардын жеткирилишин токтотпойт;
- Жоголгон пакеттердин кайра жөнөтүлүшүнөн улам кечигүүлөрдү азайтуучу каталарды оңдоо куралдары. Жоголгон пакет маалыматтарын кайра жөнөтүүнү талап кылган кырдаалдарды азайтуу үчүн пакеттик деңгээлде катаны оңдоонун атайын коддорун колдонуу.
- Криптографиялык блоктун чек аралары QUIC пакетинин чек аралары менен дал келет, бул пакеттик жоготуулардын кийинки пакеттердин мазмунун декоддоосуна таасирин азайтат;
- TCP кезегин бөгөттөөдө көйгөйлөр жок;
- Мобилдик кардарлар үчүн кайра туташуу убактысын кыскартуу үчүн Connection ID колдоосу;
- Туташуу ашыкча жүктөөнү көзөмөлдөө үчүн өркүндөтүлгөн механизмдерди туташтыруу мүмкүнчүлүгү;
- Пакеттерди жөнөтүүнүн оптималдуу интенсивдүүлүгүн камсыз кылуу үчүн ар бир багытта өткөрүү жөндөмдүүлүгүн болжолдоо ыкмаларын колдонуу, пакеттердин жоготуусу болгон тыгын абалына өтүүнүн алдын алуу;
- TCP менен салыштырганда өндүрүмдүүлүктүн жана өткөрүү жөндөмдүүлүгүнүн байкаларлык өсүшү. YouTube сыяктуу видео кызматтары үчүн QUIC видеолорду көргөндө ребуферлөө операцияларын 30% кыскартат.
Source: opennet.ru
