计算机网络-应用层(2)FTP协议

FTP 使用了两个并行的TCP 连接来传输文件:
制连接(control connection)用于在两主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及存放(put)文件、获取(get)文件的命令。
因为FTP协议使用一个独立的控制连接,所以我们也称FTP的控制信息是带外(out-of-band) 传送的。HTTP也可以说是带内(in-band) 发送控制信息的。
数据连接(data connection) 用于实际发送一个文件HTTP 协议是在传输文件的同一个TCP 连接中发送请求和响应首部行的。
 
当用户主机与远程主机开始一个FTP会话时, FTP 的客户端首先在服务器21号端口与服务器端发起一个用于控制的TCP 连接。
当FTP 的服务器端从该连接上收到一个文件传输的命令后(无论是向还是来自远程主机),就发起一个到客户端的TCP 数据连接。FTP在该数据连接上准确地传送一个文件,然后关闭该连接。
在同一个会话期间,如果用户还需要传输另一个文件,FTP则打开另一个数据连接。
因而对FTP传输而言,控制连接贯穿了整个用户会话期间,但是对会话中的每一次文件传输都需要建立一个新的数据连接(即数据连接是非持续的) 。
FTP服务器必须在整个会话期间保留用户的状态(state) 。特别是,服务器必须把特定的用户账户与控制连接联系起来,随着用户在远程目录树上徘徊,服务器必须追踪用户在远程目录树上的当前位置,对每个进行中的用户会话的状态信息进行追踪,大大限制了
FTP同时维持的会话总数。
 
从客户到服务器的命令和从服务器到客户的回答,都是以7比特ASCII格式在控制连接上传送的。
每个命令由4个大写字母ASCII字符组成,有些还具有可选参数:
(1)USER usemame: 用于向服务器传送用户标识。
(2)PASS password : 用于向服务器发送用户口令。
(3)LIST: 用于请求服务器回送当前远程目录中的所有文件列表。该文件列表是经一个 新建且非持续连接数据连接传送的,而不是在控制TCP连接上传送。
(4)RETR filename: 用于从远程主机的当前目录get文件。远程主机发起一个数据连接,并经该数据连接发送所请求的文件。
(5)STOR filename : 用于在远程主机的当前目录上put文件。
回答是一个3位的数字,后跟一个可选信息:
331 Usemame OK, Password requjred (用户名OK, 需要口令)
125 Data connection already open; transfer starting (数据连接已经打开,开始传送) 
425 Can'L open data connection (无法打开数据连接)
452 Error writing file (写文件差错)

猜你喜欢

转载自www.cnblogs.com/yangyuliufeng/p/9262994.html