Lecture 6: 5th 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.
How can you increase the speed of the Internet with respect to the application, session, and transport layers of the reference model? How else can this be defined?
!
How can you increase the speed of the Internet with respect to the network infrastructure of service providers?
!
Why/how is QUIC influential?
!
What layers in the reference model does QUIC sit in?
!
What does QUIC interface with?
!
Are the features of QUIC new? Why is it useful?
!
What are the key reasons why we should replace TCP?
!
What does it mean to say the application context of HTTP has changed?
!
If HTTP/2 fixes application-layer HoL blocking found in HTTP/1.1, then why does it still happen with HTTP/2 flows?
!
How does QUIC solve the HoL blocking of HTTP/2?
!
How does TCP’s sliding window halt flows?
!
What are the issues with TCP’s handshake process?
!
How many RTTs are required for a (unencrypted) TCP handshake?
!
How many RTTs are required for a handshake for a TCP flow encrypted with TLS1.2?
!
How does TLS1.3 improve on the time taken to perform a handshake? How many RTTs does it take to set up a TCP flow with TLS1.3?
!
How do initial QUIC handshakes work? How many RTTs doe they take to complete?
!
How do subsquent QUIC handshakes work? How many RTTs do they take? What are they officially called?
!
Does QUIC affect congestion control?
No
What effect does a high latency have on handshake times? How does the number of RTTs taken affect this?
!
Why can’t you combine the handshakes of TCP and TLS into 1?
!
How do initial handshakes work with TCP and TLS 1.2? How many RTTs do they take?
!
How do subsequent handshakes work with TCP and TLS 1.2? How many RTTs do they take?
!
How do initial handshakes work with TCP and TLS 1.3? How many RTTs do they take?
!
How do subsequent handshakes work with TCP and TLS 1.3? How many RTTs do they take?
!
What is a REJ packet?
!
What is a REJ packet composed of?
!
What is an inchotate CHLO packet?
!
What is an inchotate CHLO packet composed of?
!
What is a complete CHLO packet?
!
What is a complete CHLO packet composed of?
!
What is the security flaw of QUIC’s handshakes?
replay attacks
Why are replay attacks possible due to QUIC’s handshakes?
!
What are the 3 solutions to preventing replay attacks with QUIC’s handshakes?
!
Why can you not maintain a global and temporal consistency of QUIC connections on all servers?
!
What are idempotent operations?
!
Why can you not limit hosts to using idempotent operations with 0-RTT QUIC handshakes to prevent replay attacks?
!
How is TCP ill-equipped for mobility?
!
How does QUIC handle host IP address changes?
!
How does QUIC implement mobility?
!
Why is it difficult to retroactively change TCP?
!
Why do middleboxes impede Internet functionality?
!
How do middleboxes violate the end-to-end principle?
!
Why are packets with option headers often discarded by middleboxes?
!
How do packet headers change from TCP to QUIC?
!
How do the packet changes from TCP to QUIC affect middleboxes?
!
What are the pros of QUIC compared to TCP?
!
What are the cons of QUIC compared to TCP?
!
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 basics of how BBR works?
!
What are the issues of TCP Reno? What highlighted these problems?
!
When are links lossy?
!
What is CUBIC?
!
What is the purpose of CUBIC?
!
How does CUBIC work?
!
How are CUBIC’s queue size and capacity related?
!
What are the states of flow management within loss-based congestion control?
!
What are the problems with loss-based congestion control?
!
What does BBR use indtead of congestion avoidance?
!
How does RTT change as the number of bytes in flight at once increases?
!
How does throughput change as the number of bytes in flight at once increases?
!
What is the bottleneck bandwidth?
!
What is BDP?
!
What is the gradient by which throughput increases with the number of bytes in flight at once up to the BDP?
!
What is the gradient by which RTT increases with the number of bytes in flight after the BDP?
!
What is Kleinrock’s optimal operating point?
!
How is the optimum throughput found in loss-based congestion control different to Kleinrock’s optimal operating point?
!
How does the difference between the optimum throughput found in loss-based congestion control and Kleinrock’s optimal operating point highlight an issue with loss-based congestion control?
!
What are the two competing targets of BBR?
!
What is the problem with the two competing targets of BBR?
!
Why does BBR try to detect queueing?
!
How does BBR try to detect queueing?
!
What is the BBR algorithm composed of (give a conceptual overview)?
!
How does the sending rate of BBR change over time? How does this compare to Reno and CUBIC?
!
How does BBR’s sending rate and queue size change over time?
!
How are the sending rate and queue size of BBR related?
!
What are the key pros of BBR?
!
What are the key cons of BBR?
!