SMTP 的 PIPELINING 扩展(RFC 2920)如何减少“往返等待”提升吞吐?
1
SMTP 的 PIPELINING 扩展(RFC 2920)如何减少“往返等待”提升吞吐?
▼
原理
标准 SMTP 每发一条命令要等服务器响应再发下条;PIPELINING(EHLO 声明)允许客户端“一次性发多条命令”(如 EHLO 后连发 MAIL/RCPT/DATA),服务器按顺序回包。
收益
大幅减少网络往返(RTT)开销,尤其高延迟链路上显著加速批量投递;是性能优化扩展,不改变语义。
约束
仅“确定无依赖”的命令可批;DATA 之后必须等 354 才能发信体;管线中任一命令失败仍按序处理,客户端需正确解析每条响应。
实践
现代 MTA 普遍支持 PIPELINING;邮件系统批量投递开启管线可提升吞吐,但需保证命令顺序与响应解析正确。
参考:RFC 2920(SMTP Pipelining 扩展);RFC 5321
