The Nagle Algorithm

On many networks you’ll find lots of little packets of data flying all over the place.  These small packets are commonly known as tinygrams and on most standard Local area networks they are not really an issue.  This is basically because your average local network is not really congested and this data doesn’t cause much of an issue.  However when you are using a slower Wide Area Network (WAN) then they become a very big problem.  RFC was released containing an elegant solution to this problem and it’s called Nagle’s algorithm.

This algorithm states that when a TCP connection is still waiting for an acknowledgement, then no small segments can be sent until the ack is received.  Instead then small parcels of data are collected by TCP and sent in a single segment when the acknowledgement is received.   The real advantage of this algorithm is that it is self clocking.  The faster the ACKs are received then the quicker the data is sent out.  This can help greatly on a slower WAN as it will significantly reduce the number of these tinygrams which are sent across the network.

It has been so successful that it is currently enabled on all Microsoft Operating systems.  However some gamers insist that it can affect performance. Of course when that single delay on a click, command can deal your character a premature death – this stuff is important. Although if you’re playing a game based across the Atlantic then you may be better advised to invest in a US IP address  instead and not mess around with your registry.  It’s the safest option if you can afford it and you can find more information on this page –

If you do want to turn it off them you’ll need to modify the following registry key –


Under here you’ll see your network interfaces listed. Pick the one which you want to modify (i.e. your internet facing card) and then you need to create a couple of new entries. You need two new Dwords – first one called TcpAckFrequency and the second one TCPNoDelay (both case sensitive). Then set the values of both these settings to Value Data = 1, that’s all their is to it. You can then reboot your machine and the Nagle Algorithm settings will not apply to that interface.