Re: header-munging

Keith Moore <moore@cs.utk.edu> Mon, 23 September 1996 21:38 UTC

Received: from cnri by ietf.org id aa09544; 23 Sep 96 17:38 EDT
Received: from list.cren.net by CNRI.Reston.VA.US id aa29824; 23 Sep 96 17:38 EDT
Received: from localhost (localhost.0.0.127.in-addr.arpa [127.0.0.1]) by list.cren.net (8.7.6/8.6.12) with SMTP id QAA26573; Mon, 23 Sep 1996 16:56:56 -0400 (EDT)
Received: from ig.cs.utk.edu (IG.CS.UTK.EDU [128.169.94.149]) by list.cren.net (8.7.6/8.6.12) with SMTP id QAA26538 for <ietf-smtp@list.cren.net>; Mon, 23 Sep 1996 16:56:46 -0400 (EDT)
Received: from localhost by ig.cs.utk.edu with SMTP (8.6.10/2.8c-UTK) id QAA25962; Mon, 23 Sep 1996 16:56:35 -0400
Message-Id: <199609232056.QAA25962@ig.cs.utk.edu>
Date: Mon, 23 Sep 1996 16:56:35 -0400
Sender: owner-ietf-smtp@list.cren.net
Precedence: bulk
From: Keith Moore <moore@cs.utk.edu>
To: ietf-smtp@list.cren.net
Cc: Keith Moore <moore@cs.utk.edu>
Subject: Re: header-munging
In-Reply-To: Your message of "Sat, 21 Sep 1996 14:25:26 PDT." <22875.843341126@odin.nma.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Sender: moore@cs.utk.edu
X-Mailer: exmh version 1.6.7 5/3/96
X-URI: http://www.cs.utk.edu/~moore/
X-Listprocessor-Version: 8.1 -- ListProcessor(tm) by CREN

Stef writes:

> Our job in the standards business is to define the ABSTRACT model and
> the interactions between ABSTRACT model components.
> 
> Out job is NOT to decide anything about how an implementation might
> actually make it happen, as long as no ABSTRACT MODEL violations can
> be detected outside the boundaries of the code that does the work.

I strongly disagree.  

Our job is to make the net work well, using such tools as we have at
our disposal.  (Our tools tend to be published documents, but also
include hallway discussions, technical meetings, private email, and
other mechanisms for sharing information.)  We don't have to
artifically limit ourselves to writing standards documents in terms of
abstract models.

Abstract models are fine things, and are quite useful in the proper
context.  It's true in general that we try not to constrain
implementations more than necessary.  Instead, we define the protocols
to be used on the wire.  This is in keeping with the longstanding goal
of letting the Internet be composed of -- and work well with -- a wide
variety of systems and users.

Defining the protocols isn't enough to make the net work well.  We
must also describe the context in which those protocols are expected
to be used.  Abstract models help supply the missing context.  But
defining the abstract model, without considering what implementations
are likely to do in practice, does not produce a working system.

Case in point: There's nothing wrong with the abstract model we are
currently using for email.  The problem we have -- that MUAs don't
generate correctly formatted messages -- isn't due to a failing of the
abstract model, but due to the practical difficulty of supplying the
MUA with the correct information that it needs to do the job right.

Splitting the MUA into two abstract components -- one of which
generates a message on the basis of incomplete or inaccurate
information and the other of which fixes it up -- isn't going to help,
UNLESS we somehow significantly increase the liklihood that the
component that fixes things up has more accurate information than
present-day MUAs.  

NONE of the proposals which use SMTP in any way to do "fixup" of
submitted messages are ANY more likely (certainly not "significantly"
more likely) to produce correct messages than the status quo.

We can twiddle the abstract model all we want, but if IN PRACTICE, the
guy doing the fixup still lacks the correct information, we will not
have improved the reliability of email.  We'll have succeeded only in
creating a new way to talk about the same old problem (we'll blame a
different component of the system), and perhaps even in making the
problem worse than it is now.

On the other hand, if we want to improve the reliability of email, we
need to arrange things so that the component that generates the
message that goes out on the wire, is likely IN PRACTICE to have all
of the information that it needs to do so.  That means that the parts
of the message which are dependent on the sender's environment, need
to be somehow supplied by the sender's environment.

The whole approach of transmitting an incomplete 822 message over a
network connection, and having it be "fixed up" by the entity at the
other end of that connection, makes it likely that the "fixup guy"
will be in a different environment than the sender, and thus likely
that the "fixup guy" will not have the information it needs.  So the
whole approach is likely to lose.

Keith