FTP 文件传输协议技术详解

摘要:
主要功能是为用户提供本地和远程主机之间的文件传输。特别是,FTP功能在执行版本升级、日志下载、配置保存和其他业务操作时被广泛使用。FTP协议是基于相应的文件系统实现的。FTPServer:设备上运行的FTP服务。提供远程客户端访问和操作功能。用户可以通过FTP客户端程序登录设备以访问设备上的文件。主动模式有利于FTP服务器的管理,但不利于客户端的管理;被动模式则相反。

FTP(File Transfer Protocol)在 TCP/IP 协议族中属于应用层协议,是文件传输标准。

主要功能是向用户提供本地和远程主机之间的文件传输,尤其在进行版本升级、日志下载和配置保存等业务操作时,广泛地使用 FTP 功能。FTP 协议基于相应的文件系统实现。


FTP 采用 C/S(Client/Server)结构,如图 所示。

FTP 文件传输协议技术详解第1张

  • FTP Server:运行于设备上的 FTP 服务。提供远程客户端访问和操作的功能,用户以通过 FTP 客户端程序登录到设备上,访问设备上的文件。
  • FTP Client:FTP 的客户端。提供本地设备对远程服务器的文件进行操作的命令。用在PC 上通过终端程序或 Telnet 程序与作为 FTP Client 的设备建立连接后,可以输入 FTP 命令建立与远程 FTP Server 的连接并访问远程主机上的文件,对远程主机上的文件进行操作。

二、FTP 连接的建立


FTP 采用 2 个 TCP 连接来传输文件:控制连接和数据连接

其中控制连接用于连接控端口,传输控制命令;数据连接用于连接数据端口。

 

在控制连接建立后,数据连接通过控制端口的命令建立起连接,进行数据的传输。


FTP 连接的建立分为主动模式和被动模式,两者的区别在于数据连接是由服务器发起还是由客户端发起。缺省情况下采用主动模式,用户可以通过命令切换。

主动模式下,当客户端存在防火墙时,由于数据连接是由服务器发起,数据连接可能会发问题。被动模式下,这个问题得到了解决。主动模式有利于对 FTP 服务器的管理,不利于对客端的管理;被动模则相反。

缺省情况下,服务器的端口 21 用于传输控制命令,端口 20 用于传输数据。

A、主动模式下 FTP 连接建立

FTP 连接主动模式建立过程如图所示。

FTP 文件传输协议技术详解第2张

1. 服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送 PORT 命令,将客户端数据连接的临时端口号告诉服务器。
4. 服务器的 20 号端口与客户端建立起数据连接。

B、被动模式 FTP 连接建立


FTP 连接被动模式建立过程如图所示。

FTP 文件传输协议技术详解第3张

 1.服务器打开端口 21 启动监听,等待连接。
2. 客户端发起控制连接的建立请求,服务器响应连接,控制连接建立。
3. 客户端通过控制连接发送命令字 PASV,告知服务器处于被动模式。
4. 服务器回应,将服务器数据连接的临时端口号告诉客户端。
5. 客户端与服务器的临时端口建立起数据连接。

说明:
临时端口为随机产生。

免责声明:文章转载自《FTP 文件传输协议技术详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TensorflowSharp安装和使用入门换行符javajava去除字符串中的空格、回车、换行符、制表符下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Sublime Text3 安装ftp插件

sublime有个叫sftp的插件,可以通过它直接打开远程机器上的文件进行编辑,并在保存后直接同步到远程linux服务器上。 用Package Control安装插件 按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后输入FTP,下拉列表中会出现一些相关的插件, 选中SFTP进行安装就行了,...

常用DOS命令

常用DOS命令 ipconfig--不带任何参数时,它为每个已经配置了的接口显示IP地址、子网掩码和默认网关。 ipconfig /all--为DNS和WINS服务器显示它已配置且所要使用的IP地址等附加信息,显示内置于本地网卡的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,ipconfig将显示DHCP服务器的IP地址和租用地址预计失效的日期...

docker部署sftp

一. 按照我博客中搭建sftp的方法做一个docker镜像 这种方法可用,但不是最好的,待改进。可参照另一篇博客:设置多用户不同权限的sftp服务器搭建 1. dockerfile文件如下,当前目录假定为sftp_docker   FROM ubuntu:14.04 ADD ./source.list /etc/apt/sources.list #...

C#-Ftp操作

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System; using System.Collections.Generic; using System.L...

Linux系统登录:本地登录与远程登录

安装登录系统的位置可以将登录方式分为两种:本地登录和远程登录。本地登录可以使用图形界面和命令行模式(也称字符界面)两种方式;远程登录可以使用SSH、Telnent、VNC、SFTP 4种方式。 常见的远程登录方式有SSH、Telnet、VNC和SFTP 4种。 SSH:SSH(Secure Shell)是一种使用加密技术保护传输数据包的远程登录工具,所有数...

VSFTP服务

概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议 常见FTP服务器: windows:Serv-U FTP Server L...