Windows 8.1 TCPIP settings

Discussion in 'Windows 8' started by Imkruzen, Dec 28, 2014.

  1. Imkruzen

    Imkruzen MDL Member

    Jan 9, 2011
    209
    332
    10
    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.
     
  2. Taliseian

    Taliseian MDL Junior Member

    Oct 13, 2013
    93
    12
    0
    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
     
  3. Imkruzen

    Imkruzen MDL Member

    Jan 9, 2011
    209
    332
    10
    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.
     
  4. Taliseian

    Taliseian MDL Junior Member

    Oct 13, 2013
    93
    12
    0
    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
     
  5. Imkruzen

    Imkruzen MDL Member

    Jan 9, 2011
    209
    332
    10
    #5 Imkruzen, Dec 29, 2014
    Last edited: Dec 29, 2014
    (OP)
    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.
     
  6. pisthai

    pisthai Imperfect Human

    Jul 29, 2009
    6,774
    1,981
    210
    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!
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. Imkruzen

    Imkruzen MDL Member

    Jan 9, 2011
    209
    332
    10
    #7 Imkruzen, Dec 29, 2014
    Last edited by a moderator: Apr 20, 2017
    (OP)
    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.