FTP文件传输协议的主动模式和被动模式

FTP采用TCP建立连接,主要功能是提供文件传输服务;注意不要与NFS混淆了,
NFS是提供文件的存取服务。

FTP传输数据时支持两种数据传输模式:

  1. ASCII模式:用来传输文本,发送端在发送前将字符转换成ASCII码格式之后进行传输,接收端收到后在转换成字符。
  2. 二进制模式:用于传输图片文件和程序文件。发送端在发送这些文件是不需要转换格式。

FTP进行文件传输时会建立两个链接:

  1. 客户端与服务端之间的控制连接
    服务器开启21号口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立请求。控制连接用于在服务器与客户端之间传输控制命令。
  2. 客户端与服务端之间的数据连接
    服务器与客户端用新的端口建立连接用于传输数据。一般是服务器主动建立或中断连接。

FTP主动模式和被动模式的区别:

  1. 主动模式(PORT):
    (1).FTP客户端首先和FTP服务器的21号端口建立连接,通过这个通道发送命令。当客户端要接收数据时,向服务端发送PORT命令。PORT命令中包含了客户端用哪个端口接收数据。
    (2). 在传输数据时,服务端用20号端口向客户端PORT命令中指定的端口发送数据。

主动模式 客户端告诉服务器自己开放哪个端口,传输数据时服务器自己的20号端口主动连接到客户端的端口发送数据。

  1. 被动模式(PASV):
    (1). 客户端与服务器建立控制连接。客户端发送PASV命令。
    (2). 服务器收到PASV命令后,随机打开高位端口(大于1024),并通知客户端往这个端口上传输数据。然后客户端连接到这个端口进行数据传输。

被动模式 服务器收到PASV命令后,就开放一个大于1024的端口并通告给客户端。传输数据时,客户端主动连接服务器大于1024的指定端口。

总结:主动和被动是针对服务器的,主动模式是服务器主动去连客户端开放的端口。被动模式是服务器开放端口被客户端连。