jerpelea opened a new pull request, #15135:
URL: https://github.com/apache/nuttx/pull/15135
## Summary
when tcp retransmission only double conn->timer in Karn(tcp_timer.c L602),
after retransmission in Jacobson M is is now rtt test will become a negative
value.
```
signed char m;
m = conn->rto - conn->timer; // M is now rtt test
/* This is taken directly from VJs original code in his paper */
m = m - (conn->sa >> 3);
conn->sa += m; //conn->sa is a negative value
if (m < 0)
{
m = -m;
}
m = m - (conn->sv >> 2);
conn->sv += m;
conn->rto = (conn->sa >> 3) + conn->sv; //rto
```
For example,we lost one ack packet, we will set conn->timer = 6 by
backoff,conn->rto still 3. After retransmission we will Do RTT estimation, then
will get
```
conn->sa = 253
conn->rto = 46
```
Then if any packets lost it will wait for a long time before triggering a
retransmission.
Test method.
We can reproduce this issue by adding drop ACK packets in tcp_input, and
debug conn->rto after Jacobson.
*Note: Please adhere to [Contributing
Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md).*
## Impact
RELEASE
## Testing
CI
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]