第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命令并允许服务器来回连它的数据端口(1027)。

    B.第2步中,服务器返回确认。

    C.第3步中,FTP服务器向客户端发送TCP连接请求,目标端口为1027源端口为20.为传输数据发起建立连接的请求。

    D.第4步中,FTP客户端发送确认数据服文,目标端口20,源端口1027,建立传输数据的连接。

  ②主要问题

    A.主动模式下FTP服务器只需打开TCP的21端口和20端口。而FTP客户端防火墙要将TCP协议号大于1023的端口全部打开

    B.主动模式下FTP的主要问题在客户端,因为服务器为了建立传输数据的连接,会回连客户端指定的端口。对于客户端防火墙来说,这是从外部系统到内部客户端的连接,通常会被阻塞,除非关闭客户端防火墙。

(3)被动模式(命令连接和数据连接都由客户端发起,FTP服务器只是被动连接

  ①工作过程

    A.在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。(注意:与主动模式不同,客户端不需要提交回连的数据端口)。

    B.服务器返回命令“PORT 2024”告诉客户端,服务器用哪个端口侦听数据连接。

    C.客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接

    D.服务器给客户端的数据端口返回一个“ACK”响应。

  ②主要问题

    A.被动模式解决了主动模式的问题,但同时也给服务器带来更多的问题。最大的问题就是需要允许从任意远程终端到服务器高位端口的连接,而服务器需要开放端口范围

    B.FTP服务允许管理员指定FTP服务器使用的端口范围。

6.2 实战

(1)在Win2003上搭建FTP服务器

  ①“添加/删除Windows组件”→“Windows组件”→“应用程序服务器”→双击“Internet信息服务”→“文件传输协议(FTP)服务”

  ②在D盘下建立文件夹作为FTP的根目录(如D:\homeWork)

  ③删除默认FTP,新建FTP站点,填写IP和端口(保留默认即可)。注意,当出现“FTP用户隔离”时选择“不隔离用户”。

(2)访问FTP服务器,

  ①客户端xp访问ftp服务器并上传/下载文件,然后运行netstat –an查看端口,可以看到FTP服务端使用的是两个(21端口和x端口,如果x为20说明是主动模式,否则为被动模式)

  ②更改FTP连接模式:IE→“Internet选项”→“高级”→取消或选择“使用被动FTP”。(注意,采用主动或被动模式是由客户端选择的)

(3)FTP隔离用户模式

  ①用户隔离的目的同一个FTP站点下,不同用户访问不同的目录(或文件)而不影响其他用户的目录或文件。要使用该功能,需在创建FTP站点是指定为“隔离用户”模式(如下图)

  ②规划目录结构:隔离用户模式的FTP站点对目录的名称和结构有一定要求。首先FTP站点的主目录必须是NTFS分区,然后在主目录中创建一个名为“LocalUser”的子目录最后“LocalUser”目录下创建和用户帐号名称相一致的文件夹和一个名为Public的文件夹

  ③创建让所有用户共享的文件夹。步骤如下:

    A.在public、Wang和Zhang目录下分别创建一个文件夹(如Share)

    B.在虚拟机中新增一块磁盘,然后右键“我的电脑”→“管理”→“磁盘管理”找到新增加的磁盘(如磁盘1),并授于“everyone”对磁盘的访问权限“完全控制”

    C.将新磁盘1映射到三个Share文件中去方法:在“磁盘管理”中右键“磁盘1”→“更改驱动号和路径”→“添加”→选择“装入以下空白NTFS文件夹中”,并浏览到上述的Share文件夹。按同样的方法将磁盘1映射其他Share文件夹去。

  ④ 访问FTP:输入ftp站点地址后,分别以匿名、Wang和Zhang用户进行访问。(注意:必须先在FTP服务器上创建Wang和Zhang两个用户,创建命令如net user Wang 123 /add等)

时间: 2024-12-30 00:29:58

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

文件传输协议FTP、SFTP和SCP

网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transfer Protocol) SFTP(SSH File Transfer Protocol,和FTP不一样) SCP(Secure copy,based on SSH) SSH (Secure Shell) 通信层: TCP(Transmission Control Protocol 三次握手传输协议

文件传输协议FTP

之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP).阅读Usenet新闻组(NNTP).电子邮件发送(SMTP).从服务器上下载电子邮件(POP3.IMAP)等. 一.文件传输 1.文件传输网际协议 因特网中最流行的事情就是文件交换. 文件交换无处不在.有很多协议可以供因特网上传输文件使用. 最流行的有文件传输协议(File Transfer(转移) Protocol,FTP).Unix-to-Unix复制协议(Unix-to-Unix Copy Prot

【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

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

基于TCP的TFTP(Trivial File Transfer Protocol,简单文件传输协议) 的c编程实现

我们或许都听到过,TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务. 本文就简单的叙述下tftp的小文件传输功能以及客户端对服务器的列表功能. 之前就一直很纳闷,我们经常在网上下载什么东西或者从别处传输一个文件,具体是怎么实现的呢?于是乎,翻查一些资料,加上自己对网络编程的逐步加深,所以功夫不负有心人,还算是大致的完成了下. 本例程实现的功能呢?

FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择

第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的,它有一些缺点,使其更难使用.主要的缺点是缺乏目录列表的统一格式(这个问题已经通过引入MLST命令部分解决,但是一些服务器不支持)和辅助连接(DATA连接)的存在.FTP中的安全性通过对RFC 2228中定义的信道加密采用SSL / TLS协议来提供.FTP的安全版本称为FTPS. 在UNIX系统中,

文件传输协议之FTP

FTP FTP叫做FILE Transfer Protocol,文件传输协议,是比较古老的传输协议之一,它是以明文的方式来进行工作的,因此,它不够安全,后续我们主要介绍安全的ftp叫做vsftp.一般的ftp服务器能够支持三种用户的访问: 本地用户 匿名用户 虚拟用户 当然,不同的用户的权限也不一样.对于本地用户和匿名用户的设置只需要修改ftp的配置文件即可.这个将在后文介绍:而对于虚拟用户需要借助mysql数据库来完成账号和密码的认证,这个过程在下一遍文章来介绍. ftp的工作原理: ftp是

利用虚拟机搭建可以访问的文件传输协议

实验介绍: 本次实验的主要目的是,在搭建好宿主机与虚拟机可以进行互通之后,利用虚拟机创建FTP文件传输协议,为宿主机提供可以访问下载或者上传的网站服务. 实验内容: 1.首先打开计算机控制面板,点击"程序". 2.点击"打开或者关闭Windows功能". 3.找到并勾选"FTP服务器"以及两个子选项"FTP服务"和"FTP扩展性". 4.等待Windows打开功能. 5.打开开始菜单,输入"IIS