Hi Gorry, See inline... Tom P. -----Original Message----- From: Gorry Fairhurst [mailto:gorry@xxxxxxxxxxxxxx] Sent: Tuesday, March 27, 2007 10:58 AM To: Arjuna Sathiaseelan Cc: dccp@xxxxxxxx Subject: Re: Why do we have or should have keep-alive packets? Arjuna Sathiaseelan wrote: > Dear Tom, > > >>OK, so at least two of us agree that DCCP SHOULD NOT generate DCCP-Data >>packets on its own (zero length or otherwise) :-). > > > :) So nobody has yet explained why DCCP can't do this for it's own purpose (although I am not advocating this). [Tom P.] I'm not saying that DCCP can't do keep-alives, just that it shouldn't use zero-length DCCP-Data packets for that purpose. DCCP-Data packets are supposed to be for user data, usurping them for DCCP-specific uses corrupts that. > > >>Therefore it seems to me that applications MAY use zero-length packets >>as they see fit. The question left is "is RTP an application?" To me, >>RTP has many more of the characteristics of a transport protocol than an >>application, but it is consistently used over some transport protocol, >>so what is it? > > > I think this has two perspectives: > > 1) From the RTP's point of view, it has characteristics of a transport > protocol, and infact RTP is a transport protocol for real-time applications. > > 2)From the underlying transport protocol which carries the RTP packets, RTP > would be considered as an application layer entity? > > >>So, the model I think that Colin has in mind for RTP over DCCP (chime in >>if I get it wrong, Colin) is that a real-time application gives data to >>RTP, RTP wraps that data in RTP packets and gives that to DCCP, who >>wraps the RTP packets in DCCP packets. So from DCCP's point of view, >>RTP is the application, and the (real) application has no way of >>directly sending DCCP packets. That says that RTP MAY send zero-length >>packets. > > > True. I think so too. > I got all that, until the last sentence, which didn't seem to make any sense at all. HOW can an application (or upper layer) send zero bytes of data ... AFAIK, we no interfaces to do this, even if it were sensibel, which I doubt. [Tom P.] Well, one way would be to have an ioctl or sockopt to do it. Another, riskier, way is to interpret a write with zero length as a command to send a zero-length packet. The protocol has the capability, making an API for doesn't seem like a big deal :-). > >>One question that I still have is who is responsible for recognizing >>idle and sending something? Is it the RTP stack? Or should the app >>send a NOP packet that the RTP stack translates to a zero-length packet? No! [Tom P.] No what? App send a NOP that gets translated? That seems silly to me too. > > > I am trying to find answers to these questions too. Maybe Colin is the right > person who can shed some light :). > > Regards > Arjuna > > [snipped] ? Gorry