-
QUICWeb/Protocol 2020. 2. 23. 17:11
1. Overview
Among other applications, QUIC improves the performance of connection-oriented web applications that are currently using TCP. It does this by establishing a number of multiplexed connections between two endpoints over the User Datagram Protocol (UDP). This works hand-in-hand with HTTP/2's multiplexed connections, allowing multiple streams of data to reach all the endpoints independently, and hence independent of packet losses involving other streams. In contrast, HTTP/2 hosted on Transmission Control Protocol (TCP) can suffer head-of-line-blocking delays of all multiplexed streams if any of the TCP packets are delayed or lost.
A QUIC working group was established in 2016. In October 2018, the IETF's HTTP and QUIC Working Groups jointly decided to call the HTTP mapping over QUIC "HTTP/3" in advance of making it a worldwide standard.
2. Transmission Control Protocol(TCP) Protocol
Every Request involves a 3-way Handshake and TLS Handshake consists of SSL increase Round Trip Time(RTT). It also causes the head of line(HOL) problem.
2.1 Head of Line (HOL) Blocking
Head-of-line blocking (HOL blocking) in computer networking is a performance-limiting phenomenon that occurs when a line of packets is held up by the first packet.
3. User Datagram Protocol (UDP)
Without 3-handshake, UDP is less RTT than TCP. But lacking reliability, UDP applications must be willing to accept some packet loss, reordering, errors or duplication.
3.1 UDP hole punching
UDP hole punching is a commonly used technique employed in network address translation (NAT) applications for maintaining User Datagram Protocol (UDP) packet streams that traverse the NAT. NAT traversal techniques are typically required for client-to-client networking applications on the Internet involving hosts connected in private networks, especially in peer-to-peer, Direct Client-to-Client (DCC) and Voice over Internet Protocol (VoIP) deployments
4. QUIC
QUIC is a new transport that reduces latency compared to that of TCP. On the surface, QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP. Because TCP is implemented in operating system kernels, and middlebox firmware, making significant changes to TCP is next to impossible. However, since QUIC is built on top of UDP, it suffers from no such limitations.
Key features of QUIC over existing TCP+TLS+HTTP2 include
- Dramatically reduced connection establishment time
- Improved congestion control
- Multiplexing without head of line blocking
- Connection migration
5. Reference
https://cloud.google.com/blog/products/gcp/introducing-quic-support-https-load-balancing
https://en.wikipedia.org/wiki/Head-of-line_blocking
https://en.wikipedia.org/wiki/QUIC
https://judo0179.tistory.com/41
https://en.wikipedia.org/wiki/User_Datagram_Protocol
'Web > Protocol' 카테고리의 다른 글
Dynamic Adaptive Streaming over HTTP (0) 2020.02.24 WebSockets vs Long Polling (0) 2020.02.23 HTTP keepalive(HTTP persistent connection) (0) 2019.09.28 Hypertext Transfer Protocol (HTTP) (0) 2019.08.31 Stateful and stateless in Protocol (0) 2019.08.25