Tuning Windows 10 for Protocol-2
Posted: Sun Feb 03, 2019 3:23 pm
This is probably the right place to post this, rather than "Network Connections & Network Hardware" since this mostly has to do with P2 and that other topic it mostly about hardware.
After some recent experimenting with Windows 10 network settings, I came across one that made a big difference in reducing UDP glitches and sequence errors that cause audible artifacts in the audio streams and visual ones in the display. I'm running firmware v1.6pre and Thetis 2.6.2 with the ANAN-8000DLE, and have been experiencing these discontinuities in the data streams over a dedicated Ethernet connection. By enlarging two socket buffer sizes I have seen a dramatic improvement with my setup. From what I've read on various forums, the default size of these buffers is 8k which is too small for UDP, particularly at high network speeds.
This change involves adding two new values to a registry entry - DefaultReceiveWindow and DefaultSendWindow. If you're uncomfortable playing with Windows internals this might be beyond your comfort level. If so, either don't do it, or at least make a backup of your registry so you can undo things. Obviously if you're not having any drop-outs, audio glitches, Seq errors, etc., you probably don't need to do it. But it's pretty simple.
Here's how it's done:
1) Start the registry editor (regedit) by typing "regedit" (without quotes) in the Windows search entry field next to the start button. Then click on regedit when it appears in the list above near "Best Match". Click Yes when it prompts you with the security warning.
2) In the navigation pane to the left, click down to the following key entry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\AFD\Parameters
and single left-click on it (i.e. on "Parameters").
3) Right-click in the blank space in the right-side pane and choose "New - DWORD (32 bit) value" from the menu. A new value called "New Value #1" appears with the name highlighted.
4) Change the name of the new value to DefaultReceiveWindow (make sure to spell it correctly) and hit enter or click elsewhere to make it take effect
5) Right-click on this new entry and choose "Modify..."
6) In the popup window, make sure the Hexadecimal radio button is selected, enter 200000 in the Value data field, and click OK.
7) Repeat steps 3, 4, 5, and 6, but name this next new value DefaultSendWindow. You should now have two new values under "Parameters"
8) Close regedit and reboot Windows 10.
The above modification increases the default buffer sizes to 2M. I tried 20k and it had no effect and I haven't played around with the value any further. But at this level, in operating for hours over the past day or so, I no longer see or hear any glitches in data streams in either direction (to or from the radio) and the Seq errors are gone almost entirely. I still see a Seq->2 very rarely, always on a T/R transition, but never accompanied by any other symptom heard in audio or seen on the display.
I wondered about the effect on latency but I honestly have not noticed any whatsoever, even on high speed CW and FT8. I haven't attempted to measure it though (yet).
Anybody see any down side to this? I'm no Windows expert, but happy with the results.
After some recent experimenting with Windows 10 network settings, I came across one that made a big difference in reducing UDP glitches and sequence errors that cause audible artifacts in the audio streams and visual ones in the display. I'm running firmware v1.6pre and Thetis 2.6.2 with the ANAN-8000DLE, and have been experiencing these discontinuities in the data streams over a dedicated Ethernet connection. By enlarging two socket buffer sizes I have seen a dramatic improvement with my setup. From what I've read on various forums, the default size of these buffers is 8k which is too small for UDP, particularly at high network speeds.
This change involves adding two new values to a registry entry - DefaultReceiveWindow and DefaultSendWindow. If you're uncomfortable playing with Windows internals this might be beyond your comfort level. If so, either don't do it, or at least make a backup of your registry so you can undo things. Obviously if you're not having any drop-outs, audio glitches, Seq errors, etc., you probably don't need to do it. But it's pretty simple.
Here's how it's done:
1) Start the registry editor (regedit) by typing "regedit" (without quotes) in the Windows search entry field next to the start button. Then click on regedit when it appears in the list above near "Best Match". Click Yes when it prompts you with the security warning.
2) In the navigation pane to the left, click down to the following key entry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\AFD\Parameters
and single left-click on it (i.e. on "Parameters").
3) Right-click in the blank space in the right-side pane and choose "New - DWORD (32 bit) value" from the menu. A new value called "New Value #1" appears with the name highlighted.
4) Change the name of the new value to DefaultReceiveWindow (make sure to spell it correctly) and hit enter or click elsewhere to make it take effect
5) Right-click on this new entry and choose "Modify..."
6) In the popup window, make sure the Hexadecimal radio button is selected, enter 200000 in the Value data field, and click OK.
7) Repeat steps 3, 4, 5, and 6, but name this next new value DefaultSendWindow. You should now have two new values under "Parameters"
8) Close regedit and reboot Windows 10.
The above modification increases the default buffer sizes to 2M. I tried 20k and it had no effect and I haven't played around with the value any further. But at this level, in operating for hours over the past day or so, I no longer see or hear any glitches in data streams in either direction (to or from the radio) and the Seq errors are gone almost entirely. I still see a Seq->2 very rarely, always on a T/R transition, but never accompanied by any other symptom heard in audio or seen on the display.
I wondered about the effect on latency but I honestly have not noticed any whatsoever, even on high speed CW and FT8. I haven't attempted to measure it though (yet).
Anybody see any down side to this? I'm no Windows expert, but happy with the results.