FTP和邮件协议
文件传输协议FTP
文件传输协议比较多,我们主要掌握FTP协议,了解一下TFTP。
FTP(File Transfer Protocol) 文件传送协议
TFTP(Trival Transfer Protocal) 简单文件传输协议。
比较容易实现;面向小文件 的文件传输协议
FTP 可以提供不同种类计算机(硬件软件都不同的)之间的文件传输能力。可以屏蔽不同操作系统之间的差异性。
FTP服务器和客户端
FTP是属于客户/服务器(C/S)模型
客户端有一个FTP客户端程序,服务器端有一个FTP服务器程序 。客户机程序连接服务器程序。
下载FTP客户端之后就能与服务器实现文件传送和交互.
FTP实现可靠传输,所以使用的是TCP连接。
一台服务器的FTP进程可以同时为多个客户端提供服务
FTP服务器进程由一个主进程和n个从属进程组成。主进程负责打开服务器的FTP总端口,端口号是21。 n个从进程负责和具体的不同FTP客户端连接,具体处理对应任务。
控制进程是一直打开的,数据进程只在传送数据的时候打开。服务器端的控制进程在收到FTP请求之后,才创建数据进程和数据进程之间的连接 控制进程传的是请求,数据进程传的是文件。控制进程全程始终打开,数据进程在传输完文件之后就会结束,关闭,只保持一会。
FTP数据连接端口号21;FTP数据连接端口号20,这里的数据连接端口号不是一直是20,端口号数字和传输模式有关 :
传输模式要是主动方式,就会使用TCP20端口;建立控制连接后,服务器会主动告知客户端数据连接的端口号是20,和客户端之间建立数据连接
服务器的控制连接端口号21,服务器的数据连接端口号是20,HTTP80端口号 这些常见的熟知端口号是指的是服务器的端口号
客户端的端口号则是随机分配
传输模式要是被动方式,就会使用\(>1024\) 的端口号,服务器和客户端具体协商解决 建立控制连接之后,客户端会询问客户端发送一个多少的端口号,然后服务器就会返回给客户端一个端口号大于1024的端口号给客户端,然后二者就可以建立数据连接了。
FTP传输数据模式:
- 文本模式:ASCII模式
- 二进制模式:Binary模式
电子邮件系统组成结构:
用户代理(电子邮件客户端软件,就是电脑上上的邮件客户端界面):用户和电子邮件系统的一个接口,通常情况下用户代理就是运行在客户端的一个程序。 可以使用的用户代理:163、Outlook、Foxmail…… 功能:撰写、显示、处理、通信
邮件服务器:既然是服务器,就会一直开机。既可以作为客户端,也可以作为服务器端 功能:发送/接收邮件 向发送人报告邮件传送结果
协议:SMTP(发送,推出邮件)
POP3(收,抽出邮件)
IMAP(收,抽出邮件)
SMTP (TCP连接、端口号25、C/S)
SMTP客户并不是一定不能是服务器,如上图中间红线,SMTP客户是在邮件服务器中。
负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的就是SMTP服务。SMTP协议就是负责处理这两个进程之间如何交换信息。
SMTP邮件建立过程
- 连接建立
发送方把邮件放到发送邮件服务器,发送邮件服务器会每隔一段时间扫描整个服务器,然后发送。发送邮件服务器会先发送 220 Service Already给接收方邮件服务器,接收方邮件服务器有能力接收就会返回给发送邮件服务器"250 OK",要是没能力接收,就会返回给发送邮件服务器"421 Service Not Already"
- 邮件发送
- 连接释放阶段
SMTP缺点
解决方法,对SMTP扩充(改进)——MIME
IDEA:把非ASCII码转换成ASCII码,再通过SMTP
POP3
Pop3 工作方式 下载并保留(在服务器)、下载并删除
IMAP
客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,包括To…… 和 Subject: ,若用户需要打开某个邮件,该IMAP服务器才会把邮件上传到用户PC上。
它允许只读文件中的某一部分,比如只看正文,附件可以随后自行决策下载