ftp数据流分析

1. 简介

项目中有一个在stm32中移植ftp的功能,在网上找到了一个开源的 lwip_ftpd_master 的代码,文件系统是fatfs。
ftp使用的是tcp协议,通过21端口建立连接,客户端通过这个端口发送命令给服务器,服务器根据发送来的命令进行相应的操作。
ftp涉及到两种模式,一种是主动模式(PORT命令)、一种是被动模式(PASV命令)。


2. 具体(passive模式)

1. 当有客户端连接ftp服务器时,会先建立21端口上的命令的连接,出现3次握手,标识建立了稳定的连接(10.0.0.2 是ftp服务器,10.0.0.1是客户端):

在这里插入图片描述

2. 紧接着服务器发送给客户端 “220 lwIP FTP Server ready.” 通知客户端,连接稳定,客户端接收到通知信息后,发送一个ACK。
3. 到此阶段,客户端开始发送请求的命令给服务器,服务器接收到命令后进行正常的响应。

在这里插入图片描述

4. 通过PASV指令,服务器会发送回ip地址和端口号 (10,0,0,2,117,48)ip地址是10.0.0.2,端口号是117,48两个的组合, 117转换成十六进制75,48转换成十六进制30,然后端口是7530(hex)–>30000

在这里插入图片描述

5. 当命令连接上时就会建立传输数据的tcp的连接,当LIST命令发送给服务器后,服务器会建立传输数据用的tcp连接, 3次握手

在这里插入图片描述

其中上图的第三条是对LIST命令的ACK,端口号是21

建立连接后,服务器便开始发送数据给客户端。
在这里插入图片描述

参考:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FTP (File Transfer Protocol) 是一个用于文件传输的标准协议。FTP 主要包含两个部分:控制连接和数据连接。控制连接用于传输控制信息,如登录和退出,创建和删除目录等。数据连接用于传输文件数据。下面是 FTP 数据处理的分析: 1. 数据连接模式 FTP 有两种数据连接模式:主动模式和被动模式。在主动模式下,客户端将建立一个数据连接,服务器将连接到客户端的指定端口。在被动模式下,服务器将建立一个数据连接,客户端将连接到服务器的指定端口。被动模式通常用于防火墙后面的服务器。 2. 数据加密 FTP 本身并不提供数据加密,因此文件传输过程中可能会被窃听或篡改。为了保证数据的安全性,可以通过使用 SSL/TLS 加密 FTP 连接来确保数据传输的机密性和完整性。 3. 文件类型 FTP 支持两种文件类型:ASCII 和二进制。ASCII 文件类型用于传输文本文件,而二进制文件类型用于传输图像、音频和视频等非文本文件。 4. 数据传输模式 FTP 支持两种数据传输模式:流模式和块模式。在流模式下,数据被视为一个无限的字节流,由 FTP 客户端和服务器之间的缓冲区进行缓冲。在块模式下,数据被分成块进行传输,每个块都有一个特定的大小。 5. 数据压缩 FTP 支持使用压缩算法来减少传输的数据量,从而加速文件传输。常用的压缩算法包括 ZLIB 和 LZW。 总之,FTP 数据处理涉及到多个方面,包括数据连接模式、数据加密、文件类型、数据传输模式和数据压缩等。了解这些方面可以帮助我们更好地理解 FTP 的工作原理和性能,并且能够更好地优化和调试 FTP 服务器和客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值