网络笔记 FTP

来源:互联网 发布:存心自有天知 编辑:程序博客网 时间:2024/03/29 09:40

文件传送协议:FTP

概述:

FTP使用TCP作为运输层,允许两个设备监理一个能可靠运输数据的连接,使用的是一个知名端口。TCP连接建立之后,出于安全的原因,必须对客户进行验证,次后,一个FTP会话在这个已经建立的连接上启动,就是FTP控制连接。该连接用于传送命令,客服发送FTP命令,服务器用成功或失败报文应答。一旦命令对数据传送的配置成功,并且已经发出一个发送或接受命令,数据传送机开始。
然后建立一个新的TCP连接就是FTP连接,用于运输文件数据。
数据传送结束后,FTP数据连接被关闭,而FTP控制任然保持打开,继续FTP会话。当收到关闭指示后,FTP连接才关闭。
所以是建立两个连接,一个控制连接,一个数据连接。

FTP是非常灵活的,这是因为FTP数据连接的发起者可以是客户也可以是服务器。客户可以只是服务器向一个特定IP地址和端口号发起FTP数据连接。所以任何设备也可以建立。

FTP模型

因为是CS模型,所以标准定义了两个软件进程:用户FTP和服务器FTP。

FTP控制连接:在FTP会话建立时被创建,客户发送控制命令给服务器,服务器用其发送应答给客户。在整个会话期间保持打开。

FTP数据连接:在文件开始传送的时候被创建,传送结束关闭

每种连接由不同的进程处理:协议解释器(PI用于发送和接收命令的FTP控制连接,而数据传送进程DTP则负责设备间数据传送)。第三个组件,称为用户剪口,只存在于客户设备中,用于与用户交互。

PI:负责管理服务器上的FTP控制通道,帧听知名端口21,看是否有客户连接请求。连接建立后,它(客户)接受来自用户PI的命令,并回送命令应答。该模块还管理服务器的数据传送进程

DTP:负责数据收发,或者为FTP数据通道建立TCP连接,或者帧听一个固定端口,看是否有来自客户的连接请求。直接与服务器本地文件相接,以便读写。
用户接口:用比较简单的“”用户命令”(界面点击)等界面组件。

FTP控制连接

用户通过通信通道配置和管理数据传送,服务器通过这个通信通道应答命令,使用户知道是否成功。FTP控制连接是由一个TCP请求连接启动,然后帧听为21端口,3次握手就建立,然后FTP服务器开始用户登录过程。
用户登录:对用户身份验证,是以用户名/密码登录。而且还可以设置用户对西泉的权限不同。
匿名FTP:方便人访问资源,为每个人建立一个匿名账号,服务器请求用户发送其email笛子作为密码,以便知道是谁在防问它。


FTP数据连接:

当一个数据传送建立时候,数据使用一个单独的通道传送,该通道就是FTP数据连接。是基于客服和服务两端的DTP模块建立的。有两种建立方式:1.服务器向客户发起的TCP连接(主动),2.服务器帧听端口等客户端发起连接(被动)较为安全。

主动连接:是默认方式,使用的端口是20,而用户使用控制连接所用的一个临时端口(默认)。如果数据和控制都使用同一端口会使操作变得复杂,因此强烈建议用户为其数据连接选择不同端口(更改临时端口),用户发送一个PORT命令指令要使用的数据端口和IP地址。控制使用21,数据使用20
被动连接:意味着服务器只帧听固定端口。客服发起连接,客户发送一个PASV命令给服务器.因为数据通道是在每次需要传送时创建和终止的,所以服务器每次执行传送时要选择不同的端口号,所以被动连接就不用20作为数据传送了。客户端的控制与数据临时端口也最好选择不同。
一般都是客户发起连接,因为客户有防火墙。

FTP传送方式:

流方式:默认方式,该方式作为一个连续的字节流发送没有定义数据结构。因为没有数据传送结束的首部报文所以为了知道什么时候结束要几时关闭连接。
块方式:没个块有一个3字节的首部,描述1+长度2描述包括:错误、重新开始、结束等。
压缩方式:该方式也是块但是使用一种压缩技术来检查数据中的重复模式,重复次数1+重复的数据2

FTP数据表示:

FTP使用Telnet所使用的NVT-ASCII数据表示法。不同系统中会发生改变。因此为了使FTP能解释所传送的没中类型的文件,只有在需要时才进行转换。
FTP规定了4种类型:1.ASCII文本文件CR+LF为行结束符2.EBCDIC 文本使用EBCDIC作为字符集3.图像数据是连续的比特,8位打包传送,文件中是非结构化数据,发送时不做转换。4.本地数据按逻辑字节传送。
FTP格式控制:对于传送的文本文件的不用用途,在数据中定义了一个格式控制的选项参数。1.非打印 2.Telnet格式包含ASCII和EBCDIC纵向格式字符3.回车控制包含ASA纵向格式字符
FTP数据结构:
文件结构:文件是连续的数据字节序列,没有内部结构。
记录结构:文件由一组顺序记录组成,记录之间用记录结束符分界。
页结构:文件由一些独立的被编址的页组成


FTP内部命令和应答:(控制)

访问控制命令:用户登录和访问资源的命令组
传送参数命令:指定数据连接类型和如何进行数据传送(数据类型、文件结构、传送方式)
FTP服务命令:用于执行文件传送操作以及支持重新命名文件、创建目录等功能。
服务器应答由3位十进制代码和一个可变长度的应答文本组成。
(具体什么命令查表)
FTP用户命令:方便FTP用户的操作采用“自然”命令的形式,而不是用户PI模块使用的4字符内部命令。


FTP最小实现:

类型:ASCII非打印
模式:流
结构:文件、记录
命令:USER,QUIT,POR,TYPE,MODE,STRU,RETR,STOP,NOOP
运输参数默认:
类型:ASCII非打印
模式:流
结构:文件


0 0
原创粉丝点击