ftp协议是一种用于_______的协议_FTP协议详解

FTP协议详解

21892b1bb9759e3f1f3ef78376ff7088.png

 “关于FTP协议,

比课本再多了解一些” 

//

  - 简介 -  

◆ ◆ ◆ ◆

FTP(File Transfer Protocol)是应用层的一个文件传输协议。其主要作用是在服务器和客户端之间实现文件的传输和共享。FTP协议运行在TCP连接上,保证了文件传输的可靠性(运行在UDP协议上的是TFTP协议)

  - 与HTTP的区别 -  

◆ ◆ ◆ ◆

HTTP和FTP都是文件传输协议,都是运行在TCP上面,但是他们也有一些重要的区别。

FTP使用了两个并行的TCP来传输文件:一个是控制连接(port:21),一个是数据连接(port:20)。控制连接用于在两个主机之间传输控制信息,如口令,用户标识,存放、获取文件等命令。数据连接用于实际发送一个文件,发送完文件之后数据连接会关闭。因为FTP协议使用一个独立的控制连接,所以,也称FTP的控制信息是带外(out-of-band)传送的。而HTTP协议是在传输文件的同一个TCP连接中发送请求和相应首部行的。因此,HTTP也可以说是带内(in-band)发送控制信息。

  - FTP协议的两种传输方式 -  

◆ ◆ ◆ ◆

FTP支持两种方式的传输:文本(ASCII)方式和二进制(Binary)方式。通常文本文件的传输采用ASCII方式,而图象、声音文件、加密和压缩文件等非文本文件采用二进制方式传输,如果为了从一个系统上传输文件而使用了与本地系统不同的计算机字节位数,那么就必须使用Tenex模式。FTP以ASCII方式作为默认的文件传输方式。

  - FTP的两种传输模式 -  

◆ ◆ ◆ ◆

FTP有两种传输模式——主动(FTP Port)模式和被动(FTP Passive)模式。由于主动模式存在着安全问题,最近几年,大部分的TFP客户端开始默认使用被动模式。

主动模式(Port):

主动模式的核心是FTP客户端告诉服务端自己开发哪个端口作为数据端口,然后让服务端来连接自己。
主动模式的连接建立一般是通过几个步骤:

1.客户端随机打开一个本地大于1024的端口P1

2.客户端通过端口P1向服务器控制端口(端口21)发起连接请求

3.服务器进行认证成功,请求建立

4.客户端对本地端口P2进行监听并向服务器发送“Port P1+1”,告诉服务器客户端的数据监听端口。

5.服务器收到端口后,从自己的数据端口(端口20)发起连接,连接到客户端指定的数据端口P1+1.

被动方式(Passive):

由于主动方式中,服务端需要主动连客户端,对于客户端的防火墙来说,属于外部连接内部,会出现被阻塞的情况。被动方式解决了这个问题。被动连接的核心是——控制连接请求和数据连接请求都是由客户端发起。

被动方式的步骤如下:

1.客户端任意打开约1024的两个本地端口(P1和P1+1)

2.P1端口发送请求连接服务器的21端口(控制连接端口)同时提交PASV命令。

3.服务器收到请求后,会开启任意一个大约1024的端口P2,然后返回如下格式内容:

227 entering passive mode(h1,h2,h3,h4,p1,p2)

4.客户端收到服务端返回的内容后,计算出服务端开放的数据连接端口

5.客户端通过P1+1端口向服务端的发送连接请求。进行数据传输。

关于服务端返回的报文格式(h1,h2,h3,h4,p1,p2)具体含义如下:

h1,h2,h3,h4代表服务器的ip地址;

p1,p2代表服务器监听的数据连接端口地址。计算方法为P1*256+P2

  - FTP的限制 -  

◆ ◆ ◆ ◆

对于FTP服务器来讲,他必须在整个会话期间保持用户的状态(state),特别是,服务器必须把特定的用户账户与控制联系起来,用户在远程目录树上不断跳转时,服务器必须追踪到用户在远程树上的当前位置。

换句话说,当客户端用户数量不断增多,FTP服务器所要维持的会话总数,也会迅速增长。这会大大限制FTP服务器的性能。

  - FTP中的命令与应答 -  

◆ ◆ ◆ ◆

命令:

FTP协议的命令是可读的,每个命令由4个大写的ASCII字符组成,有些还带一些可选参数,命令后面跟回车符换行。
以下为几个常用的命令:

0060b02082d673eecfab6e63ea106c0b.png

应答:

FTP客户端每个发出的命令都会对应一个FTP服务器发出的应答。应答是一个3位的数字,后跟一个可选信息。他与HTTP响应报文的状态码和状态信息的结构相同,比较常见的几个应答可以参考如下:

4a6faca1848d1f9f8fadb8e78887f453.png

以上的FTP命令和应答比较简单,如果想详细了解相关的命令和应答,可以查阅RFC959 相关文档

◆ ◆ ◆ ◆

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值