After I did this fix I was able to play for over 2 hours straight without any disconnects before I logged off for the night.
D-Link DIR-615 router - try setting UDP and TCP Endpoint Filtering to Endpoint Independent. Those two settings can be found under Advanced > Firewall Settings.
I would guess that many other routers have these firewall options as well. Perhaps it's worth a shot. Good luck!