Lehrstuhl Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München Measuring TCP Tail Loss Probe Performance Andre Ryll, B.Eng.
Content TCP Basics revisited Facts TCP Header TCP Loss Recovery Duplicate ACKs Selective ACKs Retransmission Timeout Tail Loss Probe Test Setup Measurements Results Conclusion TCP Tail Loss Probe 2
TCP Basics – What you should know ISO OSI Layer 4 (Transport Protocol) Connection oriented Reliable (retransmissions) Ordered (sequence numbers) Error-Checked (checksum) Stream of octets Counterpart: UDP (message oriented, unreliable, out-of-order) TCP Tail Loss Probe 3
TCP Basics – Header SYN flag Synchronize sequence number, set once during connection setup FIN flag No more data from sender ACK flag ACK field is valid acknowledgment number Next expected sequence number sequence number Octet sequence number TCP Tail Loss Probe 4
TCP Example Flow (Tail) TCP Tail Loss Probe 5
TCP Basics How does TCP recover from loss? TCP Tail Loss Probe 6
TCP Loss – Duplicate ACK (DACK) TCP Tail Loss Probe 7
TCP Loss – Selective ACK (SACK) TCP Tail Loss Probe 8
TCP Basics What if the tail of the message is lost? TCP Tail Loss Probe 9
TCP Loss – Retransmission Timeout (RTO) TCP Tail Loss Probe 10
Tail Loss Probe (TLP) TCP Tail Loss Probe 11
Tail Loss Probe (TLP) losses After TLP Repair AAAL AAAA TLP Probe AALL AALS Early Retransmit (ER) ALLL ALLS Early Retransmit (ER) LLLL LLLS Forward ACK >=5 L ..LS Forward ACK A: ACKed segment L: Lost segment S: SACKed segment TCP Tail Loss Probe 12
Test Setup Mininet Virtual Network Lightweight and fast network setup with kernel support nginx webserver lynx webbrowser with – dump option iptables for packet filtering TCP Tail Loss Probe 13
Test Setup Mininet Virtual Network H1 configuration Lightweight and fast network Inbound traffic passes to nginx setup with kernel support Outbound nginx webserver non-TCP pass lynx webbrowser with – dump TCP NFQUEUE option C/C++ user-space application iptables for packet filtering „ tcpfilter “ tracks HTTP data Last segments are dropped TCP Tail Loss Probe 14
Measurements Transfer size: 100 segments (approx. 144kB) Varying tail loss: 0 – 20 segments Varying network conditions sysctl interface to change TCP parameters Measured: Time to first retransmitted packet: t recover Total transfer time: t total Type Bandwidth RTT Option plain ER TLP high-speed 100MBit/s 10ms tcp_early_retrans 0 2 3 mobile 7.2MBit/s 100ms tcp_fack 0 1 1 satellite 1MBit/s 800ms tcp_sack 0 1 1 TCP Tail Loss Probe 15
Results – Time to retransmit Legend: plain ER TLP high-speed network TCP Tail Loss Probe 16
Results – Total transfer time high-speed mobile Legend: plain ER TLP satellite TCP Tail Loss Probe 17
Results – Numbers! high-speed Plain ER TLP 0.3595 +0.6% 0.3574 0.2214 -38% t total t recover 0.2396 +1.3% 0.2365 0.0447 -81% mobile Plain ER TLP t total 1.2091 -1.7% 1.2300 1.0944 -11% t recover 0.4392 +7.8% 0.4073 0.3310 -19% satellite Plain ER TLP t total 8.2145 -0.1% 8.2248 8.1948 -0.4% t recover 2.4792 +0.3% 2.4720 2.4331 -1.6% (5 lost packets) TCP Tail Loss Probe 18
Conclusion TLP is an improvement in all tested cases Time to first retransmission reduced by up to 81% Total transfer time reduced by up to 38% My measurements show: No benefit for single lost segment Little benefit in high-delay networks • Although it would be very important in those networks TCP Tail Loss Probe 19
Thank you! QUESTIONS? TCP Tail Loss Probe 20
Recommend
More recommend