1 |
On 8/21/20 10:11 PM, Caveman Al Toraboran wrote: |
2 |
> not a major point but just to clarify a thing. |
3 |
> |
4 |
> i think it's unfair to look at SMTP as a single thing that compares |
5 |
> against HTTP*. because while HTTP* is a single-ish thing, SMTP is |
6 |
> several things. i.e. SMTP is at least 2 parts: |
7 |
|
8 |
Fair point. |
9 |
|
10 |
As I see it, we have two things; 1) what is transferred (email message) |
11 |
and 2) how it is transferred (SMTP, UUCP, etc.). |
12 |
|
13 |
> 1. resource exchange layer where people are defined as some kind of |
14 |
> URL (e.g. name@×××.zone) and attachments are base64-ed text balls |
15 |
> referred to by some numbers in RFC822. |
16 |
|
17 |
That sounds like the "what is transferred" to me. |
18 |
|
19 |
As in the opaque value of the sender / recipient / body / attachments. |
20 |
It does not matter what the contents of those opaque values are. They |
21 |
make up what is transferred. |
22 |
|
23 |
> This part overlaps with HTTP*. let's call this "RESXCH_SERVER". |
24 |
|
25 |
HTTP(S) can overlap with the "how" part of the transfer. |
26 |
|
27 |
But I believe that the HTTP(S) "how" part is independent of the opaque |
28 |
blob part of "what". |
29 |
|
30 |
> 2. the part where it defines how to process the exchanged resources |
31 |
> (e.g. safe storage, routing, etc). this part is beyond HTTP*'s scope, |
32 |
> and is the "web app" scope. let's call this "RESUSE_SERVER" |
33 |
|
34 |
Okay. |
35 |
|
36 |
> of course, email still doesn't work with those 2 parts, because you |
37 |
> need a way to get mails to your email client, so you end up using |
38 |
> POP or IMAP. now, this --itself-- is also two parts: |
39 |
|
40 |
That is highly dependent on your email client. Many traditional Unix |
41 |
email clients read email directly off the file system of the email server. |
42 |
|
43 |
In fact, most POP3(S) and IMAP(S) implementations read the same data off |
44 |
of the email server. The only difference being that the allow the email |
45 |
client to be remote from the email server. |
46 |
|
47 |
I'd like to point out that thus far this thread has been about how to |
48 |
get email between email servers. As such, I think client access |
49 |
protocols are somewhat outside of the existing scope. |
50 |
|
51 |
> 1. resource exchange layer to send resources to users. which also |
52 |
> overlaps with HTTP* (again). let's call this "RESXCH_CLIENT". |
53 |
|
54 |
The "how". |
55 |
|
56 |
> 2. the part where it defines how the mail client to treat the |
57 |
> resources. let's call this "RESUSE_CLIENT". |
58 |
|
59 |
See above comment about scope. |
60 |
|
61 |
This is also a "how". But "how" clients get email from servers is |
62 |
decidedly different than "how" servers exchange email. |
63 |
|
64 |
They can both use any underlying transport, be it TCP (like POP3 & IMAP) |
65 |
or HTTP(S). |
66 |
|
67 |
> i disagree. i think this is more like it about the current email |
68 |
> system: |
69 |
> |
70 |
> RESXCH_SERVER / RESUSE_SERVER / RESXCH_CLIENT / RESUSE_CLIENT |
71 |
|
72 |
I'm having trouble unpacking that. So I'll provide my version of what I |
73 |
think you're trying to say. |
74 |
|
75 |
Since all of this rides on top of TCP, I'm not going to call it out. |
76 |
|
77 |
1) The sender (who-sender) sends their email (what) to their outbound |
78 |
email server (who-recipient) with SMTP (how). |
79 |
|
80 |
2) (The sender's) outbound server (who-sender) sends (the sender's) |
81 |
email (what) to the (the recipient's) inbound server (who-recipient) |
82 |
with SMTP (how). |
83 |
|
84 |
3) The recipient (who-recipient) pulls email (what) from their inbound |
85 |
server (who-sender) with POP3S / IMAPS (how). |
86 |
|
87 |
Notice how we have a what, who-sender, who-recipient, and how in each of |
88 |
these. The who-sender and who-recipient are the parties of each |
89 |
discrete conversation; 1, 2, or 3. |
90 |
|
91 |
Notice how the what (email) is an opaque blob on each leg of the |
92 |
transmission journey. |
93 |
|
94 |
There are four distinct points with three distinct paths in between. |
95 |
|
96 |
A) [1]---(SMTP)---[2]---(SMTP)---[3]---(POP3S/IMAPS)---[4] |
97 |
|
98 |
1) Person sending the email. |
99 |
2) #1's email server. |
100 |
4) Person receiving the email. |
101 |
3) #4's email server. |
102 |
|
103 |
(Yes I know those are not in numerical order. #3 and #4 are in |
104 |
dependency order.) |
105 |
|
106 |
The only way to remove a point and transmission path from this process |
107 |
end-to-end process is for #2 and #3 to be the same. |
108 |
|
109 |
B) [1]---(SMTP)---[2/3]---(POP3S/IMAPS)---[4] |
110 |
|
111 |
Other than mega email providers; Google, Microsoft, Yahoo, et al., you |
112 |
are going to have scenario A above. |
113 |
|
114 |
Each step of the way you have what is transferred (the message) and how |
115 |
it is transferred (the protocol) between two points. |
116 |
|
117 |
The what (email) is still an opaque blob on each leg of the transfer. |
118 |
|
119 |
> it's 4 different layers to exchange mail between people. |
120 |
|
121 |
We apparently aren't using layers the same way. You seem to be using |
122 |
layers in place of hops. That is both inaccurate and unfair for a |
123 |
number of reasons. |
124 |
|
125 |
There can be any number of additional hops in between # 2 & 3 above for |
126 |
any number of reasons; legal, technical, political, etc. |
127 |
|
128 |
> but if we plug HTTP* in the mix, it because only 3 different layers: |
129 |
> |
130 |
> HTTP* / RESUSE_SERVER / HTTP* / RESUSE_CLIENT |
131 |
|
132 |
You also seem to be describing scenario B above. |
133 |
|
134 |
Here is a variation on scenario A above that is completely realistic if |
135 |
not probable. |
136 |
|
137 |
C) |
138 |
[1]---(SMTP)---[2]---(SMTP)---[3]---(SMTP)---[4]---(SMTP)---[5]---(SMTP)---[6]---(POP3S/IMAPS)---[7] |
139 |
|
140 |
1) The person sending the email. |
141 |
2) The person sending the email's work SMTP server. |
142 |
3) The ESP server that the sender's employer is using. E.g. their ISP |
143 |
or SendGrid. |
144 |
5) The ESP server that the recipients employer is using. E.g. Postini |
145 |
or MailRoute. |
146 |
6) The person receiving the email's work SMTP server. |
147 |
7) The person receiving the email. |
148 |
|
149 |
This completely realistic scenario is more hops but still the same |
150 |
number of layers as scenarios A and B above. |
151 |
|
152 |
Scenario A with some layering detail. |
153 |
|
154 |
email email email |
155 |
SMTP SMTP POP3S/IMAPS |
156 |
A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4] |
157 |
|
158 |
Now what you are proposing: |
159 |
|
160 |
|
161 |
|
162 |
email email email |
163 |
TBD TBD TBD |
164 |
HTTPS HTTPS HTTPS |
165 |
A) [1]---(TCP)---[2]---(TCP)---[3]---(TCP)---[4] |
166 |
|
167 |
The number of layers has increased from three to four. |
168 |
|
169 |
The number of hops in the path doesn't matter. |
170 |
|
171 |
You can freely replace TCP with UDP (QUIC) or some other transport layer. |
172 |
|
173 |
You are free to define your own email exchange protocol in place of TBD |
174 |
in the lower of the two layered diagrams. |
175 |
|
176 |
The email layer (opaque contents of the message) is effectively the |
177 |
same. How it's executed doesn't really matter. |
178 |
|
179 |
You can't get around the fact that you have /added/ a layer to the stack |
180 |
in between the transport and the email exchange protocol. |
181 |
|
182 |
I have not heard any compelling reasons for adding HTTPS in between the |
183 |
email transport protocol (SMTP / TBD) and the underlying network |
184 |
transport protocol (TCP / UDP / ...). |
185 |
|
186 |
The only reasons that I have heard are: "there are more libraries" |
187 |
which for me translates to "it's easier (for the developer)" which |
188 |
translates to "laziness". |
189 |
|
190 |
NONE of these reasons qualify as "easier" or "better" for email |
191 |
administrators / the email ecosystem to migrate. |
192 |
|
193 |
> and it is even nicer for when HTTP* is plugged, because it is also |
194 |
> the protocol used for most of internet's traffic (web browsing). |
195 |
|
196 |
It may be the protocol that you see. Trust me when I say that the World |
197 |
Wide Web (which is predominantly HTTP(S)) is a subset of the Internet |
198 |
(which is many, Many, MANY other protocols). |
199 |
|
200 |
Email and DNS are probably the most visible things on the Internet that |
201 |
aren't part of the World Wide Web. |
202 |
|
203 |
> so basically total expected number of protocols/layers used in the |
204 |
> universe, per second, will be much less if we, on planet earth, |
205 |
> use a mail system that uses HTTP* instead of RESXCH_*. |
206 |
|
207 |
I obviously disagree. |
208 |
|
209 |
|
210 |
|
211 |
-- |
212 |
Grant. . . . |
213 |
unix || die |