I have an Xsense Macsense router (WSR-5000) that I have been using for the last few years; works great. One of it's features is the ability to port forward, so I have set it to forward port 22 to one of my home machines so I can ssh into it. However, I was experiencing some annoying hangs -- if I left the connection idle for about 10 minutes, the connection would freeze and finally disconnect, even though the home machine was set to never sleep. That became frustrating enough that I did some investigation.
It appears that this router -- and I think a good many others, as well -- have an idle timeout that times out internet-lan connections. I traded some emails with the Xsense guys, and they confirmed the timeout on their router -- and said that there was no way to either disable it or to change the timeout period.
Fortunately, the ssh guys have this figured out already. By opening /etc/sshd_config in your favorite editor (sudo required), and adding the line ClientAliveInterval 120, you set the ssh daemon to "re-awaken" the connection every 120 seconds, which is enough in my case to keep the connection active and prevents the ssh session from hanging. Read the man ssh page for more. I don't know if Apple's AirPort Base Stations also have an idle timeout like this, but there's no reason to think that this hint wouldn't work with them if they do.
Mac OS X Hints
http://hints.macworld.com/article.php?story=20040614094333567