FTP的目标:
1)促进程序、数据文件按的共享;
2)鼓励使用远程计算机;
3)使用户不必面对不同主机上不同文件系统的差异;
4)对数据进行高效可靠的传输
FTP的作用:
就是让用户连接上一个远程计算机,察看远程计算机有哪些文件,然后把文件从远程计算机上拷贝到本地计算机,或把
本地计算机的文件送到远程计算机去。
FTP的术语:
1)控制连接:
用户PI与服务器PI哟很难过来交换命令和响应的信息路径。
2)数据连接:
用规定的模式和类型进行数据传输的全双向连接。传输的数据可能是文件的一部分、整个文件或一些文件。传输路径、
可能是服务器DTP与用户DTP之间或服务器DTP之间。
3)DTP:
数据传输过程,用来建立并管理数据连接。DTP可以是被动或主动。
4)PI:
协议解析器。用户和服务器用来解析协议,他们的具体实现分别称为用户PI和服务器PI。
5)服务器DTP:
数据传输过程,在通常的“主动”状态下是用“监听”的数据端口建立数据连接。它建立传输和存储参数,并在服务器端
PI的命令下传输数据。服务器端DTP也可以用于“被动”模式,而不是主动在数据端口建立连接。
6)服务器PI:
服务器PI在L端口“监听”用户协议解析器的连接请求并建立控制连接。它从用户PI接收标准的FTP命令,发送响应,并管理服务器DTP;
7)用户DTP:
数据传输过程在数据端口“监听”服务器FTP过程的连接。如果两个服务器通过它来传输数据。
8)用户PI:
用户协议解析器用U端口建立服务器FTP过程的控制连接,并在文件传输时管理用户DTP。

FTP模型:

FTP模型
上图模型中,控制连接由用户PI发起。首先用户由用户PI产生标准FTP命令通过控制连接传输到服务器过程。标准响应由服务器
端PI通过数据连接发送到用户PI发送到用户PI作为命令的响应。
FTP命令制定数据连接参数和文件系统操作种类。用户DTP则应在制定的数据接口“监听”,服务器用相应的参数发起数据连接并
传送数据。而数据接口主机不一定必须与发送FTP命令的主机一致,但用户或用户FTP过程要保证指定的端口处在“监听”下。
数据传输功能:
文件只能通过数据连接传输。控制连接用来发送操作命令以及相应的命令响应。
4.1 数据类型:
1) ASCII 类型:
缺省类型,必须被所有FTP实现支持。主要用来传输文本文件,除非主机双方认为EBCDIC类型方便。
2) EBCDIC 类型:
这种类型用来在使用EBCDIC编码的主机间高效的传输。
3) 图像类项:
数据以8位连续字节传输。接收端必须讲数据储存为连续位。
目的:为了高效的存储和检索文件,以及传输二进制文件。
4)本地类型:
数据以参数Byte size指定的逻辑字节长度传输。字节长度必须是十进制整数,并且没有缺省值。
5)格式控制:
ASCII和EBCDIC 类型也支持第二个可选的参数。这代表了一种纵向的文件格式控制。
6)非打印
一般被用在处理或存储。
7)TELNET格式控制:
8)CARRIAGECONTROL
数据结构:
由于表示文件类型不同,FTP允许文件具有指定的结构.具有三种结构:
1)文件结构:
如果没有使用结构命令,我呢就爱你结构就默认使用。
在文件结构中没有内部结构,文件被当作连续的字节流。
2)记录结构:
在记录结构中,问价由连续的记录组成。
3)页结构:
为了传输不连续的文件,FTP定义了页结构。
建立数据连接:
传输数据的过程包括在指定端口建立数据连接选择传输参数。用户和服务器DTP 都有缺省的端口号。
用户过程缺省的数据端口与控制连接端口相同(也就是,端口U)。服务器过程的默认端口与控制连接的端口相邻(也就是L-1)。
传输字节长度是8 位字节长。这个字节长度只与实际传输数据有关;而与主机文件系统
的数据表示无关。
被动数据传输过程(可能是用户DTP 或另一服务器DTP)应该在发送FTP 请求命令之前“监听”在数据端口。
FTP 请求命令决定了数据传输方向。服务器在接到传输请求后将建立到指定端口的连接。当连接建立后,
数据将在两端DTP 间传输,同时服务器PI 向用户PI 发送确认回复。
每个FTP 实现必须支持使用缺省的数据端口,只有用户PI 可以使用变化的非缺省端口。
用户可能会用PORT 命令指定一个其他的数据端口。用户可能想将文件下载到TAC 行
式打印机或者从第三方主机下载。后种情况下,用户PI 同时建立到两服务器PI 的控制连接。
一个服务器(用FTP 命令)等待连接,另一个服务器建立连接。用户PI 给一个服务器PI发送PORT 命令指示另一服务器的数据端口。
最后,向两端发送合适的传输命令。
传输模式:
1)流模式:
数据以字节流传输。对表示类型没有限制;
2)快模式
文件以连续的带有数据头的数据块来传输。数据头包括一个计数域和描述码。计数域指示了数据块整个长度,由此可以计算出下一个
数据块的开始位置。描述码定义了文件最后一块,记录最后块,重开始标记或怀疑数据。
3)压缩模式
此模式下,有三种信息要发送:常规数据,以字节串发送;压缩数据,包括复本或填充;控制信息,以两字节的转移字符传送。
文件传送功能:
从用户PI 到服务器PI 的传输通道是通过一个从用户到标准服务器端口的TCP 连接建
立的。用户PI 负责发送FTP 命令并解析接收到的响应;服务器PI 解析命令,发送响应以
及控制DTP 建立数据连接并传送数据。如果数据传输(被动传输过程)的另一端是用户DTP,
则用户DTP 由用户FTP 主机的内部协议控制;如果另一端是另一个服务器DTP,则这个服
务器DTP 由用户PI 通过发送命令来控制。
FTP 命令:
1)访问控制命令:
用户名:USER
密码: PASS
账户: ACCT
改变工作目录: CWD
返回上层目录: CDUP
结构装备: SMNT
重新初始化: REIN
注销: QUIT
2)传输参数命令:
数据端口:PORT
被动: PASV
表示类型:TYPE
文件结构:STRU
F- 文件
R- 记录结构
P-页结构
传输模式:MODE
S-流
B-块
C-压缩
3)FTP服务命令:
获得:RETR
保存:STOR
唯一保存:STOU
追加:APPE
分配:ALLO
重新开始:REST
重命名开始:RNFR
重命名为:RNTO
放弃:ABOR
删除:DELE
删除目录:RMD
新建目录:MKD
打印工作目录:PWD
列表:LIST
名字列表:NLST
站点参数:SITE
系统:SYST
状态:STAT
帮助:HELP
空操作:NOOP
FTP响应:
FTP 响应由3 位数字组成(以3 个数字字符传递)后面跟着一些文本。3 位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。
第一位数字标识了响应是好,坏或者未完成。
1)响应的第一位数字可能有以下五个值:
1yz,预备状态
2yz,完成状态
3yz,中间状态
4yz,暂时拒绝状态
5yz,永久拒绝状态
2)下面为第二位数字的功能:
x0z 语法- 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。
x1z 信息- 对于请求信息的响应,比如对状态或帮助的请求。
x2z 连接- 关于控制连接和数据连接的响应。
x3z 身份验证和帐户- 对登陆过程和帐户处理的响应。
x4z 目前还未使用。
x5z 文件系统- 请求传输时服务器文件系统的状态或其他文件系统动作状态。
3)第三位数字为第二位数字指定的状态提供了更详细的意义。
最小实现:
为了让FTP 能够不出错误的工作,服务器必需具备以下最小实现:
类型- ASCII 非打印
模式- 流模式
结构- 文件结构,记录结构
命令- USER, QUIT, PORT,TYPE, MODE, STRU,相应的默认值,RETR, STOR,NOOP.
传输参数的默认值为:
类型- ASCII 非打印
模式- 流模式
结构- 文件结构
所有主机必需接受上面这些标准的默认值。

FTP传输协议的应用详解的更多相关文章

  1. 【转载】 IP实时传输协议RTP/RTCP详解

    http://www.chinaitlab.com/cisco/RIP/832426.html 1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详 ...

  2. IP实时传输协议RTP/RTCP详解

    1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...

  3. HTTP协议Keep-Alive模式详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp22 HTTP协议Keep-Alive模式详解 1.什么是Keep-Aliv ...

  4. http协议之报文详解

    一. 概述 用于HTTP协议交互的信息被称为HTTP报文.请求端(客户端)的http报文叫做请求报文,响应端的叫做响应报文. 报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块.报文包含了 ...

  5. HTTP协议头域详解

    HTTP协议头域详解 Requests部分 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编 ...

  6. HTTP协议状态码详解(HTTP Status Code)(转)

    原文链接:HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成 ...

  7. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  8. TCP/IP协议簇分层详解---转

    http://blog.csdn.net/hankscpp/article/details/8611229 一. TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(O ...

  9. USB协议枚举过程详解

    一 枚举过程之文字描述 ?主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察.(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻.当用US ...

随机推荐

  1. 处理数据库 Ora-00845: memory_traget not supported on this system 的错误

    问题出现情况:在数据库启动的时候:如果出现如下图的错误: 查看官方文档: 处理操作步骤: [oracle@localhost orcl]$ su - root Password: [root@loca ...

  2. Confluence 6 安装 Oracle

    如果你还没有在安装可以连接的 Oracle 数据库,请先下载后进行安装.请参考 Oracle 文档 来获取有关安装的指南. 当你设置你的 Oracle 服务器的时候: 字符集 必须使用 AL32UTF ...

  3. 使用应用链接来连接 Jira 和 Confluence 6

    请参考 Linking to Another Application 页面中的内容来设置如何让 Confluence 连接到你的 Jira 应用,这个过程只需要一次就可以了. 如果你计划使用 Jira ...

  4. Confluence 6 导入模板的定义

    模板是一个预先定义的页面,这个预先定义的页面可以在创建新页面的时候预先载入.模板能够给一个页面统一的样式或格式. 你可以在 Confluence 中创建你自己的模板,请查看页面 Create a Te ...

  5. dubbo源码之服务发布与注册

    服务端发布流程: dubbo 是基于 spring 配置来实现服务的发布的,对于dubbo 配置文件中看到的<dubbo:service>等标签都是服务发布的重要配置 ,对于这些提供可配置 ...

  6. 第五周学习总结-HTML5

    2018年8月12日 暑假第五周,我把HTML剩余的一些标签和用法看完了并学了一些HTML5的标签及用法. HTML5比HTML多了一些元素,也删去了一些元素. HTML5新增元素 图形元素 < ...

  7. Allegro PCB Design GXL (legacy) 由零散的对象构成一个Shape

    Allegro PCB Design GXL (legacy) version 16.6-2015 从DXF文件中导入板框之后,发现板框是由Line Segment.Arc Segment等对象组成, ...

  8. WIN7 启动屏幕键盘

    点击“开始”或按快捷键“WIN”,输入“osk”后,按“回车键”确定,就可以启动屏幕键盘. 屏幕键盘 另一种方法是进入“控制面板”: 再进入“轻松访问中心”: 选择“启动屏幕键盘”,这样也可以启动屏幕 ...

  9. jquery checkbox勾选/取消勾选只能操作一次的诡异问题

    第一次执行,没问题,但第二次执行就有问题了,选择不了 解决办法:把attr()换成prop() $("#CheckedAll").click(function () { if ($ ...

  10. 优先选择nullptr而不是0和NULL

    我们知道:0是一个int,而不是一个指针.如果C++在一个只有指针才能够使用的上下文中发现它只有一个0,那么它会勉强将0解释成空指针,但那时一种倒退行为.C++的主要方针是0就是一个int,而不是指针 ...