I've been playing with the TCPIP settings in Windows 8.1. I've changed the default settings in mine and found minor improvements. Mostly in the stability of sustaining consistant flow, packet loss and retransmissions. Windows 8 is very good out of the box, unlike Windows XP. Packet loss maybe attributed to Compound TCP (CTCP) which is a newer congestion control method that increases the TCP send window more aggressively for broadband connections (with large RWIN and BDP). CTCP attempts to maximize throughput by monitoring delay variations and packet loss. This may have improved the packet loss I had. Retransmit timeout (RTO) determines how many milliseconds of unacknowledged data it takes before the connection is aborted. The default timeout for Initial RTO of 3 seconds can usually be lowered for low-latency modern broadband connections (unless you're in a remote location). I had no issues setting it to 600. If you have an issue connecting to sites increase the time. It's limit is 300 on the bottom. I experienced connectivity on some sites, so I upped it to 600. Works good for my ISP. Receive Segment Coalescing (RSC) allows the NIC to coalesce multiple TCP/IP packets that arrive within a single interrupt into a single larger packet (up to 64KB) so that the network stack has to process fewer headers, resulting in a 10% to 30% reduction in I/O overhead depending on the workload, thereby improving performance. Receive Segment Coalescing (RCS) is able to collect packets that are received during the same interrupt cycle and put them together so that they can be more efficiently delivered to the network stack. This can significantly increase the amount of traffic that can be handled without severely impacting the CPU. Non Sack Rtt Resiliency (Windows 8.1) Enables/Disables RTT resiliency for non SACK clients. So if you feel like experimenting with your TCPIP setting, you can apply these changes quite easily and revert as easy if you find issues by appling them. Use this command to see what you have before implemeting any changes so you can revert back to your current settings. netsh int tcp show global My current settings that work well for me. TCP Global Parameters ---------------------------------------------- Receive-Side Scaling State : enabled Chimney Offload State : enabled NetDMA State : disabled Direct Cache Access (DCA) : disabled Receive Window Auto-Tuning Level : disabled Add-On Congestion Control Provider : ctcp ECN Capability : enabled RFC 1323 Timestamps : disabled Initial RTO : 600 Receive Segment Coalescing State : enabled Non Sack Rtt Resiliency : enabled Max SYN Retransmissions : 2 Oh also when you enable Chimney Offload State, don't enable Direct Cache Access (DCA). One or the other not both. You can do some before and after result tests here. Use the same test to determine the affects of your changes. ispgeeks.com myspeed.pathcom.com myspeed.visualware.com (need to add exception rules to JAVA, in Waterfox for sure) I have 25Mbps capped down and 2Mbps capped up. Ping 9ms. Not generous to the up speed. speedtest.net/my-result/4017129862 A quiet day here. LOL. Enjoy.
Thanks for the info. I'm fairly new at modifying TCP settings directly, but not new to reg edits and such. Could you point me in the general direction of where to make these edits? I'd like to see if some of these changes would help me. I'm getting occasional stream inconsistencies and other minor annoyances. Thanks... T
Hi Taliseian, The changes are very easy to implement and revert, in the event that it has a negative impact. I might suggest that you try one at a time to measure the impact each one has on your connection. Takes a bit of time and effort to fine tune. I'm a perfectionist and patient just by nature. It's mainly your ISP connection. I live almost next to the demarcation point, so ping is extremely good. I've seen 0 at times and 10 during high traffic times. What I've done is put the command lines in note pad, so I can just copy and paste the commands. The commands are entered in the elevated command prompt. It's not necessary to use regedit. I'll paste the command lines for you and then you can save them in note pad to paste in the command line to implement the changes. Easy to revert. Run the command (netsh int tcp show global) to get your default settings and paste them in the note pad to have handy to revert. Reboot after changes. Each day and time you access internet will be different b/c of load and some sites you like react different. So take your time and don't rush for instant gratification expecting to turn the cables red. I also did another little trick that helped response and speed to the network. Just work with that and I'll elaborate on the other later. Optimize what you have. Here are the command lines for command prompt, to revert, change enable to disable etc, you'll see when you get the default parameters: netsh int tcp show global netsh int tcp set global autotuninglevel=normal netsh int tcp set global chimney=enabled (if enabled, turn off dca) CTCP has to be run in powershell or add it to the registry manually. I did it manually. set-NetTCPSetting -SettingName InternetCustom -CongestionProvider CTCP netsh int tcp set global dca=enabled (if enabled, turn off chimney) netsh int tcp set global initialRto=1000 netsh int tcp set global rsc=enabled netsh interface tcp set global nonsackrttresiliency=enabled Manual CTCP: copy to note pad and save as reg extension, not text, then merge. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\0] "0200"=hex:00,00,00,00,00,00,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,\ 00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,\ ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "1700"=hex:00,00,00,00,00,00,01,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,\ 00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,\ ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 If you have any questions post back. These are non consequential mods, so don't worry. Let me know your results.
Got everything else to work (or change back - still adjusting), however I can't get the CTCP command to work. I've tried via Powershell and via a reg edit with no luck. T
Here's a paste of my reg file, the only difference is the space in the "Windows Registry Editor Version 5.00" from the other I pasted. Did you merge it by right clicking on it with the extension as .reg instead of .txt? I see a space in the word "control" after I paste it. Make sure there is no space after you paste it in note pad. Don't know why the space appears. Also noticed it in the zeros after the comas in the first two and four (after the ff) more lines further down, delete all spaces in each line between the comas. Issued resolved by pisthai, see post 7.
You must use the Code tags if you post any kind of coding to avoid that copy errors! it will look like: [ code ]Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\0] "0200"=hex:00,00,00,00,01,00,00,07,00,00,00,00,00,00,00,00,1e,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,ff,\ 00,ff,00,ff,ff,00,00,00,00,00,00,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00,\ ff,ff,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00 "1700"=hex:00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,ff,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ ff,00,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00[ /code ] Important: don't use spaces between [ code ] brackets!
Code: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a03-9b1a-11d4-9123-0050047759bc}\0] "0200"=hex:00,00,00,00,01,00,00,07,00,00,00,00,00,00,00,00,1e,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,ff,\ 00,ff,00,ff,ff,00,00,00,00,00,00,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00,\ ff,ff,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00 "1700"=hex:00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,ff,00,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ ff,00,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00 I did as you said with the code tags, it worked thank you for taking time resolving this for me.