FTP协议分析

本文详细介绍了FTP(File Transfer Protocol)协议的基本概念、主要功能及其工作原理。包括FTP的数据传输模式、命令集、响应码等内容,并阐述了FTP如何实现文件的上传与下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://blog.youkuaiyun.com/ouyang_peng/article/details/9633781

FTP(File Transfer Protocol)就是文件传输协议。通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下载是FTP最常用的两个功能。FTP使用传输层的TCP协议进行传输,因此客户端与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。FTP的目标有以下目标: 

  1.  提高文件的共享性
  2. 提供非直接地远程操纵计算机 
  3. 避免用户因主机之间的文件存储系统的差异而导致的变化
  4. 为数据的传送提供可靠性和高效性

FTP协议模型如下图所示


FTP使用TCP的服务,它需要两条连接。一条是数据连接用于数据传送,一般使用端口21,而另一条是控制连接用于传送控制信息(命令和响应),一般使用端口20。控制连接需要传送的只是控制信息,如一行命令或一行应答码,而数据连接需要传送的数据类型繁杂,如文本文件、图形文件、应用程序等等。

FTP协议模型中使用到的交互元素包括用户接口、USERPIUPTPSPISDTP的说明如下图所示



FTP传输有两种方式:文本传输模式和二进制数据传输模式。其中文本模式又叫ASCII模式,二进制模式又叫Binary模式。

FTP服务分为普通FTP与匿名FTP服务两种类型。


常用FTP的命令有:

1) 接入命令

 USER: 指明用户名

 PASS: 指明与用户名对应的密码

 ABOR:  异常中断数据连接程序

 QUIT: 从系统注销

 REIN: 重新初始化

2) 文件管理命令

 CWD:   改变服务器上的工作目录到指定目录

 CDUP:  改变服务器上的工作目录到父目录

 DELE: 请求删除服务器上的文件。

 LIST: 列出子目录或文件

 MKD: 请求在服务器上新建一个目录

 PWD:  显示当前工作目录

 RMD:  从服务器上删除指定目录

3) 数据格式化命令

 TYPE:  定义文件类型,共有四种类型,所带参数也有四种:A、E 、I 、L分别对应ASCIIEBCDICIMAGBLOCAL类型。

 STRU: 定义数据的组织

 MODE: 定义传输方式

4) 端口定义命令

 PASV:服务器选择端口,客户端使用这个端口发送主动打开

 PORT: 客户端选择端口,服务器使用这个端口创建主动打开

5) 文件传送命令

 RETR: 读取文件,文件从服务器端传送到客户端

 STOR: 存放文件,文件从客户端传送到服务器端

 STAT: 返回文件的状态

 ALLOO: 在服务器为文件分配存储空间

6) 杂项命令

 HELP: 询问服务器的信息

 NOOP: 检查服务器是否工作

 SITE: 指定特定场所的命令

 SYST: 询问服务器使用的操作系统


客户端发送  FTP  命令后,服务器返回响应码。响应码用三位数字编码表示:

第一个数字定义命令的状态。
1 表示服务器正确接收信息,还未处理。
表示服务器已经正确处理信息。
表示服务器正确接收信息,正在处理。
表示信息暂时错误。
表示信息永久错误。
 
第二个数字是响应类型的分类。
表示语法。
表示系统状态和信息。
表示连接状态。
表示与用户认证有关的信息。
表示未指明。
表示与文件系统有关的信息。

第三个数字提供了更加附加信息。 

编辑本段协议结构

命令
描述
ABOR
中断数据连接程序
ACCT <account>
系统特权帐号
ALLO <bytes>
为服务器上的文件存储器分配字节
APPE <filename>
添加文件到服务器同名文件
CDUP <dir path>
改变服务器上的父目录
CWD <dir path>
改变服务器上的工作目录
DELE <filename>
删除服务器上的指定文件
HELP <command>
返回指定命令信息
LIST <name>
如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode>
传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory>
在服务器上建立指定目录
NLST <directory>
列出指定目录内容
NOOP
无动作,除了来自服务器上的承认
PASS <password>
系统登录密码
PASV
请求服务器等待数据连接
PORT <address>
IP 地址和两字节的端口 ID
PWD
显示当前工作目录
QUIT
从 FTP 服务器上退出登录
REIN
重新初始化登录状态连接
REST <offset>
由特定偏移量重启文件传递
RETR <filename>
从服务器上找回(复制)文件
RMD <directory>
在服务器上删除指定目录
RNFR <old path>
对旧路径重命名
RNTO <new path>
对新路径重命名
SITE <params>
由服务器提供的站点特殊参数
SMNT <pathname>
挂载指定文件结构
STAT <directory>
在当前程序或目录上返回信息
STOR <filename>
储存(复制)文件到服务器上
STOU <filename>
储存文件到服务器名称上
STRU <type>
数据结构(F=文件,R=记录,P=页面)
SYST
返回服务器使用的操作系统
TYPE <data type>
数据类型(A=ASCII,E=EBCDIC,I=binary)
USER <username>>
系统登录的用户名
标准 FTP 信息如下
响应代码
解释说明
110
新文件指示器上的重启标记
120
服务器准备就绪的时间(分钟数)
125
打开数据连接,开始传输
150
打开连接
200
成功
202
命令没有执行
211
系统状态回复
212
目录状态回复
213
文件状态回复
214
帮助信息回复
215
系统类型回复
220
服务就绪
221
退出网络
225
打开数据连接
226
结束数据连接
227
进入被动模式(IP 地址、ID 端口)
230
登录因特网
250
文件行为完成
257
路径名建立
331
要求密码
332
要求帐号
350
文件行为暂停
421
服务关闭
425
无法打开数据连接
426
结束连接
450
文件不可用
451
遇到本地错误
452
磁盘空间不足
500
无效命令
501
错误参数
502
命令没有执行
503
错误指令序列
504
无效命令参数
530
未登录网络
532
存储文件需要帐号
550
文件不可用
551
不知道的页类型
552
超过存储分配
553
文件名不允许




### 回答1: Wireshark是一款网络协议分析工具,可以用来捕获网络数据包并进行分析。当我们需要分析FTP协议时,可以使用Wireshark来捕获FTP数据包,然后对数据包进行分析。 在Wireshark中,我们可以通过设置过滤器来捕获FTP数据包。设置过滤器的方法是在过滤器栏中输入“ftp”,然后点击“Apply”按钮即可。这样,Wireshark就会开始捕获FTP数据包。 捕获到FTP数据包后,我们可以对数据包进行分析。在Wireshark中,我们可以查看FTP数据包的各个字段,如源地址、目的地址、源端口、目的端口、协议类型等。此外,我们还可以查看FTP数据包的详细信息,如FTP命令、FTP响应、FTP数据等。 通过对FTP数据包的分析,我们可以了解FTP协议的工作原理,找出FTP协议中的问题,并进行优化。因此,Wireshark是一款非常实用的网络协议分析工具,可以帮助我们更好地理解和优化网络协议。 ### 回答2: Wireshark是一款网络协议分析工具,可以用来捕获和分析网络数据包。FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的协议。在本文中,我们将介绍如何使用Wireshark捕获FTP流量并进行协议分析。 首先,启动Wireshark并选择要捕获流量的接口。通常,我们选择在本地计算机或路由器上进行捕获。然后,我们可以使用FTP客户端连接到远程FTP服务器,并开始传输数据。 在Wireshark的界面中,我们可以看到捕获到的数据包列表。通过使用FTP软件进行文件传输,我们应该能够看到许多FTP协议相关的数据包。这些数据包包含了FTP协议所需的各种信息,例如登录信息、文件传输请求、数据传输等。 在Wireshark的数据包详细信息中,我们可以看到FTP协议中的各个阶段。例如,在登录时,我们可以看到FTP客户端向服务器发送“USER”和“PASS”命令,以提供用户名和密码。然后,服务器返回一个“230 User logged in”响应,以确认用户已成功登录。 之后,我们可以在Wireshark中看到文件传输请求。这些请求包括文件名、文件路径以及传输模式等。通过查看Wireshark中FTP数据包的详细信息,我们可以深入了解FTP协议以及它是如何工作的。 在分析FTP流量时,我们还应该注意一些安全问题。因为FTP协议是基于明文传输的,所以用户的登录信息以及传输的数据都可以在传输过程中被窃取。为了保护数据安全,我们可以使用SFTP(Secure File Transfer Protocol)等安全协议来代替FTP协议进行文件传输。 总之,使用Wireshark分析FTP协议是非常有用的。通过学习FTP协议的工作原理,我们可以更好地了解它的行为,并帮助我们更好地保护网络安全。 ### 回答3: Wireshark是一个很好用的网络协议分析工具。从Wireshark捕获到的FTP协议数据包可以让我们更加深入地了解FTP协议的工作原理。 FTP是File Transfer Protocol的简称,常用于在网络上进行文件传输。FTP协议使用TCP进行通信,它使用两个端口:一个用于控制连接(默认端口:21),另一个用于数据传输(默认端口:20)。下面就介绍如何使用Wireshark进行FTP协议分析。 首先打开Wireshark,进入Capture界面,在界面中选择要捕获的网络接口。然后点击“Start”按钮开始捕获数据包。 然后我们可以通过Wireshark的过滤功能来筛选出FTP协议的数据包。在“Filter”框中输入“ftp”,然后点击“Apply”按钮。这样Wireshark就会过滤出所有FTP协议的数据包,我们可以更清楚地看到FTP协议的细节。 在FTP协议的工作过程中,有两种基本的传输模式:ASCII模式和二进制模式。在ASCII模式下,数据会被解释成文本形式,而在二进制模式下,数据会以原始的二进制形式进行传输。我们可以根据数据包的信息来判断FTP协议所使用的传输模式。 另外,FTP协议还包括一些命令和响应,例如“USER”命令用于用户身份验证,而“STOR”命令用于上传文件。我们可以通过Wireshark获取FTP协议的命令和响应信息。 需要注意的是,FTP协议包含了很多敏感信息,例如用户名和密码等,因此在进行FTP协议分析时,应该避免使用公共网络接口。 总之,Wireshark是一个非常强大的网络协议分析工具,可以帮助我们更加深入地了解FTP协议的工作原理。通过Wireshark分析FTP协议,我们可以获得更多有关FTP协议的信息,例如传输模式、命令和响应等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值