《计算机网络——自顶向下方法》应用层——文件传输协议:FTP

一笑奈何 提交于 2020-02-10 14:04:48

文件传输协议:FTP

典型的FTP会话中,用户坐在一台本地主机前面,向一台远程主机传输/接收文件,为了使用户能够访问他的远程账户,用户必须提供一个用户标识和口令。
HTTP和FTP都是文件传输协议,并且有很多的共同特点,然而这两个应用层协议也有一些重要的区别,之中最显著的就是FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。控制连接用于在两台主机之间传输控制信息,如用户标识,口令,一些其他命令等;数据连接用于发发送实际文件。因此,我们称FTP的控制信息是带外传送的,而HTTP协议是在传输文件的同一个TCP连接中发送请求和响应行首部的,因此,HTTP也可以说是带内发送控制信息的。
用户主机与远程主机开始一个FTP会话时,FTP客户端首先在服务器21号端口与服务器端发起一个用于控制的TCP连接。当FTP的服务器端从该连接上接收到一个文件传输命令后(无论是向还是来自远程主机),就发起一个到客户端的TCP数据连接。FTP在该数据连接上准确的传送一个文件,然后关闭该连接,在同一个会话期间,如果用户还需要传输另一个文件,FTP则打开另一个新的数据连接。因此,对于FTP传输而言,控制连接贯穿了整个会话,但是会话期间的每一次新的文件传输都需要建立一个新的数据连接。
FTP服务器必须在整个会话期间保留用户的状态,而对每个进行中的用户会话的状态信息进行追踪大大限制了FTP同时维持的会话总数。

FTP命令与回答

FTP命令和回答都是以7比特的ASCII格式在控制连接上传送的,每个命令由4个大写的ASCII字符组成(有些具有可选参数),常见命令如下:

  • USER username
  • PASS password
  • LIST :用于请求服务器传送回当前远程目录中的所有文件列表(文件列表是新的数据连接传送的);
  • RETR filename : 用于从远程主机当前目录检索(即get)文件;
  • STOR filename : 用于远程主机当前目录存放文件;
    每个命令都对应着一个Fong服务器发向客户的回答,回答是一个3未数字加上可选信息,常见的回答如下:
  • 331 Username OK, password required
  • 125 Data connection already open; transfer starting
  • 425 Can’t open data connection
  • 452 Error writing file
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!