Warning: All of the tweaks below involve editing the registry. As a consequence, you must proceed with caution and back up your registry before performing any of the modifications mentioned below. Accidental deletions and modifications could possibly damage the functionality of your computer. It is best to first back up your registry before you proceed.

1. IRPStackSize

IRPStackSize (I/O Request Packet Stack Size) represents how many 36-byte receive buffers your computer can use simultaneously. It allows your computer to receive more data at the same time. If you have a large Internet connection (more than 10 Mbps), you’ll benefit from this. For those of you with smaller Internet connections, you may not notice even the slightest difference, so skip this. Your system usually allocates 15 IRPs in its network stack. More often than not, you’d benefit much more with 32, although you can configure up to 50. Try 32 first. Here’s the location of the key in your registry: Add “IRPStackSize” as a DWORD value on the right side of the regedit window, change the base to “Decimal” and modify the value to 32.

2. SizReqBuf

SizReqBuf represents the size of the raw receive buffers within a server environment. This means it will affect your ability to host something in a high-latency environment. Let’s say you host a game server and tons of people complain about lag. Modifying this value will help reduce the impact of lag. You’d also benefit if you’re hosting a website or any other service, including sending files through instant messenger or Neo Modus Direct Connect. Your system usually places this buffer at 16384 bytes. For most servers, this is efficient enough, but sometimes you have a small amount of memory and cannot keep up with the high request volume. Here’s the location of the key in your registry: Add “SizReqBuf” as a DWORD value on the right side of the regedit window. If you have a server with over 512 MB of physical memory, modify the value to 17424. If you have less than 512 MB of memory, you should consider getting a new computer, but you can modify this value in the meantime to 4356.

3. DefaultTTL

Time to Live (TTL) tells routers how long a packet should stay in the air while attempting delivery before giving up and discarding the packet. When the value is often high, your computer spends more time waiting for a failed packet to deliver, effectively decreasing the amount of productivity in your network. Without a value set, Windows waits 128 seconds for the transaction to finish. This makes your computer lag terribly if you’re in the middle of something and your connection with a server unexpectedly goes south. Here’s the location of the key in your registry: Add “DefaultTTL” as a DWORD value within the “Parameters” key. Set the value to anything between 1 and 255. The best value is 64, although you can set lower values if you wish to have the packet killed more quickly.

4. Tcp1323Opts

Tcp1323Opts lets you use RFC 1323, known as “TCP Extensions for High Performance,” in 3 ways. This particular value works with timestamping and network window scaling. This allows the TCP connection to negotiate a receive window size with a server, letting computers specify receive windows of up to 1 GB. Navigate to the following location in your registry: You should see TCP1323Opts as a “DWORD” value on the right side of the registry editor. (Create it if not.) Right-click it and modify this value to “1.”

5. MaxFreeTcbs

MaxFreeTcbs is an iffy value. It determines how many active TCP connections your computer can handle at any given time based on how much physical memory you have and how much performance your computer has with regard to bandwidth. If the number is too high, your computer may not properly process TCP transactions because of the high amount of active connections talking to the computer at the same time. However, if the number is too low, you can’t host or request as many connections as you’d like. While the setting is arbitrarily determined, you may want to bump up the number when you upgrade your hardware or Internet connection. To reach the location for the value, go to the following path in your registry: Create or edit “MaxFreeTcbs” and place its value at 65536. If you’re using an older computer with lower-performance hardware, you can set this at a lower number, like 16000.

6. MaxUserPort

When an application requests an available port to open from Windows, the operating system chooses one port from 1024 to a specified maximum known as “MaxUserPort.” A port on your computer allows you to establish TCP/UDP connections through the Internet and in your local network. I could get into more detail, but we really should get moving. We all know that 5000 is less than 65534. What happens when you open more options to programs seeking a port? They find a port much faster than they would with only a couple thousand available choices. Windows sets this value to 5000 by default, but you can set it up for any number from 5000 to 65534. The location where “MaxUserPort” must go is in the following registry path: Create a value called “MaxUserPort” and set it to 65534. That’s it!

7. GlobalMaxTcpWindowSize

This value has a long name, but you won’t regret modifying it if you have a big Internet connection (10 Mbps and up) and often upload stuff. This value represents how much data can be sent from your computer without receiving an acknowledgement (ACK) packet. Every time you send small chunks of data on the Internet, your computer has to wait for this packet, which tells your end of the network, “Everything’s OK! Send more!” Sometimes, due to latency and poor peering, this might not be ideal. So, you can edit this value to allow more data to be sent without waiting for that packet to come. Create a DWORD called “GlobalMaxTcpWindowSize” in the following registry path: Set the value to 65535 and you’re done! This will make the computer able to send 64 kilobytes without waiting for acknowledgement. After modifying this setting, if you notice a drop in network speed instead of an increase, either remove the value or try raising it slightly to 128 kilobytes (by setting the value to 131072).

8. MTU

MTU affects your upstream speed more than your downstream speed, but taking care of upstream is just as important, ensuring that larger chunks of data are sent at a time. While this number is normally set automatically by your network card, you can adjust this based on your Internet connection speed. Setting this value is tricky. First, you have to find out your optimal MTU value, which is one that doesn’t require packet fragmentation because of limitations in your Internet connection speed. You can do this by going to the Command Prompt and entering the following: Replace “” with a number from 88 to 4294967295. Replace “” with the gateway your network adapter uses to connect to the Internet. If you don’t know your gateway, type ipconfig in the command line to find out its value under “Default Gateway,” which shows up under the network adapter you use for the Internet. When pinging, you’ll know you reached too high of a number when the response contains the following message: Packet needs to be fragmented but DF set. As long as you choose a number that doesn’t require packet fragmentation, you’re fine. Choose the highest possible number without packet fragmentation, and you will have the most optimal MTU. Now, to set this number, go to the following path in your registry: See the above image for an example of how I found my own principal network interface. There could be other network interfaces installed in a computer, especially when you use it as a router. Replace “Interface ID” with the GUID for your network interface. Just browse across the different GUIDs that show up under “Interfaces” and look at the information on the right side of the regedit window to see if it matches the details of the network interface you use to connect to the Web. Once you reach that interface, add “MTU” as a DWORD and set it to the number you got when pinging your gateway. That should fix plenty. These Registry tweaks are more than enough to increase the network speed on Windows 10. If you’re having problems with registry errors, see our list of fixes for that. We also have a guide to help you take full ownership of your Windows 10 registry keys.