-
Notifications
You must be signed in to change notification settings - Fork 79
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
Add T3-rtx timer and congestion control #11
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
One consideration: |
As well as time.Since |
I am going to start working on this issue form this weekend. The implementation would somewhat relate to congestion control, #14 and likely #21 would be addressed all together. During the work of pion/webrtc#334, I ran a test with lossy connections using Network Link Conditioner. I noticed nearly 40% of the time, data channel establishment stalled (at 10% packet loss ratio on both directions) although ICE state becomes connected, which is due to the lack of INIT and COOKIE ECHO retransmissions. This is very crucial for the real world use cases. So, I am thinking about implementing those in this work as well. Retransmission timers missing:
|
Added rtoMin/Max cap, timeout failure and more tests. Fixed some racde codntions Relates to #11
Also add timer ID for observers to distinguish timers Relates to #11
To be used by testing in sctp Relates to pion/sctp#11
Also simplified rtxTimer code Relates to #11
I created a separate issue #24 for T1-init/cookie timers as I'd like to make these timers available earlier. |
Also simplified rtxTimer code Relates to #11
To be used by testing in sctp Relates to pion/sctp#11
To be used by testing in sctp Relates to pion/sctp#11
Also simplified rtxTimer code Relates to #11
Use errors.Errorf cosistently within association.go Resolves #11
Do not capitalize the beginning of the error message Resolves #11
All printing to stdio must be done via pion/logging, all calls to common printing functions will not cause CI to fail Resolves #11
I found a bug in handleForwardTSN() sending SACK to every single FowardTSN. The SACK again generates ForwardTSN beyond advancedPeerTSNAckPoint. According to RFC 3758 Sec 3.6, SACK should only be sent when FowardTSN's newCumulativeTSN is the current peerLastTSN or behind - which was not correctly implemented! I have locally confirmed that this fixed the "snowballing effect", and my stress test passed. |
Fixed a typo in the comment Put pendingQueue in a separate file Made T3 timer not to stop (rtx forever) Other minor cleanups Resolves #11
Optimized the pending queue. Resolves #11
Cleaned up comments Removed one last fmt.Print* Adjusted Congestion Avoidance test duration Resolves #11
Use errors.Errorf cosistently within association.go Resolves #11
Do not capitalize the beginning of the error message Resolves #11
All printing to stdio must be done via pion/logging, all calls to common printing functions will not cause CI to fail Resolves #11
https://tools.ietf.org/html/rfc4960#section-6.3.3
The text was updated successfully, but these errors were encountered: