(Apologies for cross-posting)

Dear all,

We have planned a "Negotiation" Bar-BOF session at the Hiroshima IETF, with the 
goal of identifying  mechanisms for negotiating among multiple protocol possibilities 
within and across layers. I am re-circulating (see below) a draft Charter that describes 
the goals of this Bar-BOF in more detail.

Where: Castleview 1
When: Tuesday, 1300-1500  (there is a meeting in there until 1300, so we may 
start a bit past 1300)

I am planning to have a presentation to lay out some thoughts on the 
negotiation problem  (I will do this presentation in TSVAREA as well), and open 
up the floor for discussion as to what the right directions and foci within the 
IETF should be.

Please let me know if you'd like a slot to present in this Bar-BOF (name, 
title, duration), and please come over if you have any thoughts or ideas to 
share.


Draft Charter:

A major challenge the Internet faces in the evolution to and deployment of new 
protocols is enabling upgraded hosts to detect efficiently whether a would-be 
communication partner supports the new protocols, and automatically fall back 
on older protocols if not.  If the upgraded host first attempts to use the new 
protocol and falls back to the old protocol only after the former attempt 
fails, the host risks incurring long timeout delays on connection that are 
highly visible and annoying to users, greatly decreasing the likeliness that 
users, operating system vendors, or application vendors will adopt the new 
protocols.  If the upgraded host attempts connections using the new and old 
protocols simultaneously, the host wastes resources both in the network 
(redundant initialization packets) and on the end hosts (redundant transport 
control blocks when multiple connection attempts succeed but only one is 
needed).

Some inefficiency due to concurrent connection attempts is probably tolerable 
and perhaps unavoidable in the interest of enabling negotiation without risking 
long startup delays, but this approach alone will not scale in the long term, 
for two reasons.  First, the number of alternative protocols among which to 
negotiate may increase over time.  If an application can run atop TCP, SCTP, or 
DCCP, then negotiating among them may incur the network and end host costs of 
three redundant connections, not just two.

Second, negotiation is often needed at multiple layers simultaneously. At the network layer, to enable deployment of IPv6 without risking poor user experiences, a host needs to be able to try connecting via IPv6 but fall back to IPv4 if necessary without incurring long delays. At the application layer, applications often need to decide whether to operate with or without TLS, which can be problematic if the original application protocol was not designed to support TLS negotiation and was not assigned a separate port number for its TLS variant, or an application may wish to negotiate efficiently between multiple similar or equivalent application protocols without the user's involvement: e.g., POP3 versus IMAP, SIP versus IAX2. If a host tries to make negotiation decisions for each layer serially (i.e., first choose IPv4 or IPv6, then TCP versus SCTP versus DCCP, then SIP versus IAX2), then it risks even longer connection delays. If a host tries to make all such negotiation decisions in parallel via simultaneous connection attempts, then the combinations multiply across layers: e.g., with two alternatives at the network layer, two at the transport layer, and two at the application layer, a host will be attempting eight simultaneous connection attempts, an explosion that will quickly become infeasible.

The task of the proposed Negotiation (NEGO) BOF will explore the development 
and specification of both short-term and longer-term solutions to this 
negotiation problem.  Short-term work would address specific common cases that 
are of some immediate urgence, such as negotiating efficiently between the IPv4 
and IPv6 versions of a single TCP-based application protocol such as HTTP - a 
problem that is urgent because of the imminent exhaustion of the IPv4 address 
space.  Longer-term work would be to develop a negotiation mechanism addressing 
the scalability problems discussed above.  Technical details such as whether 
this negotiation mechanism would operate out-of-band (e.g., via DNS) or in-band 
(directly between the hosts wishing to communicate) will have to be decided 
within the group.

Tentative work items, vaguely in order from short-term to long-term:
        - Best current practice(?) on negotiating between the IPv4 and IPv6 
versions of a single transport and application protocol.
        - Specification of generic, extensible negotiation protocol or framework 
("Nego")
        - Spec for using Nego to migrate to new transports with fallback to TCP
        - Spec for using Nego to migrate to new transports with fallback to UDP
        - Spec for using Nego to negotiate use of transport with vs without 
TLS/DTLS
        - Spec for using Nego to negotiate among application-layer protocols

Reference materials:
        - "Happy Eyeballs: Successful Introduction of New Technology to HTTP"
                http://tools.ietf.org/html/draft-wing-http-new-tech-00
        - "A la carte: Announcing the supported transport protocols via DNS"
                http://www.ietf.org/id/draft-yourtchenko-tran-announce-dns-00
        - "An Efficient Cross-Layer Negotiation Protocol"
                http://bford.info/pub/net/nego.pdf

Thanks,
- jana

--
Janardhan Iyengar
Assistant Professor, Computer Science
Franklin & Marshall College
http://www.fandm.edu/jiyengar

Reply via email to