How to stop your bathtub from overflowing

Venkatesh Srinivas (S2 '18) & Sid Shanker (S1'18)

TCP Goals

Sender

Sender

Router

Receiver

1 GB/s

1 GB/s

1 GB/s

Sender

Link

Packets waiting to send

Router

TCP: Goals

TCP tries to estimate the bandwidth of a link.

How big a window is "too big"?

Packet loss (bathtub overflowing)

 

Sending window over time

No active queue management

It turns out, managing the queue differently can help!

Introducing:

RED

Drop packets before the queue is full

 

Introducing:

RED

Drop packets before the queue is full

 

Maybe.

Packet 

Packet 

Packet :(

Packet 

Packet 

Packet 

Packet 

Packet 

Packet 

Packet 

A queue using RED

With traditional droptail

With RED

But, sometimes, this would happen:

We only measure the average queue length when an item is added to the queue.

"What's an average?"

Turns out, the "spike" was having a HUGE impact on our average queue depth.

Solution: use time!

By decaying the average over time, we allow our algorithms to recover.

Solution: read the paper!

Talk for Localhost

By Sid Shanker

Talk for Localhost

  • 719