<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Nagle algorithm and World of Warcraft]]></title><description><![CDATA[<p dir="auto">http://forums.worldofwarcraft.com/thread.html?topicId=3271071466&amp;sid=1&amp;pageNo=1</p>
<p dir="auto">Is there anyway of implementing the fix there in with pfsense?</p>
]]></description><link>https://forum.netgate.com/topic/8278/nagle-algorithm-and-world-of-warcraft</link><generator>RSS for Node</generator><lastBuildDate>Thu, 21 May 2026 16:39:49 GMT</lastBuildDate><atom:link href="https://forum.netgate.com/topic/8278.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Apr 2008 16:25:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Wed, 09 Apr 2008 00:49:34 GMT]]></title><description><![CDATA[<p dir="auto">I tried that command, and yes, the delayed ACK is 0 by default it seems. Ah well, thank you to everyone who posted, learned a little bit 'bout my pfsense box, etc, etc.</p>
]]></description><link>https://forum.netgate.com/post/170481</link><guid isPermaLink="true">https://forum.netgate.com/post/170481</guid><dc:creator><![CDATA[Majin Zero]]></dc:creator><pubDate>Wed, 09 Apr 2008 00:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 19:17:55 GMT]]></title><description><![CDATA[<p dir="auto">Alright I just VPN'd out to my house and got into my pfSense box, looks like delayed_ack is already zero on pfSense by default.</p>
<pre><code>
 pfSense console setup 
***********************
 0)  Logout (SSH only)
 1)  Assign Interfaces
 2)  Set LAN IP address
 3)  Reset webConfigurator password
 4)  Reset to factory defaults
 5)  Reboot system
 6)  Halt system
 7)  Ping host
 8)  Shell
 9)  PFtop
10)  Filter Logs
11)  Restart webConfigurator
12)  pfSense PHP shell
13)  Upgrade from console

Enter an option: 8

# sysctl -a | grep tcp
tcpreass:         20,        0,      0,      0,        0
tcptw:            48,     1638,      0,    156,      138
tcpcb:           472,     8040,      5,     19,      231
net.inet.tcp.rfc1323: 1
net.inet.tcp.mssdflt: 512
net.inet.tcp.keepidle: 7200000
net.inet.tcp.keepintvl: 75000
net.inet.tcp.sendspace: 65228
net.inet.tcp.recvspace: 65228
net.inet.tcp.keepinit: 75000
net.inet.tcp.delacktime: 100
net.inet.tcp.v6mssdflt: 1024
net.inet.tcp.hostcache.purge: 0
net.inet.tcp.hostcache.expire: 3600
net.inet.tcp.hostcache.count: 1
net.inet.tcp.hostcache.bucketlimit: 30
net.inet.tcp.hostcache.hashsize: 512
net.inet.tcp.hostcache.cachelimit: 15360
net.inet.tcp.recvbuf_max: 262144
net.inet.tcp.recvbuf_inc: 16384
net.inet.tcp.recvbuf_auto: 1
net.inet.tcp.reass.overflows: 0
net.inet.tcp.reass.maxqlen: 48
net.inet.tcp.reass.cursegments: 0
net.inet.tcp.reass.maxsegments: 0
net.inet.tcp.insecure_rst: 0
net.inet.tcp.rfc3390: 1
net.inet.tcp.rfc3042: 1
net.inet.tcp.drop_synfin: 1
net.inet.tcp.delayed_ack: 0
net.inet.tcp.blackhole: 2
net.inet.tcp.log_in_vain: 0
net.inet.tcp.sendbuf_max: 262144
net.inet.tcp.sendbuf_inc: 8192
net.inet.tcp.sendbuf_auto: 1
net.inet.tcp.newreno: 1
net.inet.tcp.local_slowstart_flightsize: 4
net.inet.tcp.slowstart_flightsize: 1
net.inet.tcp.path_mtu_discovery: 1
net.inet.tcp.sack.globalholes: 0
net.inet.tcp.sack.globalmaxholes: 65536
net.inet.tcp.sack.maxholes: 128
net.inet.tcp.sack.enable: 1
net.inet.tcp.inflight.stab: 20
net.inet.tcp.inflight.max: 1073725440
net.inet.tcp.inflight.min: 6144
net.inet.tcp.inflight.rttthresh: 10
net.inet.tcp.inflight.debug: 0
net.inet.tcp.inflight.enable: 3
net.inet.tcp.nolocaltimewait: 0
net.inet.tcp.maxtcptw: 1608
net.inet.tcp.isn_reseed_interval: 0
net.inet.tcp.icmp_may_rst: 1
net.inet.tcp.pcbcount: 5
net.inet.tcp.do_tcpdrain: 1
net.inet.tcp.tcbhashsize: 512
net.inet.tcp.minmssoverload: 0
net.inet.tcp.minmss: 216
net.inet.tcp.syncache.rexmtlimit: 3
net.inet.tcp.syncache.hashsize: 512
net.inet.tcp.syncache.count: 0
net.inet.tcp.syncache.cachelimit: 15359
net.inet.tcp.syncache.bucketlimit: 30
net.inet.tcp.syncookies: 1
net.inet.tcp.always_keepalive: 1
net.inet.tcp.rexmit_slop: 200
net.inet.tcp.rexmit_min: 30
net.inet.tcp.msl: 30000
# 

</code></pre>
]]></description><link>https://forum.netgate.com/post/170450</link><guid isPermaLink="true">https://forum.netgate.com/post/170450</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 19:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 19:13:47 GMT]]></title><description><![CDATA[<p dir="auto">Here is your man page for sysctl:  http://www.freebsd.org/cgi/man.cgi?query=sysctl&amp;sektion=8</p>
<p dir="auto">To see what all your tcp variables look like, do this:</p>
<pre><code>
sudo sysctl -a | grep tcp

</code></pre>
<p dir="auto">You'll get output something like this - these are all the tweakable tcp variables - BE CAREFUL!  ;)</p>
<pre><code>
% sudo sysctl -a | grep tcp
tcpreass:         40,     1092,      0,    168,     6659
tcptw:            80,     3420,      0,     90,       46
tcpcb:           752,    17025,      7,      8,      841
net.inet.tcp.rfc1323: 1
net.inet.tcp.mssdflt: 512
net.inet.tcp.keepidle: 7200000
net.inet.tcp.keepintvl: 75000
net.inet.tcp.sendspace: 32768
net.inet.tcp.recvspace: 65536
net.inet.tcp.keepinit: 75000
net.inet.tcp.delacktime: 100
net.inet.tcp.v6mssdflt: 1024
net.inet.tcp.hostcache.purge: 0
net.inet.tcp.hostcache.prune: 300
net.inet.tcp.hostcache.expire: 3600
net.inet.tcp.hostcache.count: 0
net.inet.tcp.hostcache.bucketlimit: 30
net.inet.tcp.hostcache.hashsize: 512
net.inet.tcp.hostcache.cachelimit: 15360
net.inet.tcp.reass.overflows: 0
net.inet.tcp.reass.maxqlen: 48
net.inet.tcp.reass.cursegments: 0
net.inet.tcp.reass.maxsegments: 1064
net.inet.tcp.insecure_rst: 0
net.inet.tcp.rfc3390: 1
net.inet.tcp.rfc3042: 1
net.inet.tcp.delayed_ack: 1
net.inet.tcp.blackhole: 0
net.inet.tcp.log_in_vain: 0
net.inet.tcp.newreno: 1
net.inet.tcp.local_slowstart_flightsize: 4
net.inet.tcp.slowstart_flightsize: 1
net.inet.tcp.path_mtu_discovery: 1
net.inet.tcp.sack.globalholes: 0
net.inet.tcp.sack.globalmaxholes: 65536
net.inet.tcp.sack.maxholes: 128
net.inet.tcp.sack.enable: 1
net.inet.tcp.inflight.stab: 20
net.inet.tcp.inflight.max: 1073725440
net.inet.tcp.inflight.min: 6144
net.inet.tcp.inflight.rttthresh: 10
net.inet.tcp.inflight.debug: 0
net.inet.tcp.inflight.enable: 1
net.inet.tcp.nolocaltimewait: 0
net.inet.tcp.maxtcptw: 3404
net.inet.tcp.isn_reseed_interval: 0
net.inet.tcp.icmp_may_rst: 1
net.inet.tcp.pcbcount: 7
net.inet.tcp.do_tcpdrain: 1
net.inet.tcp.tcbhashsize: 512
net.inet.tcp.minmssoverload: 0
net.inet.tcp.minmss: 216
net.inet.tcp.syncache.rexmtlimit: 3
net.inet.tcp.syncache.hashsize: 512
net.inet.tcp.syncache.count: 0
net.inet.tcp.syncache.cachelimit: 15359
net.inet.tcp.syncache.bucketlimit: 30
net.inet.tcp.syncookies: 1
net.inet.tcp.always_keepalive: 1
net.inet.tcp.rexmit_slop: 200
net.inet.tcp.rexmit_min: 30
net.inet.tcp.msl: 30000

</code></pre>
]]></description><link>https://forum.netgate.com/post/170449</link><guid isPermaLink="true">https://forum.netgate.com/post/170449</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 19:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 19:00:48 GMT]]></title><description><![CDATA[<p dir="auto">@Majin:</p>
<blockquote>
<p dir="auto">sweet, I'll try this out when I get home. I'll let you all know how it goes.</p>
<p dir="auto">And, well, by default on pfsense you're not running as root, I hope. I don't even know how to use it as a BSD box, I just use the webui to configure it.</p>
</blockquote>
<p dir="auto">Well, you need to be able to SSH into your pfSense box or get on its console to get a CLI I would imagine.</p>
]]></description><link>https://forum.netgate.com/post/170447</link><guid isPermaLink="true">https://forum.netgate.com/post/170447</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 19:00:48 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:58:12 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">and I need to use wifi to get it from….</p>
</blockquote>
<p dir="auto">This is your culprit.<br />
Replace your Wireless connection with a wire and you will have significantly lower pings ;)</p>
<p dir="auto">I dont have hard number right now but i think i could get them from our wireless lab.<br />
I just know that wireless is bad for the latency.<br />
Have you ever tried to play a First Person Shooter per Wireless?</p>
<p dir="auto">Well i think if you really want to compile the socat you might be interrested in installing a developers version.<br />
Also i think there was a thread around how to add custom options o you dont loose them after a reboot.</p>
]]></description><link>https://forum.netgate.com/post/170446</link><guid isPermaLink="true">https://forum.netgate.com/post/170446</guid><dc:creator><![CDATA[GruensFroeschli]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:58:12 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:56:05 GMT]]></title><description><![CDATA[<p dir="auto">sweet, I'll try this out when I get home. I'll let you all know how it goes.</p>
<p dir="auto">And, well, by default on pfsense you're not running as root, I hope. I don't even know how to use it as a BSD box, I just use the webui to configure it.</p>
]]></description><link>https://forum.netgate.com/post/170445</link><guid isPermaLink="true">https://forum.netgate.com/post/170445</guid><dc:creator><![CDATA[Majin Zero]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:54:14 GMT]]></title><description><![CDATA[<p dir="auto">@Majin:</p>
<blockquote>
<p dir="auto">dang, re-read that post, and it says you need a SOCKS server, is there one for pfsense?</p>
</blockquote>
<p dir="auto">All that crap is specific to Linux Majin - see my post above for what it takes on FreeBSD.</p>
]]></description><link>https://forum.netgate.com/post/170444</link><guid isPermaLink="true">https://forum.netgate.com/post/170444</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 19:02:19 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/gruensfroeschli">@<bdi>GruensFroeschli</bdi></a>:</p>
<blockquote>
<p dir="auto">Repeat after me:<br />
pfSense is FreeBSD <strong>NOT Linux</strong></p>
<p dir="auto">So just right away: no this is not applicable to pfSense.</p>
<p dir="auto">Also you dont want to mess with the ACK's.</p>
</blockquote>
<p dir="auto">Right!  FreeBSD = what Linux wants to be when it grows up!  ;)</p>
<p dir="auto">So, in FreeBSD land, you can try this if you want to mess with TCP ACKs:</p>
<p dir="auto">Add this line to /etc/sysctl.conf and reboot:</p>
<pre><code>
net.inet.tcp.delayed_ack=0

</code></pre>
<p dir="auto">If you want to change that value (it is net.inet.tcp.delayed_ack=1 by default on one of my FreeBSD servers) on the fly without modifying your /etc/sysctl.conf file, you can do this:</p>
<pre><code>
sudo sysctl net.inet.tcp.delayed_ack=0

</code></pre>
<p dir="auto">You should be using sudo because you should not be doing things to your box as root, right?  Right!</p>
<p dir="auto">You'll get output something like this:</p>
<pre><code>
% sudo sysctl net.inet.tcp.delayed_ack=0
net.inet.tcp.delayed_ack: 1 -&gt; 0

</code></pre>
<p dir="auto">It tells you what it was, and what you changed it to.  Test out WoW with it set to zero, and let us know how it goes!</p>
<p dir="auto">-K</p>
]]></description><link>https://forum.netgate.com/post/170443</link><guid isPermaLink="true">https://forum.netgate.com/post/170443</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 19:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:47:03 GMT]]></title><description><![CDATA[<p dir="auto">dang, re-read that post, and it says you need a SOCKS server, is there one for pfsense?</p>
]]></description><link>https://forum.netgate.com/post/170441</link><guid isPermaLink="true">https://forum.netgate.com/post/170441</guid><dc:creator><![CDATA[Majin Zero]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:47:03 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:44:58 GMT]]></title><description><![CDATA[<p dir="auto">I am not polling, I hope a P3 1.4 Ghz with 768 RAM isn't undersized for a network of 2 computers.</p>
<p dir="auto">I wish I could connect my gaming rig right to the CM, but I'm doing a Dual WAN, and I need to use wifi to get it from where the CM's are hooked up to a comfortable place.</p>
<p dir="auto">I looked down in the thread, and a poster who has a BSD firewall posted this:</p>
<p dir="auto">or those with OpenBSD firewalls, here's the solution (again a big thanks to Yarre for spotting the poorly established socket connection - that was the killer :) ).</p>
<p dir="auto">With this on I have gone from 1400ms - 1800ms down to 400ms! WoW is playable again.</p>
<p dir="auto">The IP is that of the Proudmoore server but just replace with whatever you need. I'll actually be setting up a bunch of different IPs and socat instances for all the different servers that people play here at work (to do that, just have socat listen on a different port and redirect to the matching port).</p>
<p dir="auto">Cynop</p>
<p dir="auto">–<br />
In pf.conf add the following lines in appropriate places (sorry I can't include my entire pf.conf as it is for a complex network so is very long but this is all pretty easy):</p>
<h1><a class="anchor-offset" name="in-redirect-section-add-one-of-these-for-your-realm-server"></a>In REDIRECT section add one of these for your realm server</h1>
<p dir="auto">rdr pass on $int_if proto tcp from any to 12.129.225.18 port 3724 -&gt; 127.0.0.1 port 3724</p>
<p dir="auto">rdr pass on $int_if proto tcp from any to 12.129.225.22 port 3724 -&gt; 127.0.0.1 port 3725</p>
<h1><a class="anchor-offset" name="loopback-make-sure-traffic-on-the-loopback-interface-is-passed"></a>LOOPBACK - Make sure traffic on the loopback interface is passed</h1>
<p dir="auto">pass in  quick on lo0 all</p>
<p dir="auto">pass out quick on lo0 all</p>
<h1><a class="anchor-offset" name="wow-outbound-to-wow-servers"></a>WoW - Outbound to WoW servers</h1>
<p dir="auto">pass out log quick on $ext_if proto tcp from any to 12.129.225.0/24 port 3724 keep state</p>
<p dir="auto">pass in log quick on $ext_if proto tcp from 12.129.225.0/24 port 3724 to any keep state</p>
<h1><a class="anchor-offset" name="you-can-remove-the-quot-log-quot-keyword-once-it-s-working-too."></a>You can remove the "log" keyword once it's working too.</h1>
<p dir="auto">Then you need to get a SOCKS server or as I just found out - again thanks to Yarre - socat. I couldn't actually get nylon (the SOCKS server under OpenBSD) so I googled and found a "socat" port (see http://ports.openbsd.nu/net/socat). It compiled just fine and runs great. I used the same command line as under linux (change the listen port if you are trying to handle more than one WoW realm).</p>
<p dir="auto">socat -d -d -d TCP4-LISTEN:3724,nodelay,fork,reuseaddr,su=nobody TCP4:12.129.225.18:3724,nodelay</p>
<p dir="auto">Now, stop reading forums and go enjoy some WoW! :) (while I take my girlfriend to the ballet for her birthday.. yes, I am serious! ;) )</p>
<p dir="auto">Cyn</p>
<p dir="auto">Would I just need to access the pf.conf from PFsense and make those changes? If so, how do I get to pf.conf?</p>
]]></description><link>https://forum.netgate.com/post/170439</link><guid isPermaLink="true">https://forum.netgate.com/post/170439</guid><dc:creator><![CDATA[Majin Zero]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:37:52 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">You need a linux gateway, using iptables.</p>
</blockquote>
<p dir="auto">Repeat after me:<br />
pfSense is FreeBSD <strong>NOT Linux</strong></p>
<p dir="auto">So just right away: no this is not applicable to pfSense.</p>
<p dir="auto">Also you dont want to mess with the ACK's.</p>
<blockquote>
<p dir="auto">Flow Control<br />
The receiving TCP, when sending an ACK back to the sender, also indicates to the sender the number of bytes it can receive beyond the last received TCP segment, without causing overrun and overflow in its internal buffers. This is sent in the ACK in the form of the highest sequence number it can receive without problems.</p>
</blockquote>
<p dir="auto">If you are experiencing lower pings through pfSense this can have several reasons.<br />
Are you using polling?<br />
Is your hardware undersized?<br />
Current traffic over your pfSense?</p>
<p dir="auto">If you are really concerned about your ping, connect your gaming machine directly to the modem to your ISP.</p>
]]></description><link>https://forum.netgate.com/post/170436</link><guid isPermaLink="true">https://forum.netgate.com/post/170436</guid><dc:creator><![CDATA[GruensFroeschli]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:34:44 GMT]]></title><description><![CDATA[<p dir="auto">I play it just fine too, but I'm curious if this can actually lower your ping. I'm averaging 150 - 200, but on a crappy linksys I was around 99 usually.</p>
<p dir="auto">Here's the "fix" an alteration to IP tables.</p>
<p dir="auto">In a terminal: sudo iptables -t nat -A PREROUTING -p tcp -d your.wow.server.ip.address –dport 3724 -j REDIRECT --to-ports 3724</p>
<p dir="auto">sudo socat -d -d -d TCP4-LISTEN:3724,nodelay,fork,reuseaddr,su=nobody TCP4:12.129.225.21:3724,nodelay</p>
]]></description><link>https://forum.netgate.com/post/170435</link><guid isPermaLink="true">https://forum.netgate.com/post/170435</guid><dc:creator><![CDATA[Majin Zero]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:34:44 GMT</pubDate></item><item><title><![CDATA[Reply to Nagle algorithm and World of Warcraft on Tue, 08 Apr 2008 18:25:24 GMT]]></title><description><![CDATA[<p dir="auto">What fix specifically?  That's a big thread - can you copy &amp; paste the relevant post(s) you are referencing?</p>
<p dir="auto">Edit:</p>
<p dir="auto">I play WoW thru my pfSense firewall just fine by the way.  ;)</p>
]]></description><link>https://forum.netgate.com/post/170433</link><guid isPermaLink="true">https://forum.netgate.com/post/170433</guid><dc:creator><![CDATA[Kris.J]]></dc:creator><pubDate>Tue, 08 Apr 2008 18:25:24 GMT</pubDate></item></channel></rss>