| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 文件传输协议(FTP) -> 正文阅读 |
|
[系统运维]文件传输协议(FTP) |
因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存储权限。它屏蔽了各个计算系统的细节,因而适合于在异构网络中的任意计算机之间传输文件。 FTP提供以下功能:
工作原理FTP采用的是客户/服务器模式(C/S模式),它使用TCP可靠的传输服务。一个FTP进程可以同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求。 FTP工作步骤如下:
FTP服务器必须在整个会话期间内保留用户的状态信息。特别是服务器必须把指定的用户账户与控制连接联系起来。服务器必须追踪用户在远程目录树上当前的位置。 控制连接与数据连接? FTP在工作时会使用两个并行的TCP连接,其中一个是控制连接(端口号21),另一个是数据连接(端口号20)。使用两个不同的端口号可以使协议更加简单和容易实现。 控制连接服务器监听21号端口,等待端口的连接。控制连接用来传输控制信息(如连接请求、传送请求),控制信息都以7位ASCII格式传送。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程。控制连接不用来传输文件。在文件传输时还可以使用控制连接(如客户在传输中途发送一个中止传输的命令),因此控制连接在整个会话期间一直保持打开状态。 ? 数据连接服务器端的控制进程在接收到FTP客户发来的文件传输请求后,就创建"数据传送进程"和"数据连接"数据连接用来连接客户端和服务器端的数据传输进程,数据传送进程实际完成文件的传送,在传送完毕后关闭"数据传送连接"并结束运行(而控制连接仍然保持打开状态) 数据连接有两种方式:主动模式PORT和被动模式PASV 主动模式 PORT 客户端连接到服务器的21端口,登陆成功后要读取数据时,客户端随即开放一个端口,并发送命令告诉服务器,服务器收到PORT命令和端口号之后,通过20端口和客户端开放的端口连接,发送数据 被动模式 PASV 客户端连接到服务器的21端口,登陆成功后要读取数据时,发送PASV命令到服务器,服务器在本地随机开放一个端口,并告知客户端。客户端再连接到服务器开放的端口进行数据传输。 我们可以看到:服务器是使用主动模式还是被动模式,选择权在客户端而不是服务器端。主动模式是客户端连接到固定的熟知端口号20,被动模式是客户端连接到服务器端的随机的端口号(该端口号大于1023) FTP使用了一个分离的控制连接,所以也称FTP的控制信息是带外传送的。使用FTP时,如果要修改服务器上的文件,则需要先将这个文件放到本地,之后再把修改后的副本传送到服务器。这样来回很浪费时间,所以来了个NFS协议,这个协议允许进程打开一个远程文件。并且能在该文件的特定位置开始读写数据。这样NFS可以使用户复制一个大文件中的一个很小的片段。 主机A想下载文件ftp://ftp.abc.edu.cn/file,大致描述下载过程中主机和服务器的交互过程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:56:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |