< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [Ietf-behave] UDP binding timeouts


inline.

Dan Wing wrote:

I think the most important thing is that there is a deterministic minimum that you can count on; the actual value is far less important.

In principal, you'd like to tie the timeout to typical maximum activity intervals for UDP-based applications. That is, normal outbound packet activity for applications should keep the bindings active withot requiring additional keepalives. For RTP, even a much smaller number would typically suffice. For SIP over UDP, packet retransmits can be spaced as large as 16s towards the tail end of the transaction. If you want the binding to be active for a transaction lifetime without special keepalives, you'd want a minimum of 20s or so.


With such short binding lifetimes, wouldn't you need SIP keepalives
(<CR><LF>.<CR><LF>) to keep the binding open so you can be signaled
for an incoming call?

Sure, but that's different. My argument was that it made sense to set the binding timeout so that it was large enough to not require additional keepalive traffic for UDP applications. I probably should have been clear that I meant client/server applications - ones for which an infinite binding lifetime is not required.


For those cases where the binding effectively needs to be infinitely long, such as receiving a SIP call, I think there is no way to avoid keepalives. In such a case, the following might make a reasonable metric for choosing the lifetime: the binding lifetime should be large enough such that a reasonable keepalive message, sent at intervals equal to that binding lifetime, would only represent a fraction of the overall bandwidth for the application protocol itself in its typical usage - say, no more than 5%.

Again looking at SIP, if we assume (REGISTER,200) refreshes of (1kB,1kB) every hour, plus a SIP call every other hour (INV/200/ACK/BYE/200) with rough sizes of (1k,1k,.5k,1k,.5k), thats 4kB/hour. 5% of that is 200B/hr. Assuming STUN for keepalives, its roughly 50B for a minimal request/response transaction. That gives you 4 of them per hour, which would argue for a relatively large keepalive interval - 15m.

The tradeoff, of course, is that increasing the keepalive increases the memory required for a certain volume of user traffic, and thus the cost.

-Jonathan R.


-- Jonathan D. Rosenberg, Ph.D. 600 Lanidex Plaza Chief Technology Officer Parsippany, NJ 07054-2711 dynamicsoft jdrosen@xxxxxxxxxxxxxxx FAX: (973) 952-5050 http://www.jdrosen.net PHONE: (973) 952-5000 http://www.dynamicsoft.com