Network Working Group                                          J. Altman
Request for Comments: 2840                                    F. da Cruz
Category: Informational                              Columbia University
                                                                May 2000
        
Network Working Group                                          J. Altman
Request for Comments: 2840                                    F. da Cruz
Category: Informational                              Columbia University
                                                                May 2000
        

TELNET KERMIT OPTION

TELNET KERMIT选项

Status of this Memo

本备忘录的状况

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不得”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119中的说明进行解释。

ABSTRACT

摘要

This document describes an extension to the Telnet protocol to allow the negotiation, coordination, and use of the Kermit file transfer and management protocol over an existing Telnet protocol connection.

本文档描述了Telnet协议的扩展,以允许在现有Telnet协议连接上协商、协调和使用Kermit文件传输和管理协议。

CONTENTS

目录

   1. MOTIVATION . . . . . . . . . . . . . . . . . . . . . . . .  2
   2. DEFINITIONS. . . . . . . . . . . . . . . . . . . . . . . .  2
   3. COMMANDS AND CODES . . . . . . . . . . . . . . . . . . . .  3
   4. COMMAND MEANINGS . . . . . . . . . . . . . . . . . . . . .  3
   5. KERMIT PROTOCOL IMPLICATIONS . . . . . . . . . . . . . . .  5
   6. EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . .  6
   6.1. EXAMPLE 1. . . . . . . . . . . . . . . . . . . . . . . .  6
   6.2. EXAMPLE 2. . . . . . . . . . . . . . . . . . . . . . . .  7
   6.3. EXAMPLE 3. . . . . . . . . . . . . . . . . . . . . . . .  8
   6.4. EXAMPLE 4. . . . . . . . . . . . . . . . . . . . . . . .  9
   6.5. EXAMPLE 5. . . . . . . . . . . . . . . . . . . . . . . . 10
   7. SECURITY CONSIDERATIONS. . . . . . . . . . . . . . . . . . 11
   8. REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . 11
   9. AUTHORS' ADDRESSES . . . . . . . . . . . . . . . . . . . . 11
   10. FULL COPYRIGHT STATEMENT. . . . . . . . . . . . . . . . . 12
        
   1. MOTIVATION . . . . . . . . . . . . . . . . . . . . . . . .  2
   2. DEFINITIONS. . . . . . . . . . . . . . . . . . . . . . . .  2
   3. COMMANDS AND CODES . . . . . . . . . . . . . . . . . . . .  3
   4. COMMAND MEANINGS . . . . . . . . . . . . . . . . . . . . .  3
   5. KERMIT PROTOCOL IMPLICATIONS . . . . . . . . . . . . . . .  5
   6. EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . .  6
   6.1. EXAMPLE 1. . . . . . . . . . . . . . . . . . . . . . . .  6
   6.2. EXAMPLE 2. . . . . . . . . . . . . . . . . . . . . . . .  7
   6.3. EXAMPLE 3. . . . . . . . . . . . . . . . . . . . . . . .  8
   6.4. EXAMPLE 4. . . . . . . . . . . . . . . . . . . . . . . .  9
   6.5. EXAMPLE 5. . . . . . . . . . . . . . . . . . . . . . . . 10
   7. SECURITY CONSIDERATIONS. . . . . . . . . . . . . . . . . . 11
   8. REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . 11
   9. AUTHORS' ADDRESSES . . . . . . . . . . . . . . . . . . . . 11
   10. FULL COPYRIGHT STATEMENT. . . . . . . . . . . . . . . . . 12
        
1. MOTIVATION
1. 动机

The Kermit protocol [KER] performs error-corrected file transfer and management over many types of connections, including terminal connections, among diverse hardware and software platforms. It is supported by a large number of Telnet clients and is also widely available on the Internet hosts to which Telnet connections are made.

Kermit协议[KER]在多种硬件和软件平台之间,通过多种类型的连接(包括终端连接)执行纠错文件传输和管理。它由大量Telnet客户端支持,并且在与Telnet连接的Internet主机上也广泛可用。

Traditionally, the Kermit protocol connection is started manually by a user, or perhaps by an automated script. It is the user's responsibility to start the Kermit server on one end of the connection and the Kermit client on the other, or to start a Kermit "send" operation on one end and a Kermit "receive" on the other.

传统上,Kermit协议连接由用户手动启动,或者可能由自动脚本启动。用户负责在连接的一端启动Kermit服务器,在另一端启动Kermit客户端,或者在一端启动Kermit“发送”操作,在另一端启动Kermit“接收”。

This procedure grew out of necessity on ordinary direct-dial connections, and serves its purpose within the limitations of that context. But it introduces timing and dexterity problems, and lacks an effective way for each Kermit program to determine the "mode" of the other, or even its very presence, and therefore to know with certainty which operations and procedures are legal on the connection at any given time.

此过程源于普通直接拨号连接的需要,并在该上下文的限制范围内实现其目的。但是,它引入了时间和灵活性问题,并且缺乏一种有效的方法让每个Kermit项目确定另一方的“模式”,甚至是它的存在,因此无法确定在任何给定时间,哪些操作和程序在连接上是合法的。

When Kermit services are offered on the Internet, however, a strong coupling can be established between the two end applications by having the Telnet protocol [TEL] serve as a supervisor for Kermit sessions, ensuring that a valid and known relationship is always obtained. Kermit sessions are, in effect, embedded within Telnet sessions, with Telnet providing the mechanism for starting and stopping them and defining which end is the Kermit client and which is the Kermit server, possibly changing the relationship in response to user actions.

然而,当在互联网上提供Kermit服务时,通过让Telnet协议[TEL]充当Kermit会话的监督者,可以在两个终端应用程序之间建立强耦合,确保始终获得有效和已知的关系。Kermit会话实际上嵌入到Telnet会话中,Telnet提供启动和停止它们的机制,并定义哪一端是Kermit客户端,哪一端是Kermit服务器,可能会根据用户操作更改关系。

2. DEFINITIONS
2. 定义

Kermit server A software program that is ready to accept and act upon commands in the form of well-defined Kermit packets [KER].

Kermit服务器一种软件程序,它可以接受定义良好的Kermit数据包形式的命令并对其进行操作[KER]。

Kermit client A software program that receives requests through its user interface from a human agent (or a script or other source) and translates them to command packets, which it sends to a Kermit server, thus initiating a Kermit protocol transaction such as the transfer of one or more files.

Kermit客户端:一种软件程序,通过其用户界面接收来自人工代理(或脚本或其他来源)的请求,并将其转换为命令包,发送给Kermit服务器,从而启动Kermit协议事务,如传输一个或多个文件。

Availability of Kermit server For the purposes of this document, a Kermit server is said to be available if, through the negotiations described herein, its Telnet partner knows that it is a Kermit server.

Kermit服务器的可用性就本文件而言,如果通过本文所述的协商,Kermit服务器的Telnet合作伙伴知道它是Kermit服务器,则称其可用。

3. COMMANDS AND CODES
3. 命令和代码

Support for a Kermit server is negotiated separately in each direction, allowing Kermit service to be embedded in the Telnet client, the Telnet server, or in both. The proposed Telnet extensions are, therefore, symmetrical.

对Kermit服务器的支持在各个方向上分别协商,允许Kermit服务嵌入到Telnet客户端、Telnet服务器或两者中。因此,提议的Telnet扩展是对称的。

When the connection is first opened, Kermit service is unavailable in both directions.

第一次打开连接时,Kermit服务在两个方向都不可用。

The availability of Kermit service is negotiated using the following Telnet option:

Kermit服务的可用性通过以下Telnet选项协商:

KERMIT 47 (assigned by IANA)

KERMIT 47(由IANA指定)

The state of the connection is controlled by the following Telnet subnegotiation function codes:

连接状态由以下Telnet子协商功能代码控制:

START-SERVER 0 STOP-SERVER 1 REQ-START-SERVER 2 REQ-STOP-SERVER 3 SOP 4 RESP-START-SERVER 8 RESP-STOP-SERVER 9

启动服务器0停止服务器1请求启动服务器2请求停止服务器3 SOP 4响应启动服务器8响应停止服务器9

4. COMMAND MEANINGS
4. 命令含义

The KERMIT OPTION is negotiated using the standard Telnet mechanisms:

KERMIT选项使用标准Telnet机制协商:

IAC WILL KERMIT The sender of this command incorporates a Kermit server and is willing to negotiate its use.

IAC将KERMIT此命令的发送方包含一个KERMIT服务器,并愿意协商其使用。

IAC WONT KERMIT The sender of this command does not incorporate a Kermit server or refuses to negotiate its use.

IAC WONT KERMIT此命令的发送方未合并KERMIT服务器或拒绝协商其使用。

IAC DO KERMIT The sender of this command requests that the receiver negotiate use of a Kermit server.

IAC DO KERMIT此命令的发送方请求接收方协商使用KERMIT服务器。

IAC DONT KERMIT The sender of this command refuses to negotiate the use of a Kermit server.

IAC DONT KERMIT此命令的发送方拒绝协商KERMIT服务器的使用。

Once WILL KERMIT is negotiated in a particular direction, subnegotiations are used to indicate or request a change in state of the connection, or to convey other information. Subnegotiations may be sent at any time.

一旦WILL KERMIT在一个特定的方向上被协商,子协商就被用来表示或请求改变连接状态,或传达其他信息。子协商可随时发送。

IAC SB KERMIT START-SERVER This command is sent by the WILL side to indicate that the Kermit server is now active; that is, that client-initiated Kermit packets will be accepted.

IAC SB KERMIT START-SERVER此命令由WILL端发送,以指示KERMIT服务器现在处于活动状态;也就是说,将接受客户端启动的Kermit数据包。

IAC SB KERMIT STOP-SERVER This command is sent by the WILL side to indicate that the Kermit server is no longer active, and therefore that it is not ready to accept Kermit packets.

IAC SB KERMIT STOP-SERVER此命令由WILL端发送,以指示KERMIT服务器不再处于活动状态,因此它不准备接受KERMIT数据包。

IAC SB KERMIT REQ-START-SERVER This command is sent by the DO side to request that the Kermit server be started. It must be responded to with either RESP-START-SERVER or RESP-STOP-SERVER depending upon whether the request was accepted.

IAC SB KERMIT REQ-START-SERVER DO端发送此命令以请求启动KERMIT服务器。根据请求是否被接受,必须使用RESP-START-SERVER或RESP-STOP-SERVER对其进行响应。

IAC SB KERMIT REQ-STOP-SERVER This command is sent by the DO side to request that the Kermit server be stopped. It must be responded to with either RESP-START-SERVER or RESP-STOP-SERVER depending upon whether the request was accepted.

IAC SB KERMIT REQ-STOP-SERVER此命令由DO端发送,以请求停止KERMIT服务器。根据请求是否被接受,必须使用RESP-START-SERVER或RESP-STOP-SERVER对其进行响应。

IAC SB KERMIT RESP-START-SERVER This command is sent by the WILL side in response to REQ-START-SERVER or REQ-STOP-SERVER to indicate that the Kermit server is active after the request was accepted or denied.

IAC SB KERMIT RESP-START-SERVER此命令由意志方发送,以响应REQ-START-SERVER或REQ-STOP-SERVER,指示在接受或拒绝请求后KERMIT服务器处于活动状态。

IAC SB KERMIT RESP-STOP-SERVER This command is sent by the WILL side in response to REQ-START-SERVER or REQ-STOP-SERVER to indicate that the Kermit server is not active after the request was accepted or denied.

IAC SB KERMIT RESP-STOP-SERVER此命令由意志方发送,以响应REQ-START-SERVER或REQ-STOP-SERVER,指示在接受或拒绝请求后KERMIT服务器未处于活动状态。

IAC SB KERMIT SOP <octet> Kermit Start Of Packet. The sender of this command specifies the octet it will use to mark the beginning of the Kermit packets it sends. This command must be sent by each connection partner upon the first WILL/DO pair to allow unambiguous identification of Kermit packets in the data stream. This subnegotiation must be sent whenever the Start of Packet character changes. The values

IAC SB KERMIT SOP<octet>KERMIT数据包开始。此命令的发送方指定将用于标记其发送的Kermit数据包开始的八位字节。该命令必须由每个连接伙伴在第一个WILL/DO对上发送,以允许在数据流中明确标识Kermit数据包。每当数据包的开始字符改变时,必须发送此子协商。价值观

are restricted to ASCII C0 control characters other than Carriage Return and NUL. The normal value is 1 (ASCII SOH). The two Kermit partners normally use the same SOP, but may use distinct ones if desired.

仅限于ASCII C0控制字符,而非回车符和NUL。正常值为1(ASCII SOH)。两个Kermit合作伙伴通常使用相同的SOP,但如果需要,可以使用不同的SOP。

IAC SB KERMIT SOP is necessary to allow each Telnet partner to recognize subsequent incoming Kermit packets. Data following the SOP is processed by the Kermit packet analyzer. All other Kermit protocol parameters are automatically negotiated within the Kermit protocol upon the initial exchange of Kermit packets [KER].

IAC SB KERMIT SOP是允许每个Telnet合作伙伴识别后续传入KERMIT数据包所必需的。SOP后的数据由Kermit数据包分析仪处理。在初始交换Kermit数据包[KER]时,所有其他Kermit协议参数在Kermit协议内自动协商。

START-SERVER and STOP-SERVER commands must be sent by the WILL side whenever the state of the Kermit server changes. When WILL is successfully negotiated the state of the WILL side is assumed to be STOP-SERVER. If the server is active, the WILL side must send a START-SERVER to indicate the change in state.

每当Kermit服务器的状态发生变化时,WILL端必须发送START-SERVER和STOP-SERVER命令。当成功协商遗嘱时,将假定遗嘱方的状态为STOP-SERVER。如果服务器处于活动状态,则意志方必须发送启动服务器以指示状态的更改。

The receiver of a REQ-START-SERVER or REQ-STOP-SERVER is not required to agree to the request to change state. The receiver must respond with either RESP-START-SERVER or RESP-STOP-SERVER to indicate the state of the Kermit Server subsequent to the request. RESP-xxx-SERVER is sent instead of xxx-SERVER to enable the sender of REQ-xxx-SERVER to distinguish between the WILL side's spontaneous change in state and the response to the DO side's request.

REQ-START-SERVER或REQ-STOP-SERVER的接收方无需同意更改状态的请求。接收方必须使用RESP-START-SERVER或RESP-STOP-SERVER进行响应,以指示请求后Kermit服务器的状态。发送RESP xxx SERVER而不是xxx SERVER,以使REQ xxx SERVER的发送方能够区分遗嘱方的自发状态变化和对DO方请求的响应。

If the Kermit server receives a Kermit packet commanding it to cease Kermit service (such as a FINISH, REMOTE EXIT or BYE packet [KER]), it must send IAC SB KERMIT STOP-SERVER if the command is accepted.

如果Kermit服务器接收到一个Kermit数据包,命令其停止Kermit服务(如完成、远程退出或BYE数据包[KER]),则如果该命令被接受,它必须发送IAC SB Kermit STOP-server。

These rules ensure that the Telnet client's user interface always knows whether (and on which end) a Kermit server is available, and can therefore present the user only with valid choices, and that changes in state of one Telnet partner automatically switch the other to a complementary and valid state.

这些规则确保Telnet客户端的用户界面始终知道Kermit服务器是否可用(以及在哪一端),因此只能向用户提供有效的选择,并且一个Telnet合作伙伴的状态变化会自动将另一个切换到互补的有效状态。

While it is possible for a traditional telnet service (port 23) to implement this option while at the same time supporting the existing remote shell access functionality, it is not expected that this option will be used in that manner. Instead, this option is primarily meant for use with dedicated Kermit services such as the Internet Kermit Service (port 1649) [IKS].

虽然传统的telnet服务(端口23)可以实现此选项,同时支持现有的远程外壳访问功能,但预计不会以这种方式使用此选项。相反,此选项主要用于专用的Kermit服务,如Internet Kermit服务(端口1649)[IKS]。

5. KERMIT PROTOCOL IMPLICATIONS
5. 克米特协议的影响

The Kermit protocol is described elsewhere [KER]. It is an extensible and self-configuring protocol, like Telnet, and thus any two proper Kermit implementations should interoperate automatically.

Kermit协议在别处有描述[KER]。它是一个可扩展的自配置协议,就像Telnet一样,因此任何两个适当的Kermit实现都应该自动互操作。

In Kermit, as in Telnet, one particular octet is distinguished. In Telnet's case, it is IAC (decimal 255); in Kermit's it is the character specified by the IAC SB KERMIT SOP negotiation, normally SOH (decimal 1, Ctrl-A). All Kermit packets must begin with the SOP and should not contain the SOP character in an unquoted form.

在Kermit和Telnet中,有一个特殊的八位组是可以区分的。就Telnet而言,它是IAC(十进制255);在Kermit中,它是IAC SB Kermit SOP协商指定的字符,通常为SOH(十进制1,Ctrl-A)。所有Kermit数据包必须以SOP开头,且不应包含无引号形式的SOP字符。

Telnet protocol takes precedence over Kermit protocol; whenever an IAC is detected, it is processed as the beginning of a Telnet command unless quoted by another IAC. Telnet commands can contain any characters at all, including the SOP octet, transparently to the Kermit protocol, and in fact Telnet commands are not seen by the Kermit protocol at all.

Telnet协议优先于Kermit协议;每当检测到IAC时,除非另一IAC引用,否则它将作为Telnet命令的开头处理。Telnet命令可以包含任何字符,包括SOP八位字节,对Kermit协议是透明的,事实上,Telnet命令根本不被Kermit协议看到。

Kermit protocol must follow Telnet NVT rules in each direction when Telnet binary mode is not negotiated for that direction.

当Telnet二进制模式未针对该方向协商时,Kermit协议必须在每个方向上遵循Telnet NVT规则。

If 8-bit transparency is desired, Telnet binary mode may be negotiated upon entry to Kermit protocol in the appropriate direction, and the previous mode (NVT or binary) restored upon exit from Kermit protocol. Telnet binary mode can result in more efficient transfers, but is not required for data transfer, since Kermit protocol does not require a transparent path.

如果需要8位透明性,Telnet二进制模式可在进入Kermit协议时以适当的方向协商,并在退出Kermit协议时恢复先前的模式(NVT或二进制)。Telnet二进制模式可以实现更高效的传输,但数据传输不需要Telnet二进制模式,因为Kermit协议不需要透明路径。

6. EXAMPLES
6. 例子
6.1. EXAMPLE 1
6.1. 例1

The Telnet server contains a Kermit server. The Telnet client includes Kermit protocol but does not implement the Telnet KERMIT Option.

Telnet服务器包含一个Kermit服务器。Telnet客户端包括Kermit协议,但未实现Telnet Kermit选项。

   Telnet Server                   Telnet Client
   -----------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                   <responds to negotiations>
                                   DONT KERMIT
                                   WONT KERMIT
        
   Telnet Server                   Telnet Client
   -----------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                   <responds to negotiations>
                                   DONT KERMIT
                                   WONT KERMIT
        

From this point, no subnegotiations take place, and the Kermit client/server relationship is under manual control of the user of the Telnet client.

从这一点来看,不会发生子协商,Kermit客户机/服务器关系由Telnet客户机的用户手动控制。

6.2. EXAMPLE 2
6.2. 例2

The Telnet server contains a Kermit server and starts a Kermit server immediately after a connection is made. The Telnet client does not offer a Kermit server.

Telnet服务器包含一个Kermit服务器,并在建立连接后立即启动Kermit服务器。Telnet客户端不提供Kermit服务器。

   Telnet Server                   Telnet Client
   -----------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                   <responds to negotiations>
                                   DO KERMIT
                                   SB KERMIT SOP <0x01>
                                   WONT KERMIT
   SB KERMIT SOP <0x01>
        
   Telnet Server                   Telnet Client
   -----------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                   <responds to negotiations>
                                   DO KERMIT
                                   SB KERMIT SOP <0x01>
                                   WONT KERMIT
   SB KERMIT SOP <0x01>
        

<starts Kermit Server> SB KERMIT START-SERVER

<starts Kermit Server>SB Kermit START-Server

At this point the Telnet client knows that a Kermit server is on the other end of the connection, and so may customize its command set or menus to allow only those commands that are valid as a client of a Kermit server.

此时,Telnet客户端知道Kermit服务器位于连接的另一端,因此可以自定义其命令集或菜单,以仅允许那些作为Kermit服务器客户端有效的命令。

6.3. EXAMPLE 3
6.3. 例3

Telnet server and Telnet client both contain a Kermit server. Telnet client Kermit server is active whenever its terminal emulator is active, and not active at other times. The Telnet server is used for shell access and does not start a Kermit Server unless requested.

Telnet服务器和Telnet客户端都包含一个Kermit服务器。Telnet客户端Kermit服务器在其终端仿真器处于活动状态时处于活动状态,而在其他时间不处于活动状态。Telnet服务器用于shell访问,除非请求,否则不会启动Kermit服务器。

   Telnet Server                 Telnet Client
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to negotiations>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
                                 WILL KERMIT
   SB KERMIT SOP <0x01>
                                 <telnet client enters terminal emulator>
                                 SB KERMIT START-SERVER
        
   Telnet Server                 Telnet Client
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to negotiations>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
                                 WILL KERMIT
   SB KERMIT SOP <0x01>
                                 <telnet client enters terminal emulator>
                                 SB KERMIT START-SERVER
        

<client leaves terminal emulator> SB KERMIT STOP-SERVER

<client leave terminal emulator>SB KERMIT停止服务器

<client requests Kermit service> SB KERMIT REQ-START-SERVER <starts Kermit server> SB KERMIT RESP-START-SERVER <client sends Kermit FINISH packet> <stops Kermit server> SB KERMIT STOP-SERVER <client returns to terminal emulator> SB KERMIT START-SERVER

<client requests Kermit service>SB Kermit REQ-START-SERVER<starts Kermit SERVER>SB Kermit RESP-START-SERVER<client sends Kermit FINISH packet><stops Kermit SERVER>SB Kermit STOP-SERVER<client returns to terminal emulator>SB Kermit START-SERVER

6.4. EXAMPLE 4
6.4. 例4

Telnet server and Telnet client both contain a Kermit server. Telnet client's Kermit server is active whenever the terminal emulator is active. Telnet server is used solely for Kermit protocol and automatically starts a Kermit Server upon accepting the connection.

Telnet服务器和Telnet客户端都包含一个Kermit服务器。只要终端仿真器处于活动状态,Telnet客户端的Kermit服务器就会处于活动状态。Telnet服务器仅用于Kermit协议,并在接受连接时自动启动Kermit服务器。

   Telnet Server                 Telnet Client
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to negotiations>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
                                 WILL KERMIT
        
   Telnet Server                 Telnet Client
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to negotiations>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
                                 WILL KERMIT
        

SB KERMIT SOP <0x01> <client enters terminal emulator> SB KERMIT START-SERVER

SB KERMIT SOP<0x01><客户端进入终端仿真器>SB KERMIT启动服务器

<in response to DO> SB KERMIT SOP <0x01> SB KERMIT START-SERVER <client restricts command set to Kermit protocol commands> SB KERMIT STOP-SERVER

<响应DO>SB KERMIT SOP<0x01>SB KERMIT START-SERVER<客户端将命令集限制为KERMIT协议命令>SB KERMIT STOP-SERVER

<client performs Kermit protocol operations>

<客户端执行Kermit协议操作>

<client want to enter terminal mode> SB KERMIT REQ-STOP-SERVER

<客户端要进入终端模式>SB KERMIT REQ-STOP-SERVER

<Kermit Server refuses> SB KERMIT RESP-START-SERVER

<Kermit Server拒绝>SB Kermit RESP-START-Server

6.5. EXAMPLE 5
6.5. 例5

This is an example of something that should not be allowed to happen. Some Telnet clients that implement file transfer capabilities are designed to accept incoming connections. In this situation the Telnet Client acts as a pseudo Telnet Server but without the ability to provide shell access or many of the other functions associated with Telnet. If both Telnet clients support this option and contain a Kermit server that is active during terminal emulation there is the potential for a deadlock situation if scripting is also supported. This is because Telnet clients that support a script language do not process input while waiting for the next command to be issued.

这是一个不应该被允许发生的事情的例子。一些实现文件传输功能的Telnet客户端设计为接受传入连接。在这种情况下,Telnet客户端充当伪Telnet服务器,但无法提供shell访问或与Telnet相关的许多其他功能。如果两个Telnet客户端都支持此选项,并且包含在终端仿真期间处于活动状态的Kermit服务器,则如果还支持脚本,则可能出现死锁情况。这是因为支持脚本语言的Telnet客户端在等待下一个命令发出时不处理输入。

   Telnet Client One             Telnet Client Two
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to WILL>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
        
   Telnet Client One             Telnet Client Two
   ---------------------------   -----------------------------
   <starts negotiations>
   WILL KERMIT
   DO KERMIT
                                 <responds to WILL>
                                 DO KERMIT
                                 SB KERMIT SOP <0x01>
        

<in response to DO> SB KERMIT SOP <0x01> SB KERMIT START-SERVER <responds to DO> WILL KERMIT SB KERMIT START-SERVER

<in response to DO>SB KERMIT SOP<0x01>SB KERMIT START-SERVER<response to DO>将KERMIT SB KERMIT START-SERVER

<client one restricts command set to Kermit protocol and disables Kermit Server> SB KERMIT STOP-SERVER <client two restricts command set to Kermit protocol and disables Kermit Server> SB KERMIT STOP-SERVER

<客户端一将命令集限制为Kermit协议并禁用Kermit服务器>SB Kermit停止服务器<客户端二将命令集限制为Kermit协议并禁用Kermit服务器>SB Kermit停止服务器

At this point both clients have restricted their command set to Kermit Protocol commands. However, in both cases neither side is processing input. Therefore the following restriction MUST be enforced: A Telnet partner may not restrict the command set if it accepted the incoming connection.

此时,两个客户端都将其命令集限制为Kermit协议命令。然而,在这两种情况下,双方都不处理输入。因此,必须强制执行以下限制:如果Telnet合作伙伴接受传入连接,则不能限制命令集。

7. SECURITY
7. 安全

Implementors of this Telnet Option must enforce appropriate user authentication and file system access restrictions in conjunction with their implementation of the Kermit file transfer protocol. These issues are beyond the scope of this document.

此Telnet选项的实施者必须在实施Kermit文件传输协议的同时实施适当的用户身份验证和文件系统访问限制。这些问题超出了本文件的范围。

8. REFERENCES
8. 参考资料

[BCP] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[BCP]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[KER] da Cruz, Frank, "Kermit, A File Transfer Protocol", Digital Press/ Butterworth Heinemann, Newton, MA, ISBN 0-932376-88-6 (1987).

[KER]da Cruz,Frank,“Kermit,一种文件传输协议”,数字出版社/巴特沃斯·海涅曼,马萨诸塞州牛顿,ISBN 0-932376-88-6(1987年)。

[IKS] da Cruz, F. and J. Altman, "Internet Kermit Service", RFC 2839, May 2000.

[IKS]da Cruz,F.和J.Altman,“互联网克米特服务”,RFC 28392000年5月。

[TEL] Postel, J. and J. Reynolds, "Telnet Protocol Specification", STD 8, RFC 854, May 1983.

[电话]Postel,J.和J.Reynolds,“Telnet协议规范”,STD 8,RFC 854,1983年5月。

[TEL] Postel, J. and J. Reynolds, "Telnet Option Specification", STD 8, RFC 855, May 1983.

[电话]Postel,J.和J.Reynolds,“Telnet选项规范”,STD 8,RFC 855,1983年5月。

9. AUTHORS' ADDRESSES
9. 作者地址

Jeffrey E. Altman

杰弗里·E·奥特曼

EMail:jaltman@columbia.edu

电邮:jaltman@columbia.edu

Frank da Cruz

弗兰克·达克鲁兹

   EMail: fdc@columbia.edu
        
   EMail: fdc@columbia.edu
        
   The Kermit Project
   Columbia University
   612 West 115th Street
   New York NY 10025-7799
   USA
   http://www.columbia.edu/kermit/
   http://www.kermit-project.org/
        
   The Kermit Project
   Columbia University
   612 West 115th Street
   New York NY 10025-7799
   USA
   http://www.columbia.edu/kermit/
   http://www.kermit-project.org/
        
10. Full Copyright Statement
10. 完整版权声明

Copyright (C) The Internet Society (2000). All Rights Reserved.

版权所有(C)互联网协会(2000年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。