Per Session RTT Management
Original Publication Date: 2005-Oct-07
Included in the Prior Art Database: 2005-Oct-07
Disclosed is a method to increase the usefulness of Round Trip Time measurements with minimal CPU impact. A quick internet search will reveal the importance and amount of effort that is being spent on Round Trip Time calculations between a sender and receiver. The problem is that RTTs have a certain amount of randomness and inconsistency associated with them. Nobody is sure which of the standard mathematical dampening and rounding functions are best suited for RTT measurement. Over the last year IBM has researched these issues as they relate to Adaptive Bandwidth Control and found 4 specific ideas that should be applied to Round Trip Time measurements. There are numerous mathematical methods for rounding and dampening a series of data. However, it is difficult to determine which of these methods is most appropriate and computationally feasible for real-time RTT analysis. This invention not only gives 4 simple methods to apply to RTT measurements, but recommendation about the most appropriate configuration for these methods. These methods and values are backed by thousands of test distributions and timing data.
Per Session RTT Management
RTTs can be collected at the TCP socket level, or at the user level by measuring the amount of time from when a packet is sent until the ACK is received. These RTTs should have the following functions applied to them before they are used in more advanced calculations.
1. rtt_max_change - When recording RTTs the max and the min values for a session should not be allowed to change more than 20% above (for max) or below (for min) of their previous value. This will reduce problems caused by spurious extreme RTT values. Overly high or low values will remain "stuck" for the session causing problems with any future analysis.
2. rtt_smoothing - When recording the RTT for any given packet, the measurement should be smoothed by 50% with the previous measurement. This amount of exponential decay will reduce insignificant fluctuations in the times. These normal fluctuations will lead to over-compensation in future analysis if this smoothing is not in place.
3. wait_max - Sometimes ACK's are lost on the network causing RTT processing to wait for a long period of time before sending additional data. If the algorithm has not received an ACK after 30 times the max RTT, then the session should be reset.
4. base_discard - After establishing a connection, the first 3 base RTT measurements should be discarded. We have found that when the distribution is first started unreasonably low base RTT measurements may be recorded.