 
              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