sireliah / dragit

Application for intuitive file sharing between devices.
GNU General Public License v3.0
140 stars 4 forks source link

TCP retransmittion probable cause #26

Closed Winterhuman closed 2 months ago

Winterhuman commented 2 years ago

I saw under Maintenance that "TCP retransmissions - what is wrong?" has been a problem for you, a project using go-libp2p called Hyprspace had the same issue.

From what the developer told me, he found that Libp2p sends 1.5 packets at a time, if you don't read the packets correctly the half-packets get dropped and have to be re-transmitted, it's likely the same case in Dragit.

Here's what they did to fix this, hopefully the code is still useful even though it's written in Go and this is a Rust project: https://github.com/hyprspace/hyprspace/commit/20c306ddcbd15bccbcdd20359189e9b2fce246c6

sireliah commented 2 years ago

Nice, thanks for the suggestion. I observed the re-transmissions by doing the routine check in network traffic dump on wireshark. Apparently the re-transmissions don't seem to have any serious impact of the performance, but I'll keep that link!