浅析FTP协议

FTP协议:

属于应用层协议
全称:File Transfer Protocol 文件传输协议
FTP是一个客户/服务器系统,即FTP协议包括两个重要的组成部分:FTP客户端 和 FTP服务器
FTP服务器用于存储和传送文件,用户使用FTP客户端通过FTP协议与服务器传送文件 或 访问位于服务器上资源。

一个FTP服务器进程可以同时为多个客户进程提供服务。

FTP服务器进程由两大部分组成:
一个主进程,负责接收新的请求;
另外有多个从属进程,负责处理单个请求。
在这里插入图片描述
主进程接收新请求的步骤是:

1.端口服务器端的21号端口,是控制链路打开;
2.服务器端等待客户进程发出连接请求,客户端打开一个临时的端口,用于进行数据连接;
3.服务器端接收到连接请求并响应,打开20号或其他大于1024号的端口用于数据连接,并建立起数据连接;
4.服务器端启动从属进程来处理客户进程发出的请求;
5.从属进程对客户进程处理完毕后,客户端发送关闭连接请求,服务器端响应后终止此次文件传输;
6.服务器端回到等待状态,继续接受其他进程发送的请求。
要注意的是,主进程与从属进程的处理是并发进行的。

在这里插入图片描述
在FTP进行文件传输的时候,会启用两条链路,
一条链路是控制连接,另一条链路是数据连接

控制链路:发送的控制连接只是一些控制命令;
数据链路:进行数据的上传和下载。
在这里插入图片描述
FTP进行工作的三个主要步骤:
首先启动控制链路进行链路的建立;
接着用数据链路,来完成数据的上传和下载的工作;
最后启动控制链路,来拆除整个的传送链路。
在这里插入图片描述

在FTP工作的时候,有一个客户端和一个服务器端,
客户端和服务器端之间的工作是双向的。

首先 客户端 会向 服务器端 发送一个链路的连接请求,
这时 客户端 会为进程选择一个临时的端口号通知给链路,来发送数据;
服务器端 会响应 客户端 的请求,
并且在 20号端口 来进行数据的发送和接收,
而在关闭的时候也是由 客户端 向 服务器端 来请求关闭,
服务器端来同意它的关闭请求。

FTP的两种工作模式:
一、主动模式:Port模式
在这里插入图片描述
在这里插入图片描述

Port模式下:

客户端首先向FTP服务器发送它的21号端口控制链路的建立连接,
这时在控制链路上发送命令,由服务器端来响应它的连接请求。
(
   第一个过程,是在控制链路上双方之间一些命令字、命令语句之间的传递,
   双方建立起了他们之间的一条链路,
   这时客户端用什么端口接收数据,这样的一些请求,都会让服务器端清楚;
)

进入到第二个层次,
就是在客户端和服务器端发送数据,此时它们会建立一条数据链路,
这时,服务器端是在20端口进行连接,
而客户端是在它之前约定的某一个端口来进行数据的发送。
当FTP的服务器端和客户端在20号端口建立了一个连接以后,数据就可以进行传送了。

在Port模式的最后,
客户端和服务器端之间,会启用它们的控制连接,
双方之间约定,本次的数据上传和下载已经结束了,
那么双方可以结束它们的链路。

二、被动模式:Passive模式
在这里插入图片描述
在这里插入图片描述

Passive模式下:

首先在建立控制通道的时候,和Port模式类似,
但是建立连接以后发送的不是Port命令,而是一个Passive命令。

FTP服务器收到Passive的命令以后,就会随机打开一个端口,
这时端口号一定要大于1024,而不是Port模式下的20号端口,
它在一个大于1024的随机端口上和客户端进行连接。

那么客户端接着在它们自己的一个端口上,
和这个大于1024的数据端口来进行数据的收和发,数据的上传和下载的工作。
最后启用控制链路来结束它们的数据的传送连接。

两种模式的区别:

双方在数据传送的阶段端口是不同的,
这个端口是体现在服务器端。(服务器端采用的端口是不同的)

在主动方式下,服务器端采用的是20号端口进行连接;
在被动方式下,是与主动方式有区别的,被动方式并不采用20号端口进行连接,
而是一个随机端口进行连接。

即:
Port模式采用的是20号端口;
Passive模式采用的是一个大于1024的随机端口。

应用:

在很多防火墙中间设置的时候,是不允许接受外部发起的连接来修改它的端口号的,
所以许多位于防火墙之后内部网的FTP服务器,是不支持Passive没事的(有防火墙,不支持Passive模式)
因为它无法允许外部的客户端来发送一个Passive命令,修改当前的FTP服务器对应的高级端口。

而许多的情况下,内部的客户端不能用Port模式和FTP服务器进行连接。
因为服务器的20号端口无法和内部网络的客户端建立一个连接,
所以在出现相应的问题的时候,要注意怎样的解决这个问题。

比如说:
外部的Passive连接无法进行的时候,我们要考虑一下防火墙是不是开着了;
内部连接的时候,是不是考虑不采用Port模式,而采用Passive模式来进行双方之间的上传和下载。

对于搭建FTP服务器,通常可以使用 Server U 软件;
对于搭建FTP客户端,简单的可以直接利用浏览器,当然也可以使用专门的软件,如,CuteFTP、FlashFTP、FTP Explorer 等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值