《SMTP协议工作原理及服务5330.docx》由会员分享,可在线阅读,更多相关《SMTP协议工作原理及服务5330.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、n更多企业业学院:中小企企业管理理全能版版183套套讲座+897700份份资料总经理理、高层层管理49套讲讲座+1163888份资料中层管管理学院院46套讲讲座+660200份资料国学智智慧、易易经46套讲讲座人力资资源学院院56套讲讲座+2271223份资料各阶段段员工培培训学院院77套讲讲座+ 3244份资料员工管管理企业业学院67套讲讲座+ 87220份资料工厂生生产管理理学院52套讲讲座+ 139920份份资料财务管管理学院院53套讲讲座+ 179945份份资料销售经经理学院院56套讲讲座+ 143350份份资料销售人人员培训训学院72套讲讲座+ 48779份资料n更多企业业学院:中小
2、企企业管理理全能版版183套套讲座+897700份份资料总经理理、高层层管理49套讲讲座+1163888份资料中层管管理学院院46套讲讲座+660200份资料国学智智慧、易易经46套讲讲座人力资资源学院院56套讲讲座+2271223份资料各阶段段员工培培训学院院77套讲讲座+ 3244份资料员工管管理企业业学院67套讲讲座+ 87220份资料工厂生生产管理理学院52套讲讲座+ 139920份份资料财务管管理学院院53套讲讲座+ 179945份份资料销售经经理学院院56套讲讲座+ 143350份份资料销售人人员培训训学院72套讲讲座+ 48779份资料SMTPP协议原原始命令令码和工工作原理理1
3、.SMMTP是是工作在在两种情情况下:一是电电子邮件件从客户户机传输输到服务务器;二二是从某某一个服服务器传传输到另另一个 服务器 2.SMMTP是是个请求求/响应应协议,命命令和响响应都是是基于AASCIII文本本,并以以CR和和LF符符结束。响响应包括括一个表表示返 回状态的的三位数数字代码码 3.SMMTP在在TCPP协议225号端端口监听听连接请请求 4.连接接和发送送过程: a.建立立TCPP连接 b.客户户端发送送HELLO命令令以标识识发件人人自己的的身份,然然后客户户端发送送MAIIL命令令 服务器端端正希望望以OKK作为响响应,表表明准备备接收 c.客户户端发送送RCPPT命
4、令令,以标标识该电电子邮件件的计划划接收人人,可以以有多个个RCPPT行 服务器端端则表示示是否愿愿意为收收件人接接受邮件件 d.协商商结束,发发送邮件件,用命命令DAATA发发送 e. 以以.表示示结束输输入内容容一起发发送出去去 f.结束束此次发发送,用用QUIIT命令令退出。 5.另外外两个命命令: VRFYY-用于验验证给定定的用户户邮箱是是否存在在,以及及接收关关于该用用户的详详细信息息。 EXPNN-用于扩扩充邮件件列表。 6.邮件件路由过过程: SMTPP服务器器基于域名服服务DNNS中计计划收件件人的域域名来路路由电子子邮件。SSMTPP服务器器基于DDNS中中的MXX记录 来
5、路由电电子邮件件,MXX记录注注册了域域名和相相关的SSMTPP中继主主机,属属于该域域的电子子邮件都都应向该该主机发发送。 若SMTTP服务务器maail.abcc.coom收到到一封信信要发到到shuuserrshh.abbc.ccom: a.Seendmmaill请求DDNS给给出主机机sh.abcc.coom的CCNAMME记录录,如有有,假若若CNAAME到到shmmaill.abbc.ccom,则则再次 请求m的CNNAMEE记录,直直到没有有为止 b.假定定被CNNAMEE到m,然后后senndmaail请请求m域的DDNS给给出m的MXX记录, shmaail MX 5 ssh
6、maail.abcc.coom 10 sshmaail22.abbc.ccom c. SSenddmaiil最后后请求DDNS给给出m的A记记录,即即IP地地址,若若返回值值为1.2.33.4 d. SSenddmaiil与11.2.3.44连接,传传送这封封给shhuseerm的信到到1.22.3.4这台台服务器器的SMMTP后后台程序序 7.SMMTP基基本命令令集: 命令 描描述 - HELOO 向服服务器标标识用户户身份 发送者能能欺骗,说说谎,但但一般情情况下服服务器都都能检测测到。 MAILL 初始始化邮件件传输 maill frrom: RCPTT 标识识单个的的邮件接接收人;常
7、在MMAILL命令后后面 可有多个个rcppt tto: DATAA 在单单个或多多个RCCPT命命令后,表表示所有有的邮件件接收人人已标识识,并初初始化数数据传输输,以.结束。 VRFYY 用于于验证指指定的用用户/邮邮箱是否否存在;由于安安全方面面的原因因,服务务器常禁禁止此命命令 EXPNN 验证证给定的的邮箱列列表是否否存在,扩扩充邮箱箱列表,也也常被禁禁用 HELPP 查询询服务器器支持什什么命令令 NOOPP 无操操作,服服务器应应响应OOK QUITT 结束束会话 RSETT 重置置会话,当当前传输输被取消消 - 8. MMAILL FRROM命命令中指指定的地地址是称称作 ee
8、nveeloppe ffromm地址,不不需要和和发送者者自己的的地址是是一致的的。 RCPTT TOO 与之之等同,指指明的接接收者地地址称为为envveloope to地地址,而而与实际际的too:行是是什么无无关。 9.为什什么没有有RCPPT CCC和RRCPTT BCCC:? 所有的接接收者协协商都通通过RCCPT TO命命令来实实现,如如果是BBCC,则则协商发发送后在在对方接接收时被被删掉信信封接收收者 10.邮邮件被分分为信封封部分,信信头部分分和信体体部分 enveeloppe ffromm, eenveeloppe tto 与与messsagge ffromm:, mess
9、sagge tto:完完全不相相干。 evneeloppe是由由服务器器主机间间SMTTP后台台提供的的,而mmesssagee frrom/to是是由用户户提供的的。有无无冒号也也是区别别。 11. 怎样由由信封部部分检查查是否一一封信是是否是伪伪造的? a. rreceeiveed行的的关联性性。 现在的SSMTPP邮件传传输系统统,在信信封部分分除了两两端的内内部主机机处理的的之个,考考虑两个个公司防防火墙之之间 的部分,若若两台防防火墙机机器分别别为和和,但但接收者者检查信信封reeceiivedd:行时时发现经经过了CC.则是是伪造的的。 b. rreceeiveed:行行中的主主机
10、和IIP地址址对是否否对应如如: Receeibeed: froom ggalaangaal.oorg (tuurmeericc.coom 1044.1228.223.1115 byy maail .biiebeerdoorf.eduu. c. 被被人手动动添加在在最后面面的reeceiivedd行: Receeiveed: froom ggalaangaal.oorg (1104.1288.233.1115) byy maail .biiebeerdoorf.eduu (88.8.5) Receeiveed: froom llemoongrrasss.orrg bby ggalaangaal
11、.oorg (8.7.33) Receeiveed: froom ggrappraoo.coom bby llemoongrrasss.orrg (8.66.4) -SMTPP服务对对命令流流水的扩扩展 1摘要要 本文主要要定义了了一种SSMTPP服务扩扩展,使使用这种种服务扩扩展服务务器可以以说明它它在一个个TCPP发送操操作中可可以接收收多少个个指令。在在一个TTCP发发送指令令中使用用多个操操作可以以大大提提高系统统的运行行效率。 2. 介介绍 虽然SMMTP服服务已经经广泛使使用了,效效果也不不错,但但是对它它的扩展展也是不不可少的的。如果果某个网网络需要要很长时时间进行行连接,那那S
12、MTTP运行行的效果果可就比比较差了了。SMMTP的的时间就就费在等等待一个个个的命命令上了了。如果果能够使使SMTTP客户户端进行行命令流流水,也也就是一一次发送送许多指指令,就就会提高高运行效效率。但但以前的的协议中中没有说说明这一一条,客客户无法法知道服服务器能能够同时时接收多多少指令令。因此此产生了了如下的的一些问问题: 连接过程程中连接接失控或或缓冲区区满; 在SMTTP命令令失败时时清除TTCP输输入缓冲冲区,有有时这是是没有必必要的; 对一些命命令会不不讲道理理地判断断它为失失败,例例如一些些服务器器如果在在上一个个REPPT TTO 失失败后会会再不接接收DAATA命命令,而而
13、不管RRCPTT TOO之前的的命令是是不是成成功,而而有些服服务器则则可以在在RCPPT TTO命令令失败后后接收DDATAA命令。 3. 命命令流水水扩展框框架 它的定义义如下: 此服务扩扩展的名名称为流流水(PPipeelinningg); 与EHLLO相关关联的扩扩展值是是PIPPELIININNG; PIPEELINNINGG EHHLO不不再参数数; MAILL FRROM或或RCPPT TTO命令令不附加加其它参参数; 没有附加加其它SSMTPP命令; 4. 流流水服务务扩展 当客户机机希望使使用流水水时,它它会发送送EHLLO命令令到服务务器,如如果服务务器以2250响响应(其
14、其中的响响应包括括PIPPELIININNG)就就表明服服务器支支持SMMTP服服务流水水。 4.1. 客户户使用流流水 在客户知知道服务务器可以以支持流流水的时时候,客客户可以以传输多多个命令令(称为为命令组组)到服服务器,不不用发送送一条等等待一下下然后再再发一条条,特别别的RSSET,MMAILL FRROM,SSENDD FRROM,SSOMLL FRROM,SSAMLL FRROM和和RCPPT TTO可以以出现在在命令组组的任何何地方。EEHLOO,DAATA,VVRFYY,EXXPN,TTURNN,QUUIT和和NOOOP只能能出现在在命令组组中的最最后位置置,因为为它们成成功与
15、否否将改变变SMTTP命令令所处的的状态。由由其它SSMTPP扩展产产生的命命令只能能出现在在组中的的最后位位置。实实际传送送的命令令可以是是组中的的第一个个命令。 客户SMMTP必必须检查查与组中中据有相相关的状状态。如如果RCCPT TP接接收地址址未被接接受,客客户端必必须检查查DATTA的状状态,客客户端不不能假设设因为没没有RCCPT TO是是成功的的所以DDATAA就会失失败。如如果DAATA命命令被正正确拒绝绝,客户户端可以以发出RRSETT,如果果DATTA命令令没有被被正确拒拒绝,客客户端要要发出一一个点(ddot)。命命令所产产生的状状态必须须和分别别发出每每个命令令时相同
16、同,必须须支持多多行(MMulttiliine)响响应。客客户SMMTP可可以选择择在非阻阻塞状态态运行,它它在接收收到服务务器的响响应时立立即处理理,即使使还有数数据需要要发送也也不能推推迟对响响应的处处理。如如果不支支持非阻阻塞状态态,客户户端必须须检查TTCP窗窗口的大大小,TTCP窗窗口的大大小必须须大于命命令组的的大小。窗窗口大小小经常是是4K,如如果不能能进行这这样的检检查,可可能会导导致死锁锁。 4.2. 服务务器对流流水的支支持 服务器应应该提供供下面的的服务扩扩展: 在任何情情况下不不行将TTCP输输入缓冲冲区的内内容丢弃弃; 当且仅当当接收到到一个或或多个有有效的RRCPT
17、T TOO命令时时,才对对DATTA命令令应该主主动发出出响应; 因为DAATA命命令没有有合法的的接收者者,结果果接收到到空信息息时,不不要再发发出消息息给任何何人(当当然对DDATAA命令还还要做一一个响应应); 对成组的的RSEET,MMAILL FRROM,SSENDD FRROM,SSOMLL FRROM,SSAMLL FRROM和和RCPPT TTO命令令的响应应先保存存起来,然然后一起起发送; 不允许缓缓存对EEHLOO,DAATA,VVRFYY,EXXPN,TTURNN,QUUIT和和NOOOP的响响应; 不允许缓缓冲不可可识别命命令的响响应; 在本地TTCP输输入缓冲冲区为空
18、空时必须须将据有有未发出出的响应应全部发发出; 不允许对对未接收收到的命命令进行行猜测;或假设设它的存存在; 在响应的的文本信信息中应应该表时时这是对对哪个命命令进行行的响应应; 5. 例例子 下面是一一个不支支持流水水的SMMTP会会话:其其中S代代表服务务器,CC代表客客户端; S: ; C: ; S: 2220 m SMMTP serrvicce rreaddy C: HHELOO dbbc.mmtviiew.ca.us S: 2250 m C: MMAILL FRROM:; S: 2250 sennderr ; OK C: RRCPTT TOO:; S: 2250 reccipiien
19、tt ; OK C: RRCPTT TOO:; S: 2250 reccipiientt ; OK C: RRCPTT TOO:; S: 2250 reccipiientt ; OK C: DDATAA S: 3354 传输邮邮件内容容,并以以一个只只有”.”的行结结束邮件件 . C: . S: 2250 messsagge ssentt C: QQUITT S: 2221 gooodbyye 在上例中中客户需需要9次次等待服服务器的的响应,下下面我们们来看看看在支持持流水的的情况下下是什么么样子:其中SS代表服服务器,CC代表客客户端; S: ; C: ; S: 2220 m SMMTP s
20、errvicce rreaddy C: EEHLOO dbbc.mmtviiew.ca.us S: 2250-m S: 2250 PIPPELIININNG C: MMAILL FRROM:; C: RRCPTT TOO:; C: RRCPTT TOO:; C: RRCPTT TOO:; C: DDATAA S: 2250 sennderr ; OK S: 2250 reccipiientt ; OK S: 2250 reccipiientt ; OK S: 2250 reccipiientt ; OK S: 3354 传输邮邮件内容容,并以以一个只只有”.”的行结结束邮件件 . C: . C
21、: QQUITT S: 2250 messsagge ssentt S: 2221 gooodbyye 现在等待待的次数数由9次次变为了了4次,下下面我们们看一下下当据有有接收者者均被拒拒绝时会会是什么么情况: S: ; C: ; S: 2220 m SMMTP serrvicce rreaddy C: EEHLOO dbbc.mmtviiew.ca.us S: 2250-m S: 2250 PIPPELIININNG C: MMAILL FRROM:; C: RRCPTT TOO:; C: RRCPTT TOO:; C: DDATAA S: 2250 sennderr ; OK S: 555
22、0 remmotee maail to ; nott alllowwed S: 5550 remmotee maail to ; nott alllowwed S: 5554 no vallid reccipiientts ggiveen /未给给出合法法的接收收者 C: QQUITT S: 2221 gooodbyye 客户端也也等待了了4次,如如果服务务器在接接收DAATA命命令当不不检查接接收者的的合法性性,则是是下面的的情况: S: ; C: ; S: 2220 m SMMTP serrvicce rreaddy C: EEHLOO dbbc.mmtviiew.ca.us S: 225
23、0-m S: 2250 PIPPELIININNG C: MMAILL FRROM:; C: RRCPTT TOO:; C: RRCPTT TOO:; C: DDATAA S: 2250 sennderr ; OK S: 5550 remmotee maail to ; nott alllowwed S: 5550 remmotee maail to ; nott alllowwed S: 3354 传输邮邮件内容容,并以以一个只只有”.”的行结结束邮件件 C: . C: QQUITT S: 5554 no vallid reccipiientts /未给给出合法法的接收收者 S: 2221 gooodbyye