Re: Comments on IM2000

James Craig Burley <[email protected]> 9 May 2005 21:28:51 -0000
Newsgroups gmane.mail.im2000
Message-ID <[email protected]>
>It was thus said that the Great James Craig Burley once stated:
>> 
>> Under my proposal, there's no question the "average" user would have
>> little trouble sending hundreds, even thousands, of pieces of outgoing
>> UBE without running into resource limits.  But spammers won't find
>> email to be such a worthwhile protocol to advertise their goods at
>> those rates of usage, especially given an increasingly sophisticated
>> end-user audience (and more-intelligent MUAs).
>
>  What about mailing lists?  Say, a real popular one, like the Linux Kernel
>Mailing list?

It's hard to predict whether the server that runs LKML would see more
or less pain under my proposal.

Let's assume a straightforward/naive implementation on both ends.
That is, LKML server accepts incoming email to list (however it does
that today -- same filtering, etc.) and sends it right out to all the
members on the list.  Recipients accept incoming email from LKML
server just as they do today -- with whatever filtering they might
have in place, though, presumably, many would whitelist that server
(as they probably do today) -- except they have the additional ability
to respond indefinitely (or not at all) to the incoming email.

So far, that's within a small scalar factor of my proposal in terms of
efficiency.  (That is, it might be more efficient than today's system,
but probably not enough to justify deployment costs alone.  A system
that is inherently more resistant to UBE is the Holy Grail, especially
on this list, since it makes *everything* better.)

In cases where recipients whitelist the server, they respond to LKML's
transmission with "I've accepted responsibility", so there's no need
for LKML to track or worry further.  That's only a little better than
SMTP can do today -- again, because of simple protocol speedups.

LKML then sends a tracking request out to each of the remaining
recipients about a minute later.  Assuming they work pretty much as
they do today, they'll have committed the messages to disk, done any
preliminary O(N)-type scanning of content, and accepted the messages,
so they'll respond "I've accepted responsibility".

Only two more tracking request per remaining recipient would be sent,
assuming the recipients didn't respond.  The LKML server would,
presumably, treat inadequate response by any recipient after the final
tracking request as it would if it received a bounce in today's
system.

How does this compare, in terms of bandwidth and efficiency, to
today's sytem?  Besides recipients having an easier time of it, as
they obviously would?

Well, the LKML server must deal with incoming legitimate bounces,
which are a grab-bag of formats and sizes.  For a sufficiently large
mailing list, it *will* get such bounces.  It must distinguish between
"I'm on vacation this week" messages (which are not really bounces)
from the legitimate "mailbox disappeared" ones.

And bounces, besides being inherently oversized, often come with
payloads -- the original message -- which, in this case, LKML hardly
needs to be reminded of, so that's a waste of bandwidth on both ends
right there.

Plus, LKML must deal with joe-job bounces all the time -- undoubtedly,
spammers would forge email to come from it in order to get past naive
filters.

Since handling an incoming bounce is inherently much more expensive
than sending a tracking request and receiving a response (or waiting
for one that doesn't arrive), the question is how does the ratio of
all those tracking requests and responses compare to the (presumably
smaller) number of actual bounces?

The third-party costs are lowered as well, because sending bounces or
DSNs requires DNS lookups in the *reverse* direction.  That's
conceptually a waste of resources (DNS caches), since bounces/DSNs
aren't really *original* communications, they are *responses* to
communications.

Tracking requests and responses would not be DNS-addressed -- they'd
be more ephemeral than bounces.  (After all, sending a bounce requires
far more handshaking between point A and point B than point B sending
a single UDP packet containing a tracking request and point A
responding by sending a single UDP packet back.)

Still, if tracking ends up being much more expensive overall than
today's bounce handling in cases such as LKML, *relying* on it (by
providing no alternative in the protocol) would be a mistake.

But another possibility presents itself, as I've alluded to before.  A
new protocol could essentially eliminate *inefficient* bounces
(mainly, payload-carrying bounces), replacing them with
highly-efficient versions of SMTP's DSNs.  They'd still require DNS
lookups in the reverse direction, and perhaps even a TCP connection
(not just flinging a single UDP packet back at the original sender) to
ensure the sender received the DSN.

List-managing software could dynamically decide that, based on its
profile of recipient availability and other factors, it is best to
switch from tracking to requesting such bounces -- and back again, as
circumstances warrant.

Some recipients might choose to never return such bounces under the
new system (and in fact they might choose, or be unable, to do so
under today's SMTP, despite language in the RFCs that appears to
disallow that).

However, if the *protocol* allows it, and if LKML sends its messages
to the list such that they request these low-overhead DSNs *only* in
cases of failure, it can wait, say, two weeks for such a bounce before
assuming each recipient got the message, just as it does *today*,
using a new, and modestly more efficient, protocol.

If recipients are insufficiently willing to send such bounces and the
LKML server still wants to attempt to verify receipt, it can send a
single tracking message per unconfirmed recipient after that two-week
period has expired.

That makes the incremental cost of running my new system, over today's
SMTP, pretty much unmeasurable, even for the LKML.  (This ignores the
one-time adoption cost.)

Further, a list manager like LKML might even choose to request DSNs as
of a particular level of success *or* failure, so it would tend to be
notified earlier, by recipients whose systems cooperate, that a given
message has in fact been received, in case it wants to be more
aggressive about trying alternate routes, deliveries, etc.  (For some
list members, e.g. Linus Torvalds, that might actually make a lot of
sense.)

So, comparing apples to apples and oranges to oranges, I don't believe
my new protocol would be any *less* efficient than today's SMTP,
though it's "foundation", or "core competency", would certainly
involve tradeoffs.

Hence it seems best to extend that foundation by allowing something
akin to today's bounces/DSNs.  It doesn't seem worthwhile deploying
such a system without giving senders and recipients the option to
agree to not bother with tracking and, instead, use a DSN mechanism
similar (but superior overall) to today's bounces and DSNs.

>  -spc (And what's with the tracking anyway?)

Not sure what you mean by that.  Don't you track important packages
you send via FedEx &c. using their online web sites?

It does seem as though IM2000 wouldn't provide any tracking at all,
beyond an indication to the sender of whether the message was
unpinned, and possibly of who (as in IP address) has retrieved the
message.

Such information seems to require some kind of handshaking between the
sender and the message store to take place, however -- it seems too
"remote" to me to be sufficiently reliable.

That's why I keep coming back to wanting direct MUA<->MUA
communications, which takes me away from *presuming* there'll be large
monolithic third-party systems, stores, data bases, etc. that enable
email exchange.  (Although, in practice, even under my proposal, such
entities would likely exist, though more to add value in various ways
than to merely *enable* email exchange, as IM2000 and, increasingly,
SMTP seem to do.)

-- 
James Craig Burley
Software Craftsperson
<http://www.jcb-sc.com>