On Sun, 09 Sep 2001, Pavel Kankovsky wrote:
> How huge is ``huge''? Ten times faster? 5 percent faster?
Depends on the client. qmail-remote does not use PIPELINING even if the
other side offers ist.
> How is the difference affected by the size of messages?
Not at all.
> How is the difference affected by SMTP pipelining?
Approximately the same. SMTP PIPELINING and QMQP get closer to each
other the more recipients the mail has.
> How is the difference affected when multiple concurrent connections are
> used (amortizing RTT-induced delays in SMTP)?
Small, that's why qmail spawns multiple qmail-remote clients if it has
more than one mail to send.
SMTP with PIPELINING needs full round-trips for the TCP connection
initialization (2 including server banner, #0), EHLO/feature dialogue
(#1), the MAIL/RCPT/DATA (envelope, #2), the headers and body of the
mail with CRLF.CRLF (#3), and 1 for the closing TCP FIN dialogue. So,
you need 6 RTTs for an ESMTP PIPELINING mail, and 1 more for each mail
subsequently sent through the same channel, because you can attach
further MAIL/RCPT/DATA commands to the previous message and you only
need to wait for the response to the command set ending in DATA.
OTOH, you can only send one transaction per QMQP connection, so QMQP
will require the 3-way TCP initial handshake (1, because there is no
server announcement to wait for, you send your data right back-to-back
to the ACK packet), and the reply to your whole message packet, and
finally the close. QMQP thus takes 3 RTTs per mail.
Neither example counts RTTs for the mail body or for huge mail
envelopes, which can occur if the window is too small because you have
real-high-latency links or high bandwidth.
Thus, for serial mail, SMTP with PIPELINING will finally save RTTs over
QMQP as soon as you can send three or more pieces of mail through the
same SMTP connection.
Of course, if you do concurrent deliveries, that's not going to hurt
you, it will however make a difference for serial mail action.
serialsmtp, in contrast to qmail-remote, talks ESMTP PIPELINING if the
server allows it, but it waits for the reply to the CRLF.CRLF command
before sending the next mail, so it takes 6 round trips plus 2 per mail,
so that the SMTP/QMQP break-even point in round trips is reached at 4
mail transactions, and it has less RTTs than QMQP at 5 and more mails.
These considerations do not include QMTP.
> How many people using ``a typical modem link'' send enough email to
> feel that ``huge difference''?
Personally, my mails have up to 10 recipients, more only in exceptional
cases, uusually only 1 recipient.
--
Matthias Andree