3.3 数据连接管理 (Data Connection Management)
默认数据连接端口: 所有FTP实现都必须支持使用默认数据连接端口, 并且只有User-PI可以发起使用非默认端口。
协商非默认数据端口: User-PI可以使用PORT命令指定非默认用户端数据端口。User-PI可以使用PASV命令请求服务器端标识非默认服务器端数据端口。由于连接由一对地址定义, 因此任一这些操作都足以获得不同的数据连接, 但仍然允许执行这两个命令以在数据连接的两端使用新端口。
数据连接的重用: 当使用流模式的数据传输时, 必须通过关闭连接来指示文件的结束。如果在会话中传输多个文件, 这会导致问题, 因为TCP需要保持连接记录一段超时时间以保证可靠通信。因此连接不能立即重新打开。
有两种解决此问题的方法。第一种是协商非默认端口。第二种是使用另一种传输模式。
关于传输模式的评论。流传输模式本质上是不可靠的, 因为无法确定连接是否过早关闭。其他传输模式 (Block, Compressed) 不会关闭连接以指示文件结束。它们有足够的FTP编码, 可以解析数据连接以确定文件的结束。因此, 使用这些模式可以使数据连接保持打开以进行多个文件传输。