Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing RTO update for timed-out stream not ESTABLISHED #13

Closed
GroBam opened this issue Jul 28, 2015 · 4 comments
Closed

Missing RTO update for timed-out stream not ESTABLISHED #13

GroBam opened this issue Jul 28, 2015 · 4 comments

Comments

@GroBam
Copy link

GroBam commented Jul 28, 2015

In timer.c, function HandleRTO, there is a condition

/* update rto timestamp */
if (cur_stream->state >= TCP_ST_ESTABLISHED) {

So only stream which is ESTABLISHED or has state above will be updated its rto value.

Otherwise, stream like SYN_SENT will not and continues using old rto (1000ms) => not obey the RFC

@eunyoung14
Copy link
Member

Hi, the states under established will be SYN_SENT or SYN_RCVD state.
In those states, there will be no ACK received from the peer, meaning that no RTT has been calculated.
Do you mean we need to do exponential backoff for this case?

@GroBam
Copy link
Author

GroBam commented Jul 31, 2015

I remember that RTT only involves in calculating RTO of streams established.

For SYN_SENT, the new RTO will be the old one multiple by 2. Which equals to (initial timeout)* 2^n
n is number of retransmission times
Most of the times, initial timeout of TCP will be 1 second so that the RTO of stream will be 2^n

@GroBam
Copy link
Author

GroBam commented Jul 31, 2015

You can view some streams in that circumstance in wireshark, their RTO grow exponential

@eunyoung14
Copy link
Member

Ok. I'll make the following update for this.

eunyoung14 pushed a commit that referenced this issue Aug 14, 2015
junzhuimx pushed a commit to nxp-mcuxpresso/mtcp that referenced this issue Mar 17, 2023
Merge in GITAM/mtcp from ~NXA12342/mtcp:master-fix to mtcp-dpdk-21.11

* commit 'a9bac50f2d0bb2ee5659b74a5e2fc0ffee15e450':
  scr: update package category
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants