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]

Reply via email to