Method, apparatus, and computer readable media for dynamically updating a retransmission timeout period
The present disclosure describes method, apparatus, and computer readable media for dynamically updating a retransmission timeout (RTO) period for data transmissions in a communication system. In an aspect, the method comprises a first step of computing a round-trip time (RTT) period for a successful data transmission between a client and a server in the communication system. The method also comprises a second step of updating the RTO period after the successful data transmission based at least on the computed RTT period. Finally, the method comprises repeating the first and second steps after every M th successful data transmission, wherein M is an integer with a value greater than 1.
1 . A method of dynamically updating a retransmission timeout (RTO) period for data transmissions in a communication system, the method comprising:
computing a round-trip time (RTT) period for a successful data transmission between a client and a server in the communication system;
updating the RTO period after the successful data transmission based at least on the computed RTT period;
setting a value as a lowest value of M from a range of values for M;
repeating the computing and updating after every M th successful data transmission, wherein M is an integer with a value greater than 1; and
at regular intervals, incrementing the value of M starting from the lowest value within the range of values for M.
2 . The method according to claim 1 , further comprising:
setting a value of M to a fixed value.
3 . The method according to claim 1 , further comprising:
determining a range of values for M based on a current network traffic; and
at different intervals, selecting a value of M from the range of values for M.
4 . The method according to claim 3 , further comprising:
updating the range of values for M upon detecting a change in the current network traffic; and
at different intervals, selecting a value of M from the updated range of values for M.
5 . The method according to claim 1 , further comprising:
at different intervals, randomly selecting a different value of M from a range of values for M.
6 . The method according to claim 1 , further comprising:
upon detecting that the value of M has reached a particular value within the range of values for M, decrementing the value of M at regular intervals starting from the particular value.
7 . The method according to claim 1 , wherein updating the RTO period after the successful data transmission based at least on the computed RTT period comprises:
computing the RTO period after the successful data transmission using:
RTO
n
=
[
(
RTO
n
-
1
)
*
(
n
-
1
)
]
+
RTT
n
n
where,
n is a sequence number of the successful data transmission, RTO n is the RTO period after the successful data transmission, RTO n-1 is an immediate previous RTO period, and RTT n is the RTT period for the successful data transmission.
8 . The method according to claim 1 , further comprising:
continue updating the RTO period after every M th successful data transmission until the RTO period falls within a defined range, wherein the defined range is dynamically updated.
9 . An apparatus for dynamically updating a retransmission timeout (RTO) period for data transmissions in a communication system, the apparatus comprising:
a memory; and
at least one processor communicatively coupled with the memory and configured to:
compute a round-trip time (RTT) period for a successful data transmission between a client and a server in the communication system;
update the RTO period after the successful data transmission based at least on the computed RTT period;
set a value as a lowest value of M from a range of values for M;
repeat the computing and updating after every M th successful data transmission, wherein M is an integer with a value greater than 1; and
at regular intervals, increment the value of M starting from the lowest value within the range of values for M.
10 . The apparatus according to claim 9 , wherein the at least one processor is further configured to:
set a value of M to a fixed value.
11 . The apparatus according to claim 9 , wherein the at least one processor is further configured to:
determine a range of values for M based on a current network traffic; and
at different intervals, select a value of M from the range of values for M.
12 . The apparatus according to claim 11 , wherein the at least one processor is further configured to:
update the range of values for M upon detecting a change in the current network traffic; and
at different intervals, select a value of M from the updated range of values for M.
13 . The apparatus according to claim 9 , wherein the at least one processor is further configured to:
at different intervals, randomly select a different value of M from a range of values for M.
14 . The apparatus according to claim 9 , wherein the at least one processor is further configured to:
upon detecting that the value of M has reached a particular value within the range of values for M, decrement the value of M at regular intervals starting from the particular value.
15 . The apparatus according to claim 9 , wherein to update the RTO period after the successful data transmission based at least on the computed RTT period, the at least one processor is further configured to:
compute the RTO period after the successful data transmission using:
RTO
n
=
[
(
RTO
n
-
1
)
*
(
n
-
1
)
]
+
RTT
n
n
where,
n is a sequence number of the successful data transmission, RTO n is the RTO period after the successful data transmission, RTO n-1 is an immediate previous RTO period, and RTT n is the RTT period for the successful data transmission.
16 . The apparatus according to claim 9 , wherein the at least one processor is further configured to:
continue updating the RTO period after every M th successful data transmission until the RTO period falls within a defined range, wherein the defined range is dynamically updated.
17 . A non-transitory computer readable media comprising one or more instructions which, when executed by at least one processor of an apparatus, cause the apparatus to perform the method according to claim 1 .