You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@etch.apache.org by Ka...@bmw.de on 2010/11/03 10:36:22 UTC

Application protocol URI

Hi,
an issue concerning the URI: Right now, only the transport protocol is part of the URI (e.g. tcp:://...).

Shouldn't there be a hint to the application protocol, e.g. etch_tcp:://...  which seems more appropriate? The question arises e.g. with the UDP extensions, which could provide different application semantics like "reliable_etch_udp" or "maybe_etch_udp". These protocols could use different headers, so it could be needed to distinguish between different application protocols in the URI.

Best regards,
Kay Weckemann
BMW Group
Research and Technology


RE: Application protocol URI

Posted by Holger Grandy <Ho...@bmw-carit.de>.
Hi, 

> ... 
> udp://host:port?UdpTransport.reliable=true&UdpTransport.encrption=aes25
> 6&UdpTransport.encryptionKey=somesecretkey
> ...

I would also suggest to use URL parameters for things like encryption scheme
or reliability patterns. The Protocol scheme in the URI would be overloaded 
when trying to encoding all possible options into it. We also do have some 
of those parameters already (e.g. Packetizer.maxPacketSize)
I would not use UdpTransport.encryption, but PacketEncryption.Algorithm
or something like that, because UDP and Security are two separate things.

>     * reliability (delivery guaranty)
>     * encryption
>     * tamper resistance (mac)
>     * session / connection management
>     * authentication
>
> anyone got any more?

Looks good from my point of view. Kay, what options did you think of?

Cheers,
Holger

> On 11/3/2010 4:36 AM, Kay.Weckemann@bmw.de wrote:
> > Hi,
> > an issue concerning the URI: Right now, only the transport protocol
> is part of the URI (e.g. tcp:://...).
> >
> > Shouldn't there be a hint to the application protocol, e.g.
> etch_tcp:://...  which seems more appropriate? The question arises e.g.
> with the UDP extensions, which could provide different application
> semantics like "reliable_etch_udp" or "maybe_etch_udp". These protocols
> could use different headers, so it could be needed to distinguish
> between different application protocols in the URI.
> >
> > Best regards,
> > Kay Weckemann
> > BMW Group
> > Research and Technology
> >


Re: Application protocol URI

Posted by scott comer <we...@mac.com>.
well, "tcp:..." doesn't entirely mean tcp, but rather is just a 
conveniently picked name which is bound to a transport stack factory.

tls is tcp with tls stream encryption.

tcp2 is tcp as well, but with a selector scheme for managing sockets. 
tls2 is tcp2 with tls encryption.

your uri scheme is up to you, you can call it udp or something else. 
there is possibly a length limitation on schemes. and we can always 
argue about it later, so don't let it drag you down. mnemonic is ok, but 
i wouldn't go overboard. you can also use uri query terms to select options:

udp://host:port?UdpTransport.reliable=true&UdpTransport.encrption=aes256&UdpTransport.encryptionKey=somesecretkey

there are several main option groups:

    * reliability (delivery guaranty)
    * encryption
    * tamper resistance (mac)
    * session / connection management
    * authentication

anyone got any more?

mainly, both ends have to have more or less the same scheme and options 
selected. the best practice in a complex setup is to use the name 
service to abstract uris.

have fun!

scott out

On 11/3/2010 4:36 AM, Kay.Weckemann@bmw.de wrote:
> Hi,
> an issue concerning the URI: Right now, only the transport protocol is part of the URI (e.g. tcp:://...).
>
> Shouldn't there be a hint to the application protocol, e.g. etch_tcp:://...  which seems more appropriate? The question arises e.g. with the UDP extensions, which could provide different application semantics like "reliable_etch_udp" or "maybe_etch_udp". These protocols could use different headers, so it could be needed to distinguish between different application protocols in the URI.
>
> Best regards,
> Kay Weckemann
> BMW Group
> Research and Technology
>