fanf: (Default)
[personal profile] fanf
A couple of weeks ago I was working on the SMTP QUICKSTART specification, which optimizes the start of the SMTP connection.

http://www-uxsup.csx.cam.ac.uk/~fanf2/hermes/doc/qsmtp/draft-fanf-smtp-quickstart.html

I have now written a specification for SMTP transaction replay, which allows you to use the existing CHUNKING and PIPELINING extensions to acheive the maximum speed possible for bulk data transfer, whilst still behaving correctly if the connection is lost. I imagine this will be most useful clients on slow intermittent links, like mobile wireless users or people on the wrong end of a satellite link.

http://www-uxsup.csx.cam.ac.uk/~fanf2/hermes/doc/qsmtp/draft-fanf-smtp-replay.html

Gosh, over 5000 words...

Date: 2006-03-15 09:56 (UTC)
pm215: (Default)
From: [personal profile] pm215

Interesting. If you happen to have a cooperating client and server (as you might well in the mobile phone case, say) are you allowed to implement your own private SMTP extensions, or are you obliged to wait for them to become proper RFCs?

there's a typo (REPLAT) in s10.1, BTW...

Date: 2006-03-15 10:25 (UTC)
bens_dad: (Default)
From: [personal profile] bens_dad
> The server MUST require that the client uses the same security profile for a
> replayed transaction as it did for the original transaction. For example, if
> the client used TLS for the original transaction [RFC3207], it MUST also
> use TLS for the replayed transaction

I'm happy that this is the rule, to enforce security.

Will the client be allowed to switch between smtps and starttls,
or between ports (25, 587, 465), as long as they always use TLS ?
I'm thinking about the case where my mobile ISP happily allows port 25
but the connection dies so I retry over my home ISP which blocks port 25 ?

Are message-size values typically accurate to the octet ? I remember bugs in exim where it wasn't always correctly updated - I think for header-rewrites. Clearly this is a problem with the submitting application, but if it is common it could reduce take up of replay.

> For the purposes of this section, a "complete" transaction is one for
> which the server has made a final decision to accept or reject the
> message, whether or not it has managed to communicate this decision
> to the client. (This decision is the commit point.) A "partial"
> transaction is one for which the client has not received all the
> server's replies.

This sounds as though, while the accept/reject decision is in flight, the server considers the message "complete" but the client considers it "partial". I take it that that isn't what you mean.

[ Typo in 10.1 - s/REPLAT CLEAR/REPLAY CLEAR/

Really picky: Section 4, second bullet:
This means that at most one message can be duplicated if the connection is lost.
s/can/will/
]

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324 252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-12-30 14:28
Powered by Dreamwidth Studios