Hi All, Oh, this is sort of the same issue I just raised in my last message. Some comments inline... Tom P. -----Original Message----- From: Gorry Fairhurst [mailto:gorry@xxxxxxxxxxxxxx] Sent: Tuesday, March 27, 2007 7:31 AM To: Arjuna Sathiaseelan Cc: dccp@xxxxxxxx Subject: Re: Why do we have or should have keep-alive packets? Arjuna Sathiaseelan wrote: > I have some doubts. > > The question is Who has control over Who? Does the application layer control > the transport protocol, or do transport protocols have their own autonomy? > > So if the application does'nt send any data, should the transport protocol > send keep alives by its own judgement or should the application trigger the > keep-alives? My belief was that application layer controls the transport > layer. I maybe wrong in my assumption. > > I believe that there should be some sort of synchronization between the > three layers (application, transport and network) and send one keep-alive > rather than these layers sending their own keep-alives. > > > Arjuna > <snip> Hmmm... I don't yet know. I could suggest some models: 1) Application keep alives are "special" and handed to the API differently to data. - Not sure I like this, should DCCP just view this as data? [Tom P.] Yes, all application-level messages (including keep-alives) should be data to DCCP. 2) Apps TELL DCCP to keep the "connection alive?" via an API. DCCP agrees to send a packet on the "wire" if needed. - Possible, providing apps do not need to exchange anything. [Tom P.] Possible, but I think the same issues that stopped TCP from supplying this (see Lars' previous message) apply here. 3) Apps ASK DCCP is the "connection alive?" via an API and DCCP replies, possibly sending a packet on the "wire" if needed? - Possible, providing apps do not need to exchange anything. [Tom P.] I believe this capability exists -- send a DCCP-Sync packet. 4) Apps and DCCP do their own thing, and work independently. - For apps that need to exchange something, but potentialluy ugly as you suggest when two entities work un-coordinated. [Tom P.] It seems to me that DCCP doesn't have a general need for connection-level keep-alives -- there's just a possible CCID that has that need. So each layer doing its own thing doesn't seem so bad to me. Gorry