Wireshark数据抓包分析之FTP协议

预备知识

一、什么是FTP协议

FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。FTP是一个8位的客户端/服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。
FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。这里的数据流指的是数据的流动,控制流是控制数据的流动。它们之间的区别在于数据流中有数据,而控制流中没有数据,只有控制指令。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。

二、FTP的工作流程

FTP的工作流程如下图。在该图中的客户端是希望从服务器端下载或上传文件的计算机。服务器端是提供FTP服务的计算机,它监听某一端口的TCP链接请求。控制链接和数据链接均是TCP链接,控制链接用于传送用户名、密码及设置传输方式等控制信息,数据链接用于传送文件数据。客户端和服务器端分别运行着控制进程和数据传送进程。
在这里插入图片描述
当用户要从服务器下载文件时,可以通过用户界面让客户端的控制进程发起一个TCP链接请求。服务器端的控制进程接受了该请求后,建立了控制链接。于是,双方就可以相互传递控制信息了,但此时双方还不能传输文件数据。为传输数据,双方的数据传送进程还需要再建立一个数据链接。
当客户端向服务器端发出建立TCP控制链接请求时,使用的服务器的端口号是21(默认),同时要告诉服务器端开启一个空闲的端口号,用于以后建立数据传送连接。然后,服务器端用端口号20(默认)与客户端所提供的端口建立数据传送连接,开始数据传送。
此处要注意,由于客户端和服务器端分别使用了两个不同的端口号来传送控制信息和数据,所以它们之间不会相互干扰,而且可以同时进行。
一般情况下,控制链接是一直存在的,但数据连接在一个文件传输完成后要断开。如果还需要传输另一个文件,要重新建立数据链接。这个特性使得FTP在传输大量的小文件时效率比较低,因为每一个文件传输时都要建立和关闭TCP链接,这样会消耗一些时间,不像某些协议(如Samba),可以在一个链接内把所有的文件一次性传输完毕。
FTP的工作模式与其他网络通讯协议有很大的区别。通常在采用HTTP等协议进行通信时,通信双方只用一个通信端口进行通信,即只有一个连接。而FTP使用两个独立的链接,其主要优点是使网络数据传输分工更加明确,同时在文件传输时还可以利用控制连接传送控制信息。

三、FTP常用控制命令

当客户端与服务器端建立连接后,客户端的控制进程就可以通过该连接向服务器端发送控制命令了。服务器端随时处于监听状态,服务器端的控制进程接到命令后,将根据命令内容做相应的工作,并把结果返回给客户端。
控制命令以ASCII字符串的形式被传输,每个命令以3个或4个大写的ASCII字符开始,后面可以带参数。命令和参数之间用空格符分隔,并以一对回车符和换行符(CR/LF)作为命令的结束标志。FTP协议常见的控制命令如下表:
FTP常用控制命令:
在这里插入图片描述
在这里插入图片描述

四、FTP应答格式

当服务器端接收到客户端的命令后,将根据命令的功能做相应的处理。处理以后的情况,如命令执行是否成功、出错类似、服务器端是否已处于就绪状态等信息,将通过控制链接发送给客户端。这些内容就是应答。对FTP控制命令进行应答的目的是为了对数据传输过程进行同步,也是为了让客户端了解服务器目前的状态。
FTP应答由3个ASCII码数字构成,后面再跟随一些解释性的文本符号。数字是供机器处理的,而文本符号则是面向用户的。3位数字每位都有一定的意义,第1位确定响应是好的、坏的还是不完全的,通过检查第1位,用户进程通常就能够知道大致要采取什么行动了。如果用户程序希望了解出了什么问题,可以继续检查第2位。第3位表示其它一些信息。下面分别介绍这3位可用的值,如下:
第1位有5个值,其含义如下:

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值