`
leo1211
  • 浏览: 140377 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解析Ftp协议的两种工作模式

阅读更多

FTP是一种数据传输协议,它的连接模式有两种:主动模式和被动模式。

 

以下说明FTP的连接是怎样建立的:

 

在 active模式下:

 

FTPclient开启一个随机选择的TCPport呼叫FTP的port21请求建立连接。当完成 Three-WayHandshake之后,连接就成功建立,但这仅是命令通道的建立。

当两端需要传送数据资料的时候,client透过命令通道用一个portcommand告诉server,client可以用另一个TCPport做数据通道。

然后server用 port20和刚才client所告知的TCPport建立数据连接。注意:连接方向是从server到client的,TCP分组中会有一个 SYNflag。

然后client会返回一个带ACKflag的确认分组,并完成另一次的Three-WayHandshake过程。这时候,数据连接才能成功建立。开始数据传送。

 

在passive模式下:

 

FTPclient开启一个随机选择的TCPport呼叫FTPserver的port21请求建立连接,完成命令通道的建立。

当两端需要传送数据的时候,client通过命令通道发送一个PASVcommand给server,要求进入passive传输模式。

然后server像上述的正常模式之第2步骤那样,挑一个TCPport,并用命令通道告诉client。

然后client用另一个TCPport呼叫刚才 server告知的TCPport来建立数据通道。此时分组中带有SYNflag。

server确认后回送一个ACK分组。并完成所有握手过程、成功建立数据通道。

开始数据传送。在实际使用中,activemode用来登入一些架设在主机上没有的FTPserver,或是架设在clientside的FTPserver!Passivemode(简称PASV)用来登陆一些架设于防火墙保护下而又是开设于主机上的 FTPserver!

分享到:
评论

相关推荐

    ftp协议客户端源码

    源码需要处理这两种模式下的连接建立。 5. **用户名和密码认证**:FTP客户端需要登录服务器,源码会有处理用户身份验证的部分。 6. **目录浏览与文件操作**:通过`LIST`和`NLST`命令获取服务器目录信息,`RETR`...

    利用FTP协议进行文件浏览.rar_ftp_ftp协议

    3. **主动模式与被动模式**:FTP有两种工作模式,主动模式和被动模式。主动模式中,客户端打开一个数据连接端口,并告诉服务器其端口号,然后服务器主动连接客户端进行文件传输。而在被动模式下,服务器开启一个随机...

    c#.net网络编程之FTP协议开发

    FTP协议有两种工作模式:主动模式和被动模式,这两种模式主要区别在于数据连接的建立方式。 C#.NET提供了丰富的类库来支持网络编程,其中`System.Net.FtpClient`和`System.Net.FtpWebRequest`等类可以帮助我们实现...

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

    Java的`java.net.Socket`类可以灵活地在两种模式间切换。 5. **二进制与文本模式**:FTP支持二进制和文本模式,二进制模式适用于所有类型的数据,而文本模式会进行字符编码转换,通常用于ASCII文本文件。在Java中,...

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

    这个过程可以通过两种模式完成:匿名登录(一般用于公开资源共享)和认证登录(需要正确的用户名和密码)。 2. **控制连接与数据连接**:FTP协议使用两个并发的TCP连接,一个是控制连接,用于发送和接收命令;另一...

    ftp.rar_ftp_ftpservernew_协议解析

    FTP协议基于TCP/IP模型,工作在应用层。它定义了两个主要的连接:控制连接和数据连接。控制连接用于发送命令和接收响应,如登录、列出目录、传输文件等。数据连接则负责实际的数据传输,可以是ASCII模式或二进制模式...

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

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

    FTP协议的实现程序

    FTP协议有两种工作模式:主动模式(Active Mode)和被动模式(Passive Mode)。在主动模式下,客户端打开一个随机端口(通常在1024-5000之间)并告诉服务器这个端口号,然后服务器连接到这个端口来传输数据。而在...

    FTP协议解析与实现

    数据连接用于实际的数据传输,有两种模式:主动(PORT)模式和被动(PASV)模式。主动模式中,客户端告诉服务器从哪个端口接收数据;被动模式中,服务器提供一个端口给客户端连接。C++实现时,需要根据FTP命令和...

    FTP协议客户端代码-FTP.rar

    FTP协议基于TCP/IP协议族,工作于应用层。它使用两个独立的TCP连接:控制连接和数据连接。控制连接用于发送FTP命令和接收服务器响应,而数据连接则用于实际的数据传输。FTP协议的主要操作包括登录、改变目录、列举...

    ftp协议例子的源代码

    FTP有两种工作模式:主动模式(Active Mode)和被动模式(Passive Mode)。 1. 主动模式:在主动模式下,客户端首先建立一个TCP控制连接到服务器的21号端口。然后,客户端发送PORT命令,告诉服务器它希望在哪个端口...

    FTP下载和解析

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

    ftp客户端和ftp通信协议

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

    FTP协议的实现源代码

    FTP支持主动和被动两种数据传输模式。在主动模式下,服务器在控制连接上告诉客户端一个数据端口号,客户端连接到这个端口进行数据传输。而在被动模式中,为了避免防火墙和NAT问题,客户端会在控制连接上请求服务器...

    基于C++实现的FTP协议编程

    3. 数据传输模式:FTP支持主动和被动两种数据传输模式。主动模式中,客户端打开一个随机端口,然后通过控制连接告诉服务器这个端口号,服务器则连接到该端口进行数据交换。被动模式下,服务器开启一个端口并告知...

    有关ftp协议的许多东东

    FTP协议主要有两种工作模式:主动模式(Port模式)和被动模式(Passive模式)。在主动模式下,客户端在连接建立后会随机选择一个端口(通常在1024到5000之间),并告诉服务器这个端口号,然后服务器会通过这个端口...

    FTP.rar_ftp_ftp协议c++

    数据连接有主动模式和被动模式两种。主动模式下,客户端打开一个端口并通知服务器,服务器则连接到这个端口进行数据传输。被动模式中,服务器打开一个端口并告诉客户端,客户端随后连接到该端口进行传输,这种方式更...

    linux c 通过FTP 协议上传文件 源码 亲测可用

    4. **FTP被动模式与主动模式**:FTP有两种工作模式,主动模式和被动模式。主动模式中,服务器主动打开一个端口与客户端进行数据传输;被动模式下,客户端打开一个端口,并通过`PASV`命令告诉服务器,服务器再连接到...

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

    在IT行业中,FTP(File Transfer Protocol)是一种广泛用于在互联网上进行文件传输的标准协议。本项目涉及的关键知识点包括FTP客户端的实现、CSV文件的解析、多文件下载与并发处理以及日志记录。以下是对这些核心...

Global site tag (gtag.js) - Google Analytics