在互联网上传输文件 —— FTP协议

FTP协议是什么

FTP(File Transfer Protocol,文件传输协议) 是TCP/IP 协议组中的协议之一。 FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

在典型的FTP的会话中,用户坐在一台主机前面,向一台远程主机上传或下载文件。为使用户能够访问远程主机的账户,用户必须提供一个用户标识和口令。在提供了授权信息后,用户就能从本地文件系统向远程文件系统传送文件。

在这里插入图片描述
HTTP协议和FTP协议都是文件传输协议,并且有很多共同的特点。例如,其运输层协议都是TCP。但是,这两个协议也有一些重要的区别:最显著的就是FTP使用并行的两个TCP连接来传输文件,一个是控制连接,一个是数据连接

  • 控制连接用于在两个主机之间传输控制信息,如用户标识、口令,命令等
  • 数据连接用户实际传输一个文件

在这里插入图片描述

正因为FTP协议使用一个分离的控制连接,所以我们也称FTP的控制信息是带外传送的。但是,HTTP协议是在传输文件的TCP连接中发送请求和响应首部行的。因此,HTTP协议可以说是带内发送控制信息的

FTP协议传输过程

当用户主机和远程主机开始一个FTP会话前,FTP的客户机首先在21端口上向服务器发起一个用于控制的TCP连接。当FTP的服务器端从该连接上收到一个文件传输的命令后,就发起一个到客户机上的数据连接。FTP在该数据连接上准确地传送一个文件并关闭该连接。如果在同一会话期间,用户还需要传输另一个文件,FTP则会打开另一个数据连接。因为对FTP传输而言,控制连接贯穿了整个用户会话期间,但是针对会话中的每一次文件传输都需要建立一个新的数据连接

因此,FTP服务器必须在整个会话期间保留用户的状态信息!这根HTTP是不同的。

FTP命令和回答

和HTTP的命令一样,FTP的报文也是用7位ASCII码编写的。为了区分连续的命令,每个命令后面都跟回车换行符。每个命令由四个大写字母组成,部分还有可选参数,以下是一些常用命令:

  • USER username:用于向服务器传送用户标识
  • PASS password:用于向服务器传送用户口令
  • LIST:用于请求服务器返回远程主机当前目录的所有文件列表
  • RETR filename:用于从远程主机的当前目录下检索文件
  • STOR filename:用于向远程主机的当前目录下存储文件

在用户发出的命令和FTP协议在控制连接上发送的命令之间,一般有一个一对一关系,每个命令都对应着一个回答。回答是一个三位数字。后面跟着一个可选信息,常用的状态码如下:

状态码释义
331Username OK, Password required
125Data connection already open; transfer starting
425Can’t open data connection
452Error writing file

参考文献

[1]计算机网络自顶向下方法.第二章
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenmingik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值