ietf-asrg
[Top] [All Lists]

[Asrg] Protocols

2003-03-25 07:41:16
A lot of the proposals people have made to this list make a fundamental change to how email works, and I don't mean in the specifics, but at a very high level.

Currently the process of sending email from point a to point b does not involve any protocols. Yes, the transport does--but from the MUA to MUA standpoint there is no back and forth protocol. You toss message over wall. Sometime later, someone gets it. This is completely one way. Yes, there are two exceptions to the rule--bounces and return-receipts. And it's probably worth considering that neither of those exceptions work very well. Return-receipt is unreliable due to gateway issues, as well as social ones. And bounces range from no-bounces-but-not-delivered, to did-bounce-but-got-delivered. In both cases the sending MUA seldom has any knowledge of the even that limited protocol. (It could link bounces and return-receipts to the original message, but most do not--the protocols are too unreliable.)

When you propose a change to the mail system that *requires* a protocol (either through two supporting MUAs, or one supporting MUA and one annoyed human :-) you are making a very fundamental change to how email works. You have introduced a dramatic new level of complexity. The difference between drop-and-forget and a real protocol with bi-directional communication is huge. Most importantly, it introduces a whole new way for things to fail.

I've seen a lot of proposals. But I don't believe I've seen any of them discuss failure modes. TCP may guarantee that you deliver a packet or know you didn't--but email most certainly does not. If you are designing a protocol on top of email, you've got to think about the how things fail.

Here are a few to consider--independent of whether we're talking hashcash, sender-pays, challenge/response, or anything else.

- initial message isn't delivered
- initial message is delivered to wrong person
-- intentionally (person left company, new person replies)
-- intentionally (I'm on vacation, forwarded my email to secretary)
-- unintentionally (something went wrong)
-- unintentionally (new person at ISP using old email address)
- protocol reply isn't delivered (gets lost somewhere)
- protocol reply is delivered late (lost in email)
- protocol reply is delivered late (back from six month vacation)
- protocol reply is misdelivered (see above misdelivery cases)
- protocol reply bounces (no account, mailbox over quota)
- protocol reply gets temporary bounce (host unavailable)
- protocol reply bounces without body in reply
- protocol reply gets on-vacation message
- protocol reply is sent return-receipt requested
...

When you design two-way communications, you need to deal with failure. You are building on top of a transport that does not reliably tell you when it fails, or how it failed. Right now even trying to figure out when an address has permanently failed so that it can be removed from a mailing list is non-trivial. That is the transport you have to deal with. All the proposals I've seen so far assume that the underlying email system is reliable. It's not.
--
Kee Hinckley
http://www.puremessaging.com/        Junk-Free Email Filtering
http://commons.somewhere.com/buzz/   Writings on Technology and Society

I'm not sure which upsets me more: that people are so unwilling to accept
responsibility for their own actions, or that they are so eager to regulate
everyone else's.
_______________________________________________
Asrg mailing list
Asrg(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/asrg



<Prev in Thread] Current Thread [Next in Thread>