`
Cash
  • 浏览: 180783 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

FTP 被动、主动模式解析

 
阅读更多

Technical background

What distinguishes FTP from most other protocols is the use of secondary connections for file transfers. When you connect to an FTP server, you are actually making two connections. First, the so-called control connection is established, over which FTP commands and their replies are transferred. Then, in order to transfer a file or a directory listing, the client sends a particular command over the control connection to establish the data connection.

The data connection can be established two different ways, using active mode or passive mode.

In passive mode, which is recommended (see below), the client sends the PASV command to the server, and the server responds with an address. The client then issues a command to transfer a file or to get a directory listing, and establishes a secondary connection to the address returned by the server.

In active mode, the client opens a socket on the local machine and tells its address to the server using the PORT command. Once the client issues a command to transfer a file or listing, the server will connect to the address provided by the client.

In both cases, the actual file or listing is then transferred over the data connection.

Generally, establishing outgoing connections requires less configuration on the routers/firewalls involved than establishing incoming connections. In passive mode, the connection is outgoing on the client side and incoming on the server side and in active mode this is reversed. Note that the only differences are in establishing a connection. Once established, the connection can be used for uploads or downloads.

A common network setup might look like this:



 
In passive mode, the router and firewall on the server side need to be configured to accept and forward incoming connections. On the client side, however, only outgoing connections need to be allowed (which will already be the case most of the time).

Analogously, in active mode, the router and firewall on the client side need to be configured to accept and forward incoming connections. Only outgoing connections have to be allowed on the server side.

Since in most cases one server provides a service for many users, it is much easier to configure the router and firewall on the server side once for passive mode than to configure the client's router/firewall for each individual client in active mode. Therefore, passive mode is recommended in most cases.

  • 大小: 10.6 KB
分享到:
评论

相关推荐

    完整实现ftp上传与下载并解析csv文件

    Apache Commons Net提供了丰富的API,如`FTPClient`类,支持主动和被动模式,便于处理防火墙和NAT环境下的连接。FTP上传涉及到`storeFile()`方法,而下载则使用`retrieveFile()`。 2. CSV文件解析: CSV(Comma ...

    FTP下载和解析

    主要有两种工作模式:主动模式(Port)和被动模式(Passive)。 2. FTP连接与会话: 在FTP下载过程中,首先需要建立控制连接,客户端发送用户名和密码给服务器进行身份验证。验证成功后,可以打开数据连接进行文件...

    FTP协议解析与实现源码

    数据连接的建立可以通过主动模式或被动模式,根据服务器给出的端口号进行连接。 5. **文件传输**:实现文件的上传和下载,需要处理二进制流的读写,确保数据完整无误地传输。 6. **错误处理**:考虑到网络的不可...

    实例解析FTP原理

    FTP支持两种不同的连接模式:主动模式(Active Mode)和被动模式(Passive Mode)。 1. **主动模式(Active Mode)**:在主动模式下,数据连接的建立由FTP服务器发起。具体步骤如下: - 客户端通过控制连接向...

    ftp源代码(c++)

    10. **协议扩展**:FTP有多种扩展,如ASCII和二进制模式的数据传输,被动模式(PASV)和主动模式(PORT)的设置,以及FTP-over-HTTP(WebDAV)等。 在压缩包中的`说明.htm`和`下载说明.txt`可能是对源代码的使用...

    基于winpcap的FTP协议实现程序源代码vc++

    4. **数据传输**:FTP使用两种模式进行数据传输——主动模式和被动模式。主动模式下,服务器打开一个端口等待客户端连接;被动模式下,客户端告诉服务器它将连接哪个端口,然后服务器连接过去。winpcap可能用于监控...

    ftp客户端和ftp通信协议

    FTP使用两种模式:主动模式和被动模式。 1. 主动模式:在主动模式下,客户端首先打开一个随机端口(通常在1024-5000之间)作为数据通道,并告诉服务器这个端口号。然后,服务器连接到客户端的这个端口来传输数据。 ...

    ftp简单应用源代码,支持ftp文件上传和下载,对理解ftp协议有帮助

    4. **主动模式与被动模式**:FTP的主动模式中,客户端指定一个端口,服务器主动连接到该端口进行数据传输。而在被动模式下,服务器开启一个随机端口,并告知客户端,然后客户端连接到服务器的这个端口进行数据传输。...

    MFC实现FTP上传下载文件的客户端和服务器

    2. **FTP命令**:MFC中的`CInternetSession`和`CFtpConnection`类可以用来发送FTP命令,如`USER`、`PASS`、`CWD`(改变工作目录)、`PASV`(被动模式)或`PORT`(主动模式)等。 3. **文件传输**:FTP客户端可以...

    FTP - RFC959 中文版

    数据连接则用于实际的数据传输,可以是主动模式或被动模式。主动模式中,客户端指定一个端口,服务器连接到这个端口来传输数据;而在被动模式下,服务器打开一个随机端口,并告诉客户端来连接它,以避免防火墙问题。...

    FTP文件传输源代码

    - 主动模式(Active Mode):服务器主动连接客户端的数据端口来传输数据。 - 被动模式(Passive Mode):客户端发起数据连接请求,适用于防火墙和NAT环境,解决端口访问问题。 3. FTP命令与响应: FTP命令包括...

    QT5.0实现FTP服务器

    在主动模式下,客户端告诉服务器应连接到哪个端口进行数据传输;在被动模式下,服务器开启一个随机端口并通知客户端连接。 6. **错误处理**:确保正确处理各种可能的错误,如网络故障、文件权限问题或无效的FTP命令...

    ftp(VC).rar_FTP 下载_c++ ftp_ftp_ftp vc_vc ftp

    2. 被动模式(Passive模式):由于防火墙等问题,主动模式可能会遇到困难,因此FTP引入了被动模式。客户端先向服务器发送PASV命令,服务器响应并提供一个临时端口号,客户端再主动连接到这个端口进行数据传输。 在...

    FTPFILE FTP-FTP源代码分享

    3. **主动模式与被动模式**:FTP有两种数据传输模式。主动模式中,服务器打开一个数据连接到客户端;而在被动模式下,客户端打开连接到服务器。这两种模式在源码中会有不同的实现。 4. **FTP会话管理**:源代码会...

    Ftp.rar_ftp

    FTP有两种工作模式:主动模式(Port模式)和被动模式(Passive模式)。主动模式中,客户端打开一个随机端口(称为数据连接端口)并向服务器发送FTP命令,然后服务器使用FTP控制端口(默认21)响应并连接到客户端的...

    FTP文件传输协议 计算机网络课设

    4. **主动模式与被动模式**:FTP有两种工作模式,即主动模式和被动模式。主动模式中,客户端打开一个数据连接到服务器;而在被动模式下,服务器开启一个端口等待客户端连接。被动模式通常用于解决防火墙和NAT设备的...

    ftp上传demo

    2. **FTP连接模式**:FTP有两种连接模式——主动模式(Port)和被动模式(Passive)。主动模式中,服务器主动向客户端发起数据连接;被动模式下,由于防火墙或NAT设备的影响,服务器会等待客户端建立数据连接。 3. ...

    ftp客户端基于socket的实现

    FTP有两种模式:主动模式(Active Mode)和被动模式(Passive Mode)。在主动模式下,客户端告诉服务器它将监听哪个端口,然后服务器连接到这个端口进行数据传输。而在被动模式下,服务器告诉客户端一个临时端口,...

    标准C实现FTP上传下载

    FTP协议主要有两种工作模式:主动模式(Port模式)和被动模式(Passive模式)。主动模式中,客户端打开一个随机端口连接到FTP服务器的21号控制端口,然后服务器从其20号数据端口连接回客户端的指定端口。在被动模式...

    ftp协议客户端源码

    在主动模式中,服务器发起数据连接;在被动模式中,客户端发起。源码需要处理这两种模式下的连接建立。 5. **用户名和密码认证**:FTP客户端需要登录服务器,源码会有处理用户身份验证的部分。 6. **目录浏览与...

Global site tag (gtag.js) - Google Analytics