From: Bendik Rønning Opstad > Sent: 23 October 2015 21:50 > RDB is a mechanism that enables a TCP sender to bundle redundant > (already sent) data with TCP packets containing new data. By bundling > (retransmitting) already sent data with each TCP packet containing new > data, the connection will be more resistant to sporadic packet loss > which reduces the application layer latency significantly in congested > scenarios.
What sort of traffic flows do you expect this to help? An ssh (or similar) connection will get additional data to send, but that sort of data flow needs Nagle in order to reduce the number of packets sent. OTOH it might benefit from including unacked data if the Nagle timer expires. Being able to set the Nagle timer on a per-connection basis (or maybe using something based on the RTT instead of 2 secs) might make packet loss less problematic. Data flows that already have Nagle disabled (probably anything that isn't command-response and isn't unidirectional bulk data) are likely to generate a lot of packets within the RTT. Resending unacked data will just eat into available network bandwidth and could easily make any congestion worse. I think that means you shouldn't resend data more than once, and/or should make sure that the resent data isn't a significant overhead on the packet being sent. David