您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > pop3及smtp协议分析
第9章:POP3和SMTP9.1POP3协议第四组全体成员:主讲人:陈凯亚POP3资料搜集:建金闪、赵盼SMTP资料搜集:于洋洋、江坤课件制作:徐创朝、韩凯、李晨1.POP3的简述:POP3,全名为“PostOfficeProtocol-Version3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。POP协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或MAC。一旦邮件发送到PC机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。2.POP3协议的特性:POP3协议默认端口:110POP3协议默认传输协议:TCPPOP3协议适用的构架结构:C/SPOP3协议的访问模式:离线访问3.三种状态POP3会话在生命周期中有三种不同的状态:确认状态,操作状态和更新状态。当客户机与服务器建立TCP连接时,就进入了“确认”状态。客户机向服务器发送自己身份(这里指的是账户和密码,采用ASCII明文发送用户名和口令集给服务器)并由服务器成功确认,即客户端由认可状态转入“操作”状态在完成列出未读邮件等相应的操作后客户端发出quit命令,退出“操作”状态进入“更新”状态,开始下载未阅读过的邮件到计算机本地之后最后重返“确认”状态确认身份后断开与服务器的连接。具体原理如下图:等待连接身份确认quit命令|C——|确认|—————|操作|——————|更新|----S|_____________________________________|重返认证状态POP3中用户的密码是明文传送的,具有安全隐患,请问该怎么办?答:POP3使用PASS命令传送用户的密码,并以明文传送,因此具有安全隐患.现在,POP3提供另外一个命令APOP,可以安全传输用户密码,避免了安全隐患.问题4.命令和响应POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。服务器响应是由一个单独的命令行组成或多个命令行组成,响应第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失败)指出相应的操作状态是成功还是失败。POP3所有命令及服务器的响应的状态均以一个CRLF对结尾。5.Pop3的命令及用法6.一次完整的POP3的会话实例:开始时,客户端与服务器经过三次握手建立TCP连接经过三次握手之后,服务器发送一个POP3响应,进入确认状态,POP3做出响应,状态码为OK,响应信息以CRLF结束,图中用\r\n表示。进入确认状态后,客户端须向服务器证明其身份,客户端发送USER命令,输入用户名服务器发送TCP确认并返回一个状态吗OK,表示接受客户端的user命令客户端C服务器S响应+OK\r\nUSER用户名响应+OK客户端C客户端C服务器S客户端C客户端发送PASS命令,输入密码若用户名和密码正确,服务器返回一个消息,状态码为OK,同时客户端可以看到邮件信息:一封邮件,大小807B客户端发送STAT请求命令获得邮箱里的邮件数量级大小服务器回应STAT请求,状态码为OK客户端C服务器S响应+OKSTAT响应+OK客户端C客户端C服务器S客户端CPASS密码客户端发送LIST命令来获得邮箱里邮件编号,ResponseArg1807表示有一封信,大小807B服务器回应LIST请求,状态码为OK客户端C服务器S响应+OK客户端C客户端C服务器S客户端CLISTResponseArg1807RETR命令是收邮件中最重要的命令,作用是查看邮件内容,它必须带参数进行,该命令执行之后,服务器应答的信息较长,其中包括邮件头(电子邮箱地址、发件时间、邮件主题等)邮件头后面紧接着是邮件正文。RETE1表示查看第一封邮件,服务器回应RETR请求,状态码为OK接着,服务器向客户端传输数据客户端对收到的数据进行TCP确认服务器继续传输数据,传送结束时,服务器发送一个结束字符和一个CRLF对,顺序为CRLF-CRLF客户端用DELE命令删除指定的邮件(注意:DELEN只是给邮件做上删除的标记,等执行QUIT命令之后,邮件才被删除)服务器回应DELE请求,状态码为OK客户端用QUIT命令来结束与POP3服务器的会话服务器接受客户端的QUIT命令,返回一个信息,状态码OK经过TCP4次握手,结束整个POP3连接9.2SMTP协议SMTP(SimpleMailTransferProtocol),即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。1.SMTP的简述SMTP工作有两种情况:一是电子邮件从客户机传输到服务器;二是从某一服务器传输到另一服务器。SMTP是个请求/响应协议,名利和响应用NVTASCII字符,并以CR和LF符结束响应包括一个表示返回状态的三位数字代码,SMTP在TCP协议25号端口监听连接请求。2.SMTP的通信过程•发送端邮件服务器(简称客户端)与接收端邮件服务器(简称服务器)的25号端口建立TCP连接。•客户端向服务器发送各种命令,来请求各种服务(如认证、指定发送人和接收人)。•服务器解析用户的命令,做出相应动作并返回给客户端一个响应。•第2步和第3步交替进行,直到所有邮件都发送完或两者的连接被意外中断。3.SMTP的应答序列•211系统状态或系统帮助响应•214帮助信息•220<domain>服务就绪•221<domain>服务关闭•250要求的邮件操作完成•251用户非本地,将转发向<forward-path>•354开始邮件输入,以“.”结束•421<domain>服务未就绪,关闭传输信道•450要求的邮件操作未完成,邮箱不可用•451放弃要求的操作;处理过程中出错•452系统存储不足,要求的操作未执行•501参数格式错误•502命令不可实现•503错误的命令序列•504命令参数不可实现•550要求的邮件操作未完成,邮箱不可用•551用户非本地,请尝试<forward-path>•552过量的存储分配,要求的操作未执行•553邮箱名不可用,要求的操作未执行•554操作失败4.SMTP的基本命令集5.SMTP会话的建立一次邮件的发送要经过好几次传递,建立好几次SMTP会话,会话的建立:1.建立TCP连接2.客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令,服务器端以OK做为响应,表明准备接收在EHLO命令之后,接着电子邮件程序会发送MAIL命令。MAIL命令标识出发送者,它有两个参数“FROM:”和一个电子邮件地址。如果SMTP服务程序能够成功地解析电子邮件地址的话,通常它将返回以250开头的回应消息;否则将发送回表示操作是失败的回应消息。①客户端发送RCPT命令,以标识电子邮件的计划接收人,可以有多个RCPT行,服务器端发回响应表示是否愿意为收件人接收邮件②协商结束,发送邮件,用命令DATA发送③以“.”表示结束输入内容并一起发送出去④结束此次发送,用QUIT命令退出6.SMTP会话实例客户端与服务器端通过TCP的三次握手建立TCP连接,服务器端口为25服务器端发送响应,应答代码为220,表示服务器准备就绪客户端发送EHLO命令,表示开始SMTP会话服务器端返回SMTP响应,应答码为250,表示请求建立的邮件服务会话已经就绪出于安全考虑,SMTP服务器要求发送邮件时,对发送者进行身份验证,客户端发送AUTHLOGIN命令服务器返回应答,应答码为334,还可以看到一些用base64编码的字符串文本,该字符串的意思为username接下来客户端发送用base64编码的用户名给服务器客户端C服务器S客户端C客户端C服务器S客户端C服务器S客户端C客户端C服务器S客户端C客户端C客户端C250会话就绪AUTHLOGIN334base64编码-usernamebase64编码-usernameEHLO开始会话服务器发回响应,响应码为334,同时返回base64编码串,意思为passwd客户端发送用base64编码的密码给服务器服务器端发送TCP确认服务端返回码为235,表示认证成功可以发送邮件了客户端C服务器Sbase64pwd客户端C客户端C服务器S客户端C334base64pwdTCP确认235认证成功客户端发送“MAILFROM:”命令用来告诉服务器发送者的邮件地址服务器返回一个TCP确认服务器返回SMTP响应,应答码250,表示操作成功,服务器就绪客户端用“RCPTTO:”命令用来指定邮件接收者的邮箱地址服务器返回SMTP响应,应答码为250,表示操作成功,服务器准备就绪客户端C服务器STCP确认客户端C客户端C服务器S客户端CMAILFROM:发送者地址250操作成功RCPTTO:接收者地址250操作成功客户端发送DATA命令,表示将要发送邮件正文了服务器对DATA命令返回一个应答,应答码为354,表示服务器准备接收数据,数据包文以CRLF.CRLF的行结束客户端传送邮件正文,客户端用连续的行发送报文内容,每一行的行结束用CRLF终止服务器发送TCP确认,对收到的数据进行确认客户端C服务器S354准备接收客户端C客户端C服务器S客户端CDATA传送邮件内容TCP确认客户端发送文件结束信息EOM(EndOfMessage)服务器发送TCP确认服务器返回SMTP响应,应答码为250,表示操作成功,到此一封邮件已经发送成功,可以发送下一封邮件客户端返回QUIT命令来结束连接服务器返回TCP确认服务器返回SMTP响应,应答码为221,表示服务关闭客户端C服务器STCP确认客户端C客户端C服务器S客户端CEOM250操作成功QUIT结束连接TCP确认221服务关闭总结:POP3与SMTP都是应用层协议,都工作在C/S模式下。应用层的其他协议及对应端口号:21/tcpFTP文件传输协议69/udpTFTP普通文件传输协议22/tcpSSH安全登录、文件传送(SCP)和端口重定向23/tcpTelnet不安全的文本传送110/tcpPOP3PostOfficeProtocol(E-mail)25/tcpSMTPSimpleMailTransferProtocol(E-mail)69/udpTFTPTrivialFileTransferProtocol80/tcpHTTP超文本传送协议(WWW)443/tcpHTTPSusedforsecurelytransferringwebpages
本文标题:pop3及smtp协议分析
链接地址:https://www.777doc.com/doc-50961 .html