计算机网络自顶向下 :应用层(FTP、SMTP、POP3、IMAP)

题外话,最近补习数学课还是很有成效的。
关于应用层是分三次写的,因此写的重点是在HTTP协议和DNS协议分析上。而应用层中FTP、SMTP、POP3、IMAP,计算机网络自顶向下中并没有太详细的介绍。我也试着看RFC然后抓包分析一下过程,采用的抓包方法是FTP远程连接腾讯云linux服务器,然而由于FTP的不安全性,腾讯云服务器默认安装的是SFTP,抓到的全是乱码,由于时间紧,我就照本宣科,把书上的内用精要了一下,如下。
如果有时间我还是很乐意去折腾的。


FTP

HTTP和FTP均为文件传输协议。
关系:
1. FTP使用了两个TCP连接来传输文件,一个用于控制连接一个用于数据连接。控制连接用于两个主机传送控制信息。如用户标识、口令,以及文件的存放和获取。对于FTP而言,控制连接贯穿整个用户会话期间,而每一次文件传输都需要一个新的数据连接。
2. HTTP使用一个TCP进行的发送请求和相应首部行的,因此HTTP可是说是带内的。
3. FTP服务器必须在整个会话中保留用户的状态,比较重要的是用户账户和控制连接联系在一起,和必须追踪用户当前在远程目录树上的当前位置。

【1】关于FTP,RFC959

因特网中的电子邮件

电子邮件的因特网系统由3部分组成:用户代理、邮件服务器、简单邮件传输协议(SMTP)


SMTP (RFC5321)
SMTP是因特网电子邮件的“核心”,是一种继承技术。
它与所有邮件报文体部分(不只是首部)只能采用简单的七比特ASCII表示。

SMTP一般不使用中间邮件服务器发送邮件。
1. 在25端口创建一个到服务器的TCP连接。
2. 如果服务器没有开机客户会稍后继续尝试完成一旦直到服务器与客户执行某些应用的握手。
3. SMTP发远方指示(发送方的电子邮件)和接收方的邮件地址。
4. 发送Mail

SMTP与HTTP的对比:
1. HTTP是一个拉协议,SMTP是一个推协议。
2. SMTP要求每个报文(包括它们的体)使用七比特的ASCII码格式。如果报文中包含了非七比特ASCII字符或二进制文件,则该报文必须按照七比特ASCII码进行编码。HTTP则不受这种限制。
3. HTTP将每个对象封装到他的响应报文而SMTP则把所有对象放在一个报文中。

邮件格式 (RF5322)
1. 一个包含环境信息的首部行位于报文体前面。
2. 首部行与该报文的体用回车换行进行分隔。


那么由于SMTP是一个推协议那么,我们如何接收SMTP“推”到服务器上的电子邮件呢?

HTTP协议可以很好的完成,这个工作,除HTTP还有:第三版的邮局协议(POP3),因特网邮件访问协议(IMAP)

POP3(RFC 1939)

前提:当用户代理(客户)打开了一个到邮件服务器端口以上的TCP连接后,我们把pop3的处理过程分为三个阶段。
(所有阶段的命令定义在RFC1939 用户操作命令 和 服务器应答方式)
1、特许:用户代理以(明文形式)用户名和口令以鉴别用户。(user pass 命令进行管理)
2、事务处理阶段:用户代理取回报文,同时进行统计信息。如:报文删除、标注取消、删除标记、获取邮件统计信息。
3、更新阶段:当用户发出quit命令,目的结束会话,这时邮件服务器删除那些被标记为删除的报文。


由于POP3并不是很好用所以出现了IMAP:

IMAP和POP3有什么区别?
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。
而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。

**IMAP服务器把每个报文与一个文件夹联系起来。
当一个报文到达服务器时,它与收件人的INBOX文件夹相关联。
IMAP服务器维护了IMAP会话的用话状态信息。(文件夹的名字以及哪些报文与哪些文件)**


最后

基于web的mail

过程:
用户代理——HTTP——S——IMAP——S——HTTP——用户代理

在这里用户代理一般指的是用户的浏览器。

你可能感兴趣的:(计算机网络,计算机,网络,pop,smtp)