TCP/UDP/QUIC Flashcards

1
Q

Name some specialitites of TCP

A
  • Connection oriented
  • in-sequence delivery of byte stream
  • Reliable (bit error detection, TransportService DU loss detection & retransmit)
  • Flow control (do not overwelm receiver)
  • Congestion control (does not overwelm network
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How does the sender know that packets are lost?

A
  • Ack is not received in timeout
  • Multiple duplicate ACKs: reordering or packet loss
    3 duplicate ACKs -> fast retransmit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Name the formular for estimating a TCP rtt

A

(1-a) * estimated RTT + a* sampleRTT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What two parameters do we need to know for effective congestion control?

A
  • RPprop: round trip propagation delay

- BtlBw: Bottleneck Bandwidth

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the BDP?

A

Capacity how much data the link can “take”/hold

RTprop * BtlBw

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can you measure the fairness of multiple tcp flows?

A
Jain's fairness index
\+returnval: 0-1
\+scale free
\+ arbitraty num of flows
\+k/n for perfectly fair flows (if rest is 0) 

(sum flows)^2 / n * sum(flows^2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Which congestion control algorithms exist for TCP?

A
TCP Tahoe (slow start, congest avoid)
TCP Reno (fast retransmit, fast recovery)
TCP Vegas (delay based, keep rtt const) 
TCP Cubic (loss based)
TCP BBR (mix, keep 1 BDP inflight)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How do loss based cc algorithms work and what are advantages and disadvantages?algorithms?

A

no loss -> increase congest windows
loss -> decrease window

+ robust, reliable, efficient
- buffers kept full, high latency and perf drop on lossy links

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How does TCP reno work?

A

AIMD: additive increase multiplicative decrease

CWND: congest wdw
sstresh: slow start thres

slow start: increase for every ack by 1 mss
congest avoid: effect. increase by 1mss every RTT

3 dupl acks: sstresh = CWND / 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How does TCP Cubic work?

A

Loss based; estimate bandwitdth and try to use it. If nothing lost, explore for more
-> congestion window growth modeled after cubic function plateau. tries to recover fast to the bandwidth of last packet loss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are advantages and disadvantages of TCP Cubic?

A

+ cwnd growth independent of rtt
+ scalable to high BDP networks
+ more resilient against single packet loss

  • buffers are filled faster
  • buffers kept filled
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How do delay based congestion control algorithms work and what are the advantages and disadvantages?

A

Measure delay to detect congestion. RTT increase: buffer filling somewhere.

+ less restrained by random packet loss
+ early congestion detection
+ high throughput w/ low latency
- one loss-based flow cancels all advantages
- poor performance against loss based flows

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How does TCP Vegas work?

A

AIAD: Additivite increase additive decrease

continously measure rtts
delta = CWND * (RTT - RTTmin)/RTT
if delta > beta: decrease by 1mss
if delta < alpha: increase by 1 mss

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When do you use loss based algorithms?

A

Background applications like update download - LEDBAT low extra delay background transport

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the base idea of TCP BBR?

A

measure bottleneck bandwidth and RTT. -> same operation point as delay based algorithms.
max bandwidth is determined by weakest link.

Keep 1 BDP inflight: optimal usage
Send with BtlBw: do not create queues

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Pacing vs ACK-clocking?

A

Pacing: control transmissions of packets of a windows across entire rtt

ACK-clocking: arrival rate of acks limits sending
bursts (ack compress, slow start, retransmissions) can create queues even if link is not used

17
Q

Describe the startup phase of TCP BBR

A

Startup: double sending rate every RTT. Stop after 3 cons RTTs with < 25% delivery rate
-> Measure BtlBW

18
Q

Describe the drain phase of TCP BBR

A

Drain: remove queue from startup

19
Q

Describe the probe bandwidth phase of TCP BBR

A

Probe bandwidth: BtlBw * pacing gain
if no bw available: reduce sending rate afterwards
if bw available: BtlBw gets updated to increase sending rate

20
Q

Describe the probe rtt phase of TCP BBR

A

Probe RTT: every 10s probe for RTprop -> Drain queues and measure. Mult BBR flows have to synchronize

21
Q

What are advantages and disadvantages of BBR?

A

+robust against rand packet loss
+low delay, high BW usage
+close to optimal operation point
+ no starve against other cc

  • alternating probeBW leads to 1.5 BDP
  • Shallow buffers -> high amount of retransmissions
  • flows w larger RTT receive larger BW than flows with lower RTT (opposite in Reno/Cubic)
22
Q

What is UDP?

A
  • Connection less transport protocol
  • bit error correction
  • no flow or congest control
  • no reordering, loss detect, or recovery
23
Q

What is SCTP?

A
Stream control transmission protocol
- multi homing
- multiple streams
- advantages of tcp &amp; udp
But: poor adaptation, middleboxes often dropped packets (unknown protocol)
24
Q

What is QUIC?

A

Quick UDP Internet Connections

substitute of TCP/TLS

  • decrease handshake delay
  • middlebox resistance
  • ip mobility
  • fast development cycles
25
Q

What are connection IDs in quic?

A

Connection identifiers which are used instead of 5-tuple (proto, src ip, src port, dst ip, dst port)
-> allows chaning port and ip

26
Q

What QUIC packet types do exist?

A
  • Version negotiation packet
  • initial packet
  • retry packet
  • handshake packet
27
Q

How does QUIC perform loss detection and re-ordering?

A

Retransmissions have differen packet numbers -> stream offset allows in-order deliver

selective and negative ACKs

28
Q

How does QUIC cope with handshakes?

A

0-RTT handshake: reuse old connections

1-RTT handshake: combine TCL & TLS ‘components’

29
Q

How does a QUIC 1-RTT handshake work?

A

ClientHELO -> Server
Server -> Reject incl Certificate info

ClientHELO enc’ed -> Server (include cert)
ServerHELO enc’ed -> Client

30
Q

What is head-in-line blocking? And how does QUIC fix it?

A

Lost tcp packet blocks all subsequent packets (including other streams) (in-order property of tcp).
Quick offers multiple streams. Retransmission blocks on stream-level not connection-level.

31
Q

Why can quick be developed faster?

A

Not implemented in kernel: UDP Is but does not change, QUIC can be updated

32
Q

Name the 5 goals quick wants to fullfil.

A

1 Minimize connection establishment and transport latency
2 No head of line blocking
3 Requiring only changes to path endpoints to enable deployment (not middleboxes)
4 Multipath & fwd error correction
5 always secure, tls1.3