【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

第35章      FTP文件传输协议基础知识

本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作。

(本章的知识点主要整理自网络)

35.1  初学者重要提示

35.2  FTP基础知识参考资料

35.3  FTP基础知识点

35.4  总结

35.1  初学者重要提示

FTP文件传输协议在实际项目中有比较重要的实用价值,需要初学者对FTP的基础知识也有个认识。

35.2  FTP基础知识参考资料

大家可以从以下地址获得FTP基础知识:

对于初学者来说,学习上面三个参考资料就够了。如果大家有网络方面的书籍,比如《TCP/IP详解》,也可以直接看书籍。

35.3  FTP基础知识点

(这里的知识点整理自上面的参考资料地址)

教程这里也对FTP的基础知识做个介绍,方便大家先有个大概的认识。

35.3.1 FTP简要说明

FTP(File Transfer Protocol,文件传输协议)用于Internet上面控制文件的双向传输。同时,它也是一个应用程序。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:下载和上传。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流。

35.3.2 FTP服务器/客户端

简单地说,支持FTP协议的服务器就是FTP服务器。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

35.3.3 匿名FTP

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在提供用户ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

35.3.4 FTP传输方式

FTP的传输有两种方式:ASCII、二进制。

  • ASCII传输方式

假定用户正在拷贝的文件包含简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时,ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。

  • 二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一 一对应的。即使目的地机器上这种位序列的文件是没意义的。例如,Mac OS以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如果在ASCII方式下传输二进制文件,即使不需要也仍会转译,这会损坏数据(ASCII方式一般假设每一字符的第一个bit无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的)。

35.3.5 FTP支持的模式

FTP支持两种模式:Standard (PORT,主动方式),Passive (PASV,被动方式)。

  • Standard模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP服务器必须和客户端建立一个新的连接用来传送数据。

  • Passive模式

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

很多防火墙在设置的时候都不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口。而许多内网的客户端不能用PORT模式登录FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

35.3.6 FTP实现的目标和缺点

FTP实现的目标如下:

  1. 促进文件的共享(计算机程序或数据)。
  2. 鼓励间接的使用远程计算机。
  3. 向用户屏蔽不同主机中各种文件系统的细节。
  4. 可靠和高效的传输数据。

FTP的缺点如下:

  1. 密码和文件内容都使用明文传输,可能发生窃听。
  2. 因为必须开放一个随机的端口以创建连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题,通过使用被动模式的FTP,很大程度上得到了解决。
  3. 服务器可能会被告知连接一个第三方计算机的保留端口。
  4. 此方式在需要传输文件数量很多的小文件时,性能不好。

35.4 总结

本章节就为大家讲解这么多,更多FTP的相关知识需要大家查阅相关书籍进行学习,或者网上搜索相关资料进行学习。

原文地址:https://www.cnblogs.com/armfly/p/9585130.html

时间: 2025-01-24 12:06:13

【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识的相关文章

FTP文件传输协议(二)

FTP文件传输协议(二) 3.访问控制列表 [[email protected] vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [[email protected] vsftpd]# cat user_list 查看用户列表的配置文件 # vsftpd userlist # If userlist_deny=NO, only allow users in this file //如果使用userlist_den

FTP 文件传输协议

FTP 文件传输协议 什么是FTP? FTP全称是文件传输协议,简单点就是通过这个协议我们可以实现文件的传输. FTP软件一般分为服务端和客服端. 常用的FTP软件 pureFTP 编译安装FTP 进入官网下载 https://www.pureftpd.org/ 具体下载地址:?[https://download.pureftpd.org/pub/pure-ftpd/releases/](https://download.pureftpd.org/pub/pure-ftpd/releases/)

FTP文件传输协议两种方式的工作原理

FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式). Standard模式 FTP的客户端发送 PORT 命令到FTP server.Passive模式FTP的客户端发送 PASV命令到 FTP Server. 下面介绍一个这两种方式的工作原理: Standard模式 FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个

Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )

https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(

FTP文件传输协议之vsftpd服务

一.FTP服务概述 FTP(File Transfer Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件.客户端软件共同实现文件传输功能 FTP服务器默认使用TCP协议的20.21端口与客户端实现通信.20端口用于建立数据连接,并传输数据文件:21端口用于建立控制连接,并传输FTP控制命令.FTP数据连接分为主动模式和被动模式 主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接 vsftpd软件 vsftpd是目前在Linux/Unix领域应用十分

FTP文件传输协议

FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证. FTP的主要特征: 1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路. 2.数据连接是传输数据的全双工连接.传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间. 文件类型: 1.ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输: 2.EBCDIC

Linux网络服务04——FTP文件传输服务

Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: (1)主动模式:服务器主动发起数据连接 首先由客户端向服务端的21端口建立FTP控制连接.当需要传输数据时,客户端以PORT命令告知服务器"我打开了某端口,你过来连接我",预算服务器从20端口向客户端的该端口发送请求并建立数据连接. (2)被动模式:服务器被动等待数据连接 如果客户端所在网络

第9章 应用层(5)_文件传输协议FTP

6. 文件传输协议FTP 6.1 FTP主动和被动模式 (1)FTP协议 ①与其他协议不同,FTP协议在客户端访问FTP服务器时需要建立两个TCP连接.一个用来传输FTP命令,一个用来传输数据. ②在FTP服务器上需要开放两个端口,一个命令窗口(或称为控制窗口)和一个数据窗口.通常命令端口为21,数据端口为20.当考虑主动/被动模式时,数据端口可能不是20. (2)主动模式(建立传输数据的TCP连接由FTP服务器主动发起) ①工作过程 A.第1步中,FTP客户端提交PORT命令并允许服务器来回连

FTP文件传输服务

FTP文件传输服务 需求描述: ? 采用FTP虚拟用户的方式,添加三个用户:zhangsan.lisi.wangwu. ? 用户访问及文件权限控制 u 开放匿名访问,任何用户均可下载服务器/var/ftp/soft/目录中的软件资料. u 用户zhangsan可以对服务器的/var/ftp/soft/目录进行上传.删除等操作. u 用户lisi可以下载服务器/var/market/目录中的市场活动.销售方案的资料. u 用户wangwu可以对服务器/var/market/目录进行上传.删除等操作