Tutorial 5: 7th November 2019 Flashcards
QUIC and BBR
What is QUIC?
Quick UDP Internet Connections = a new transport layer Internet protocol to improve upon and replace TCP. It’s faster and encrypted-by-default.
What is BBR?
Bottleneck Bandwidth and Round-trip propagation time (BBR) is a TCP congestion control algorithm developed at Google in 2016 that uses the maximum bandwidth and round-trip time of the last window to build an explicit model of the network. Higher capacity NICs mean latency/model-based congestion control algorithms, such as BBR, provide higher throughput and lower latency as a more reliable alternative to more loss-based algorithms like CUBIC.
What are the impacts of QUIC?
- Biggest change to the transport layer in >30 years
- connection id abstraction: flows by connection ID, not IP and port; if any change new UDP socket moves connection and connection still open through connection ID - don’t need to manually reconnect in app
- middleboxes not supported, inc NAT
- encrypted by default: better privacy and security
- transport moved to user-space: rapid prototyping & experiments for new transport protocols and customisation to better suit needs
- separates protocol from congestion control
- smaller rtt but same throughput with same congestion control
- enables multistreaming which TCP blocks: get data ASAP without waiting for correct ordering
Are any properties of QUIC new or unique?
No. It is just the first technology that brought them together.
How does the performance of QUIC compare to TCP?
QUIC has a reduced RTT (time to handshake) but not throughput: same with same congestion control mechanisms.
What his HOL blocking?
Head-of-Line blocking = a performance-limiting phenomenon that occurs when a line of packets is held up by the first packet. If a packet must be sent before any others (e.g. first in FCFS/FIFO queue), then delays in processing it will hold all others up. These may include having congestion in output destination, or even from input to output via the switching fabric of a router when output buffers are full. Head of line = front of queue. Blocking as head is stopping all others.
What was the main change of HTTP/2?
To solve HOL blocking with request multiplexing, which eliminates HOL blocking at the application layer (i.e. in HTTP) but HOL not at the transport layer (i.e. in TCP).
What are the consequences of QUIC being at the transport layer?
Eliminates HOL blocking from TCP and HTTP and allows multistreaming. This means an app gets data bound for it as soon as it can be sent rather than TCP’s approach of blocking out-of-order data. This will be better for real-time applications like livestreams or Skype calls.
Can you use middleboxes with QUIC? Why?
No, because it encrypts packets by default so middleboxes can’t inspect data in packets to perform their additional functionality on them.
Do ISPs like QUIC? Why?
No. It makes it harder for them to control and throttle traffic. All packets are encrypted by default, including port numbers. They also can’t make performance measurements to check the network is working correctly, such as looking at sequence and ack numbers to find RTTs.
What is DPI?
DPI = Deep Packet Inspection = a type of data processing that inspects packets being sent over a computer network, and takes according action. This may include blocking, re-routing, or logging it. DPI is used to ensure correct data formatting, security filtering, eavesdropping, censorship, performance measurement, etc.
What is a SPIN bit?
A QUIC header that can be used to measure RTT.
How does the SPIN bit work?
Send packets with it set to 1 until an ack with it set to 1 is received. Then send with 0 until ack with 0, then back to 1. Measure time between first outbound packet with one value to first inbound ack with it to get the RTT.
Does QUIC work with NAT? Why?
No. Port numbers are encrypted. NAT sees it as invalid UDP packets. It also presents a problem using both: the destination of a QUIC connection may be remapped on NAT which makes it unreachable.
What is BGP?
BGP = Border Gateway Protocol = a standardised exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet. It makes routing decisions based on paths, network policies, or rule-sets configured by a network administrator and is involved in making core routing decisions. BGP is responsible for inter-AS routing.