Re: [lemonade] streamlined message submission
Ned Freed <ned.freed@mrochek.com> Wed, 22 February 2006 16:01 UTC
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1FBwR6-0002dA-HL; Wed, 22 Feb 2006 11:01:52 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1FBwR5-0002d2-BE for lemonade@ietf.org; Wed, 22 Feb 2006 11:01:51 -0500
Received: from [209.55.107.55] (helo=mauve.mrochek.com) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1FBwR0-0001JB-P6 for lemonade@ietf.org; Wed, 22 Feb 2006 11:01:51 -0500
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01LZ9FNCISTS008NQS@mauve.mrochek.com> for lemonade@ietf.org; Wed, 22 Feb 2006 08:01:45 -0800 (PST)
DKIM-Signature: a=rsa-sha1; c=nowsp; d=mrochek.com; s=mauve; t=1140624104; h=Date: From:Subject:MIME-version:Content-type; b=Knx4f8hJH+3lgA7q06aIAQtti n23SO3K1QCqjAtg0EP+3aLYc6HtGgy34Z4kzAGfF7/HWl9HLAj/Tic5mX4zVw==
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01LZ8ERZDACG00009C@mauve.mrochek.com>; Wed, 22 Feb 2006 08:01:42 -0800 (PST)
To: Dave Cridland <dave@cridland.net>
Message-id: <01LZ9FNBLMAS00009C@mauve.mrochek.com>
Date: Wed, 22 Feb 2006 07:12:34 -0800
From: Ned Freed <ned.freed@mrochek.com>
Subject: Re: [lemonade] streamlined message submission
In-reply-to: "Your message dated Wed, 22 Feb 2006 14:43:48 +0000" <21533.1140619429.225276@peirce.dave.cridland.net>
MIME-version: 1.0
Content-type: TEXT/PLAIN; format="flowed"
References: <Pine.LNX.4.64.0602220017450.24112@hermes-2.csi.cam.ac.uk> <21533.1140619429.225276@peirce.dave.cridland.net>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 6cca30437e2d04f45110f2ff8dc1b1d5
Cc: diverse service enivronments <lemonade@ietf.org>, Enhancements
X-BeenThere: lemonade@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Enhancements to Internet email to support diverse service enivronments <lemonade.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/lemonade>, <mailto:lemonade-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:lemonade@ietf.org>
List-Help: <mailto:lemonade-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/lemonade>, <mailto:lemonade-request@ietf.org?subject=subscribe>
Errors-To: lemonade-bounces@ietf.org
> On Wed Feb 22 00:54:25 2006, Tony Finch wrote: > > I've written this up in more detail. The following are all fairly > > short, > > and where they aren't they are formulaic. > > http://www.cus.cam.ac.uk/~fanf2/hermes/doc/antiforgery/draft-fanf-submission-streamlined.txt > BURL doesn't allow clients to pipeline AUTH - that's just possible > anyway with a server that supports PIPELINING. I have no idea why > you'd want to pipeline QUIT - it's never going to be a good idea. You > leave the connection open until it times out, in case you need to > reuse it later. (Yes, this isn't nice to the server.) The thing a lot of clients do is simply drop the connection without ever sending a QUIT, rules to the contrary notwithstanding. Of course the user can be told that the message was successfully sent the instant the response to the final DATA/BURL/BDAT has been received. The QUIT can then be handled asynchronously in the background. So if the goal is to improve user experience, QUIT handling doesn't have to be relevant. > Oh, and I believe that it's possible to include the banner in the TCP > SYN+ACK packet coming from the server, but I couldn't swear to it. > That one just got told to me in the pub once. I *think* Linux's TCP > stack allows you to write the banner to a listening socket or > something odd to get the behaviour, but I'd have to ask about. Wow, you sure have more interesting conversations at the pub than I do ;-) Anyway, I know of a couple of tricks in this space. One is the technique described in RFC 1644, which eliminates the three way handshakes for repeated connections between the same two machines. It isn't clear to me that this would be useful in SMTP, however. Often as not there are a whole bunch of front end machines a client can connect to, and arranging things so the client would have an affinity for the last server would be tricky. The other is to piggyback data on either the syn, syn-ack, or both. This has been discussed many times on various lists but if there's an RFC discussing it in detail I don't know the number. Piggyback data on syn isn't interesting in SMTP since the server speaks first, but returning the server banner on the syn-ack would represent some savings. The problem lies in implementation - most (all?) TCP APIs don't allow data to be specified in the accept call. Some stacks offer a way to delay sending acks in hopes they can be piggybacked on returned data, but I don't know if this ever extends to syn-ack or not. The trick you described of writing data to the socket before calling accept is not one I've heard of before. I may try it and see if it works. > > http://www.cus.cam.ac.uk/~fanf2/hermes/doc/antiforgery/draft-fanf-smtp-quickstart.txt > A round-trip saved, that's good. This is a rough analogue of the IMAP > CAPABILITY response code. > The question is, is it possible that some ESMTP clients might be > confused by a multiline response? I'm mildly concerned by that. This used to be a problem in practice, but several years ago some fairly popular SMTP server started spitting out multiline banners (something sort of "no trespassing" sign, I think) and refused to provide an option to disable it, which then got a lot of the incompliant gunk cleaned up. (It is always nice when something that's widely deployed pushes the envelope this way.) At this point I think compliance is pretty good - as it happens I forgot to dismantle a test a few months back and inadvertently ran with a mulitline banner for a while and noticed no problems. > There's an alternate model for this sort of thing - you can issue a > server configuration indicator in the banner, which changes whenever > the configuration does, such that if you recognise it, then the EHLO > becomes redundant, because you know the capabilities. Moreover, > you've cached them *after* the secure channel setup, of course, so > you needn't ever fetch them until you see that change. We actually use a similar trick in our SMTP in order to avoid having to code the list of supported extensions into the proxy. This is one of those things that sounds simple but it is actually surprisingly hard to implement correctly. I forget exactly what bugs we had, but we definitely had a couple. I actually worry more about implementors getting this right than I do about getting multiline banner processing right. Ned _______________________________________________ lemonade mailing list lemonade@ietf.org https://www1.ietf.org/mailman/listinfo/lemonade
- [lemonade] streamlined message submission Tony Finch
- Re: [lemonade] streamlined message submission Ned Freed
- Re: [lemonade] streamlined message submission Tony Finch
- Re: [lemonade] streamlined message submission Ned Freed
- Re: [lemonade] streamlined message submission Dave Cridland
- Re: [lemonade] streamlined message submission Antony Bowesman
- Re: [lemonade] streamlined message submission Ned Freed
- Re: [lemonade] streamlined message submission Tony Finch
- Re: [lemonade] streamlined message submission Tony Finch
- Re: [lemonade] streamlined message submission Dave Cridland
- Re: [lemonade] streamlined message submission Chris Newman
- [lemonade] Re: PIPELINING, AUTH, and CHUNKING Tony Finch
- [lemonade] Re: PIPELINING and failed recipients Tony Finch
- [lemonade] Re: PIPELINING and failed recipients Dave Cridland
- [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] SMTP QUICKSTART Dave Cridland
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] SMTP QUICKSTART Chris Newman
- Re: [lemonade] SMTP QUICKSTART Mark Crispin
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Chris Newman
- Re: [lemonade] SMTP QUICKSTART Ned Freed
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Tony Finch
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Alexey Melnikov
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Tony Finch
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Arnt Gulbrandsen
- Re: [lemonade] Re: PIPELINING, AUTH, and CHUNKING Rob Siemborski
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] SMTP QUICKSTART Dave Cridland
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] SMTP QUICKSTART Dave Cridland
- Re: [lemonade] SMTP QUICKSTART Tony Finch
- Re: [lemonade] streamlined message submission Randall Gellens
- Re: [lemonade] streamlined message submission Dave Cridland
- Re: [lemonade] streamlined message submission Tony Finch
- Re: [lemonade] streamlined message submission Randall Gellens
- [lemonade] Re: PIPELINING, AUTH, and CHUNKING Randall Gellens
- [lemonade] Re: PIPELINING, AUTH, and CHUNKING Randall Gellens
- [lemonade] Re: PIPELINING and failed recipients Randall Gellens
- Re: [lemonade] streamlined message submission Dave Cridland
- Re: [lemonade] streamlined message submission Ned Freed
- Re: [lemonade] streamlined message submission Dave Cridland
- [lemonade] Re: PIPELINING and failed recipients Robert A. Rosenberg
- Re: [lemonade] streamlined message submission Randall Gellens
- [lemonade] Re: PIPELINING and failed recipients Randall Gellens