‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Thursday, August 27, 2020 12:21 AM, Grant Taylor 
<gtay...@gentoo.tnetconsulting.net> wrote:

>               email         email        email
>               SMTP          SMTP         POP3S/IMAPS
>     A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4]
>
>     Now what you are proposing:
>
>               email         email         email
>               TBD           TBD           TBD
>               HTTPS         HTTPS         HTTPS
>     A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4]
>
>     The number of layers has increased from three to four.

that's true if "SMTP" is a single layer.

which is also how networking engineers including
those highly skilled ones in standard bodies
commonly commonly talk about protocols (e.g. based
on layers of that sort).  so i see why it makes
sense that you did it this way.

but i this way of looking at protocols (despite
being common) is wrong.  i also disagree with the
network layering proposed by osi or the other ones
commonly published in books.  i specially disagree
with using such layering for studying the
complexity of protocols.

so i suggest that if we want to study the
complexity of messaging systems, we better not
count SMTP as a single thing (like how it is
normally done in books and talks), but instead
talk about it based on the fundamental tasks that
it actually does.  this way, SMTP becomes at least
2 layers:

  1. "resource exchange" layer where binaries are
     made into a single giant text file by base64
     encoding and then partitioned by rfc822.
     this part overlaps with http* and is much
     less efficient (rightfully, since email had
     to be backwards compatible as it is
     critical).

  2. "resource use" where the mail server parses
     such exchanged resources (e.g. email bodies,
     attachments, etc) and then acts upon them
     (e.g.  forward them, discard them, etc).

and so will pop* and imap.

this way, if we ignore the problem of maintaining
backwards compatibility, then having http* in the
"resource exchange" layer would be more efficient
and simpler as there will be less protocols doing
the "resource exchange" task (instead of having
each do its own).

i also think that the kind of resource that email
exchanges is fundamentally identical to a subset
of resources that are natively exchanged in the
web.

so i think the only reason that smtp/pop/imap have
different resource exchange protocols is purely
due to backwards compatibility due to how things
evolved historically.

-----

i suspect that we actually agree on everything,
but speak different languages (possibly due to how
books commonly talk about protocols and layering),
or assume things beyond what's written.

e.g. we agree that:

  1. smtp/pop*/imap make the best messaging
     system today, and is not going away any time
     soon, thanks to its wide spread.  most likely
     i'll be dead and still have multiple active
     smtp/imap/pop account.

  2. smtp/imap/pop are imperfect and have many
     shortcomings that are "rightfully" not solved
     "cleanly" due to historical reasons and its
     critical nature which imposed on us
     the constraint of having to maintaining its
     backwards compatibility.

  3. trying new protocols is fine.  and is also
     fine to have sub-communities that use
     different messaging protocols if they find it
     more fitting.

e.g. i'll probably end up using smtp/imap for
talking to people in general, and use hillarymail
[1] for talking to a closer nerdy community.

[1] https://github.com/al-caveman/hillarymail


Reply via email to