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

No NSTART parameter in TCP transport #535

Open
dvn0 opened this issue Feb 15, 2024 · 2 comments
Open

No NSTART parameter in TCP transport #535

dvn0 opened this issue Feb 15, 2024 · 2 comments
Assignees

Comments

@dvn0
Copy link

dvn0 commented Feb 15, 2024

Latency between client and server appears to negatively impact throughput when using the TCP transport. After some discussion, and testing I think allowing for adjusting the NSTART parameter could improve the situation.

It's implemented in the UDP client, but not TCP.

nStart *atomic.Uint32

@jkralik
Copy link
Member

jkralik commented Mar 1, 2024

@dvn0 When CoAP is used over TCP, it relies on the congestion control mechanisms provided by the underlying TCP transport layer. TCP itself has well-established congestion control algorithms, and CoAP benefits from these without introducing specific congestion control parameters like "Nstart."

If you employ BlockWise transfer via TCP, it becomes a bottleneck. However, for TCP, BlockWise transfer is unnecessary for large payloads.

@dvn0
Copy link
Author

dvn0 commented Mar 1, 2024

Thank you for the response and info @jkralik. I followed your advice and disabled the blockwise transfer, but this actually incurred a significant throughput penalty.

I think I'm disabling it correctly: https://codeberg.org/eris/eris-go/commit/870f6471c0076dcf820a45bdd897a3cb97198b42

Any ideas?

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