文档库 最新最全的文档下载
当前位置:文档库 › FTP协议规范

FTP协议规范

文件传输协议(File Transfer Protocol, FTP)

1. 介绍

FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。

2. 概览

在本节中我们将讨论一些表面上的问题,有些名词的定义请参阅TCP和Telnet参考文献。我们先介绍一下

(1)字节大小,在FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。

(2)控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间。

(4)DTP:数据传输过程(DTP)建立和管理数据连接,DTP可以是主动的也可以是被动的。(5)EOR代表记录尾。

(6)NTV代表网络虚拟终端,它的定义与在Telnet协议中的定义一致。

(7)NVFS代表网络虚拟文件系统。

(8)FTP可以传输非连续的文件,这些文件的一部分称为页。

(9)PI代表协议解释器。

(10)服务器DTP代表一种传输过程,它通常处于“主动” 状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI的指令传输数据。当然,DTP也可以转入“被动”状态。

(11)服务器FTP 进程,它是和用户FTP进程一起工作的,它由PI和DTP组成。至于用户FTP进程则是由PI,DTP和用户接口组成的。下图是FTP服务示意图:

注意:数据连接是双向的,它不用整个时间都存在。上图中用户PI开始控制连接,控制连接与Telnet协议很象。在开始阶段,标准FTP命令由用户PI产生并通过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指定的数据端口上侦听。这个数据连接是全双工的。

在另外一种情况下,用户或许希望在两个主机间传送文件,不是两个本地主机。用户在两台主机间建立控制连接,然后规划数据连接。用这种方式,控制信息由用户PI获得,但是数据在服务器DTP之间传送。下面就是一个例子:

协议要求数据传输在处理时打开控制连接。在完成FTP服务后由用户中止控制连接,而服务器具体操作。如果在未接收命令时关闭了控制连接,服务器也会关闭数据传输。FTP和Telnet很有联系,FTP使用Telnet协议进行控制连接,可有两种方法达到目的:用户PI或服务器PI可以在自己的过程中实现 Telnet协议的功能;第二种方法是利用系统中现有的Telnet模块。实现上,FTP对Telnet协议的依赖也不多,即使重新实现,代码量也不大。

3. 数据传输功能

数据连接只传输数据,控制连接传送命令和响应。几个命令是关于在主机间传输数据的,数据传输基本上独立于物理结构的,但是如果在压缩传输模式下流式传输与文件结构有关,文件的属性与表示类型有关。

3.1. 数据表示与保存

数据是在主机间的存储设置间传送的。因为两个系统的数据存储方式不同,因此需要对它进行转换,在传送文本时会有对ASCII表示的问题,在进行二进制传送的时候,会有不同系统

对字节长度规定不同的问题,有的系统是7位,有的系统可能是32位,这也需要进行转换。需要提供数据表示与传输模型函数,但是FTP提供这方面的功能不多,超过FTP提供功能的那一部分要用户自己实现。

3.1.1. 数据类型

数据表示是由用户指定的表示类型,它可以是隐含的,也可以是用户指定的。请一定注意:逻辑字节长度与物理字节长度是不同的。

3.1.1.1. ASCII类型

这是所有FTP必须实现的默认类型,用于传送文本文件,当在主机间使用EBCDIC传送时更方便,则不使用ASCII类型。发送方将内部表示转换为NVT- ASCII格式,接收方则进行相反的过程接收数据。根据NVT标准,要在行结束处使用序列。NVT-ASCII是8位的。ASCII和EBCDIC的格式参数在下面讨论。

3.1.1.2. EBCDIC类型

它是作为ASCII的另一种方法在主机间传送数据的数据类型。EBCDIC和ASCII很象,仅在类型的功能描述上有一些差别。行结束符使用很少。

3.1.1.3. 图象类型

在此类型下传送的数据被看作连续的位,发送方将数据打包到8位传输字节中传送。因为结构的需要要对传送数据进行填充,填充字节全部为0,填充必须在文件结构时使用,而且要标记出以便接收方过滤掉。它用于传送二进制数据和有效地传送和存储文件,因此所有FTP 也必须实现。

3.1.1.

4. 本地类型

也可以以十进制指定逻辑字节大小。如果物理字节大小和逻辑字节大小不同,直接将物理数据打包为逻辑字节,不用什么填充。接收方根据逻辑字节大小进行和本机的存储特点进行转换。传输必须是可重复的,也就是说,相同的文件相同的参数,那内容必须是一样的。

3.1.1.5. 格式控制

ASCII 和EBCDIC有一个可选参数,它说明文件垂直格式控制,下面的数据表示类型在FTP 中有定义。字符文件可能有三种用途,打印,存储或留待以后处理。如果是用于打印,那主机必须知道垂直格式控制的表示,如果存储或等以后处理,也需要保留文件格式。如果在远程主机上处理完后传输回本地主机,要保证远程主机处理时没有麻烦。这都需要在ASCII和EBCDIC格式上加入新的参数。

3.1.1.5.1. NON PRINT

未指定第二个参数是它是默认值。它必须为所有FTP接受。如果传输的文件是用于打印的,则使用边界和间隔的默认值。通常它不用于打印目的,而用于保存文件或执行文件。

3.1.1.5.2. TELNET格式控制

文件包括ASCII/EBCDIC垂直格式控制,这些控制字符可以使打印正常进行。

3.1.1.5.3. CARRIAGE CONTROL (ASA)

文件包含ASA (FORTRAN)垂直格式控制字符。在以ASA标准形成的行中,第一个字符不打印,它用于决定打印前的走纸量。下面是定义了的ASA字符:

blank:向下移动1行;0:向下移动2行;1:移动至下一页;+:不移动

打印机必须能够决定结构体的结束。如果文件本身有记录结构就没有问题,如果没有,

用于区别打印行,但这些格式标记已经由ASA控制字符使用了。

3.1.2. 数据结构

除了有不同的数据类型外,FTP还允许有不同的文件结构,下面是三种文件结构:文件式结构:文件中没有内部结构,文件被看作是二进制流;记录结构:文件是由一系列记录组成的;页结构:文件是由不同的索引页组成的。

如果未使用STRU命令,文件结构是默认值。文件的结构会影响传输模型,存储和数据表示。文件本来的属性和保存它的主机有关,不同的机器会以自己的方式保存文件。在不同主

机间传送文件时必须使主机能够识别相互的表示。有些主机上的文件是面向字节的,有些是面向记录的,在传送时就会出现问题。那就要在接收方进行内部转换。在进行转换的时候,需要区别记录的边界,在ASCII中使用,在EBCDIC中使用作为分隔符。采用这种实现方法的必须保证转换是可逆的。

3.1.2.1. 文件结构

如果未使用STRU命令,文件结构是默认值。文件结构中没有默认值,文件被看作是连续的字节串。

3.1.2.2. 记录结构

对于文本文件,记录结构必须是所有FTP实现必须有的。记录结构文件是由连续的记录构成的。

3.1.2.3. 页结构

文件是非连续时使用页结构。这种文件称为随机访问文件。这些文件中有时会的和文件整体或部分相关的信息出现。在FTP中,文件的一个部分称为页。为了提供不同的页大小和相关信息,每页都带页头发送。页头中有如下域:

头长度

包括此字节的页头长度,单位为字节,最小长度为4

页索引

指出此部分在原文件中的位置,它和传输编号不是一回事

数据长度

页数据中的逻辑字节数,最小值为0

页类型

页的类型有以下几种:0=未页,指示传输结构,包头必须为4,数据长度必须为0;1=通常页,没有控制信息的通常页文件的普通类型;2=描述子页,用于传送整体文件的描述信息;3=访问控制页,包括页级访问控制信息的页文件头域,包头长度必须为5

可选域

提供每页的控制信息

所有域均以1个逻辑字节长度为大小,逻辑字节长度由TYPE命令指定。如果读取版本与和开始版本号一致,文件访问时必须以相同的参数进行。如果参数相同,FTP实现要保证取得的文件内容是相同的。

3.2. 建立数据连接

传送数据机制包括建立连接选择数据参数。用户和服务器DTP有默认数据端口。用户进程默认数据端口和控制连接端口相同。服务器进程默认数据端口和控制连接端口相邻。传输字节大小是8位字节。此字节是实际传输字节,但不代表主机内的数据表示。被动数据传输进程在数据端口接收数据,FTP请求命令决定数据传输的方向。服务器在接收到请求以后,将初始化端口的数据连接。当连接建立后,传输在DTP之间传送,服务器PI对用户PI返回应答。FTP实现运行一个默认数据端口,用户PI才能改变默认端口。

通过PORT命令可能改变端口,用户可能希望数据在第三方主机上进行其它操作,用户PI需要在两个服务器PI 上建立连接。一个服务器被告知侦听另一服务器的请求。用户PI通过PORT命令通知另一服务器的数据端口。最后双方发送相应的传送命令。通常,服务器负责支持数据连接,初始化并关闭它,除非用户DTP在传输模式下要求关闭连接。服务器在下面情况下关闭数据连接:

1. 服务器结束发送数据,通过EOF要求中止传送;

2. 用户发送ABORT命令;

3. 用户改变端口;

4. 控制连接关闭;

5. 发生不可恢复错误。

3.3. 数据连接管理

默认数据连接端口:所有FTP必须支持默认数据连接,只有用户PI能够初始化非默认端口的使用。

确定非默认数据端口:用户PI可以使用PORT命令指定非默认端口,它要求服务器方以PASV确定非默认数据端口。连接是由双方地址确定的,因此改变一方地址就改变了连接。数据连接的重用:在使用流式数据传输模型时,文件结束通过关闭连接指示。如果要传送多个文件时就会出麻烦,解决的方法有两个,一个是确定非默认端口,另一个是使用另一种传输模式。就传输模式而言,流传输模式是不安全的,因此无法确定连接是暂时还是永久关闭。其它传输模式不通过关闭连接表示文件结构,它们可以通过FTP命令决定传送结构。因此使用这些传输模式可以在保持连接的情况下传送多个文件。

3.4. 传输模式

有三种传输模式:一种将数据格式化并考虑重新开始过程;一种压缩数据;一种是不经过处理(少量处理)传送。所有数据传输必须以一个EOF结束,它可以显式给出,也可以通过关闭连接隐式给出。对于记录文件,所有EOR是显式的,包括最后一个记录。对于以页结构传送的文件,使用“最后一页”表示结束。从这里开始,下文中我们提到的字节指的是“传输字节”。

为了进行标准化传送,传送主机必须把行结束或记录结束的内部表示转化为传输模式和文件结构指定的形式传送,接收方则进行相反的工作。IBM大型机的记录计数域可能不能为其它主机识别,所以记录结束标记在流模式下以双字节控制码传送,在块或压缩模式下以标记位传送。而ASCII或 EBCDIC的行结束则则指示。这样的转换需要时间,所以相同的系统在传送文本文件时采用二进制或流表示比较合适。下面是FTP定义的传输模式:3.4.1. 流模式

数据以字节流的形式传送。使用的表示类型没有限制,允许记录结构。在记录结构文件EOR 和EOF表示为双字节控制码。第一字节全为0,后一字节为转义字符。当第二位值为1时表示EOR,为2时表示EOF,如果要同时表示EOR和 EOF,值为3。全1字节作为数据发送时必须使用双字节传送,其中数据保存在第二个字节内。如果是文件结构,通过发送方关闭连接表示EOF,接收到的所有数据就是文件内容。

3.4.2. 块模式

文件以块形式传送,块带有自己的头部分。头字节包括计数域和描述子代码。计数域说明了数据块的字节数,描述子代码定义了以下内容:EOF,EOR重新开始标记或怀疑错误数据。怀疑错误数据不是为了进行差错控制,它是为了站点间交换特定数据,传送时不管本地错误(如硬盘错误)而只管传送,但是传送时可要指出,这个数据可能有错。在此模式下可以使用记录结构,也可以使用相应的数据表示。头字节的结构如下图所示:

描述子 8位

字节计数 16位

描述子代码由在描述子字节中的位标记说明,下面是已经指定的四种代码及其意义:

代码

意义

128

数据块结束是EOR

64

数据块结束是EOF

32

数据块内有怀疑错误

16

数据块是重新开始标记

以这种编码,对于特定块可能存在多个描述子编码条件,所需要的位必须全部设置。重新开始标记包括在数据流中,它作为8位整数代表在控制连接上使用语言的可打印字节,但不得出现在其中。例如要传送6字节标记,下面就是例子:

Descrptr code = 16

Byte count = 6

Marker 8位

Marker 8位

Marker 8位

Marker 8位

Marker 8位

Marker 8位

3.4.3. 压缩模式

有三种信息需要传送:常规数据以字节串传送;压缩数据,包括复本和过滤器;控制信息,以两个转义字符传送。如果有N(>0但小于127)个常规数据传送,在数据前一位加上一个字节,这个字节最高位为0,其它位表示的数值等于N。如下图:

若要压缩一个数据位D的N复本字符串,用两个字节传送,如下图,它表示的是压缩的字节:

一串N过虑器字节可以压缩为一个字节,而过滤器字节根据表示法不同而不同。如果类型是ASCII或EBCDIC,过滤器字节是,如果是图象或本地类型,则是0。下面就是过滤器字节:

转义序列是双字节,头一个全0,后一个内是定义于块模式下的描述子代码。描述子代码与块模式中的意义相同,它作用于其后串中的字节。而压缩模式对于增加带宽有好处(因为数据是压缩过的)。

3.5. 差错恢复和重新开始

位丢失和数据错误是这一层的差错控制由TCP负责。而重新开始则是给用户一个处理系统(包括操作系统,网络等)失败的方法。重新开始过程仅适用于块和压缩模式,它要求发送者在数据流中加入特定标记,标记仅对传送者有意义,但其中的内容是控制连接使用的语言。标记可以代表一个位记数,记录记数或可以标记数据数目的任何点。如果接收方也支持重新开始,将会在接收系统中保存这一标记。在系统失败重新启动后,用户可以根据原来的标记重新开始数据传送,也就是我们通常熟悉的断点续传过程。接收方接收到一段数据,然后记下一点,如果发送方失败了,就从这一点以后再传送相应的数据。具体的这里不多说了。

4. 文件传输功能

从用户PI到服务器的信道是建立在用户到标记服务器端口间的。用户协议解释器负责发送命令和解释接收的应答;服务器PI解释命令,发送应答,指导DTP建立数据连接并传送数据。如果数据传输的第二方是用户DTP,通过用户FTP主机的内部协议对它进行控制;如果第二方是服务器DTP,它由用户PI发来的命令经过自己的PI控制。

4.1. FTP命令

4.1.1. 访问控制命令

下列命令指定访问控制标记(命令码在括号内):

用户名(USER)

参数是标记用户的Telnet串。用户标记是访问服务器必须的,此命令通常是控制连接后第一个发出的命令,有些主机还会要求口令和帐户。服务器可以在任何时间接收新的USER命令以改变访问控制和(或)帐户信息。这可以重新开始登录过程,所以传输参数不变,在进行中的文件传输在过去的访问控制参数下完成。

口令(PASS)

参数是标记用户口令的Telnet串。此命令紧跟USER命令,在某些站点它是完成访问控制不可缺少的一步。因此口令是个重要的东西,因此不能显示出来,服务器方没有办法隐藏口令,所以这一任务得由用户FTP进程完成。

ACCOUNT (ACCT)

参数是标记用户帐户的Telnet串。此命令不需要与USER相关,一些站点可能需要帐户用于登录,另一些可以限制帐户的权限,在后一种情况下,此命令可在任何时候发送。应答的不同可以区别不同的情况:当登录需要帐户信息时,对PASS命令的响应是332。另外,如果不需要帐户信息,对PASS的响应是 230,如果需要帐户信息在以后需要,服务器会返回332或532,这要看它是保存此命令还是拒绝此命令了。

改变工作目录(CWD)

此命令使用户可以在不同的目录或数据集下工作而不用改变它的登录或帐户信息。传输参数也不变。参数一般是目录名或与系统相关的文件集合。

回到上一层目录(CDUP)

此命令要求系统实现目录树结构,它的响应和CWD的相同。

结构加载(SMNT)

此命令使用户在不改变登录或帐户信息的情况下加载另一个文件系统数据结构。传输参数也不变。参数是文件目录或与系统相关的文件集合。

重新初始化(REIN)

此命令终止USER,将所有I/O和帐户信息写入,但不许进行中的数据传输完成。重置所有参数,控制连接打开,可以再次开始USER命令。

退出登录(QUIT)

此命令终止USER,如果没有数据传输,服务器关闭控制连接;如果有数据传输,在得到传输响应后服务器关闭控制连接。如果用户进程正在向不同的USER传输数据,不希望对每个USER关闭然后再打开,可以使用REIN。对控制连接的意外关闭,可以导致服务器运行中止(ABOR)和退出登录(QUIT)。

4.1.2. 传输参数命令

所有数据传输参数有默认值。服务器必须记录下默认值,在FTP服务请求后,可以以任何顺序发送。下面命令传送参数:

数据端口(PORT)

参数是要使用的数据连接端口,通常情况下对此不需要命令响应。如果使用此命令时,要发送32位的IP地址和16位的TCP端口号。上面的信息以8位为一组,逗号间隔十进制传输,如下例:

PORT h1,h2,h3,h4,p1,p2

其中h1是IP地址的最高8位。

被动(PASV)

此命令要求服务器DTP在指定的数据端口侦听,进入被动接收请求的状态,参数是主机和端口地址。

表示类型(TYPE)

参数指定表示类型。有些类型需要第二个参数,第一个参数由单个Telnet字符定义,第二个参数是十进制整数指定字节大小,参数间以分隔。下面是格式:

默认表示类型是ASCII非打印字符,如果参数未改变,以后只改变了第一个参数,则使用默认值。

文件结构(STRU)

参数是一个Telnet字符代码指定文件结构。下面是代码及其意义:

F - 文件(非记录结构),它是默认值

R - 记录结构

P - 页结构

传输模式(MODE)

参数是一个Telnet字符代码指定传输模式。下面是代码及其意义:

S - 流(默认值)

B - 块

C - 压缩

4.1.3. FTP服务命令

FTP 服务命令定义用户请求的文件传输或文件系统功能。此命令的参数通常是路径名,其语法要和服务器的规范一致。推荐的默认值是最近指定的设备目录或目录。命令顺序通常没有限制,只有"rename from"命令后面必须是"rename to",重新启动命令后面必须是中断服务命令。服务命令的响应通常在数据连接上传输。下面是具体的命令:

获得文件(RETR)

此命令使服务器DTP传送指定路径内的文件复本到服务器或用户DTP。这边服务器上文件的状态和内容不受影响。

保存(STOR)

此命令使服务器DTP接收数据连接上传送过来的数据,并将数据保存在服务器的文件中。如果文件已存在,原文件将被覆盖。如果文件不存在,则新建文件。

唯一保存(STOU)

此命令和STOR差不多,此命令要求在此目录下的文件名是唯一的,对此命令的响应必须包括产生的用户名。

附加(APPE)

它和STOR的功能差不多,但是如果文件在指定路径内已存在,则把数据附加到原文件尾部,如果不存在则新建文件。

分配(ALLO)

此命令用于在一些主机上为新传送的文件分配足够的存储空间。参数是十进制的逻辑字节数。如果是记录或页结构,页或记录的最大大小也需要,这在第二个参数内以十进制指定。第二个参数是可选的,如果有它,它和第一个参数以Telnet字符 R 分隔。此命令在STOR或APPE命令后,对于不需要分配存储空间的机器,它的作用等于NOOP。

重新开始(REST)

参数域代表服务器要重新开始的那一点,此命令并不传送文件,而是略过指定点后的数据,此命令后应该跟其它要求文件传输的FTP命令。

重命名(RNFR)

这个命令和我们在其它操作系统中使用的一样,只不过后面要跟"rename to"指定新的文件名。

重命名为(RNTO)

此命令和上面的命令共同完成对文件的重命名。

放弃(ABOR)

此命令通知服务中止以前的FTP命令和与之相关的数据传送。如果先前的操作已经完成,则

没有动作,返回226。如果没有完成,返回426,然后再返回226。关闭控制连接,数据连接不关闭。

删除(DELE)

此命令删除指定路径下的文件。用户进程负责对删除的提示。

删除目录(RMD)

此命令删除目录。

创建目录(MKD)

此命令在指定路径下创建新目录。

打印工作目录(PWD)

在响应是返回当前工作目录。

列表(LIST)

服务器传送列表到被动DTP,如果路径指定一个目录或许多文件,返回指定路径下的文件列表。如果路径名指定一个文件,服务器返回文件的当前信息,参数为空表示用户当前的工作目录或默认目录。数据传输在ASCII或EBCDIC下进行,用户必须确认这一点。因为文件信息因系统不同而不同,所以不可能被程序自动利用,但是人类用户却很需要。

名字列表(NLST)

服务器传送目录表名到用户,路径名应指定目录或其它系统指定的文件群描述子;空参数指当前目录。服务器返回文件名数据流,以ASCII或EBCDIC形式传送,并以分隔。这里返回的信息有时可以供程序进行进一步处理。

站点参数(SITE)

服务器用来提供服务器系统信息,信息因系统不同而不同,格式在HELP SITE命令应答中给出。

系统(SYST)

用于确定服务器上运行的操作系统。

状态(STAT)

此命令返回控制连接状态,它可以在文件传送过程中发送,服务器返回操作进行的状态。也可以在文件传送之间发送,这时命令有参数,参数是路径名,此命令的功能除了数据在控制连接上传送以外和列表命令相似。如果指定部分路径,服务器以文件名或与说明相关的属性返回;如没有参数,服务器返回服务器FTP进程的状态信息,包括传输参数的当前值和连接状态。

帮助(HELP)

这条命令我们在平常系统中得到的帮助没有什么区别,响应类型是211或214。建议在使用USER命令前使用此命令。

等待(NOOP)

此命令不产生什么实际动作,它仅使服务器返回OK。

FTP 在控制连接上使用Telnet通信,因此有机会大家可以看看相关的协议说明。对下文的理解会很有好处。下面内容将对命令的应答和关于命令的详细信息作以说明。FTP命令可分为访问控制标记,数据传输参数或FTP服务请求,特定的命令(如ABOR,STAT)可以在数据传输过程中在控制连接上传输。有些服务器不能同时监视数据和控制链路,那就要另外采取措施了。请注意下面的几点建议:

1. 用户系统将Telnet的"Interrupt Process"(IP)信息插入Telnet流;

2. 用户系统发送Telnet的"Synch"信号;

3. 用户系统将命令(如ABOR)插入Telnet流;

4. 服务器PI在接收到IP后,在Telnet流中寻找仅有一个的FTP命令。

4.2. FTP应答

FTP 命令的响应是为了对数据传输请求和过程进行同步,也是为了让用户了解服务器的状

态。每个命令必须有最少一个响应,如果是多个,它们要易于区别。有些命令是有顺序性的,因此其中任何一个命令的失败会导致从头开始。FTP响应由三个数字构成,后面是一些文本。数字带有足够的信息命名用户PI不用检查文本就知道发生了什么。文本信息与服务器相关,用户可能得到不同的文本信息。文本和数字以间隔,文本后以Telnet行结束符结束。文本可能多于一行,这时文本必须在括号内,第一行内要有信息表示文本多于一行,最后一行也要有所标记。如果是多行,可以在数字代码后加上"-",最后一行以数字开始,后面是,再加上Telnet的行结束符就可以了。下面是一个例子:

123-第一行

第二行

234 以数字开始的一行

123 最后一行

三位数字每位都有一定的意义,第一位确定响应是好的,坏的还是不完全的,通过检查第一位,用户进程通常就能够知道大致要采取什么行动了。如果用户程序希望了解出了什么问题,可以检查第二位,第三位留表示其它信息。第一位有五个值:

1yz 确定预备应答

请求的操作正在被初始化;在进入下一个命令前等待另外的应答。这类响应用于说明命令被接受,在实现中如何同步监视有困难,用户进程现在可以关注数据连接了。服务器FTP进程对第个命令几乎都返回1yz响应。

2yz 确定完成应答

要求的操作已经完成,可以执行新命令。

3yz 确定中间应答

命令已接受,但要求的操作被停止,停止接收更新的信息。

4yz 暂时拒绝完成应答

未接受命令,要求的操作未执行,但错误是临时的,过一会儿可以再次发送消息。用户应该返回命令序列的开始。这个暂时可是不好确定,此命令的意思就是让用户进程再次尝试使用此命令。

5yz 永远拒绝完成应答

它与暂时拒绝完成应答的区别就在于错误条件是一时半会不会消失。

下面我们来看看第二位所代表的意义:

x0z 格式错误;

x1z 此类应答是为了请求信息的;

x2z 此类应答是关于控制和数据连接的;

x3z 关于认证和帐户登录过程;

x4z 未使用;

x5z 此类应答是关于文件系统的;

第三个数字是在第二个数字的基础上对应答内容的进一步细化。一般来说,数字代码后要有文本信息。实现时应该尽量使用现有的代码,而不要随便添加新的意义不大的代码。

有些命令如TYPE或ALLO,它们的成功不为用户进程提供任务新信息,所以不会有200应答返回。如果有些命令对于服务器来说不支持,也要返回确定完成应答,这样用户进程才有可能进行下面的命令。如果要求的不是可选实现的命令,而这个命令确实没有实现,那就要返回代码502。下面我们根据数字顺序列出各个应答码及其意义:

110

重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy 是用户进程数据流标记,mmmm是服务器标记。

120

服务在nnn分钟内准备好

数据连接已打开,准备传送

150

文件状态良好,打开数据连接

200

命令成功

202

命令未实现

211

系统状态或系统帮助响应

212

目录状态

213

文件状态

214

帮助信息,信息仅对人类用户有用215

名字系统类型

220

对新用户服务准备好

221

服务关闭控制连接,可以退出登录225

数据连接打开,无传输正在进行

226

关闭数据连接,请求的文件操作成功227

进入被动模式

230

用户登录

250

请求的文件操作完成

257

创建"PATHNAME"

331

用户名正确,需要口令

332

登录时需要帐户信息

350

请求的文件操作需要进一步命令

421

不能提供服务,关闭控制连接

425

不能打开数据连接

426

关闭连接,中止传输

请求的文件操作未执行

451

中止请求的操作:有本地错误

452

未执行请求的操作:系统存储空间不足

500

格式错误,命令不可识别

501

参数语法错误

502

命令未实现

503

命令顺序错误

504

此参数下的命令功能未实现

530

未登录

532

存储文件需要帐户信息

550

未执行请求的操作

551

请求操作中止:页类型未知

552

请求的文件操作中止,存储分配溢出

553

未执行请求的操作:文件名不合法

5. 说明

5.1. 最小实现

下面是FTP服务器的最小实现:

类型 - ASCII Non-print

模式 - Stream

结构 - File, Record

命令 - USER, QUIT, PORT,TYPE, MODE, STRU,RETR, STOR,NOOP.

传输的默认参数为:

类型 - ASCII Non-print

模式 - Stream

结构 - File

所有主机都将上面的值作为默认值。

5.2. 连接

服务器协议解释器会在端口L侦听,用户或用户协议解释器初始化全双工控制连接,服务器和用户进程应该遵守Telnet协议的说明进行。服务器不提供对命令行的编辑功能,应该由用户负责这一切。在全部传送和应答结束后,在用户的请求下服务器关闭控制连接。用户DTP必须在指定的数据端口上侦听,它可以是默认端口U或由PORT命令指定的端口。服务器的默认数据端口为L-1。传输方向和端口均可由FTP命令决定。只有用户PI可以改变默

认端口。当数据在服务器A 和B之间传送时,用户PI,C,在两个服务器PI之间建立控制连接。其中一个服务器A,在接收到传输服务命令时接收PASV命令初始化连接,用户PI接收到PASV命令的确认时(确认内包括主机标识和端口),将端口以PORT命令发送到B。在接收到确认后,用户PI可以发送相应的命令给A和B了,B初始连接和传输进程,命令应答序列如下面所示,请根据位置注意时差:

在任何时间,服务器和用户只要有一方关闭连接,另一方就要赶快读取缓冲中的数据,然后也关闭本方的连接。

5.3. 命令

本节主要讨论命令格式。命令对大小写不敏感。命令通常由命令码和相应的参数组成。中间由一个或几个空格分开。参数域由结束,服务器在未接收到行结束符时不会采取任何动作。下面描述的格式是以NVT-ASCII以准的,方括号代表可选的参数域,如果未选择可选的参数域则采用默认值。

5.3.1. FTP命令

下面是FTP命令,其中username代表用户名,password代表口令,pathname代表路径名,host-port代表主机端口,account-information代表帐户信息,typecode代表类型代码,decimal-integer代表十进制整数,marker 代表标记,string代表字符串:

USER

PASS

ACCT

CWD

CDUP

SMNT

QUIT

REIN

PORT

PASV

TYPE

STRU

MODE

RETR

STOR

STOU

APPE

ALLO

[ R ]

REST

RNFR

RNTO

ABOR

DELE

RMD

MKD

PWD

LIST [ ]

NLST [ ]

SITE

SYST

STAT [ ]

HELP [ ]

NOOP

5.3.2. FTP命令参数

下面是用BNF范式表示的参数格式:

::=

::=

::=

::= |

::= 除外的所有ASCII字符

::=

::= |

::= 可打印ASCII字符,从33到126

::=

::= ,

::= ,,,

::= ,

::= 从1到255的十进制整数

::= N | T | C

::= A [ ]| E [ ]| I| L

::= F | R | P

::= S | B | C

::=

::= 任何十进制整数

5.4. 命令和响应序列

服务器和用户之间的通信是对话的过程,用户发送FTP命令,然后等待服务器的一个(或多个)响应,根据响应再发送新命令。

连接时的响应带有许多信息,通常情况下,服务器会返回220应答,等待输入,用户在接收到此响应后才发送新命令,如果服务器不能立即接收输入,会在220后面返回120。有些信息如服务器将在15分钟后停止工作是要服务器发向用户的,但是服务器却不能直接发向用户,处理的方法是将消息缓冲,在下一个响应中返回给用户。下面列出命令的应答,第一个是预备应答,第二个是确定完成,第三个是拒绝完成,最后是中间应答。这些应答是构成状态图的基础,状态图会在下节中给出:

建立连接

120

220

220

421

登录

USER

230

530

500, 501, 421

331, 332

PASS

230

202

530

500, 501, 503, 421

332

ACCT

230

202

530

500, 501, 503, 421

CWD

250

500, 501, 502, 421, 530, 550 CDUP

200

500, 501, 502, 421, 530, 550 SMNT

202, 250

500, 501, 502, 421, 530, 550 退出登录

REIN

120

220

220

421

500, 502

QUIT

221

500

传输参数

PORT

200

500, 501, 421, 530

PASV

227

500, 501, 502, 421, 530 MODE

200

500, 501, 504, 421, 530 TYPE

200

500, 501, 504, 421, 530 STRU

200

500, 501, 504, 421, 530

文件操作命令

ALLO

200

202

500, 501, 504, 421, 530 REST

500, 501, 502, 421, 530 350

STOR

125, 150

(110)

226, 250

425, 426, 451, 551, 552 532, 450, 452, 553 500, 501, 421, 530 STOU

125, 150

(110)

226, 250

425, 426, 451, 551, 552 532, 450, 452, 553 500, 501, 421, 530 RETR

125, 150

(110)

226, 250

425, 426, 451

450, 550

500, 501, 421, 530

LIST

125, 150

226, 250

425, 426, 451

450

500, 501, 502, 421, 530 NLST

125, 150

226, 250

425, 426, 451

450

500, 501, 502, 421, 530 APPE

125, 150

(110)

226, 250

425, 426, 451, 551, 552

532, 450, 550, 452, 553 500, 501, 502, 421, 530 RNFR

450, 550

500, 501, 502, 421, 530

350

RNTO

250

532, 553

500, 501, 502, 503, 421, 530 DELE

250

450, 550

500, 501, 502, 421, 530 RMD

250

500, 501, 502, 421, 530, 550 MKD

257

500, 501, 502, 421, 530, 550 PWD

257

500, 501, 502, 421, 550 ABOR

225, 226

500, 501, 502, 421

获得信息命令

SYST

215

500, 501, 502, 421

STAT

211, 212, 213

450

500, 501, 502, 421, 530 HELP

211, 214

500, 501, 502, 421

其它命令

SITE

200

202

500, 501, 530

NOOP

200

500 421

6. 状态图

下面是一个简单实现的FTP的状态图,只用到响应码的首位。对于所有命令或命令序列有三种可能性:成功(S),失败(F)或错误(E)。在状态图中B代表开始,W代表等待响应。下面我们给出一个总图,总图可以包括的命令有:

ABOR,ALLO,DELE,CWD,CDUP,SMNT,HELP,MODE,NOOP,PASV,QUIT,SITE,PORT,SYST,STAT,RMD,MKD,PWD,STRU和TYPE

而下图可以包括的命令有:APPE,LIST,NLST,REIN,RETR,STOR和STOU。

第一幅图和第二幅图差别不大,第一幅图中如果出现了100系列响应会是错误,而在第二幅图中不会。下面是重命名过程:

下面是重新启动命令,其中cmd代表APPE,STOR或RETR。

下图代表登录过程:

7. 典型FTP过程

假设位于U的用户希望从S上(下)传文件,通常用户需要使用用户FTP进程和服务器通信,下面就是一个例子:

用户发出的本地命令

解释

ftp (host) multics

连接到S的端口L,建立控制连接

<---- 220 Service ready .

用户名 Doe

need password.

USER Doe---->

<---- 331 用户名正确

口令

PASS 口令---->

<---- 230 User logged in.

retrieve (local type) ASCII

(local pathname) test 1

(for. pathname) test.pl1

User-FTP opens local file in ASCII.

RETR test.pl1 ---->

<---- 150 文件状态正常,将打开数据连接

服务器于端口U建立数据连接

文件传输中

<---- 226 关闭数据连接,文件传输正确

type Image

TYPE I ---->

<---- 200 Command OK

store (local type) image

(local pathname) file dump

(for.pathname) >udd>cn>fd

User-FTP opens local file in Image.

STOR >udd>cn>fd ---->

<---- 550 访问拒绝

中止

QUIT ---->

服务器关闭所有连接

FTP控制连接通过用户进程端口U和服务器端口L建立,这里默认的L=21。

ftp网络命令

件。可以交互使用。这里要注意,只有安装了tcp/ip协议的机器才能使用ftp命令。 命令格式: ftp [-v][-d][-i][-n][-g][-s: filename][-a][-w: -v不显示远程服务器响应 -n禁止第一次连接的时候自动登陆 -i在多个文件传输期间关闭交互提示 -d允许调试、显示客户机和服务器之间传递的全部ftp命令 -g不允许使用文件名通配符,文件名通配符的意思是说允许在本地文件以及路径名中使用通配字符 -s: filename指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。 -a绑定数据连接时,使用任何的本地端口 -w: windowsize忽略默认的4096传输缓冲区 呵呵,理解了上面的,就说说一些具体的命令,我个人觉得虽然现在工具用起来很方便了,但懂这些命令在很多地方还是很有用的,就像现在nt下的命令提示符1)? 说明:

显示ftp命令的说明。后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表。 2)append 说明: 使用当前文件类型设置,将本地文件附加到远程计算机中。大概格式是append local-file [remote-file]其中local-file是说指定要添加的本地文件。 remote-file是说指定要将local-file附加到远程计算机文件,要是省了这个,则是使用3)ascii 说明: 默认情况下,将文件传输类型设置为ASCII 4)bell 说明: 响玲开关,意思是文件传输完成后是否有玲声提醒。默认是关闭的。 5)binary 说明: 将文件传输类型设置为二进制。 6)bye 说明: 结束和远程计算机的ftp会话,也就是安全断开,退出ftp. 7)cd 说明:

计算机网络实验-HTTP、FTP协议分析

实验二HTTP、FTP协议分析 1. 本次实验包括HTTP、FTP两个协议的分析(详见一、二)。 2. 参考文档所述步骤,完成数据包的捕获并进行分析; 3. 认真撰写实验报告,叙述实验过程要层次分明,对关键的过程或结果截图说明、分析,回答实验文档所提的思考题、问题。 一、超文本传输协议(HTTP)分析 【实验目的】 掌握HTTP协议的原理和报文格式; 了解HTTP协议的工作过程; 了解应用层协议与传输层协议的关系。 【实验内容】 用浏览器打开网页,捕获HTTP报文并进行分析 编辑一个HTTP数据报文并进行发送,并捕获该报文进行分析。 【实验步骤】 步骤一:使用浏览器打开网页,捕获HTTP数据包并分析: (1) 在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中 选择“HTTP协议”,确定后开始进行数据捕获:

(2) 使用实验室主机上的浏览器,例如IE,打开一个网页,如URL是 HTTP//https://www.wendangku.net/doc/c812471930.html, (3) 在协议分析器中找到捕获的数据包,观察HTTP请求报文和响应报文,以及其中所使用的命令:

【思考问题】 结合实验过程中的实验结果,问答下列问题: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?一个主页是否只有一个连接? 2. 请求主页后,返回的浏览器内容的字节长度是多少? 3. 如果请求一个不存在的网页,服务器将会应答什么? 答: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据地址信息把返回的页面正确地显示到相应窗口的,一个主页是只有一个连接。 2. 请求主页后,返回的浏览器内容的字节长度是 3. 如果请求一个不存在的网页,服务器将会应答404错误。 二、FTP协议分析 【实验目的】 1、掌握FTP协议的工作原理; 2、了解FTP协议的常用命令,并领会其链路管理、理解FTP的主动模式和被动模式 3、了解应用层协议与传输层协议的关系; 【实验内容】 1. 登录FTP服务器,并捕获FTP报文进行分析;

IBM服务器的FTP命令大全

如果你经常要用FTP下载东东的话可一定要把这些让人头晕的命令参数记着。哎。如果能熟悉并灵活应用FTP的内部命令的话,那可真是事半功倍。。。 ****************************************** FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用;.n etrc文件; -d 使用调试方式; -g 取消全局文件名。 FTP使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip 2.$ macro-ame[args]:执行宏定义macro-name。 3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。 4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。 9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cd remote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。 13.close:中断与远程服务器的ftp会话(与open对应)。 14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

FTP协议分析报告

工程类实验报告 系:网络工程专业:网络工程年级: 2009 姓名:学号:实验课程:网络协议分析 实验室号:____田C510__ 实验设备号:实验时间: 12.26 指导教师签字:成绩: 实验四 FTP 协议分析实验 一、实验目的和要求 学习 Serv-U FTP Server 服务软件的基本配置和 FTP 客户端命令的使用,分析FTP 报文格式和 FTP 协议的工作过程。 二、实验原理 FTP 是文件传输协议(File Transfer Protocol)的简称。 FTP 基于 TCP 协议,它通过两个 TCP 连接来传输一个文件,一个是控制连接,另一个 是数据连接。相应的,在进行文件传输时,FTP 需要两个端口,分别用于控制连接端口(用 于给服务器发送指令以及等待服务器响应)和数据传输端口(在客户机和服务器之间发送 一个文件或目录列表)。 两种连接的建立都要经过一个“三次握手”的过程,同样,连接释放也要采用“四次 握手”方法。控制连接在整个回话期间一直保持打开状态。数据连接是临时建立的,在文件 传送结束后被关闭。 FTP 的连接模式有两种,PORT 和 PASV。PORT 模式是一个主动模式,PASV 是被动模式, 这里都是相对于服务器而言的。 当 FTP 客户以 PORT 模式连接服务器时,它首先动态地选择一个端口号连接服务器 的 21 端口,注意这个端口号一定是 1024 以上的,因为 1024 以前的端口都已经预先被定 义好,被一些典型的服务使用或保留给以后会用到这些端口的资源服务。经过 TCP 的三次 握手后,控制连接被建立。这时客户就可以利用这个连接向服务器发送指令和等待服务器响 应了。当需要从(或向)服务器传送数据时,客户会发出 PORT 指令告诉服务器用自己的 那个端口来建立一条数据连接(这个命令由控制连接发送给服务器),当服务器接到这一指 令时,会使用 20 端口连接客户指定的端口号,用以数据传送。 当FTP 客户以 PASV 模式连接服务器时,控制连接的建立过程与 PORT 模式相同,不 同的是,在数据传送时,客户不向服务器发送 PORT 指令而是发送 PASV 指令,服务器收 到 PASV命令后选择一个端口号发送给客户,客户选择一个本地端口号与服务器发送过来的 端口建立一条数据连接。 微软自带的 FTP 客户端命令工具不支持 PASV 模式。 三、实验设备与环境 实验设备和连接图如图 6-5 所示,一台锐捷 S2126G 交换机连接了 2 台 PC 机,分别命名为

FTP协议简介

1、FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,上传或下载文件。 2、FTP通讯端口知识 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种: 控制链路--------TCP端口21 控制器端。用于发送指令给服务器以及等待服务器响应。所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。 数据链路--------TCP端口20 数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 3、FTP连接的两种方式 在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。 主动模式 主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get都是通过这条链路传送的。当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。 被动模式 被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口P,你现在来连接我吧。当客户端收到该信息时,

通信协议之FTP协议ftp协议详解

通信协议之 FTP 协议完全详解
?
1. 介绍 FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对 用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要 作用是供程序使用的。在阅读本文之前最好能够阅读 TCP 协议标准规范和 Tel net 协议标准规范。 2. 概览 在本节中我们将讨论一些表面上的问题,有些名词的定义请参阅 TCP 和 Telne t 参考文献。我们先介绍一下(1)字节大小,在 FTP 中字节大小有两个:逻辑 字节大小和用于传输的字节大小。后者通常是 8 位,而前者可不一定是多少 了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。(2)控 制连接是建立在 USER-PIT 和 SERVER-PI 之间用于交换命令与应答的通信链 路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器 DT P 和用户 DTP 之间也可以发生在两个服务器 DTP 之间。(4)DTP:数据传输 过程(DTP)建立和管理数据连接,DTP 可以是主动的也可以是被动的。 (5)EOR 代表记录尾。(6)NTV 代表网络虚拟终端,它的定义与在 Telnet 协议中的定义一致。(7)NVFS 代表网络虚拟文件系统。(8)FTP 可以传输 非连续的文件,这些文件的一部分称为页。(9)PI 代表协议解释器。(10) 服务器 DTP 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数 据连接,它还可以为传输和存储设置参数,并根据 PI 的指令传输数据。当然, DTP 也可以转入“被动”状态。(11)服务器 FTP 进程,它是和用户 FTP 进程 一起工作的,它由 PI 和 DTP 组成。至于用户 FTP 进程则是由 PI,DTP 和用

Linux的ftp命令大全

Linux ftp 1、登录ftp 代码: lftp 用户名:密码@ftp地址:传送端口(默认21) 用法 (1)lftp username:password@127.0.0.1:21 回车 (2)lftp username@127.0.0.1 回车##默认21端口回车后输入密码 (3)lftp 127.0.0.1 回车##回车后login 登录 (4)lftp 回车--> open 127.0.0.1 --> login 登录 感觉自己很象孔乙己了,茴香豆的"茴"有几种写法阿!~真晕阿~ 2、lftp中文乱码问题 对于像我这样的新手,登录后看到的都是中文乱码(因为一般本地都是utf-8的编码),怎么半呢,用set 命令来解决 set ftp:charset gbk(或者gb2312 或utf-8) ##设置ftp端的编码格式 set file:charset utf-8 (...同上) ##设置本地编码格式 附:set命令的技巧(1)输入set 查看已经设置好的命令(2)set -a 查看所有可以设置的命令 3、查找ftp端文件 ls *.txt ##查找当前目录下的所有txt文件 ls ./123/ ##列出123目录下所有文件 find . -name "*.txt" ##递归查找站点上所有的txt文件 find ./xx -name "*.txt" ##查找xx目录下所有的txt文件 附1: ls第二次读取的是本地缓存,可以用rels 代替ls 或者catch off / catch on 来开关catch,catch flush清空本地catch 附2: 浏览本地目录的命令可用!ls, 如!ls /usr/local/bin/ 4、下载文件 下载文件之前要先设置好本地的目录,用来存放下载的文件 lcd /home/123/web ##设置本地存放目录默认为/home/usr get 123.txt ##下载123.txt文件到/home/123/web 中 get -c 123.txt ##断点续传下载 mget *.txt ##批量下载所有txt文件 mget -c *.txt ##断点续传 mget -c ./123/aaa/*.txt ##断点续传、批量下载ftp端aaa目录下的所有txt文件 pget -c -n 10 file.dat ##以最多10个线程以允许断点续传的方式下载file.dat ##可以通过设置set pget:default-n 5 的值而使用默认值。

(精)FTP协议(指令集)

feat命令是用来请求FTP服务器列出它的所有的扩展命令与扩展功能的 FTP协议(指令集) 目录(?)[-] 1. ABOTAbort中止命令 2. ACCTAccount帐号命令 3. ALLOAllocate分配命令 4. APPEAppend with create附加和创建命令 5. CDUPChange to Parent Directory变为父目录命令 6. CWDChange Working Directory改变工作目录命令 7. DELEDelete删除命令 8. HELPHelp帮助命令 9. LISTList列表命令 10. MKDMake Directory 创建目录命令 11. MODETransfer Mode传输模式命令 12. NLSTName List名称列表命令 13. NOOPNOOP无操作命令 14. PASSPassword密码命令 15. PASVPassive被动的命令 16. PORTData Port数据端口命令 17. PWDPrint Working Directory打印工作目录命令 18. QUITLogout注销命令 19. REINReinitialize重新初始化命令 20. RESTRestart重新启动命令 21. RETRRetrieve检索命令 22. RMDRemove Directory删除目录命令 23. RNFRRename From把重命名命令 24. RNTORename TO重命名为命令 25. SITESite Parameters站点参数命令 26. SMNTStructure Mount结构装配命令 27. STATStatus状态命令 28. STORStore保存命令 29. STOUStore Unique存为唯一命令 30. STRUFile Structure文件结构命令 31. SYSTSystem系统命令 32. TYPERepresentation Type表达类型命令 FTP协议采用一系列简单的协议来完成文件传输的各种任务,在发送命令的时候,总是在命令的最后加上一个回车换行符,在VB中可以用“vbcrlf”来实现,vc中以“/r/n”表示。以下的命令是从Postel和Reynolds所著的RFC 929修改而来,如果读者想查看详细内容,可以参见英文版RFC 929。注意以下出现地标志符CRLF表示的是回车符号,即相当于VC中的“/r/n”。 1. ABOT(Abort,中止)命令

(完整版)FTP协议详解

FTP 概述 文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。 在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后给予响应,并执行命令。FTP 协议与操作系统无关,任何操作系统上的程序只要符合FTP 协议,就可以相互传输数据。本文主要基于LINUX 平台,对FTP 客户端的实现原理进行详尽的解释并阐述如何使用C 语言编写一个简单的FTP 客户端。 FTP 协议 相比其他协议,如HTTP 协议,FTP 协议要复杂一些。与一般的C/S 应用不同点在于一般的C/S 应用程序一般只会建立一个Socket 连接,这个连接同时处理服务器端和客户端的连接命令和数据传输。而FTP协议中将命令与数据分开传送的方法提高了效率。 FTP 使用2 个端口,一个数据端口和一个命令端口(也叫做控制端口)。这两个端口一般是21 (命令端口)和20 (数据端口)。控制Socket 用来传送命令,数据Socket 是用于传送数据。每一个FTP 命令发送之后,FTP 服务器都会返回一个字符串,其中包括一个响应代码和一些说明信息。其中的返回码主要是用于判断命令是否被成功执行了。 命令端口 一般来说,客户端有一个Socket 用来连接FTP 服务器的相关端口,它负责FTP 命令的发送和接收返回的响应信息。一些操作如“登录”、“改变目录”、“删除文件”,依靠这个连接发送命令就可完成。 数据端口 对于有数据传输的操作,主要是显示目录列表,上传、下载文件,我们需要依靠另一个Socket来完成。 如果使用被动模式,通常服务器端会返回一个端口号。客户端需要用另开一个Socket 来连接这个端口,然后我们可根据操作来发送命令,数据会通过新开的一个端口传输。 如果使用主动模式,通常客户端会发送一个端口号给服务器端,并在这个端口监听。服务器需要连接到客户端开启的这个数据端口,并进行数据的传输。 下面对FTP 的主动模式和被动模式做一个简单的介绍。 主动模式(PORT) 主动模式下,客户端随机打开一个大于1024 的端口向服务器的命令端口P,即21 端口,发起连接,同时开放N +1 端口监听,并向服务器发出“port N+1” 命令,由服务器从它自己的数据端口(20) 主动连接到客户端指定的数据端口(N+1)。 FTP 的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞。 被动模式(PASV)

网络协议分析(免费下载)概要

实验报告 项目名称:网络协议分析工具的使用课程名称:计算机网络A 班级:计111 计111 姓名:葛一波叶博兴 学号:110776 110768 教师:张晓明 信息工程学院计算机系

一.实验目的 1.了解协议分析仪的使用方法和基本特点,掌握使用协议分析仪分析协议的方法。 2.了解Ping命令的工作过程; 3.了解FTP协议的工作过程。 二.实验前的准备 1.熟悉Ping命令,FTP协议; 2.了解协议分析仪的功能和工作原理; 3.了解Ethereal分析仪的使用方法; 4.阅读本实验的阅读文献; 三.实验内容 1.学习捕获选项的设置和使用。 2.使用Ethereal分析仪捕获一段Ping命令的数据流,并分析其工作过程。 3.登录ftp://https://www.wendangku.net/doc/c812471930.html,,并下载三个大小不同的文件(小于1KB、1KB—1MB、1MB 以上),使用Ethereal分析仪分析其工作过程。 4.设置显示过滤器,以显示所选部分的捕获数据。 5.保存捕获的数据,分别是TEXT文件和XML文件。 四.实验要求 1.完成上述实验内容; 2.记录捕获的关键数据,并分析协议工作过程。 3.上交实验报告和保存的实验数据。 Wireshark Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。 在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。 软件简介 Wireshark使用目的以下是一些使用Wireshark目的的例子: 网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark 来学习网络协定的相关知识当然,有的人也会“居心叵测”的用它来寻找一些敏感信息…… Wireshark不是入侵侦测软件(Intrusion DetectionSoftware,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,

计算机网络实验HTTPFTP协议分析

实验二H T T P、F T P协议分析 1. 本次实验包括HTTP、FTP两个协议的分析(详见一、二)。 2. 参考文档所述步骤,完成数据包的捕获并进行分析; 3. 认真撰写实验报告,叙述实验过程要层次分明,对关键的过程或结果截图说明、分析,回答实验文档所提的思考题、问题。 一、超文本传输协议(HTTP)分析 【实验目的】 掌握HTTP协议的原理和报文格式; 了解HTTP协议的工作过程; 了解应用层协议与传输层协议的关系。 【实验内容】 用浏览器打开网页,捕获HTTP报文并进行分析 编辑一个HTTP数据报文并进行发送,并捕获该报文进行分析。 【实验步骤】 步骤一:使用浏览器打开网页,捕获HTTP数据包并分析: (1) 在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中 选择“HTTP协议”,确定后开始进行数据捕获:

(2) 使用实验室主机上的浏览器,例如IE,打开一个网页,如URL是 HTTP//https://www.wendangku.net/doc/c812471930.html, (3) 在协议分析器中找到捕获的数据包,观察HTTP请求报文和响应报文,以及其中所使用的命令:

【思考问题】 结合实验过程中的实验结果,问答下列问题: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?一个主页是否只有一个连接? 2. 请求主页后,返回的浏览器内容的字节长度是多少? 3. 如果请求一个不存在的网页,服务器将会应答什么? 答: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据地址信息把返回的页面正确地显示到相应窗口的,一个主页是只有一个连接。 2. 请求主页后,返回的浏览器内容的字节长度是 3. 如果请求一个不存在的网页,服务器将会应答404错误。 二、FTP协议分析 【实验目的】 1、掌握FTP协议的工作原理; 2、了解FTP协议的常用命令,并领会其链路管理、理解FTP的主动模式和被动模式 3、了解应用层协议与传输层协议的关系; 【实验内容】 1. 登录FTP服务器,并捕获FTP报文进行分析;

文件传输协议

文件传输协议 从Wikipedia,自由的百科全书 文件传输协议(FTP)是一个标准的网络协议,用来在一个基于TCP的网络从一台主机到另一主机传输文件,如互联网。它经常被用来上传到一个公共的Web 托管服务器的网页和其他文件,由私人发展机。FTP是建立在客户端- 服务器架构,并在客户端和服务器之间使用单独的控制和数据连接。[1]在协议中,FTP 用户可能使用明文自己的身份标志,通常以用户名和密码的形式,但如果服务器被配置为允许匿名也可以连接。为了隐藏(加密)您的用户名和密码,以及加密内容的安全传输,您可以尝试以客户端使用SSH文件传输协议。 第一个FTP客户端应用程序是交互式的命令行工具,执行标准的命令和语法。在今天使用的许多流行的桌面操作系统的图形用户界面的客户,至今已开发包括一般的网页设计方案,如Microsoft Expression Web中,如CuteFTP的专业FTP 客户端。 内容 1协议概述 ?1.1与HTTP的差异 ?1.2通信和数据传输 ?1.3登陆 ?1.4 匿名FTP ?1.5穿越NAT和防火墙 2 FTPmail 3 Web浏览器支持 ?3.1句法 4 安全 4.1 安全的FTP

4.1.1 FTPS 4.1.2 SFTP 4.1.3 通过SSH到达FTP (不从SFTP) ? 5 FTP命令的列表 ? 6 FTP 回应码 ?7 参见 ?8 参考文献 ?9 进一步阅读 ?10 外部链接 协议概述 与HTTP的区别 FTP运行在OSI模型的应用层,用于使用TCP / IP传输文件。要做到这一点,FTP服务器必须正在运行,并等待传入的请求。然后客户端的计算机能够沟通服务器上的端口21。就此,称为控制连接,在会议期间仍然开放。第二个连接,称为数据连接,可以由服务器从20端口打开谈判的客户端端口(主动模式),或从任意端口到客户谈判的服务器端口(被动模式)传输文件数据。控制连接用于会议管理,示例命令,识别和使用像一个telnet协议的客户端和服务器之间交换的密码。例如“RETR命令名”从服务器到客户端传输指定的文件。由于这两个端口结构,FTP被认为是一个彻头彻尾的带协议,而不是如HTTP协议波段。 通信和数据传输 该协议在RFC959中指定,这里总结。 服务器响应超过三位数的状态代码的ASCII控制连接与可选的文本消息。例如“200”(或“200 OK”)意味着最后一个命令是成功的。数字代表的响应代码,而可选的文本代表一个人可读的解释或要求(如Need帐户的)。通过控制连接发送中断消息,可以中止正在进行传输文件数据的数据连接。

FTP协议分析论文

FTP协议分析 邬猛 (呼伦贝尔学院计算机科学与技术学院10级软件工程 2010121406) 摘要:本论文的目的是描述FTP协议的基础理论知识,分析FTP数据传输时所捕获的不同数据包,通过数据包的分析了解FTP的工作原理。FTP(文件传输协议)使得主机间可以共享文件。使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。文件传输协议是TCP/IP 网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。 关键词:FTP 协议分析文件传输 1 引言 早期在Internet上传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC、工作站、MAC、服务器、大型机等等,而这些计算机可能运行不同的操作系统,有Unix、Dos、 Windows、MacOS等等,各种操作系统之间的文件交流,需要建立一个统一的文件传输协议,用来从一个主机把文件复制到另一个主机。虽然从一个系统向另一个系统传送文件看起来直截了当,但还有一些问题必须先解决。例如,两个文件系统可能使用不同的文件名约定,不同的方法表示文件和数据,不同的目录结构。所有这些问题已经由FTP以一种简单巧妙的方法解决了,FTP是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。本文就介绍了FTP的数据报文结构及其工作原理。 2FTP的工作模型 FTP采用了和HTTP一样的客户机/服务器方式,通过一系列的请求与响应来完成数据的传输。和Telnet一样,FTP需要提供一种登陆机制,即需要输入用户名和口令,才能进入远程FTP服务器,与其它客户机——服务器模型不同的是,FTP客户机与服务器之间用TCP 建立了双重连接,一个是控制连接、一个是数据连接。图2.1 给出了FTP的基本模型。客户有三个构件:用户接口、客户控制进程和客户数据传输进程。服务器有两个构件:服务器控制进程和服务器数据传输进程。控制连接是在控制进程之间进行的。数据连接是在数据传送进程间进行的。 图2.1 FTP基本模型

Linux的FTP安装及命令

下载安装VSFTPD服务(注:无客户端) yum install vsftpd 配置Vsftpd 编辑vsftpd的配置文件vi /etc/vsftpd/vsftpd.conf 以下是要更改的选项: anonymous_enable=NO #禁止匿名访问 ascii_upload_enable #允许使用ascii码上传 ascii_download_enable #允许使用ascii码下载 userlist_deny=NO #(这条需手动添加到最后)/etc/vsftpd/user_list文件里的用户才能登录。或userlist_deny=YES #默认值。/etc/vsftpd/user_list文件里存在的用户不能登录,而且不会询问密码。 修改文件/etc/vsftpd/user_list 修改文件/etc/vsftpd/ftpusers,文件内用户不能登录。 重启服务,设置开机启动: service vsftpd restart chkconfig vsftpd on 网页登陆: ftp://192.168.1.120/ ftp://username@192.168.1.120/ 在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 匿名登陆: 用户名:anonymous 密码:Email或者为空 用户名:FTP 密码:FTP或者为空 如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub(/var/ftp/pub/)目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。

FTP协议分析报告

. 工程类实验报告 系:网络工程专业:网络工程年级: 2009 姓名:学号:实验课程:网络协议分析 实验室号:____田C510__ 实验设备号:实验时间: 12.26 指导教师签字:成绩: 实验四 FTP 协议分析实验 一、实验目的和要求 学习 Serv-U FTP Server 服务软件的基本配置和 FTP 客户端命令的使用,分析FTP 报文格式和 FTP 协议的工作过程。 二、实验原理 FTP 是文件传输协议(File Transfer Protocol)的简称。 FTP 基于 TCP 协议,它通过两个 TCP 连接来传输一个文件,一个是控制连接,另一个是 数据连接。相应的,在进行文件传输时,FTP 需要两个端口,分别用于控制连接端口(用 于给服务器发送指令以及等待服务器响应)和数据传输端口(在客户机和服务器之间发送 一个文件或目录列表)。 两种连接的建立都要经过一个“三次握手”的过程,同样,连接释放也要采用“四次 握手”方法。控制连接在整个回话期间一直保持打开状态。数据连接是临时建立的,在文件 传送结束后被关闭。 FTP 的连接模式有两种,PORT 和 PASV。PORT 模式是一个主动模式,PASV 是被动模式, 这里都是相对于服务器而言的。 当 FTP 客户以 PORT 模式连接服务器时,它首先动态地选择一个端口号连接服务器的 21 端口,注意这个端口号一定是 1024 以上的,因为 1024 以前的端口都已经预先被定义好, 被一些典型的服务使用或保留给以后会用到这些端口的资源服务。经过 TCP 的三次握手后,控 制连接被建立。这时客户就可以利用这个连接向服务器发送指令和等待服务器响应了。当需要从 (或向)服务器传送数据时,客户会发出 PORT 指令告诉服务器用自己的那个端口来建立一条 数据连接(这个命令由控制连接发送给服务器),当服务器接到这一指令时,会使用 20 端口 连接客户指定的端口号,用以数据传送。 当FTP 客户以 PASV 模式连接服务器时,控制连接的建立过程与 PORT 模式相同,不同 的是,在数据传送时,客户不向服务器发送 PORT 指令而是发送 PASV 指令,服务器收到

FTP协议原理和工作模式讲解

浅析FTP的PORT和PASV模式工作原理 摘要 通过阅读本文,您可以了解到FTP的基本的工作原理。作者以建立FTP连接到断开FTP连接的方式详细介绍了FTP会话全过程。如果您对PORT模式或者PASV模式的FTP工作原理有些疑惑,相信本文能使您了解更多的细节,使您更加从容的面对企业的网络流量以及安全的管理,特别是如果您的企业正准备在企业内部署ISA Server 2000,或许会给您发布内部服务器带来帮助! 目录 ?FTP协议概述 ?PORT模式 ?PASV模式 ?比较分析 ?图示 FTP协议概述 起初, FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议,ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web 服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web 服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。 下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。 首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP 的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT 模式),是用来建立数据传输通道的,主要有3个作用 ?从客户向服务器发送一个文件。 ?从服务器向客户发送一个文件。 ?从服务器向客户发送文件或目录列表。 其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,

linux下FTP、SFTP命令详解

linux下FTP、SFTP命令详解 FTP> ! 从ftp 子系统退出到外壳。 FTP> ? 显示ftp 命令说明。? 与help 相同。 格式:? [command] 说明:[command]指定需要帮助的命令名称。如果没有指定command,ftp 将显示全部命令的列表。 FTP> append 使用当前文件类型设置将本地文件附加到远程计算机上的文件。 格式:append local-file [remote-file] 说明:local-file 指定要添加的本地文件。 remote-file 指定要添加local-file 的远程计算机上的文件。如果省略了remote-file,本地文件名将被用作远程文件名。 FTP> ascii 将文件传送类型设置为默认的ASCII。 说明:FTP 支持两种文件传送类型,ASCII 码和二进制图像。在传送文本文件时应该使用ASCII。 FTP> bell 切换响铃以在每个文件传送命令完成后响铃。默认情况下,铃声是关闭的。 FTP> binary(或bi)将文件传送类型设置为二进制。 FTP> bye(或by)结束与远程计算机的FTP 会话并退出ftp。 FTP> cd 更改远程计算机上的工作目录。 格式:cd remote-directory 说明:remote-directory 指定要更改的远程计算机上的目录。 FTP> close 结束与远程服务器的FTP 会话并返回命令解释程序。 FTP> debug 切换调试。当调试打开时,发送到远程计算机的每个命令都打印,前面是字符串“>”。默认情况下,调试是关闭的。 FTP> delete 删除远程计算机上的文件。 格式:delete remote-file 说明:remote-file 指定要删除的文件。 FTP> dir 显示远程目录文件和子目录列表。 格式:dir [remote-directory] [local-file] 说明:remote-directory 指定要查看其列表的目录。如果没有指定目录,将使用远程计算机中的当前工作目录。Local-file 指定要存储列表的本地文件。如果没

AIX ftp命令大全

AIX ftp命令大全 FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用;.n etrc文件; FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用;.n etrc文件; -d 使用调试方式; -g 取消全局文件名。 FTP使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip 2.$ macro-ame[args]:执行宏定义macro-name。 3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。 4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件 名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。

9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cd remote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。 13.close:中断与远程服务器的ftp会话(与open对应)。 14.cr:使用asscii方式传输文件时,将回车换行转换为回行。 15.delete remote-file:删除远程主机文件。 16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3, 若设为0,表示取消debug。 17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件 18.disconnection:同close。 19.form format:将文件传输方式设置为format,缺省为file方式。 20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。 21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g 参数。 22.hash:每传输1024字节,显示一个hash符号(#)。 23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。 24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。 25.image:设置二进制传输方式(同binary)。 26.lcd[dir]:将本地工作目录切换至dir。 27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。 28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

FTP常用命令

1.登陆命令: $ftp 服务器命或服务器ip地址 username:用户名 password:密码 ftp> 2.目录操命令: 显示目录下的文件: ftp>ls 显示服务器上的目录: ftp>ls H* 查看当前目录: ftp>cd(或pwd) 进入上一级目录 ftp>cd .. 更改本地机上的当前目录 ftp>lcd /usr/loca //把当前目录改成/usr/loca 进入子目录: ftp>cd 子目录名 3.文件传输命令: 下载命令: ftp>get 诗经·氓.rtf 下载多个文件: ftp>mget 诗经·氓.rtf hello.rtp 郭鹏翔.jpg **注:mget命令允许用通配符考贝多个文件。mget命令会提示用户输入待拷贝的每个文件。如果回答y,那么文件拷贝到本地机上的当前目录下。 上传命令: ftp>put hello.rtf //上传hello.rtf文件到远端的ftp服务器上。 上传多个文件: ftp>mput 诗经·氓.rtf hello.rtf pr命令.rtf **注意:mput和mget命令要注意两个问题: (1)、不能对目标文件指定命字,在命令行上所有的文件都视做源文件 (2)、mput,mget两个命令不能对目录进行上传下载,只能对文件 4.设置文件的传输方式: 二进制传输: ftp>binary //把传输模式转换一下 ftp>put putty.exe ascII传输: ftp>ascii //把传输模式转换成ascII模式 ftp>put hello.txe **注:文件传送有两种方式,即ASCII码和二进制码。ASCII方式传送略快些,但要求被传送文件必须是ASCII码文本文件。二进制码方式可以传送文本和非文本,因此,对所有文件传送都可以用二进制方式。输入命令ascii,设置为ASCII方式。输入命令binary为二进制方式。 5.退出命令:ftp>quit

相关文档