140 likes | 242 Views
Options or payload?. Costin Raiciu UCL IETF 78, Maastricht. Outline. We need explicit data ACKs How do we encode Data ACK? Data ACKs in the payload create problems Data ACKs must be encoded in options How do we encode DSN mapping?. We need explicit data ACKs. Data ACK Window.
E N D
Options or payload? Costin Raiciu UCL IETF 78, Maastricht
Outline • We need explicit data ACKs • How do we encode Data ACK? • Data ACKs in the payload create problems • Data ACKs must be encoded in options • How do we encode DSN mapping?
We need explicit data ACKs Data ACK Window Receive Window [ , ] 1 2 10,1 [1, ] 20,2 [1,2] ACK 20, WND 0 1 0 ACK 10,WND 1 3 1 11,3 Drop Packet loss = congestion
We need explicit data ACKs Data ACK Window Receive Window [ , ] 1 2 10,1 [1, ] 20,2 20,3 -----------------APP READ [2, ] ACK 20, WND 1 1 1 ACK 10,WND 1 3 1 11,3
Data ACKs must be explicit • Otherwise flow control does not correctly work • This may matter more often than we think • Stacks normally use as little buffering as possible • How do we encode data ACKs?
Problems with Data ACKs in the payload • Data ACKs are congestion controlled • Head of line blocking of Data ACKs due to packet loss affect forward throughput • HoL blocking during Fast Retransmit, Timeouts • Data ACKs are flow controlled • Potential deadlocks, can in principle be avoided
Experiment Router OpenVPN Server OpenVPN Client • OpenVPN plaintext tunneling • TCP over TCP • TCP over UDP • Baseline: • TCP over TCP tunneling: 93Mbps • TCP over UDP tunneling: 94Mbps 100Mbps,<1ms
Experiment: ACK path congestion OpenVPN Transfer TCP transfers Throughput(Mb/s) Number of Reverse Path TCP connections
Fixing Head of Line blocking • Possible fix: use escape sequences instead of TLV • Overhead to escape payload • Need to scan all payload in kernel • No hardware acceleration (for now) • Need to linearly search payload when HoL • Performance will be poor • Better fix: use options
What about Data Sequence Mapping? • In payload • Can get away with simpler solutions for finding payload length changes due to middleboxes • No space restrictions • In options • We are using options anyways, we might as well keep the payload unmodified • Space is tighter, but can fit multipath without removing existing options • Future TCP extensions require extending the options space
Conclusions • Options are the architecturally cleaner approach • Can get through middleboxes • Otherwise protocol detects and quickly falls back to TCP • Data ACKs must be transmitted out of band • Options are the only feasible alternative • Data Sequence Mapping may be sent in band • Slight advantage for payload • Which one do people prefer?
Experiment: bidirectional transfer OpenVPN Transfer TCP transfers Throughput(Mb/s) Number of TCP connections