Hacker News new | ask | show | jobs
by schmichael 5787 days ago
Another Urban Airshipper here. Just wanted to expound upon the TCP keep-alive issue because I was the most vocal proponent of using them vs. reinventing them ourselves.

The main reason using TCP keep-alives were a non-starter was because in our testing, carriers handled them in "special" ways which usually meant they rarely or never actually reach ed the intended endpoint.

Another strike against TCP keep-alives is how the RFC defining them seems pretty ambivalent on their use. Support is optional, delivery is not guaranteed (ACK segments with no data aren't reliably transmitted), and implementations may vary.

See: http://tools.ietf.org/html/rfc1122#page-101

At the end of the day they're a fine freebie for protocols like SSH to use (although they're spoofable...), but we wanted finer-grained control in order to optimize resource usage on the device, our servers, and the pipes between.

I'd love to hear about others' experiences with TCP keep-alives though.