3 ms·
This is a great way to detect non-tail losses, and should definitely be a part of TCP implementations. I hope this gets turned into an RFC and pushed through th
by keithwinstein 8y ago
This is a great way to detect non-tail losses, and should definitely be a part of TCP implementations. I hope this gets turned into an RFC and pushed through the standards process and widely deployed.
I do hesitate a bit about Google calling it a "new loss detection algorithm" and talking about how "the key innovation in RACK is to use a per-packet transmission timestamp." The same approach was previously described by Sprout in 2013, and I'd bet by a lot of other people before that. ("The assumption underlying this method is that while the network may reorder packets, it will not reorder two packets that were sent more than 10 ms apart. Thus, once the receiver actually gets a packet from the sender, it can mark all bytes (up to the sequence number of the first packet sent within 10 ms) as received or lost, and only keep track of more recent packets." https://www.usenix.org/system/files/conference/nsdi13/nsdi13-final113.pdf https://www.usenix.org/system/files/conference/nsdi13/nsdi13...) The IRTF awarded this one of their Applied Networking Research Prizes that year, so it's not like it was totally just on the academic plane.
Which is not to say Google isn't making 90% of the important contribution by measuring and documenting how valuable this is in real life, defining and implementing it in the context of TCP, standardizing it, getting an RFC, etc. It's just not quite as new as the I-D seems to suggest.
- jsnell 8y agoWe used per-packet tx timestamps and timer based reordering detection in Teclo's TCP stack[0] in 2011 and later. The important bits with a time-based reordering detection heuristic are to a) make it dynamically adjust to observed network conditions, b) make it take into account some of the factors that affect reordering probability. E.g. reordering is much more likely for packets of different size than of the same size. BTW, the assumption you quoted that there won't be more than 10ms of reordering is false. Reordering of up to 50ms was common in mobile networks. [0] https://www.snellman.net/blog/archive/2015-08-25-tcp-optimization-in-mobile-networks/ https://www.snellman.net/blog/archive/2015-08-25-tcp-optimiz...
- baybal2 8y ago> This is a great way to detect non-tail losses, and should definitely be a part of TCP implementations. Imagine implementing that on a microcontroller. Per packet timestamping on an MCU will stand in the way of having NIC poll in same loop as the program code.