SMTP协议分析结课论文.docx
- 文档编号:3818837
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:17
- 大小:647.53KB
SMTP协议分析结课论文.docx
《SMTP协议分析结课论文.docx》由会员分享,可在线阅读,更多相关《SMTP协议分析结课论文.docx(17页珍藏版)》请在冰点文库上搜索。
SMTP协议分析结课论文
呼伦贝尔学院计算机系
题目:
SMTP与POP3协议分析
学生姓名:
李慧
学号:
201312104010
专业班级:
2013级网络工程本四
指导教师:
曹晶秀
完成时间:
2015年12月
SMTP与POP3协议分析
Xx
(xx学院计算机系,xx市029000)
摘要:
电子邮件作为互联网中交换信息广泛的通信工具之一,如今都已被广大用户接受。
早期的电子邮件只是从一个计算机终端向另外一个计算机终端传送文本信息,而现在的电子邮件不仅可以发送文本信息,还可以传送声音、图片、文档等多种信息。
很多邮件客户端软件被用户利用起来,例如Outlook,Foxmail,但是大多用户不了解邮件传输的协议,本文通过介绍SMTP和POP3协议,使用户更加了解邮件传输协议。
关键词:
邮件传输协议;SMTP;POP3
中图分类号:
TP3-0
引言
在生活中、工作中,电子邮件都是必不可少的沟通交流工具,电子邮件(electronic mail,简称E-mail,标志:
@,也被大家昵称为“伊妹儿”),又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式,是Internet应用最广的服务,通过网络的电子邮件系统,用户可以用非常低廉的价格(不管发送到哪里,都只需负担电话费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字、图像、声音等各种方式。
同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。
1SMTP协议
1.1SMTP协议基本介绍
SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
1.2SMTP协议工作过程
1.SMTP是工作在两种情况下:
一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。
2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以
响应包括一个表示返回状态的三位数字代码
3.SMTP在TCP协议25号端口监听连接请求
4.连接和发送过程:
a.建立TCP连接
b.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令服务器端正希望以ok作为响应,表明准备接收
c.客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行服务器端则表示是否愿意为收件人接受邮件
d.协商结束,发送邮件,用命令data发送
e.以.表示结束输入内容一起发送出去
f.结束此次发送,用QUIT命令退出。
5.另外两个命令:
VRFY---用于验证给定的用户邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。
1.3SMTP应答码
图1-1SMTP应答码列表
1.4SMTP基本命令
HELO
向服务器标识用户身份
初始化邮件传输,命令中指定的是发件人地址
Mailfrom:
RCPT
标识单个的邮件接收人,常在mail命令后面,可以有多个rctpto:
DATA
在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束。
VRFY
用于验证指定的用户/邮箱是否存在,由于安全方面的原因,服务器常禁止此命令。
EXPN
验证给定的邮箱是否存在,扩充邮箱列表,也常被禁用。
HELP
查询服务器支持什么命令
NOOP
无操作,服务器应响应OK
Quit
结束会话
RSET
重置会话,当前传输被取消
表1-1SMTP基本命令表
1.5SMTP协议实验步骤
客户端向服务器发送命令“EHLO”,并加上本机的主机名(PC-201511291117),服务器响应并回复(250表示服务器可用)
客户端向服务器发送用户登录命令“AUTH LOGIN”,服务器回复表示接受(“334”表示接受)
客户端输入经过base64位编码后的用户名
服务器提示输入base64位编码后的密码
客户端输入经过base64位编码后的密码
客户端分别先后向服务器发送“MAILFROM”和“RCPTTO”命令,后面分别加上发件人的邮箱地址和收件人的邮箱地址,服务器分别回应“250MailOK”表示成功接受
接下来客户端向服务器发送命令“DATA”,表示将要向服务器发送邮件正文,服务器回应“354 End data with
客户端向服务器发送邮件,大小为426bytes
服务器接收成功
邮件已成功发送到服务器,客户端向服务器发送命令“QUIT”,释放服务器连接,服务器返回“221”表示同意
双方释放TCP连接,通信过程结束。
2.POP3协议
2.1POP3协议的概念
POP3,全名为“PostOfficeProtocol-Version3”,即“邮局协议版本3”。
POP适用于C/S结构的脱机模型的电子邮件协议,是TCP/IP协议族中的一员,由RFC1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
提供了SSL加密的POP3协议被称为POP3S。
POP协议支持“离线”邮件处理。
其具体过程是:
邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。
这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或MAC。
一旦邮件发送到PC机或MAC上,邮件服务器上的邮件将会被删除。
但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。
2.2POP3协议通信过程
用户从邮件服务器上接收邮件的典型通信过程如下:
1)用户运行用户代理(如Foxmail,OutlookExpress)。
2)用户代理(以下简称客户端)与邮件服务器(以下简称服务器端)的110端口建立TCP连接。
3)客户端向服务器端发出各种命令,来请求各种服务(如查询邮箱信息,下载某封邮件等)。
4)服务端解析用户的命令,做出相应动作并返回给客户端一个响应。
5)3)和4)交替进行,直到接收完所有邮件转到步骤6),或两者的连接被意外中断而直接退出。
6)用户代理解析从服务器端获得的邮件,以适当地形式(如可读)的形式呈现给用户。
其中2)、3)和4)用POP3协议通信。
2.3命令和响应格式
POP3的命令不多,它的一般形式是:
COMMAND[Parameter]
其中COMMAND是ASCII形式的命令名,Parameter是相应的命令参数,
服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行“+OK”或“-ERR”开头,然后再加上一些ASCII文本。
“+OK”和“-ERR”分别指出相应的操作状态是成功的还是失败的。
2.4POP3协议的三个状态
POP3协议中有三种状态,认正状态,处理状态,和更新状态。
命令的执行可以改变协议的状态,而对于具体的某命令,它只能在具体的某状态下使用。
客户机与服务器刚与服务器建立连接时,它的状态为认证状态;一旦客户机提供了自己身份并被成功地确认,即由认可状态转入处理状态;在完成相应的操作后客户机发出QUIT命令,则进入更新状态,更新之后又重返认可状态;当然在认可状态下执行QUIT命令,可释放连接。
状态间的转移如图2-1所示。
---建立连接---|认可|--认证成功--|处理|--执行QUIT--|更新|
__________QUIT结束______________
图2-1 POP3的状态转移图
2.4.1认证状态
一开始TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。
这个消息可以是由
例如:
S:
+OKPOP3serverready
注意:
这个消息是一个POP3应答。
POP3服务器应该给出一个"确定"响应作为确认。
此时,POP3会话就进入了"认证"状态。
此时,客户必须向服务器证明它的身份。
用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以"确认"状态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。
如果POP3服务器返回"失败"状态码,客户可以再发送确认命令,或者发送QUIT命令。
当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。
一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入"更新"状态前对邮件的改变。
如果成功获得了排它锁,服务器返回一个"确认"状态码。
会话进入"操作状态",同时没有任何邮件被标记为删除。
如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回"失败"状态码。
在返回"失败"状态码后,
服务器会关闭连接。
如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送QUIT命令。
在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。
第一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。
在POP3命令和响应中,所以的消息号和长度以十进制表示。
2.4.2操作状态
一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会话进入"操作"状态。
现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。
最后,客户发送QUIT命令,会话进入"更新"状态。
2.4.3更新状态
当客户在"操作"状态下发送QUIT命令后,会话进入"更新"状态。
(注意:
如果客户在"确认"状态下发送QUIT后,会话并不进入"更新"状态。
)如果会话因为QUIT命令以外的原因中断,会话并不进入"更新"状态,也不从服务器中删除任何信件。
2.5用telnet登录163邮箱
命令和响应的格式是语法,各命令和响应的意思则是语义,各命令和各响应在时间上的关系则是同步。
我们还是通过以个简单的POP3通信过程来说明协议的这三个要素。
C:
telnet110 /* 以telnet方式连接126邮件服务器 */
S:
+OKWelcometocoremailMailPop3Server(163coms[3adb99eb4207ae5256632eecb8f8b4855]) /*+OK,代表命令成功,其后的信息则随服务器的不同而不同*/
C:
USERbripengandre/* 采用明文认证 */
S:
+OKcoremail
C:
PASSPop3world/* 发送邮箱密码 */
S:
+OK654message(s)[30930370byte(s)]/* 认证成功,转入处理状态 */
C:
LIST1/* 显示第一封邮件的信息 */
S:
+OK15184./* 第一封邮件的大小为5184 字节 */
C:
UIDL1/* 返回第一封邮件的唯一标识符 */
S:
+OK11tbisBsHaEX9byI9EQAAsd/* 数字1 后的长字符串就是第一封邮件的唯一标志符 */
C:
RETR1/* 下载第一封邮件 */
S:
+OK5184octets/* 第一封邮件的大小为5184字节 */
S:
Receive… /* 第一封邮件的具体内容 */
S:
…
C:
QUIT/* 转入更新状态,接着再转入认证状态 */
S:
+OK
C:
QUIT/* 退出连接 */
S:
+OKcoremail/* 成功地退出了连接 */
对于上述的过程,补充如下几点内容:
1)“C:
”开头的行(不包括"C:
")是客户端的输入,而以“S:
”开头的行(不包括"S:
")则是服务器的输出。
2)上述的命令并不一定会一次性成功,服务器会返回错误响应(以“-ERR”开头),客户端应该按照协议规定的时序,来输入后续的命令(或重复执行失败的命令,或重置会话,或退出会话等等)。
2.5常用命令
命令
参数
使用在何种状态中
描述
USER
Username
认证
此命令与下面的pass命令若成功,将导致状态转换
PASS
Password
认证
此命令若成功,状态转化为更新
APOP
Name,Digest
认证
Digest是MD5消息摘要
STAT
None
处理
请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL
[Msg#](邮件号,下同)
处理
返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST
[Msg#]
处理
返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
RETR
[Msg#]
处理
返回由参数标识的邮件的全部文本
DELE
[Msg#]
处理
服务器将由参数标识的邮件标记为删除,由QUIT命令执行
TOP
[Msg#]
处理
服务器将返回由参数标识的邮件的邮件头+前n行内容,n必须是正整数
NOOP
None
处理
服务器返回一个肯定的响应,用于测试连接是否成功
QUIT
None
处理、认证
1)如果服务器处于“处理”状态,那么将进入“更新”状态以删除任何标记为删除的邮件,并重返“认证”状态。
2)如果服务器处于“认证”状态,则结束会话,退出连接。
表2-1 POP3的常用命令
2.6pop3实验过程
主机向POP3服务器发送的命令采用命令行形式,用ASCII码表示。
服务器响应是由一个单独的命令行组成或多个命令行组成,响应第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失败)指出相应的操作状态是成功还是失败。
因为POP3协议默认的传输协议是TCP协议,因此连接服务器要先进行三次握手:
客户向服务器发送请求,SYN=1;
服务器向客户回应一个ACK包,SYN=1;ACK=1;
客户向服务器发送ACK,三次握手结束。
主机需要提供账号和密码,并等待服务器确认:
认证成功后,开始进入处理阶段
主机向服务器发送STAT
服务器向主机发回邮箱的统计资料,包括邮件总数和总字节数
主机向服务器发送命令码QUIT,终止会话。
主机向服务器发送命令码LIST,服务器返回邮件数量和每个邮件的大小
主机向服务器发送命令码UIDL,服务器返回每个邮件的唯一标识符。
主机向服务器发送TOP,
主机向服务器发送RETR,
3.意外收获
3.1排它锁
排它锁又称为写锁(eXclusivelock,简记为X锁),若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止。
在更新操作(INSERT、UPDATE或DELETE)过程中始终应用排它锁。
结束语
本论文主要介绍了SMTP协议和POP3协议。
SMTP协议是基于TCP的协议,用于在网络上发送电子邮件。
通过客户端与服务器的通信过程,每次向服务不同的命令,得到服务器的回应可知是否成功,直到把邮件发送到服务器上。
而后服务器由一条已经建立好的传输通道把邮件送到收件人所用的服务器上,收件人再根据POP协议从服务器上接收邮件,从而完成邮件的发送和接受过程。
和POP3协议不同的是,SMTP协议中客户端向服务器发送用户名和密码时不是明文发送的,需要经过64位编码后再发送,所以通过抓包是看不到的。
而且文本内容也是加密的。
致谢
这次的论文能够顺利完成,非常感谢xx老师的悉心指导!
[参考文献](References)
[1]滁州,马金虎,朱利勇.编写基于SMTP网络应用程序.电脑爱好者,2003,5:
92-94.
[2]滁州,马金虎,朱利勇.编写基于POP3网络应用程序.电脑爱好者,2003,6:
92-94.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SMTP 协议 分析 论文