⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc854.txt

📁 RFC中文技术文档
💻 TXT
📖 第 1 页 / 共 3 页
字号:
过程到过程的通讯中,在两个方向上都不需要发送GA。最后,对于终端到终端的通讯,在
两个方向上可能都需要GA。如果一个主机打算支持终端到终端的通讯,建议主机在需要通
过TELNET连接发送GA的时候,提供一个手工发信号给用户的方法。然而,在实现TELNET
过程中,这一点并不是必需的。

注意:由于TELNET模型的对称性,从理论上来说,在一个TELNET连接的每一端,都必
须有一个NVT。
控制功能的标准表示
就象我们在本文档的简介中所说,TELENT协议的主要目标是在通过网络连接的终端
设备和面向终端的过程之间提供一个标准的接口。早期具有这种互联性质的实验表明,大部
分的服务器都实现了某些功能,但调用这些功能的方式却差别很大。对于一个要与多个服务
器系统交互的用户来说,这些差别是一个非常大的障碍。因此,TELNET协议定义了这些
功能中的下面5种的标准表示。这些标准表示包括标准,含义 --- 尽管不是必需的(除了
中断进程(IP)功能,使用TELENT协议的其他协议可能需要该功能)。因此,一个没有给
本地用户提供某种功能的系统也没有必要给网络上的其他用户提供该功能,并且可以把该功
能的标准表示当作No操作。在另一方面,如果一个系统已经给本地用户提供了该功能,那
么它必须给网络上那些传该功能的标准表示的用户提供同样的功能。

中断进程 – Interrupted Process(IP)

许多系统提供挂起,中断,中止,终止用户进程的操作的功能。当用户确信他的进程已
经进入了无穷尽的循环,或者不小心激活了一个并不希望激活的进程时,就要经常使用该功
能。IP就是调用该功能的标准表示。该功能的实现者需要注意,其他使用TELNET协议的
协议可能要使用IP,因此实现时要支持这些协议。

 中断输出 -- Abort Output (AO)

   许多系统提供了允许一个产生输出的进程在不向用户的终端发送输出的情况下完成运行
(或者达到在完成运行的过程中将会达到的某一个停止点)的功能。
 另外,该功能一般还清除那些已经生成但还没有实际打印(或者显示)到用户的终端上的
输出。AO是调用该功能的标准表示。 比如,许多子系统通常会接受一个用户的命令,然
后以一个发送到用户终端的长的字符串作为回应,最后,给用户的终端发送一个“提示”字
符(前面跟着<CR><LF>)来表示准备接受下一个命令。如果是在传输字符串的过程中接收
到AO,一个合理的实现应该停止继续传输字符串,而转向发送提示符和跟在前面的
<CR><LF>。(这可能同接收到IP所进行的动作有一些差别。在接收到IP时,将导致停止
字符串的传输并且从子系统中退出。

同时还需要注意到,对那些提供这种功能的服务器,可能还需要清除那些存在于系统外
的缓冲机制(在网络中或者在用户的本地机器上)中的内容。完成这个过程的一个合适的方
法是给用户的系统发送“同步”信号(将在下面描述)。

你在那里吗? --  Are You There (AYT)

许多系统提供了给用户提供系统仍然在运行的一些可见的(如可打印的)迹象。这个功
能可以在系统在一个想象不到的很长一段时间里都没有动静时(可能是由于用户没有想象到
的计算时间,或者不正常的巨大系统负荷等导致。)由用户调用。 AYT是调用该功能的标
准表示.

消除一个字符 - - Erase Character (EC)

许多系统提供了删除在未删除字符前面或者用户提供的数据流中的“打印位置” 最后
面的一个字符的功能。该功能通常在键盘输入时输入了错误的字符时使用。EC是调用该功
能的标准表示。

*注意 :一个“打印位置”可能包含相互覆盖的几个字符,或者象下面的字符系列:
<char1> BS <char2>...

消除一行 -- Erase Line (EL)     

许多系统提供了删除输出设备上的当前一行的全部数据的功能。该功能经常在用键盘进
行输入编辑时使用。EL是调用该功能的标准表示。
TELNET中的“同步(SYNCH)"信号
许多系统提供了一种机制,可以允许一个终端的用户对一个“失控“的进程重新获得控
制权。上面描述的IP和AO功能就是这种机制的例子。当在本地使用时,这样的系统可以
访问由用户提供的所有信号,而不管这些信号是一些普通字符或者是由电传打字机中的
"BREAK"键或IBM 2741中的"ATTN"键发送的”带外“信号。然而当通过网络把系统联结
起来时,这可能是不正确的。网络的流程控制机制可能导致把这些信号缓冲到其他地方,比
如用户的机器中。

为了解决这个问题,提出了TELNET中的"同步" 机制。
一个同步信号包含一个同TELNET命令DATA MARK结合在一起的TCP紧急通知。该
紧急通知与TELNET连接中的流程控制没有关系,接收它的进程用它来调用数据流的特殊
处理过程。在这种模式中,立即对数据流进行扫描,查找下面定义的一些“有趣“的信号,
而把那些干涉的数据丢弃。

TELNET命令DATA MARK (DM)是数据流中的同步标记,表示所有特殊的信号都已经
产生,接受者可以继续对数据流进行一般的处理。

同步信号通过TCP中的发送操作发送,在发送过程中需要把紧急标志设为“真“,并
且把DM作为最后(或者唯一的)一个字节。

当许多同步信号快速地连续不断地发送时,可以合并紧急通知。不可能去计算紧急通知
的次数,因为接收到的紧急通知的次数可能等于或者少于发送次数。在普通模式中,一个
DM是没有任何操作的,但在紧急模式中,它表示紧急处理过程的结束。

如果在发现DM之前,TCP已经指示紧急数据的结束,TELNET应该继续对数据流进
行特殊的处理,直到发现DM。

如果在发现DM之后,TCP指示有更多的紧急数据,它只能是另外同步信号。TELNET
应该继续对数据流进行特殊的处理,直到发现另外一个DM。

定义的“有趣的“信号为:TELNET中的IP, AO, 和 AYT (没有EC 或EL)的标准
表示;与这些标准表示类似的本地表示(如果有的话);所有的其他TELNET命令;其他在
不延迟数据流的扫描并且能够起作用的自定义信号。

由于SYNCH机制的一个影响是丢弃本来在发送者和接收者之间要传输的所有字符(除
了TELNET命令),如果需要,这个机制可以作为清除数据路径的一种标准方式。例如,在
一个终端上的用户需要传输一个AO,接收到该AO的服务器应该给该用户返回一个同步信
号(如果它提供该功能的话)。

最后,就象在TELNET层,需要把一个TCP紧急通知当作一个带外信号,因此其他使
用TELNET的协议可能需要从不同层次来看可以当作带外信号的TELNET命令。

通过约定系列[IP, Synch] 可以把它作为这样的信号。例如,假设有一个使用
	TELNET协议的其他协议定义了一个类似于TELNET命令AO的字符串STOP。想象
用户使用该协议的目的是希望服务器处理STOP字符串,但由于服务器在处理其他的命令,
导致连接被阻塞。用户应该引导他的系统:

a)	发送出TELNET IP字符;

b)	发送出TELNET SYNC系列,也就是:在一个紧急模式的TCP发送操作中把Data Mark 
(DM)作为唯一的字符发送出去。

c)	发送出字符串STOP;接着

d)	如果有的话,把其他协议中类似于TELNET DM的命令发送出去。
 
用户(或者代表该用户的进程)必须传输上面步骤2中的TELNET SYNCH 系列,以确保
TELNET IP已经到达服务器的TELNET 解释器。

紧急通知将激活TELNET进程,而IP将激活随后级别较高的进程。
NVT打印机和键盘
NVT打印机有一个没有指定宽度的走纸器,并且每一页的长度也没有指定。NVT打印
机可以产生所有95个USASCII编码的图形表示(从32到126的编码)。在33个USASCII
编码(0到31及127)和未包含的其他128个编码(128到255)中,下面几个编码对NVT
打印机有确定意义:

         名称                  编码         意义

         NULL (NUL)             0         没有操作
         Line Feed (LF)         10         打印头移到下一个打印行,但不改变打印
头的水平位置。
         Carriage Return (CR)    13         把打印头移到当前行的左边 。


另外,在NVT打印机上,尽管不是必需的,同时应该定义下面这些编码。TELNET连
接的双方,都不会假设另一方在接收到或传输下面这些编码时将会,或者已经实施某种特殊
动作:

         BELL (BEL)              7      产生一个可以看到或可以听到的信号(而不
移动打印头。)
         Back Space (BS)         8      向左移动打印头一个字符位置。
         Horizontal Tab (HT)     9      把打印头移到下一个水平制表符停止的位置。
它仍然没有指定每一方如何检测或者设定如
何定位这样的制表符的停止位置。
         Vertical Tab (VT)       11     把打印头移到下一个垂直制表符停止的位置。它
仍然没有指定每一方如何检测或者设定如何
定位这样的制表符的停止位置。

         Form Feed (FF)          12     把打印头移到下一页的顶部,保持打印头在
相同的水平位置上。

剩下的其他编码都不会导致NVT打印实施任何动作。

在定义中,系列"CR LF"将导致NVT打印头移动到下一行的左边(与系列 "LF CR"的
效果是一样的)。然而,许多系统和终端并不独立处理CR和LF,为了模拟它们的效果,需
要进行一些处理。 (比如,许多终端没有独立于LF的CR,但是在这样的终端上可以用退
格键来模拟一个CR。)因此,必须把系列CR LF"当作一个单独的“新行”字符看待,并且
在需要把它们结合在一起的时候使用它们。必须在只需要一个单独的回车键时使用系列"CR 
NUL";在其他的场境中必须避免使用CR字符。这个规则可以确保系统在发现一个TELNET
流中有一个字符的后面跟有CR的情况下,可以作出合理的选择:是进行“换行”功能还是
进行多次的退格操作。

    注意,在两个方向上(在缺省的ASCII模式下)都需要"CR LF"或者"CR NUL",以确
保NVT模式的对称性。

尽管在某种情况下(如当远程回显和禁止超前选项同时起作用时),可以认为字符并不
被发送到一个实际的打印机上,然而,为了保证一致,在一个数据流中,如果一个CR的后
面没有跟着一个LF,该协议要求把一个NUL插到CR的后面。
相反,在接收方,如果从数据流中接收到一个跟在CR的后面的NUL(在没有用谈判
选项显式指定其他选择的情况下),在把NVT转换成本地字符集之前,应该把NUL去掉。

    NVT键盘有键或者键的组合,或者键系列来产生所有128格USAACII编码。要注意尽
管一些在NVT打印机上没有什么用处,NVT键盘还是可以生成。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -