FTP用两个TCP连接来传输一个文件。控制连接和数据连接。
-
控制连接,以通常的客户服务器方式建立。服务器以被动方式打开FTP端口21,等待客户连接。客户主动打开TCP端口21,用来建立连接。控制连接用于将命令从客户传给服务器,并传回服务器的应答。
-
每当有一个文件在客户端与服务器端之间传输时,就创建一个数据连接。
数据连接用于:
- 从客户向服务器发送一个文件
- 从服务器向客户发送一个文件
- 从服务器向客户发送文件或目录列表
FTP服务器把文件列表从数据连接上发回。对于每一个文件传输或者目录列表而言都要建立一个全新的数据连接:
- 数据连接是在客户的控制下进行的。
- 客户在客户机上为所在数据连接选择一个临时端口号,客户从该端口发布一个被动的打开。
- 客户使用PORT命令从控制连接上把端口号发给服务器。
- 服务器在控制连接上接收端口号,向客户机的端口发一个主动打开。服务器的数据连接端口一直是20。
网友评论