Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to "verify" your details, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.
 Entire forum ➜ MUSHclient ➜ Suggestions ➜ setsockopt TCP_NODELAY on mushclient's TCP

setsockopt TCP_NODELAY on mushclient's TCP

It is now over 60 days since the last post. This thread is closed.     Refresh page


Posted by Khannon   (32 posts)  Bio
Date Fri 29 Apr 2022 08:35 PM (UTC)

Amended on Sat 30 Apr 2022 02:54 PM (UTC) by Khannon

Message
I've used software called Leatrix Latency Fix(LLF) since I started using Mushclient, during my PC upgrade in 2016, I noticed how MushClient was somehow slow compared to before (with an older PC that had LLF installed). Couldn't figure it out for a very long time, until I remembered LLF.

Also going to post this from Fiendish:

Please drop a suggestion in the mushclient forum for Nick to:

"setsockopt TCP_NODELAY mushclient's TCP sockets because mushclient is unlikely to benefit from nagle's algorithm."

Edit: "and maybe also TCP_QUICKACK"
Top

Posted by Nick Gammon   Australia  (23,070 posts)  Bio   Forum Administrator
Date Reply #1 on Sun 01 May 2022 06:12 AM (UTC)
Message
I'm having a few problems with my build environment (it's still Windows XP) so I'll see if my colleague Fiendish can do it for you. :)

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Fiendish   USA  (2,533 posts)  Bio   Global Moderator
Date Reply #2 on Mon 02 May 2022 03:56 PM (UTC)

Amended on Mon 02 May 2022 04:06 PM (UTC) by Fiendish

Message
I have a test build that sets TCP_NODELAY (the download link should be available for one month)
https://ci.appveyor.com/api/buildjobs/5jaqk7418lld82fh/artifacts/MUSHclient.exe

It does not set SIO_TCP_SET_ACK_FREQUENCY (the windows equivalent of TCP_QUICKACK) because that is not well documented and less portable and therefore harder for me to assess. But here is how cygwin does that flag for future reference: https://cygwin.com/git/?p=newlib-cygwin.git;a=commitdiff;h=ee2292413792f0360d357bc200c5e947eae516e6

John Nagle appears to think that disabling ACK delays systemwide is almost always a good idea (https://news.ycombinator.com/item?id=10608356). I'm not sure why Microsoft enables ACK delays then, but the registry entry for toggling it globally appears to be https://docs.microsoft.com/en-US/troubleshoot/windows-server/networking/registry-entry-control-tcp-acknowledgment-behavior (set the TcpAckFrequency value to 1). If Nagle thinks it's a good idea, I might see if I can just make my installer flip that registry flag.

Maybe people can test these things out independently because I don't have a Windows setup myself to test with.

https://github.com/fiendish/aardwolfclientpackage
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


6,746 views.

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.