Re: Linux TCP's Robustness to Multipath Packet Reordering
From: Alexander Zimmermann <hidden>
Date: 2011-04-27 17:06:08
Hi, Am 27.04.2011 um 18:22 schrieb Dominik Kaspar:
Hi Carsten, Thanks for your feedback. I made some new tests with the same setup of packet-based forwarding over two emulated paths (600 KB/s, 10 ms) + (400 KB/s, 100 ms). In the first experiments, which showed a step-wise adaptation to reordering, SACK, DSACK, and Timestamps were all enabled. In the experiments, I individually disabled these three mechanisms and saw the following: - Disabling timestamps causes TCP to never adjust to reordering at all.
Reordering detection with DSACK is broken in Linux. We will fix that in a couple of weeks...
- Disabling SACK allows TCP to adapt very rapidly ("perfect" aggregation!).If you disable SACK, you will use the NewReno detection
- Disabling DSACK has no obvious impact (still a step-wise throughput).
If Timestamps are enabled, Linux use Timestamps for detection. Regardless of DSACK. Timestamp detection is quicker. See RFC3522. (However, in case of an spurious FRet it's not so dramatical. In case of an Spurious RTO, you can avoid the go-back-n behavior)
Is there an explanation for why turning off SACK can be beneficial in the presence of packet reordering? That sounds pretty counter-intuitive to me... I thought SACK=1 always performs better than SACK=0. The results are also illustrated in the following plot. For each setting, there are three runs, which all exhibit a similar behavior: http://home.simula.no/~kaspar/static/mptcp-emu-wlan-hspa-02-sack.png Greetings, Dominik
// // Dipl.-Inform. Alexander Zimmermann // Department of Computer Science, Informatik 4 // RWTH Aachen University // Ahornstr. 55, 52056 Aachen, Germany // phone: (49-241) 80-21422, fax: (49-241) 80-22222 // email: zimmermann@cs.rwth-aachen.de // web: http://www.umic-mesh.net //
Attachments
- PGP.sig [application/pgp-signature] 243 bytes