计算机网络应用层--FTP文件传输和SMTP邮件传输

计算机网络应用层–FTP文件传输和SMTP邮件传输

文件传输协议:FTP

文件传输协议(File Transfer Protocol,FTP),主要用于将文件复制到使用TCP/IP协议的网络上的远程计算机系统中,或者从远程计算机系统中将文件复制出来。通过FTP可以传输任意类型、任意大小的文件,是常用的文件传输协议。

在一个典型的FTP会话中,用户在本地主机前,向一台远程主机传输文件或接收来自远程主机的文件。通常为了使用户能访问其远程账户,需要提供一个用户标识和口令,提供了授权信息后才能从本地文件系统向远程主机文件系统传送文件。

在这里插入图片描述

用户通过一个FTP用户代理与FTP交互。

用户首先提供远程主机的主机名,使本地的FTP客户进程建立一个到远程主机FTP服务器进程的TCP连接。然后用户提供标识和口令,作为FTP命令在TCP上传送,服务器向用户授权,用户可以将存放在本地文件系统中的一个或者多个文件复制到远程文件系统。

FTP协议最重要的特征是:采用了两个TCP连接来传输文件,一个是控制连接,一个是数据连接。FTP服务器必须在整个会话期间保留用户的状态。

控制连接用于在两个主机之间传输控制信息,如用户标识、口令、存放、获取等命令。数据连接用于传输文件。

因此,通常称FTP的控制信息是带外传送的。

在这里插入图片描述

FTP原理:

  • FTP的客户端首先在服务器21号端口与服务器端发起一个用于控制的TCP连接
  • FTP的客户端通过该控制连接发送用户的标识和口令
  • FTP的服务端收到后进行验证,授权后将发起一个到客户端的用于数据传输的TCP连接
  • FTP在数据连接上传输文件,然后就关闭该连接。同一个会话期间,如果还要传输文件,则再次建立数据连接

对于FTP传输而言,控制连接是贯穿整个用户会话期间,但会话中的每一次文件传输都需要建立一个新的数据连接(数据连接是非持续的)

FTP常用命令:

  • USER usename:用于向服务器传输用户标识
  • PASS password:用于向服务器发送用户口令
  • LIST:用于请求服务器回送当前远程目录的所有文件列表。(经数据连接传输)
  • PETR filename:用于从远程主机当前目录检索(get)文件。(建立数据连接并传输)
  • STOR filename:用于在远程主机的当前目录存放(put)文件

FTP典型回答:

  • 331 Username OK,Password required (用户名OK,需要口令)
  • 125 Data connection already open;transfer starting(数据连接已经打开,开始传送)
  • 425 Can’t open data connection(无法打开数据连接)
  • 452 Error writing file(写文件差错)
SMTP:提供电子邮件服务

SMTP:(Simple Mail Transfer Protocol) 用于提供电子邮件服务的协议,在传输层使用TCP协议,SMTP建立一个TCP连接以后,在这个连接上进行控制和应答以及数据的发送。

SMTP用于从发送方的邮件服务器发送报文到接收方的邮件服务器。

在这里插入图片描述
SMTP的流程:

  • Alice调用她的邮件代理程序并提供Bob的邮件地址,撰写报文后指示用户代理发送该报文
  • Alice的用户代理将报文发送到邮件服务器A,存到报文队列中
  • 邮件服务器A上的SMTP客户端发现了报文队列中的报文,创建一个连接邮件服务器B上SMTP服务器的TCP连接,然后邮件服务器A将该报文通过TCP连接发送到邮件服务器B
  • 在邮件服务器B收到该报文后将其存入邮箱,在Bob方便时候调用代理程序阅读该报文

SMTP中,如果Bob的邮件服务器没有开机,则该报文保留在邮件服务器A上继续等待并进行新的连接尝试,而不是在中间的某个邮件服务器存留。

HTTP主要是一个拉协议,即从服务器上拉取信息;而SMTP是一个推协议,即发送服务器将文件推向接受服务器

SMTP一个不利之处在于,它支持的是发送端主机的行为,而不是根据接收端的请求发送邮件。为了解决该问题,引入了POP3

POP3是一个非常简单的邮件访问协议。POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。

POP3按照三个阶段工作:特许、事务处理以及更新。

  • 当用户代理打开一个到邮件服务器端口110上的TCP连接后,POP3开始工作
  • 第一个阶段:用户代理发送用户名和口令以鉴别用户
  • 第二个阶段:事务处理,用户代理取回报文,也可以进行对报文删除、获取邮件统计信息等操作
  • 第三个阶段:更新,发出quit命令后结束POP3对话,邮件服务器删除被标记删除的报文

猜你喜欢

转载自blog.csdn.net/dingdingdodo/article/details/106525249