Powershell & Networking, TCP Stack, etc
Powershell & Networking, TCP Stack, etc
I am new when it comes to powershell command lines. I wouldn't know how to adjust any TCP setting. The only bit of knowledge I know was from coming across this page from speedguide. I'm curious about the DelayedAcktimeout and how to adjust this setting, as well as others. Also does it work only if TcpDelAckTicks is enabled (eg 1-6 in registry) or does the argument still work when the registry setting entry is set to "0"?
"delayedacktimeout" is a netsh/PowerShell setting having to do with CTCP
"TcpDelAckTicks" is a registry/PowerShell setting related to Nagle's algorithm, it can be set as per the article...
Keep in mind some netsh commands are deprecated in Windows 8, and PowerShell shows both as read-only.. You can still try something like:
Set-NetTCPSetting -DelayedAckFrequency 1 -DelayedAckTimeoutMs 30 -SettingName internetcustom
Ultimately, it may be easier if you use the TCP Optimizer to adjust all those settings, it takes out all the guesswork.
"TcpDelAckTicks" is a registry/PowerShell setting related to Nagle's algorithm, it can be set as per the article...
Keep in mind some netsh commands are deprecated in Windows 8, and PowerShell shows both as read-only.. You can still try something like:
Set-NetTCPSetting -DelayedAckFrequency 1 -DelayedAckTimeoutMs 30 -SettingName internetcustom
Ultimately, it may be easier if you use the TCP Optimizer to adjust all those settings, it takes out all the guesswork.
Philip wrote:"delayedacktimeout" is a netsh/PowerShell setting having to do with CTCP
"TcpDelAckTicks" is a registry/PowerShell setting related to Nagle's algorithm, it can be set as per the article...
Keep in mind some netsh commands are deprecated in Windows 8, and PowerShell shows both as read-only.. You can still try something like:
Set-NetTCPSetting -DelayedAckFrequency 1 -DelayedAckTimeoutMs 30 -SettingName internetcustom
Ultimately, it may be easier if you use the TCP Optimizer to adjust all those settings, it takes out all the guesswork.
Thanks for the reply! I haven't used TCP Optimizer in a loooong time. I've mainly just manually edited registry settings, it's the powershell that I'm unfamiliar with. Thanks for the tips!
Are all the powershell commands I need listed on that page I linked?
Philip wrote:Yeah, that's what I meant, those settings in PowerShell are read-only, you'd get an error if you try to change them. Windows 8.1 and 10 have the same syntax (they both use the InternetCustom template).
The Registry setting as per the article, or the TCP Optimizer should work.
How do I know which template is implemented?
EDIT: I mean which command will tell me the template being used? Set-NetTCPSetting = Internetcustom, ?
Philip wrote:Get-NetTcpConnection , or Get-NetTransportFilter will show the currently used template.
Get-NetTcpSetting InternetCustom will show the current settings in the InternetCustom template.
Sorry for all the elementary questions.
TransportFilter worked, under admin credentials. SettingName :Internet.
This brings up a few more questions. Is "DelayedAckFrequency" the same as any of the TCP: AckFrequency, DelAckTicks, NoDelay, settings, or does it do a totally different function? I have AckFrequency - 1, DelAckTicks - 1, and NoDelay - 1. Does those settings conflict with "DelayedAckFrequency" ???
Also "Internet" setting shows that there is CTCP for the congestion provider, but when I open command prompt and run netsh int tcp show global there is no congestion provider.
netsh is deprecated in Windows 10 and some of the commands don't work. In theory the PowerShell cmdlet should show the correct setting. There is a registry hack in that article above (and the TCP Optimizer) that shows the correct congestion provider in netsh.
There is no conflict when using a mix of Registry/netsh/Powershell cmdlets simply because neither works 100%. The problem with Powershell cmdlets is that with every version of Windows they improve it a bit, however, there are many read-only and non-working/unchangeable settings, especially in non-server OSes. The problem with using the netsh equivalents is that they are no longer supported/updated, and some are starting to break (like setting congestion provider).
There is no conflict when using a mix of Registry/netsh/Powershell cmdlets simply because neither works 100%. The problem with Powershell cmdlets is that with every version of Windows they improve it a bit, however, there are many read-only and non-working/unchangeable settings, especially in non-server OSes. The problem with using the netsh equivalents is that they are no longer supported/updated, and some are starting to break (like setting congestion provider).
Philip wrote:netsh is deprecated in Windows 10 and some of the commands don't work. In theory the PowerShell cmdlet should show the correct setting. There is a registry hack in that article above (and the TCP Optimizer) that shows the correct congestion provider in netsh.
There is no conflict when using a mix of Registry/netsh/Powershell cmdlets simply because neither works 100%. The problem with Powershell cmdlets is that with every version of Windows they improve it a bit, however, there are many read-only and non-working/unchangeable settings, especially in non-server OSes. The problem with using the netsh equivalents is that they are no longer supported/updated, and some are starting to break (like setting congestion provider).
I've tried setting a few things with no luck, afaik. Is there a way to reset things back to default, so I can just set things back to normal and just walk away from it? lol
Sorry for all the hassle and thank you for taking the time to help me and answer my questions
There are instructions on how to reset TCP/IP here: http://www.speedguide.net/faq/how-to-re ... -stack-272 ... or you can use the TCP Optimizer "File" menu.
No problem, it's getting harder and less user-friendly to control these settings with newer OSes.
No problem, it's getting harder and less user-friendly to control these settings with newer OSes.