Re: [webrtc-extensions] Add RTOMax to RTCDataChannelInit (#71)

@lgrahl I didn't realize all data channels share the same SCTP channel. It makes perfect sense and IMO we shouldn't complicate and support multiple SCTP channels for the same peer connection. As this is the case I prefer to change this issue to be about adding RTOMax to peer connection. 

Once we have, it's going to be easier for me to set the RTOMax for real time performance (2-3 seconds) and let SCTP manage the rate. For file transfers I can use data channel's `bufferedAmountLowThreshold` to ensure I'm not overflowing the buffer.

While adding RTOMax to the peer connection will solve my problem I think we can do better. The best solution will be to change the SCTP RFC which does a poor job of defining the retransmission timeout:

> The computation and management of RTO in SCTP follow closely how TCP manages its retransmission timer.

When TCP was developed in the early '80s edge router congestion was the nut to crack. The few who had access to the internet were transferring files and succesfully completing a transfer was all that matter. You would normally run a large transfer overnight an praying for success. Performance was slow, very slow but we were all too impressed with the magic of transferring a file over the net to care.

The Exponential backoff retransmission timer has no place in real time communications. I'm not sure where to suggest such a change so if anyone can point me in the right directions I'll take it with the IETF.

The next best thing will be to change WebRTC's recommendation for the default RTOMax to 3 seconds from 60 seconds today. I imagine many more users on congested network are suffering from data channels freezes. When congestion happens, the users of this millennium never wait 60 seconds for the app to recover. 


-- 
GitHub Notification of comment by daonb
Please view or discuss this issue at https://github.com/w3c/webrtc-extensions/issues/71#issuecomment-796884783 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 11 March 2021 16:55:20 UTC