答案1
为了避免每个数据包的额外报头和详细信息消耗带宽,使用单独的端口进行数据连接。
来源:http://wiki.answers.com/Q/Why_ftp_use_two_ports_numbers#ixzz1O2rJnorL
答案2
上面的 wiki 文章似乎把端口号弄得有点混乱:)
FTP 在主动模式下使用 21 进行控制,使用 20 进行数据传输,在被动模式下使用随机端口。
它可能对带宽有影响,但我认为主要原因之一是允许在传输期间使用控制通道。如果您有一个不错的 FTP 客户端,可以将传输排队,您可能会注意到在传输过程中仍然可以浏览文件夹。我相信客户端也可以通知服务器它想要取消正在进行的传输。
答案3
我认为这是因为客户端可以在两个服务器之间发起数据传输,而不是在客户端和服务器之间发起数据传输。客户端与两个服务器都保持控制连接,而服务器之间保持数据连接。