目录

协议背景

协议概述

FTP采用双TCP连接方式

FTP有两种文件传输模式

FTP采用两种数据传输方式

工作过程

主动模式

被动模式

抓包分析

主动模式

被动模式

 关于FTP的几个问题


协议背景

为了提高文件的共享性,在本地主机和远程主机之间高效传送数据。FTP协议被广泛使用在互联网上的文件传输。使用客户端/服务器模式,基于TCP传输;工作在OSI七层模型的应用层。


协议概述

FTP采用双TCP连接方式

控制连接使用TCP端口号21

用于在FTP客户端和FTP服务器之间传输FTP控制命令及命令执行信息。控制连接在整个FTP会话期间一直保持打开

数据连接使用TCP端口号20

用于传输数据,包括数据上传、下载、文件列表发送等。数据传输结束后数据连接将终止。

FTP有两种文件传输模式

ASCII模式是默认的文件传输模式,主要特点是:

本地文件转换成标准的ASCII码再传输

适用于传输文本文件

二进制流模式也称为图像文件传输模式,主要特点是:

文件按照比特流的方式进行传输

适用于传送程序文件

FTP采用两种数据传输方式

主动方式

被动方式


工作过程

主动模式

在建立数据连接的过程中,由服务器主动发起连接,因此被称为主动方式。主动方式也称为PORT方式,是FTP协议最初定义的数据传输连接方式,主要特点是:

  1. FTP客户端通过向FTP服务器发送PORT命令,告诉服务器该客户端用于传输数据的临时端口号
  2. 当需要传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输

被动模式

在整个过程中,由于服务器总是被动接收客户端的数据连接,因此被称为被动方式。被动方式也称为PASV方式,被动方式的主要特点是:

  1. FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端
  2. 当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道,完成数据传输。


抓包分析

主动模式

被动模式


 关于FTP的几个问题

1、从哪个角度来看待主动和被动

本质上看,这个主动被动是站在服务端的角度来定义的。是指的谁来发起数据通道的建立,如果是服务端,就是主动模式(我是服务端,我主动来与客户端发起数据通道的建立);如果是客户端来发起数据通道建立,就是被动模式(服务端被动等待客户端来发起数据通道的建立)。

2、选择模式是服务器还是客户端

一般FTP服务器都会设置两者模式都支持的。FTP在建立过程中,在命令通道建立完后,由客户端决定采用主动还是被动模式,客户端会通过发送PASS(主动)还是PORT(被动)来告知服务器。

3、主动、被动模式在边界设备做NAT连接跟踪、防火墙端口/连接控制等网络中可能会遇到不能通过的问题

采用哪种模式来解决这个问题,通常是FTP服务端来想办法,因为客户端网络边界千差万别不好控制(很难做到让服务器能主动连接客户端数据通道端口),所以服务端要解决让客户端来连接自己数据通道(被动模式),服务端边界设备要支持FTP协议ALG(应用级网关)来支持数据通道的端口识别和控制。

4、为什么会有主动模式和被动模式

主动模式对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。

被动模式对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

5、主动被动模式会有哪些网络要求

主动模式是由服务器向客户端发起连接请求,客户端需要放开这个高位端口;被动模式中客户端要连接到服务器的一个随机高位端口,就需要服务端的防火墙放开这个FTP的高位端口。

 

 posted on 2020-06-19 16:15  嚴∞帅  阅读(84)  评论(0编辑  收藏  举报