QUIC protocol document translation - what is QUIC

Original Address https://docs.google.com/document/d/1gY9-YNDNAB1eip-RTPbqphgySwSNSDHLq9D5Bty4FSU/edit

QUIC is a new Internet protocol proposed by Google.

QUIC solve some of the problems occur in the transport layer and application layer of the network protocol now, and almost does not need to apply the changes. QUIC and TCP + TLS + HTTP2 very similar, but based on UDP implementation. Use as a standalone protocol QUIC can do some other protocols can not do innovation, because they are hampered by traditional client and middleware.

And TCP + TLS + HTTP2 comparison, QUIC core strengths are the following:

  • Connection establishment delay
  • Enhance Congestion Control
  • No need to discharge head blocked multiplexer
  • Forward Error Correction
  • Connection migration

Connection is established

Briefly, before the transmission payload, and TCP + TLS is 1 ~ 3rt comparison, the QUIC usually required 0rt.

When a client first QUIC link to the server, the client must perform 1rt handshake to get all the necessary information to complete the handshake. The client sends a Chlo, the server returns a rejection letter to proceed with a client, including the source address of the token and the server certificate. The next time the client sends CHLO, the certificate can be used to return the last connection cache of an encrypted message immediately.

Congestion Control

QUIC pluggable congestion control, and provide richer information than to TCP congestion control. This allows a sender identification QUIC retransmission ACK and ACK original TCP retransmission to avoid ambiguity. QUIC ACK also explicitly transmitting and receiving transport packet delay and monotonically increasing sequence number. This allows accurate calculation of rt.

Finally, QUIC ACK frame support up to 256NACK range, so QUIC over TCP (tape SACK) more flexibility in re-ordering, and can be saved and re-ordering more bytes in the line is lost. The client and server can know exactly what the other party received the package.

Multiplexer

HTTP2 bigger problem is based on TCP header row blocking. Depending on the application to a TCP connection stream of bytes. When a TCP packet is lost, no data flows on the front connector HTTP2 advanced until the packet is retransmitted and the distal end is accepted - even when the data stream has arrived and waits in the buffer.

Since the start designed for QUIC multiplexing operations, thus transmission of a single stream of data packets lost data usually affect only that particular stream. Each frame stream can be distributed immediately and apply advance.

Forward Error Correction

Without waiting for retransmission to recover from packet loss, QUIC FEC packets may be added a set of packets. Like RAID-4, comprising a part FEC packet in the FEC group. If a packet group is lost, the FEC packet from the can and the remaining packet groups recover it. The sender can decide whether to transmit the FEC packets to optimize the particular scene (e.g., a request for the start and end).

Connection migration

QUIC connection is a 64-bit connection ID is identified, the client is randomly generated. By contrast, TCP is a connection, source port, destination address, the 4-tuple identified by the source address of the destination port. This means that if a client address changes (e.g., from a WI-FI cut to a mobile network) or the port (NAT if a connection is lost and re-bind the port), any available connection is no longer valid TPC. QUIC case where a client IP address change, it can not interrupt the execution of the request to use the old connection ID from the new IP address.

Guess you like

Origin www.cnblogs.com/gouden/p/12230036.html