首页 > 代码库 > FTP原理分析

FTP原理分析

   ftp是TCP/IP的一种具体应用,他工作在OSI模型的第七层,即应用层。仅基于TCP的服务,不支持UDP。

   ftp服务的具体工作工程如下:

   1.当FTP客户端发出请求时,系统将动态分配一个端口(如1032)

   2.若ftp服务器在端口21上侦听到该请求,则ftp客户端的端口1032与ftp服务器的端口21之间建立一个ftp会话连接,21被称为命令端口,或者会话端口

   3.当需要传输数据时,ftp客户端再动态打开一个端口连接到ftp服务器的20端口(如1033),这样就可以在这两个端口之间进行数据传输,当数据传输完成后,这两个端口会自动关闭,20称为数据端口

   4.当ftp客户端断开与ftp服务端的连接时,客户端上动态分配的端口会自动释放掉。

  ftp访问的匿名用户账户为anonymous。

   根据数据连接的建立方式,ftp的数据传输可以分为主动模式(Initiative)和被动模式(Passive)

   主动模式是ftp客户端向服务端发送准备接收数据的IP地址和端口号,有服务端主动发起并建立连接到指定的IP地址和端口号。

   在被动模式下,客户端通过PASV命令获得服务器端IP地址和数据端口,然后向服务器端发送连接请求,建立数据连接。

    在双方的连接过程中,命令连接的方向都是相同的,都是由客户端向服务器端连接,不同之处体现在数据连接的过程中。在主动模式中,数据连接是从服务器端开始的,而在被动模式中,数据连接是从客户端开始的。

FTP原理分析