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
What are connection IDs in quic?
Connection identifiers which are used instead of 5-tuple (proto, src ip, src port, dst ip, dst port) -> allows chaning port and ip
26
What QUIC packet types do exist?
- Version negotiation packet - initial packet - retry packet - handshake packet
27
How does QUIC perform loss detection and re-ordering?
Retransmissions have differen packet numbers -> stream offset allows in-order deliver selective and negative ACKs
28
How does QUIC cope with handshakes?
0-RTT handshake: reuse old connections | 1-RTT handshake: combine TCL & TLS 'components'
29
How does a QUIC 1-RTT handshake work?
ClientHELO -> Server Server -> Reject incl Certificate info ClientHELO enc'ed -> Server (include cert) ServerHELO enc'ed -> Client
30
What is head-in-line blocking? And how does QUIC fix it?
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
Why can quick be developed faster?
Not implemented in kernel: UDP Is but does not change, QUIC can be updated
32
Name the 5 goals quick wants to fullfil.
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