Re: Why do we have or should have keep-alive packets?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 27 Mar 2007, at 17:06, Gorry Fairhurst wrote:
So,

From all the thread so far

* I have some ideas of what RTP-like applications want. I'm not sure there is a need to send/receive a 0-byte Data packet as a way to make keep-alives happen.

The applications I care about need a way to send periodic keep-alive messages to ensure NAT bindings stay open. They can do that by either:

1) sending (non-standard and poorly specified) RTP "no-op" packets,
2) sending zero length packets, or
3) asking the transport to send periodic keep-alive messages.

I tend to think of this as a feature of the transport, so I'd prefer option 3, but any of the options can be made to work.

(To me, it seems RTP-NOP packets should not be re-encoded as 0-byte Data packet).

Agreed!

* I suggest the standard send/receive calls are not allowed to send null packets (although RFC4340 does allow it, is this right?).

Irrespective of the merits of application level keep alive messages, that's a change from UDP, which does allow sending and receiving datagrams with zero length payload.

* One option may be to call a socket function to ask DCCP to generate packets at least every "x" seconds. *IF* that's all that is needed that seems to me to be OK. If an APP (e.g. RTP) want to explicitly send something - then it could actually send a packet across the API.

Rather than asking the DCCP stack to send every "x" seconds, we should probably ask it to send keep alive messages, and trust it to do the right thing.

* The last part is what should appear on the wire: IMHO, I think someone now needs to look at the Specs and how a receiver handles this in DCCP - to figure out what a receiver does when it gets a 0- byte DCCP Data packet, and therfore what the side-effects are. If these are in any way "odd" then we should be using a different packet format for this purpose (rather than over-loading an existing packet type).

Explicit is better than implicit, so I'd suggest using a different DCCP packet type if we want to go this way.

Colin


[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux