RFC2920 SMTP 针对命令流水线的服务扩展

发表于 4年以前  | 总阅读数:809 次
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者: 刘伟力(truelwl   truelwl@sina.com)
译文发布时间:2001-4-27
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。

Network Working Group                                          N. Freed
Request for Comments: 2920                                     Innosoft
STD: 60                                                  September 2000
Obsoletes: 2197
Category: Standards Track

SMTP 针对命令流水线的服务扩展
(RFC2920 SMTP Service Extension for Command Pipelining)

  
本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建
议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化
程度和状态。本备忘录的发布不受任何限制。
版权声明
Copyright (C) The Internet Society (1999).  All Rights Reserved.

摘要
该文档定义了对简单邮件传输协议(SMTP)服务的一种扩展。这种扩展服务使得邮
件服务器在单次基于传输控制协议(TCP) 的发送操作中能够接受多条命令。这样单次
TCP发送操作实现多条邮件传输命令可以显著提高SMTP的性能。

目录
1 介绍 2
1.1 需求符号 2
2 命令流水线扩展的基本框架结构 3
3 流水线服务扩展 3
3.1 客户端使用流水线 3
3.2 服务器支持流水线 4
4 举例 4
5 安全方面的考虑 6
6 致谢 6
6 参考资料 7
8.作者的地址 7
9.版权说明 7

1 介绍
虽然SMTP已经得到广泛,稳定的应用,但是一定程度的对其功能的扩展无疑是有
益的, 尤其是对那种用在因特网上使用的高延迟的网络连接这种扩展更加必要. 在这
种高延迟网络连接中, SMTP固有的一条命令对应一条回应的模式很不利, 每次连接时
间都花费在等待个别命令的回应(周转时间)上了.
最简单的情况莫过于直接开发SMTP的客户端软件,势其使用命令流水线: 把多条
命令集成在一条TCP的发送操作中. 不幸的是, 最初的SMTP规范[RFC-821]没有明确
的规定SMTP服务器必须支持命令流水线. 因此,大量的因特网SMTP服务器不能完全
处理命令流水线. 在现存的服务其中存在以下缺陷:
(1). 在SMTP对话期间进行连接传递(connection handoff)和缓冲区的刷新. 一般
来说, 服务器对相应的SMTP连接请求生成相应的进程进行处理是一种有用,明显 和
无害的实现技术,然而, 一些SMTP服务器可能会推迟进行处理进程的生成和连接的传
递(connection handoff), 可能会导致存储在进程缓冲区里的来自TCP连接的数据丢失.
(2).当一个SMTP命令失败后,TCP 输入缓冲区会刷新. 事实上, SMTP命令经常会
失败, 而这些刷新是没有道理的. 不管怎样, 一些SMTP服务器确实这样做了.
(3).对失败的SMTP命令不合适的处理. 举例来说, 在最后一个RCPT(假设有不止
一个RCPT命令 – 译者)命令失效时, 尽管其他的RCPT命令成功了,一些SMTP服务
器会拒绝接受接下来的DATA命令. 相反,有些服务器即使在所有的RCPT命令都失效
的情况下,仍然会接受DATA命令. 虽然, 实现了命令流水线的邮件客户端程序可以适
应上述的两种情况,但是毕竟这给客户端的实现带来了不必要麻烦.

该备忘录使用了在[RFC-1869]中描述的机制来定义SMTP服务的扩展. 使用这种
扩展服务的服务器可以声明自己是否能够处理命令流水线的情况. SMTP客户端可以检
查到这一声明,只有在确保服务器支持使用命令流水线时,才可以使用它.

1.1 需求符号
在该文档中,偶尔会用到大写的名词. 大写的"MUST","MUST 
NOT","SHOULD","SHOULD NOT", 和"MAY" 用来表示在本规范中的特殊需求. 在
[RFC-1123]中有专门对这些名词,例如"MUST","SHOULD" 和"MAY" 含义的介绍. 而那些
名词"MUST NOT" 和 "SHOULD NOT"是对上述名字的逻辑扩展.
    
2 命令流水线扩展的基本框架结构
命令流水线采用如下定义:
(1). 这种SMTP服务扩展的名称是流水线.
(2). 关键字EHLO 的值一定是PIPELINING.
(3). 使用关键字PIPELINING EHLO时没有参数.
(4). 对命令 MAIL FROM 和 RCPT TO 没有定义额外的参数.
(5). 没有为扩展服务定义额外的SMTP动词(命令).
(6). 在下一章讲解为了支持扩展服务,服务器和客户端会受到怎样的影响.
3 流水线服务扩展
当一个SMTP客户希望使用命令流水线时,它首先要向服务器发送EHLO 命令.如
果服务器返回代码 250 ,而且返回信息中包含关键字EHLO本身和它的值PIPELINING,
那么这说明该SMTP服务器支持命令流水线的特性.
3.1 客户端使用流水线
一旦SMTP客户端确信服务器支持流水线的特性,那么它就可以不必等待每条命令
的回应而选择使用一组SMTP命令发送到服务器. 特别是, 命令 RSET, MAIL FROM, 
SEND FROM, SOML FROM, SAML FROM, 和RCPT TO 可以在命令组中任何地方
出现. 而对EHLO,DATA,VERY,EXPN,TURN,QUIT,和NOOP,由于他们的返回结果很关
键,可能影响到整个连接的状态,所以只能出现在命令组的末尾处. (NOOP 也属于此类
命令,所以它可以作为连接的同步点).

如果没有特别说明, 由其他SMTP扩展协议定义的额外命令也只能放在命令组的结尾.

实际传递消息内容明确的规定可以作为一个命令组里的第一条命令. 也就是说, 一个
RDET/MAIL FROM 用来初始一个新消息的命令序列可以跟上一条消息的传递消息头
部和消息体的命令放在同一个组里.

一个客户端要想实现流水线,必须(MUST)检查在同一个命令组里所有的命令的相关状
态. 例如, 如果没有一个 RCPT TO 目的地址被接受,那么客户端必须检查DATA命令
的返回状态. 此时,客户端不能想当然的认为DATA一定会失败. 如果DATA命令失败了, 
这是客户要发送 RCPT命令,如果DATA成功的被接受了,那么客户需要发送一个点(.)
来结束DATA命令.

命令状态必须(MUST) 能够分清返馈信息和发送的命令之间一一对应的关系,还要清楚
发送的命令数目. 多行的反馈信息必须(MUST)得到支持. 简单的匹配返回的错误代码
和错误信息是被禁止的.

客户端实现可以(MAY)采用非阻塞模式.即使仍然有上一条TCP发送操作的数据在传输
中, 进行处理的服务器对刚刚收到的命令立即进行处理, 如果非阻塞操作不被支持, 那
么客户端实现必须(MUST)也要检查TCP 窗体的大小,以确保每组命令完全跟窗体大小
匹配. 一般,窗体大小是4K 字节,但也有例外. 如果不能确保这种检查正确进行, 往往
会导致死锁.

客户端必须不能(MUST NOT)混淆多条命令和多条反馈. 每一条命令需要一条或多条
的信息反馈,在最后一行的反馈代码和信息中不能包含破折号.

3.2 服务器支持流水线
 一个支持流水线的SMTP服务器必须具备以下条件:
(1). 必须(MUST)按照顺序对从客户端提交的命令进行反馈.
(2). 应该(SHOULD)对成组的命令RSET,MAIL FROM,SEND FROM,SOML 
FROM,SAML FROM, 和RCPT TO 利用内部缓冲区进行选择性的存储,以便他们能够
当作一个单元进行发送.
(3). 当且仅当有一个或多个RCPT TO 地址有效时, 应该(SHOULD)给与客户端正
确的反馈.
(4). 在对没有有效接受方地址的情况下,给了DATA命令以正确的反馈, 接着必然
收到一个空的消息正文 , 此时一定不能(MUST NOT)给任何接受方发送任何消息.
(5). 对命令 EHLO,DATA,VEFY,EXPN,TURN,QUIT,和NOOP的反馈不能(MUST 
NOT)缓存.
(6). 对不能识别的命令一定不能(MUST NOT)缓存.
(7). 当本地的TCP输入缓冲区为空时,一定要(MUST)立即发送所有待发的命令反
馈.
(8). 一定不能(MUST NOT)对尚未收到的命令做任何假设.
(9).  在任何境况下.一定不能(MUST NOT)刷新TCP输入缓冲区的内容
(10).应该(SHOULD)提供模糊的或是明确的反馈文本来标志与反馈信息相匹配的
命令.
这些对服务器端的需求目的就是要让服务器尽可能的符合流水线扩展服务.


4 举例
考虑下面的没有使用流水线的SMTP对话:
   S: 
   C: 
   S: 220 Innosoft.com SMTP service ready
   C: HELO dbc.mtview.ca.us
   S: 250 Innosoft.com
   C: MAIL FROM:
   S: 250 sender  OK
   C: RCPT TO:
   S: 250 recipient  OK
   C: RCPT TO:
   S: 250 recipient  OK
   C: RCPT TO:
   S: 250 recipient  OK
   C: DATA
   S: 354 enter mail, end with line containing only "."
    ...
   C: .
   S: 250 message sent
   C: QUIT
   S: 221 goodbye
在这个简单的例子中,客户端足足等了服务器的反馈9 次,. 但是如果采用流水
线服务, 则是下面的情形:

   S: 
   C: 
   S: 220 innosoft.com SMTP service ready
   C: EHLO dbc.mtview.ca.us
   S: 250-innosoft.com
   S: 250 PIPELINING
   C: MAIL FROM:
   C: RCPT TO:
   C: RCPT TO:
   C: RCPT TO:
   C: DATA
   S: 250 sender  OK
   S: 250 recipient  OK
   S: 250 recipient  OK
   S: 250 recipient  OK
   S: 354 enter mail, end with line containing only "."
    ...
   C: .
   C: QUIT
   S: 250 message sent
   S: 221 goodbye

所有的周转次数从9减少到了4.
  下面的例子说明了使用流水线服务时,当所有的邮件接收者都无效时的一种可能情形.

   S: 
   C: 
   S: 220 innosoft.com SMTP service ready
   C: EHLO dbc.mtview.ca.us
   S: 250-innosoft.com
   S: 250 PIPELINING
   C: MAIL FROM:
   C: RCPT TO:
   C: RCPT TO:
   C: DATA
   S: 250 sender  OK
   S: 550 remote mail to  not allowed
   S: 550 remote mail to  not allowed
   S: 554 no valid recipients given
   C: QUIT
   S: 221 goodbye 
客户端也是等待服务器4次. 但是如果服务器在接受DATA之前不对接收者进
行至少一个有效的检验,则是以下的情形:
            S: 
   C: 
   S: 220 innosoft.com SMTP service ready
   C: EHLO dbc.mtview.ca.us
   S: 250-innosoft.com
   S: 250 PIPELINING
   C: MAIL FROM:
   C: RCPT TO:
   C: RCPT TO:
   C: DATA
   S: 250 sender  OK
   S: 550 remote mail to  not allowed
   S: 550 remote mail to  not allowed
   S: 354 enter mail, end with line containing only "."
   C: .
   C: QUIT
   S: 554 no valid recipients
   S: 221 goodbye

5 安全方面的考虑
   本RFC不讨论安全性问题,但是可以相信它不会给电子邮件带来新的安全漏洞.
而且, 本RFC描述的工作过程与[RFC-821]实现完全一致.
6 致谢
该文挡基于在RFC 1425中论述的SMTP服务扩展模型. 另外,Marshall Rose在他的
著作"The Internet Message" 一书中对命令流水线的论述对该文挡提供了很多启发和帮
助.
6 参考资料
   [RFC-821]  Postel, J., "简单邮件传输协议", STD 10, RFC
              821, August 1982.
[RFC-1123] Braden, R., "因特网主机需求 --应用和支持", STD 3, RFC 1123, 
October, 1989.
   [RFC-1854] Freed, N., "SMTP命令流水线的服务扩展", RFC 1854, October 1995.
   [RFC-1869] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D.
              Crocker, "SMTP 服务扩展", STD 10, RFC 1869,
              November 1995.
[RFC-2197] Freed, N., "SMTP 针对命令流水线的服务扩展", RFC 2197, 
September 1997.

8.作者的地址
Ned Freed
   Innosoft International, Inc.
   1050 Lakes Drive
   West Covina, CA 91790
   USA

   Phone: +1 626 919 3600
   Fax:   +1 626 919 361
   EMail: ned.freed@innosoft.com

   This document is a product of work done by the Internet Engineering
   Task Force Working Group on Messaging Extensions, Alan Cargille,
   chair.

9.版权说明
Copyright (C) The Internet Society (2000).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

   
致谢
感谢Internet协会给予RFC编辑部门的资金。


RFC2920 SMTP Service Extension for Command Pipelining   SMTP 针对命令流水线的服务扩展


1
RFC文档中文翻译计划
 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:8月以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:8月以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:8月以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:8月以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:8月以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:8月以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:8月以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:8月以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:8月以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:8月以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:8月以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:8月以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:8月以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:8月以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:8月以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:8月以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:8月以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:8月以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:8月以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:8月以前  |  398次阅读  |  详细内容 »