QUIC, czyli Quick UDP Internet Connections, to protokół warstwy transportowej stworzony przez Google w celu poprawy wydajności aplikacji internetowych poprzez zmniejszenie opóźnień. Został zaprojektowany w celu przezwyciężenia niektórych ograniczeń i problemów związanych z tradycyjnym protokołem Transmission Control Protocol – TCP.
Oto kilka kluczowych cech i aspektów protokołu QUIC:
Protokół oparty na UDP: QUIC jest zbudowany na protokole User Datagram Protocol (UDP) zamiast na TCP. UDP to protokół bezpołączeniowy, który nie zapewnia niezawodności i uporządkowania pakietów danych, co może skutkować szybszą transmisją danych, ale wymaga dodatkowych mechanizmów dla niezawodności.
Multiplexing: QUIC obsługuje muxowanie, pozwalając na jednoczesne przesyłanie wielu strumieni danych przez jedno połączenie. To umożliwia równoległe przetwarzanie wielu żądań i odpowiedzi jednocześnie, zmniejszając opóźnienia i poprawiając ogólną wydajność.
Ustanawianie połączenia: QUIC ma na celu zredukowanie opóźnień związanych z ustanawianiem połączenia poprzez połączenie pierwszego uścisku dłoni i wymiany kluczy z pierwszą transmisją danych. Odróżnia to od TCP, gdzie konieczny jest osobny proces ustanawiania połączenia przed rozpoczęciem transmisji danych.
Korekta błędów: QUIC obejmuje wbudowane mechanizmy korekty błędów, co zmniejsza potrzebę dodatkowych rund w celu radzenia sobie z utratą pakietów. Może to poprawić wydajność w sytuacjach, gdzie warunki sieciowe mogą prowadzić do utraty pakietów.
Muxowanie Adaptacyjne: QUIC zawiera mechanizmy kontroli przeciążenia, aby dostosować się do zmieniających się warunków sieciowych. Ma na celu optymalizację wykorzystania dostępnej przepustowości sieciowej przy minimalizowaniu przeciążeń i utraty pakietów.
Bezpieczeństwo: QUIC domyślnie obejmuje funkcje bezpieczeństwa, takie jak szyfrowanie. Pomaga to w ochronie poufności i integralności przesyłanych danych. W przeciwieństwie do niektórych implementacji TCP, które wymagają osobnej warstwy bezpieczeństwa, QUIC zapewnia szyfrowanie domyślne. Oznacza to, że wszystkie dane przesyłane za pomocą protokołu QUIC są szyfrowane. Protokół QUIC używa
najnowszej wersji protokołu TLS – Transport Layer Security, czyli TLS 1.3, jako podstawowej warstwy bezpieczeństwa. TLS jest protokołem kryptograficznym używanym do zabezpieczania komunikacji w Internecie.
Integracja z HTTP/3: QUIC często jest kojarzony z protokołem HTTP/3. HTTP/3 to trzecia główna wersja protokołu Hypertext Transfer Protocol i został zaprojektowany do pracy z protokołem transportowym QUIC.
QUIC zyskał popularność dzięki zdolności do dostarczania poprawionej wydajności i reaktywności dla aplikacji internetowych, zwłaszcza w sytuacjach z dużym opóźnieniem lub niestabilnymi połączeniami sieciowymi. Został przyjęty przez główne przeglądarki internetowe i jest używany przez różne usługi i strony internetowe w celu poprawy doświadczenia użytkownika.