Thanks Brian. That was very informative. It makes application-level keepalive sound rather simple, so if we have any trouble with TCP, I guess we'll do that.