[IEE] Tunneling and packaging (was: Re: Packaging IEE Messages)

John C Klensin <klensin@jck.com> Mon, 12 December 2005 20:17 UTC

Received: from localhost.cnri.reston.va.us ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Elu76-00074s-Hx; Mon, 12 Dec 2005 15:17:36 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1Elu74-00073S-Vz for ima@megatron.ietf.org; Mon, 12 Dec 2005 15:17:35 -0500
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA19157 for <ima@ietf.org>; Mon, 12 Dec 2005 15:16:26 -0500 (EST)
Received: from ns.jck.com ([209.187.148.211] helo=bs.jck.com) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Elu7j-0004LH-1v for ima@ietf.org; Mon, 12 Dec 2005 15:18:16 -0500
Received: from [209.187.148.215] (helo=scan.jck.com) by bs.jck.com with esmtp (Exim 4.34) id 1Elu6q-000Ay5-Dk; Mon, 12 Dec 2005 15:17:20 -0500
Date: Mon, 12 Dec 2005 15:17:20 -0500
From: John C Klensin <klensin@jck.com>
To: dcrocker@bbiw.net
Message-ID: <C335E5DD1E2B987FE864F28C@scan.jck.com>
X-Mailer: Mulberry/4.0.4 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 16c9da4896bf5539ae3547c6c25f06a0
Content-Transfer-Encoding: 7bit
Cc: ima@ietf.org
Subject: [IEE] Tunneling and packaging (was: Re: Packaging IEE Messages)
X-BeenThere: ima@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "IEE \(Internationalized Email and Extensions\)" <ima.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/ima>, <mailto:ima-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/ima>
List-Post: <mailto:ima@ietf.org>
List-Help: <mailto:ima-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/ima>, <mailto:ima-request@ietf.org?subject=subscribe>
Sender: ima-bounces@ietf.org
Errors-To: ima-bounces@ietf.org

Dave,

This is the more technical response I promised.   As suggested
in the prior, procedural, note I think it deserves a response
because I believe that a tunneling/embedding approach may be of
great value in downgrading and hence should be better
understood.   But I don't see it as an alternative to the
present proposals, only partially because of the reasons
explained below.

I've tried to respond below to a few questions and comments from
Charles and Martin, since this seems to be the right context.

--On Sunday, 11 December, 2005 10:12 -0800 Dave Crocker
<dhc2@dcrocker.net> wrote:

>...
> PROBLEMS:
> 
> The various threads that have explored different ways to make
> IEE messages -- as distinct from 'legacy' messages -- seem to
> have uncovered the usual problems of trying to run a
> dual-stack service.  In effect, IEE messages are not
> compatible with the existing message-parsing infrastructure,
> so we are trying to find a way to distinguish them, without
> breaking anything.

Well, it does more than that, although what it does depends on a
number of assumptions about implementations and design.  Whether
those assumptions are reasonable or not is an analysis that will
have to be part of this effort.

One of those assumptions is that the typical implementation of
i18n messages will simply be 8bit clean, and UTF-8 clean,
internally with some adjustments to compensate for this
protocol.  If the result of this approach requires running what
are essentially two different protocols over the same port and
signaling path, as your comments about "dual-stack", etc.,
suggest, then we are in big trouble.  We have looked briefly
(again, more work needs to be done) at a few MUA and MTA
implementations in UTF-8 operating environments, and
implementation of the proposed protocol (absent downgrading and
as of the time of the Vancouver IETF) appears to require:

	* Disabling the syntax check requiring that addresses be
	in ASCII
	
	* Disabling the syntax check requiring that headers be
	in ASCII
	
	* Adding the appropriate capability announcement to the
	EHLO response in the SMTP server.

You will note the strong resemblance between this and most
practical (and actual) implementations of 8BITMIME.  That option
(again, modulo downgrading) is really not "I have these special
capabilities" or "I have dual-stack-like capability for handling
that bizarre form" but "my code paths can accept this without
problem".

This is why I've been resistant to Charles's suggestions about
changing the syntax of various header lines.  I think that
requires, not disabling a few tests, but recasting every MUA (or
other module that deals with headers) to support a dual code
path and turns implementing this into a much bigger deal.

The answer to Martin's question in that regard is that I'm still
unconvinced that a specific marker is needed except maybe after
delivery.  If folks want it, adding it is pretty painless as far
as I can tell, but necessity is still, IMO, not demonstrated.

> The SMTP option approach essentially checks for a safe path
> between originator and recipient.  There is a long-term appeal
> to this approach, given that it provides the cleanest handling
> of the new object itself. Unfortunately this approach has an
> enormously high barrier to adoption, since it requires
> changing much of the SMTP infrastructure before gaining much
> utility. I am afraid, therefore, that this looks like a good
> *adjunct* procedure, rather than an appealing first step.

See above and my earlier note.  From my standpoint, "gaining
much utility" has to do with communities who need this and
mutually consent to its use.  It is simply not required that it
be deployed everywhere on the Internet in order to gain utility,
although such deployment would obviously be valuable and
increase network effects as it occurs.  What is key is that
those who have not yet decided to play are protected from any
ill side effects as the result of its use by those who are using
it.

That brings me back to another place where I think Charles and I
have a disconnect.  SMTP, [2]822, and MIME are an inherently
strong-envelope environment, as evidenced by the fact that there
is no requirement that any of the envelope addresses appear in
the headers.    Clearly, there are weak-envelope and no-envelope
environments in the mail world.  But the right way to deal with
them, IMO, is to be sure that the right conversions can be done
at gateways, that they have headers (or whatever they use) that
can carry the information that strong-envelope environments
carry in the envelope (assuming that information is relevant),
and so on.  The solution is not to try to force the strong
envelope environment to turn into a weak envelope one or to
create the sorts of redundancies between headers and envelope
that have led to trouble over and over again.

> Changing the message header, to add a single field -- as a
> flag -- or multiple fields -- as alternate content -- makes
> the header a mess to parse, creates dangers with
> synchronization across headers, and otherwise looks like an
> attempt to merge two, frankly incompatible formats.

But, unless one wants to do that for other reasons, it is a
classic strawman.   If one adopted the principle that no
downgrading would be done at all prior to MTA final delivery
--that sending an i18n message to an MTA that couldn't handle it
would result in a bounce (see the framework document and my
earlier I-Ds for an analysis of why this wouldn't be quite as
terrible as would appear on first glance)--  turns this into a
message store and MUA issue, which is quite a different one from
worrying about a very heterogeneous origination, transport, and
delivery environment.

> One almost wishes that email had an "envelope" header section,
> as distinct from the "content" header.  (In effect, this
> serves to create an ordering between 2 sets of header fields.)
> After all, the reason that Content-type works, in describing
> alternate forms of data, is that it is guaranteed to occur
> before the content it labels.  Hence it does not impose a
> 2-pass parsing model.

Yes.  Of course.  FWIW, I explored this one in
draft-klensin-email-envelope-00 almost two years ago.  That
version of the idea got all of the traction it deserved, i.e.,
about zero, but the point was that it is possible to make this
change if we were really motivated.  It stops a bit short of
"new mail protocol", but not much.   Of course, there is also a
strong argument for a three-layer envelope, separating what we
describe in Internet mail as the current (addressing and
transport instructions) envelope, message trace and related
information, and headers, ideally with all three forced into a
canonical form rather than having the last two as
randomly-ordered text fields.  Hmm.  I wonder if one could call
those P1, P2, and P3?  <sigh>.    But that discussion is, IMO
fortunately, badly off topic -- see prior note about procedures.

> TUNNELING:
> 
> In looking for an approach that might be simple and
> sufficient, it occurs to me that there is an easy way to
> achieve a similar effect, that is entirely comfortable within
> the current SMTP *and* Header processing environment:
> 
>     Content-type: message/iee
> 
> The new form is entirely packaged as a body-part, within an
> old-form message.  There is no danger to existing parsers or
> handlers.  And there is explicit labeling of the new form.

But it prevents the use of internationalized addresses _in the
envelope_, which is the key goal of this process.   In a 7bit
transport environment, it also raises some issues with the
double-encoding problem, although I imagine we could work those
out.

> Best of all, this is an approach that is quite similar to that
> done in adopting MIME and ESMTP.  That is, they have proved
> complementary, with a low barrier to adoption and quite a bit
> of benefit for early adopters.

But the barriers are not low, since it requires that every MUA
that is going to deal with these things contain unpacking logic.
It also forces the user (or some very intelligent heuristics and
conventions) to be able to decide whether replies are to go to
the outer header address (and with those subject lines,
in-reply-to fields, etc.) or to the ones contained in the body
part.  I suggest we have some experience with that exact type of
"stacked header" situation and the associated user choices with
message/digest and that the experience has not been a happy one
... the end user just needs a little too much understanding.

> So, the legacy header is used as an envelope header, and the
> header within message/iee is used as the "real" rfc2822bis
> message header.

Now, all of that said, I suspect that there may be a role for
message encapsulation (along the lines of message/iee) for
downgrading.  If alternate (i.e., ASCII) addresses are
available, it might be far more sensible to do downgrading along
exactly the lines you suggest, thereby avoiding introducing an
entire new header collection and syntax-set just to accommodate
the downgrade cases.   For a discussion of that theme that is
incomplete --but a little more complete than your email message
-- see draft-klensin-email-i18n-message-00 (2 Feb 2004).  Of
course, that approach still has the interpretation and unpacking
problems identified above, but it is transitional --part of a
temporary problem until more systems either get their
configurations together or upgrade to be able to handle i18n
mail properly-- not a permanent blot on the landscape and,
worse, an impediment to using non-ASCII scripts on the Internet
in the same fashion in which ASCII is used.

     john



_______________________________________________
IMA mailing list
IMA@ietf.org
https://www1.ietf.org/mailman/listinfo/ima