FTP协议规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 标准,要在行结束处使用<CRLF>序列。
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 :挪移至下一页;+:不挪移
打印机必须能够决定结构体的结束。
如果文件本身有记录结构就没有问题,如果没有,
<CRLF>用于区别打印行,但这些格式标记已经由ASA 控制字符使用了。
3.1.2. 数据结构
除了有不同的数据类型外,FTP 还允许有不同的文件结构,下面是三种文件结构:文件式结构:文件中没有内部结构,文件被看做是二进制流;记录结构:文件是由一系列记录组成的;页结构:文件是由不同的索引页组成的。
如果未使用STRU 命令,文件结构是默认值。
文件的结构会影响传输模型,存储和数据表示。
文件本来的属性和保存它的主机有关,不同的机器会以自己的方式保存文件。
在不同主机间传送文件时必须使主机能够识别相互的表示。
有些主机上的文件是面向字节的,有些是
面向记录的,在传送时就会浮现问题。
那就要在接收方进行内部转换。
在进行转换的时候,需要区别记录的边界,在ASCII 中使用<CRLF>,在EBCDIC 中使用<NL>作为分隔符。
采用这种实现方法的必须保证转换是可逆的。
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 的行结束则则<CRLF>或者<NL>指示。
这样的
转换需要时间,所以相同的系统在传送文本文件时采用二进制或者流表示比较合适。
下面
是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 位整数代表在控制连接上使用语言的可打印字节,但<SP> 不得浮现在其中。
例如要传送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,过滤器字节是<SP>,如果是图象或者本地类型,则是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 字符定义,第二个
参数是十进制整数指定字节大小,参数间以<SP>分隔。
下面是格式:
默认表示类型是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 字符<SP> R <SP>分隔。
此命令在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 形式传送,并以<CRLF>或者<NL> 分隔。
这里返回的信息有时可以供程序进行进一步处理。
站点参数(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 流;。