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

Congestion Control Algorithm #6

Open
ShadowJonathan opened this issue Dec 3, 2021 · 2 comments
Open

Congestion Control Algorithm #6

ShadowJonathan opened this issue Dec 3, 2021 · 2 comments
Assignees

Comments

@ShadowJonathan
Copy link
Member

One thing I noticed when researching CoAP Block-wise transfer and other "concurrent transfer" over a single CoAP connection, is that CoAP has a very simple retransmission mechanism; One packet in flight, 1s timeout at the start, and exponential increase when the timeout expires.

This, for obvious reasons (especially the "one packet in flight" bit) can averse effects on the usage of this library, it'd allow 1/RTT rate of packets, with no way to take advantage of link width, and being bound to link latency.

However, choosing the wrong Congestion Control algorithm could have other averse effects on the library, causing random delays up to the retransmission timeout, if one packet gets missing between a sea of others.

The best congestion control algorithm would be one that is able to a. react efficiently to a changing network connection, and b. be able to utilise a network connection efficiently, and c. be stable in its default throughput (no to less jitter).

Research in this area is needed.

@ShadowJonathan
Copy link
Member Author

Specifically, section 4.7 specifies a NSTART of 1, with no wording to dynamically stray from that.

@ShadowJonathan
Copy link
Member Author

Just to illustrate how significant figuring this out is, ill echo what i said in the MSC here;

As an example, taking a block-wise transfer, with a SZX (size) of 1024 bytes, and an RTT of 300ms, would get me a theoretical transmission rate of 3.5KBps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant