Network Working Group                                           B. Kelly
Request for Comments: 2355                             Auburn University
Obsoletes: 1647                                                June 1998
Category: Standards Track
        
Network Working Group                                           B. Kelly
Request for Comments: 2355                             Auburn University
Obsoletes: 1647                                                June 1998
Category: Standards Track
        

TN3270 Enhancements

TN3270增强功能

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

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

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

Abstract

摘要

This document describes a protocol that more fully supports 3270 devices than do traditional tn3270 practices. Specifically, it defines a method of emulating both the terminal and printer members of the 3270 family of devices via Telnet; it provides for the ability of a Telnet client to request that it be assigned a specific device-name (also referred to as "LU name" or "network name"); finally, it adds support for a variety of functions such as the ATTN key, the SYSREQ key, and SNA response handling.

本文档描述的协议比传统tn3270实践更全面地支持3270设备。具体地说,它定义了一种通过Telnet模拟3270系列设备的终端和打印机成员的方法;它提供了Telnet客户端请求为其分配特定设备名称(也称为“LU名称”或“网络名称”)的能力;最后,它增加了对各种功能的支持,如ATTN键、SYSREQ键和SNA响应处理。

This protocol is negotiated under the TN3270E Telnet Option, and is unrelated to the Telnet 3270 Regime Option as defined in RFC 1041 [1].

本协议根据TN3270E Telnet选项进行协商,与RFC 1041[1]中定义的Telnet 3270制度选项无关。

TABLE OF CONTENTS

目录

   1.  Introduction ...............................................  2
      1.1  Changes to RFC 1647 ....................................  4
   2.  TN3270E OVERVIEW ...........................................  5
   3.  COMMAND NAMES AND CODES ....................................  6
   4.  COMMAND MEANINGS ...........................................  7
   5.  DEFAULT SPECIFICATION ......................................  9
   6.  MOTIVATION .................................................  9
   7.  TN3270E SUB-NEGOTIATION RULES ..............................  9
      7.1  DEVICE-TYPE Negotiation ................................  9
          7.1.1 Device Pools ...................................... 10
          7.1.2 CONNECT Command ................................... 12
        
   1.  Introduction ...............................................  2
      1.1  Changes to RFC 1647 ....................................  4
   2.  TN3270E OVERVIEW ...........................................  5
   3.  COMMAND NAMES AND CODES ....................................  6
   4.  COMMAND MEANINGS ...........................................  7
   5.  DEFAULT SPECIFICATION ......................................  9
   6.  MOTIVATION .................................................  9
   7.  TN3270E SUB-NEGOTIATION RULES ..............................  9
      7.1  DEVICE-TYPE Negotiation ................................  9
          7.1.1 Device Pools ...................................... 10
          7.1.2 CONNECT Command ................................... 12
        
          7.1.3 ASSOCIATE Command ................................. 12
          7.1.4 Accepting a Request ............................... 13
          7.1.5 REJECT Command .................................... 13
      7.2  FUNCTIONS Negotiation .................................. 14
          7.2.1 Commands .......................................... 14
          7.2.2 List of TN3270E Functions ......................... 16
   8.  TN3270E DATA MESSAGES ...................................... 16
      8.1  The TN3270E Message Header ............................. 18
          8.1.1 DATA-TYPE Field ................................... 18
          8.1.2 REQUEST-FLAG Field ................................ 19
          8.1.3 RESPONSE-FLAG Field ............................... 19
          8.1.4 SEQ-NUMBER Field .................................. 20
   9.  BASIC TN3270E .............................................. 20
      9.1  3270 Mode and NVT Mode ................................. 21
   10. DETAILS OF PROCESSING TN3270E FUNCTIONS .................... 22
      10.1 The SCS-CTL-CODES Function ............................. 22
      10.2 The DATA-STREAM-CTL Function ........................... 23
      10.3 The BIND-IMAGE Function ................................ 24
      10.4 The RESPONSES Function ................................. 25
         10.4.1 Response Messages ................................. 26
      10.5 The SYSREQ Function .................................... 28
         10.5.1 Background ........................................ 28
         10.5.2 TN3270E Implementation of SYSREQ .................. 29
   11. THE 3270 ATTN KEY .......................................... 30
   12. 3270 STRUCTURED FIELDS ..................................... 31
   13. IMPLEMENTATION GUIDELINES .................................. 31
      13.1 3270 Data Stream Notes ................................. 31
      13.2 Negotiation of the TN3270E Telnet Option ............... 32
      13.3 A "Keep-alive" Mechanism ............................... 32
      13.4 Examples ............................................... 32
   14. SECURITY CONSIDERATIONS .................................... 36
   15. REFERENCES ................................................. 36
   16. AUTHOR'S NOTE .............................................. 37
   17. AUTHOR'S ADDRESS ........................................... 37
   18. Full Copyright Statement ................................... 38
        
          7.1.3 ASSOCIATE Command ................................. 12
          7.1.4 Accepting a Request ............................... 13
          7.1.5 REJECT Command .................................... 13
      7.2  FUNCTIONS Negotiation .................................. 14
          7.2.1 Commands .......................................... 14
          7.2.2 List of TN3270E Functions ......................... 16
   8.  TN3270E DATA MESSAGES ...................................... 16
      8.1  The TN3270E Message Header ............................. 18
          8.1.1 DATA-TYPE Field ................................... 18
          8.1.2 REQUEST-FLAG Field ................................ 19
          8.1.3 RESPONSE-FLAG Field ............................... 19
          8.1.4 SEQ-NUMBER Field .................................. 20
   9.  BASIC TN3270E .............................................. 20
      9.1  3270 Mode and NVT Mode ................................. 21
   10. DETAILS OF PROCESSING TN3270E FUNCTIONS .................... 22
      10.1 The SCS-CTL-CODES Function ............................. 22
      10.2 The DATA-STREAM-CTL Function ........................... 23
      10.3 The BIND-IMAGE Function ................................ 24
      10.4 The RESPONSES Function ................................. 25
         10.4.1 Response Messages ................................. 26
      10.5 The SYSREQ Function .................................... 28
         10.5.1 Background ........................................ 28
         10.5.2 TN3270E Implementation of SYSREQ .................. 29
   11. THE 3270 ATTN KEY .......................................... 30
   12. 3270 STRUCTURED FIELDS ..................................... 31
   13. IMPLEMENTATION GUIDELINES .................................. 31
      13.1 3270 Data Stream Notes ................................. 31
      13.2 Negotiation of the TN3270E Telnet Option ............... 32
      13.3 A "Keep-alive" Mechanism ............................... 32
      13.4 Examples ............................................... 32
   14. SECURITY CONSIDERATIONS .................................... 36
   15. REFERENCES ................................................. 36
   16. AUTHOR'S NOTE .............................................. 37
   17. AUTHOR'S ADDRESS ........................................... 37
   18. Full Copyright Statement ................................... 38
        
1. Introduction
1. 介绍

Traditionally, support for 3270 terminal emulation over Telnet has been accomplished by the de facto standard of negotiating three separate Telnet Options - Terminal-Type [2], Binary Transmission [3], and End of Record [4]. Note that there is no RFC that specifies this negotiation as a standard. RFC 1041 attempted to standardize the method of negotiating 3270 terminal support by defining the 3270 Regime Telnet Option. Very few developers and vendors ever implemented RFC 1041.

传统上,通过协商三个单独的Telnet选项(终端类型[2]、二进制传输[3]和记录结束[4])的事实标准实现了对3270终端在Telnet上仿真的支持。请注意,没有RFC将此协商指定为标准。RFC 1041试图通过定义3270体制Telnet选项来标准化协商3270终端支持的方法。很少有开发人员和供应商实现过RFC1041。

This document will refer to the existing practice of negotiating these three Telnet Options before exchanging the 3270 data stream as "traditional tn3270". Traditional tn3270 is documented in [10].

本文件将参考在将3270数据流交换为“传统tn3270”之前协商这三个Telnet选项的现有实践。传统的tn3270记录在[10]中。

NOTE: Except where otherwise stated, this document does not distinguish between Telnet servers that represent SNA devices and those that represent non-SNA 3270 devices.

注:除非另有说明,本文件不区分代表SNA设备的Telnet服务器和代表非SNA 3270设备的Telnet服务器。

All references in this document to the 3270 data stream, 3270 data stream commands, orders, structured fields and the like rely on [5].

本文档中对3270数据流、3270数据流命令、命令、结构化字段等的所有引用均依赖于[5]。

References to SNA Request and Response Units rely on [6]. References to SNA versus non-SNA operation rely on [7].

对SNA请求和响应单元的引用依赖于[6]。参考SNA与非SNA操作依赖于[7]。

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中的说明进行解释。

There were several shortcomings in traditional tn3270; among them were the following:

传统tn3270有几个缺点;其中包括:

- It provided no capability for Telnet clients to emulate the 328x class of printers.

- 它没有为Telnet客户端提供模拟328x类打印机的功能。

- There was no mechanism by which a Telnet client could request that a connection be associated with a given 3270 device-name. This can be of importance when a terminal session is being established, since many host applications behave differently depending on the network name of the terminal. In the case of printer emulation, this capability is an absolute necessity because a large number of host applications have some method of pre-defining printer destinations.

- Telnet客户端无法通过任何机制请求将连接与给定的3270设备名关联。这在建立终端会话时非常重要,因为许多主机应用程序的行为因终端的网络名称而异。在打印机仿真的情况下,此功能是绝对必要的,因为大量主机应用程序都有一些预先定义打印机目标的方法。

- The 3270 ATTN and SYSREQ keys were not universally supported.

- 3270 ATTN和SYSREQ密钥没有得到普遍支持。

- There was no support for the SNA positive/negative response process. This is particularly important if printer emulation is to function properly, but is also useful for some terminal applications. A positive response is used to indicate that the previously received data has been successfully processed. A negative response indicates some sort of error has occurred while processing the previously received data; this could be caused by the host application building a 3270 data stream that contains an invalid command, or by a mechanical error at the client side, among other things.

- 没有人支持国民账户体系的积极/消极响应过程。如果要使打印机仿真正常工作,这一点尤为重要,但对于某些终端应用程序也很有用。肯定响应用于指示先前接收的数据已成功处理。否定响应表示在处理先前接收的数据时发生了某种错误;这可能是由于主机应用程序生成包含无效命令的3270数据流,或者是由于客户端的机械错误等原因造成的。

- There was no mechanism by which the client could access the SNA Bind information. The Bind image contains a detailed description of the session between the Telnet server and the host application.

- 客户机无法通过任何机制访问SNA绑定信息。绑定映像包含Telnet服务器和主机应用程序之间会话的详细描述。

- There was no mechanism by which the server could determine whether a client supported 3270 structured fields, or a client could request that it receive them.

- 服务器无法通过任何机制确定客户端是否支持3270个结构化字段,或者客户端是否可以请求接收这些字段。

1.1 Changes to RFC 1647
1.1 对RFC1647的修改

This document replaces RFC 1647; the following is a summary of the changes that have been incorporated:

本文件取代RFC 1647;以下是已纳入的变更摘要:

- Reworded the Introduction to refer to traditional tn3270 in the past tense.

- 改写了引言,以过去时态引用传统的tn3270。

Affected sections: 1.

受影响路段:1。

- Added this section documenting changes to RFC 1647

- 新增本节,记录RFC 1647的变更

Affected sections: 1.1

受影响路段:1.1

- Clarified the specification of numeric literals contained in the document.

- 澄清了文档中包含的数字文本的规范。

Affected sections: 3. (first paragraph)

受影响路段:3。(第一段)

- Extensively revised several sections to

- 广泛修订了几个章节,以

1) clarify the motivation behind and use of the ASSOCIATE command 2) remove restrictive wording regarding the organization and use of server maintained device pools 3) distinguish between device-names and resource-names in the TN3270E device-type negotiation, and define a maximum length for device-names and resource-names

1) 澄清关联命令背后的动机和使用2)删除关于组织和使用服务器维护的设备池的限制性措辞3)在TN3270E设备类型协商中区分设备名称和资源名称,并定义设备名称和资源名称的最大长度

Affected sections: 4. (DEVICE-TYPE REQUEST command) and 7.1.1 through 7.1.6

受影响路段:4。(设备类型请求命令)和7.1.1至7.1.6

- Corrected the erroneous specification of the format of the function-list sent during TN3270E functions negotiation.

- 更正了TN3270E函数协商期间发送的函数列表格式的错误规范。

Affected sections: 7.2.1 (first paragraph)

受影响章节:7.2.1(第一段)

- Added a statement addressing what a client or server should do if an impasse is reached during TN3270E functions negotiation.

- 添加了一条语句,说明在TN3270E函数协商过程中遇到僵局时,客户端或服务器应该做什么。

Affected sections: 7.2.1 (last paragraph)

受影响章节:7.2.1(最后一段)

- Added a DATA-TYPE of PRINT-EOJ with a value of 0x08 to support the end-of-job indication for printers.

- 添加了值为0x08的PRINT-EOJ数据类型,以支持打印机的作业结束指示。

Affected sections: 8.1.1, 10.1, 10.2

受影响路段:8.1.1、10.1、10.2

- Clarified the description of the SEQ-NUMBER Field to state that

- 澄清了SEQ-NUMBER字段的描述,以说明

1) the field should be sent in network byte order (big endian) 2) either byte that contains a 0xff must be doubled to 0xffff before sending, and stripped back to 0xff after receipt.

1) 该字段应按网络字节顺序(大端)发送2)包含0xff的任一字节在发送前必须加倍为0xffff,并在接收后剥离回0xff。

Affected sections: 8.1.4

受影响路段:8.1.4

- Defined the format and maximum length of the Bind image.

- 定义了绑定图像的格式和最大长度。

Affected sections: 10.3 (fourth paragraph)

受影响章节:10.3(第四段)

- Clarified the misleading wording regarding allowable DATA-TYPEs when BIND-IMAGE has been negotiated and a BIND has been sent.

- 澄清了当BIND-IMAGE已协商且BIND已发送时,有关允许数据类型的误导性措辞。

Affected sections: 10.3 (last paragraph)

受影响章节:10.3(最后一段)

- Clarified the use of the SEQ-NUMBER field in regards to when it should be reset to zero.

- 阐明了SEQ-NUMBER字段在何时应重置为零方面的使用。

Affected sections: 10.4 (last paragraph)

受影响章节:10.4(最后一段)

- Clarified the format of the data when the DATA-TYPE field is SSCP-LU-DATA.

- 阐明数据类型字段为SSCP-LU-data时的数据格式。

Affected sections: 10.5.2 (fourth paragraph)

受影响章节:10.5.2(第四段)

- Reworded the Security section to refer to Kerberos.

- 重写了安全部分以引用Kerberos。

Affected sections: 14.

受影响地区:14个。

2. TN3270E Overview
2. TN3270E概述

In order to address these issues, this document proposes a new Telnet Option - TN3270E. Telnet clients and servers would be free to negotiate support of the TN3270E option or not. If either side does not support TN3270E, traditional tn3270 can be used; otherwise, a sub-negotiation will occur to determine what subset of TN3270E will

为了解决这些问题,本文件提出了一个新的Telnet选项——TN3270E。Telnet客户端和服务器可以自由协商是否支持TN3270E选项。如果任何一方不支持TN3270E,可以使用传统的tn3270;否则,将进行子协商以确定TN3270E的哪个子集将被删除

be used on the session. It is anticipated that a client or server capable of both types of 3270 emulation would attempt to negotiate TN3270E first, and only negotiate traditional tn3270 if the other side refuses TN3270E.

在会话中使用。预计能够进行这两种3270仿真的客户机或服务器将首先尝试协商TN3270E,并且仅在另一方拒绝TN3270E时协商传统tn3270。

Once a client and server have agreed to use TN3270E, negotiation of the TN3270E suboptions can begin. The two major elements of TN3270E sub-negotiation are:

一旦客户机和服务器同意使用TN3270E,就可以开始协商TN3270E子选项。TN3270E次级谈判的两个主要要素是:

- a device-type negotiation that is similar to, but somewhat more complicated than, the existing Telnet Terminal-Type Option.

- 一种设备类型协商,类似于现有的Telnet终端类型选项,但比之复杂一些。

- the negotiation of a set of supported 3270 functions, such as printer data stream type (3270 data stream or SNA Character Stream), positive/negative response exchanges, device status information, and the passing of BIND information from server to client.

- 协商一组受支持的3270功能,例如打印机数据流类型(3270数据流或SNA字符流)、正/负响应交换、设备状态信息,以及将绑定信息从服务器传递到客户端。

Successful negotiation of these two suboptions signals the beginning of 3270 data stream transmission. In order to support several of the new functions in TN3270E, each data message must be prefixed by a header. This header will contain flags and indicators that convey such things as positive and negative responses and what type of data follows the header (for example, 3270 data stream, SNA Character Stream, or device status information).

这两个子选项的成功协商标志着3270数据流传输的开始。为了支持TN3270E中的几个新功能,每个数据消息必须以头作为前缀。该报头将包含标志和指示符,这些标志和指示符传达正面和负面响应以及报头后面的数据类型(例如,3270数据流、SNA字符流或设备状态信息)。

3. Command Names and Codes
3. 命令名和代码

Please note that all numeric literals in this document specify decimal values, unless they are preceded by "0x", in which case a hexadecimal value is represented.

请注意,本文档中的所有数字文字都指定十进制值,除非它们前面有“0x”,在这种情况下表示十六进制值。

TN3270E 40 ASSOCIATE 00 CONNECT 01 DEVICE-TYPE 02 FUNCTIONS 03 IS 04 REASON 05 REJECT 06 REQUEST 07 SEND 08

TN3270E 40关联00连接01设备类型02功能03 IS 04原因05拒绝06请求07发送08

Reason-codes CONN-PARTNER 00 DEVICE-IN-USE 01 INV-ASSOCIATE 02 INV-NAME 03

原因代码CONN-PARTNER 00设备在用01库存-关联02库存-名称03

INV-DEVICE-TYPE 04 TYPE-NAME-ERROR 05 UNKNOWN-ERROR 06 UNSUPPORTED-REQ 07

INV-DEVICE-TYPE 04 TYPE-NAME-ERROR 05 UNKNOWN-ERROR 06 UNSUPPORED-REQ 07

Function Names BIND-IMAGE 00 DATA-STREAM-CTL 01 RESPONSES 02 SCS-CTL-CODES 03 SYSREQ 04

函数名称BIND-IMAGE 00 DATA-STREAM-CTL 01响应02 SCS-CTL-CODES 03 SYSREQ 04

4. Command Meanings
4. 命令含义

Refer to the Telnet Protocol Specification [8] for the meaning of IAC, DO, WILL, etc.

有关IAC、DO、WILL等的含义,请参阅Telnet协议规范[8]。

IAC WILL TN3270E

IAC将使用TN3270E

The sender of this command is willing to send TN3270E information in subsequent sub-negotiations.

此命令的发送方愿意在随后的子协商中发送TN3270E信息。

IAC WON'T TN3270E

IAC不会使用TN3270E

The sender of this command refuses to send TN3270E information.

此命令的发送方拒绝发送TN3270E信息。

IAC DO TN3270E

IAC DO TN3270E

The sender of this command is willing to receive TN3270E information in subsequent sub-negotiations.

此命令的发送方愿意在随后的子协商中接收TN3270E信息。

IAC DON'T TN3270E

IAC不需要TN3270E

The sender of this command refuses to receive TN3270E information.

此命令的发送方拒绝接收TN3270E信息。

Note that while they are not explicitly negotiated, the equivalent of the Telnet Binary Transmission Option [3] and the Telnet End of Record Option [4] is implied in the negotiation of the TN3270E Option. That is, a party to the negotiation that agrees to support TN3270E is automatically required to support bi-directional binary and EOR transmissions.

请注意,尽管没有明确协商,但在TN3270E选项的协商中隐含了Telnet二进制传输选项[3]和Telnet记录结束选项[4]的等价物。也就是说,自动要求同意支持TN3270E的谈判方支持双向二进制和EOR传输。

IAC SB TN3270E SEND DEVICE-TYPE IAC SE

IAC SB TN3270E发送设备类型IAC SE

Only the server may send this command. This command is used to request that the client transmit a device-type and, optionally, device-name information.

只有服务器可以发送此命令。此命令用于请求客户端传输设备类型和(可选)设备名称信息。

   IAC SB TN3270E DEVICE-TYPE REQUEST <device-type>
       [ [CONNECT <resource-name>] | [ASSOCIATE <device-name>] ] IAC SE
        
   IAC SB TN3270E DEVICE-TYPE REQUEST <device-type>
       [ [CONNECT <resource-name>] | [ASSOCIATE <device-name>] ] IAC SE
        

Only the client may send this command. It is used in response to the server's SEND DEVICE-TYPE command, as well as to suggest another device-type after the server has sent a DEVICE-TYPE REJECT command (see below). This command requests emulation of a specific 3270 device type and model. The REQUEST command may optionally include either the CONNECT or the ASSOCIATE command (but not both). If present, CONNECT must be followed by <resource-name> and ASSOCIATE must be followed by <device-name>. (See the section entitled "DEVICE-TYPE Negotiation" for more detailed information.)

只有客户端可以发送此命令。它用于响应服务器的发送设备类型命令,以及在服务器发送设备类型拒绝命令后建议另一种设备类型(见下文)。此命令请求模拟特定3270设备类型和型号。请求命令可以选择性地包括CONNECT或ASSOCIATE命令(但不能同时包括两者)。如果存在,则CONNECT后面必须跟有<resource name>,ASSOCIATE后面必须跟有<device name>。(有关更多详细信息,请参阅标题为“设备类型协商”的部分。)

   IAC SB TN3270E DEVICE-TYPE IS <device-type> CONNECT
       <device-name> IAC SE
        
   IAC SB TN3270E DEVICE-TYPE IS <device-type> CONNECT
       <device-name> IAC SE
        

Only the server may send this command. This command is used to accept a client's DEVICE-TYPE REQUEST command and to return the server-defined device-name.

只有服务器可以发送此命令。此命令用于接受客户端的设备类型请求命令,并返回服务器定义的设备名称。

IAC SB TN3270E DEVICE-TYPE REJECT REASON <reason-code> IAC SE

IAC SB TN3270E设备类型拒绝原因<原因代码>IAC SE

Only the server may send this command. This command is used to reject a client's DEVICE-TYPE REQUEST command.

只有服务器可以发送此命令。此命令用于拒绝客户端的设备类型请求命令。

IAC SB TN3270E FUNCTIONS REQUEST <function-list> IAC SE

IAC SB TN3270E功能请求<功能列表>IAC SE

Either side may send this command. This command is used to suggest a set of 3270 functions that will be supported on this session. It is also sent as an implicit rejection of a previous FUNCTIONS REQUEST command sent by the other side (see the section entitled "FUNCTIONS Negotiation" for more information). Note that when used to reject a FUNCTIONS REQUEST command, the function-list must not be identical to that received in the previous REQUEST command.

任何一方都可以发送此命令。此命令用于建议此会话将支持的一组3270函数。它还作为对另一方发送的先前函数请求命令的隐式拒绝发送(有关更多信息,请参阅标题为“函数协商”的部分)。请注意,当用于拒绝功能请求命令时,功能列表不得与上一个请求命令中接收到的功能列表相同。

IAC SB TN3270E FUNCTIONS IS <function-list> IAC SE

IAC SB TN3270E功能是<function list>IAC SE

Either side may send this command. This command is sent as a response to a FUNCTIONS REQUEST command and implies acceptance of the set of functions sent to it in the REQUEST command. Note that the list of functions in the FUNCTIONS IS command must match the list that was received in the previous FUNCTIONS REQUEST command.

任何一方都可以发送此命令。此命令作为对函数请求命令的响应发送,表示接受在请求命令中发送给它的函数集。请注意,“函数是”命令中的函数列表必须与上一个“函数请求”命令中接收到的列表相匹配。

5. Default Specification
5. 默认规范

WON'T TN3270E

不是吗

DON'T TN3270E

不要用TN3270E

i.e., TN3270E will not be used.

i、 例如,不使用TN3270E。

6. Motivation
6. 动机

See the section entitled "Introduction".

见题为“导言”的一节。

7. TN3270E Sub-negotiation Rules
7. TN3270E次级谈判规则

Once it has been agreed that TN3270E will be supported, the first sub-negotiation must concern the DEVICE-TYPE (and possibly device-name) information. Only after that has been successfully negotiated can the client and server exchange FUNCTIONS information. Only after both DEVICE-TYPE and FUNCTIONS have been successfully negotiated can 3270 data stream transmission occur.

一旦同意支持TN3270E,第一个子协商必须涉及设备类型(可能还有设备名称)信息。只有在成功协商之后,客户端和服务器才能交换功能信息。只有在成功协商设备类型和功能后,才能进行3270数据流传输。

7.1 DEVICE-TYPE Negotiation
7.1 设备类型协商

Device-type names are NVT ASCII strings, all upper case.

设备类型名称为NVT ASCII字符串,均为大写。

Device-type (and device-name) negotiation begins when the server transmits the DEVICE-TYPE SEND command to the client. The client responds with the DEVICE-TYPE REQUEST command, which must include a device-type and may include a resource-name or device-name request.

当服务器向客户端发送设备类型发送命令时,设备类型(和设备名称)协商开始。客户端使用设备类型请求命令进行响应,该命令必须包括设备类型,并且可能包括资源名称或设备名称请求。

Valid device-types are:

有效的设备类型包括:

erminals: IBM-3278-2 IBM-3278-2-E (24 row x 80 col display) IBM-3278-3 IBM-3278-3-E (32 row x 80 col display) IBM-3278-4 IBM-3278-4-E (43 row x 80 col display) IBM-3278-5 IBM-3278-5-E (27 row x 132 col display) IBM-DYNAMIC (no pre-defined display size)

终端:IBM-3278-2 IBM-3278-2-E(24行x 80列显示器)IBM-3278-3 IBM-3278-3-E(32行x 80列显示器)IBM-3278-4 IBM-3278-4-E(43行x 80列显示器)IBM-3278-5-E(27行x 132列显示器)IBM-DYNAMIC(无预定义的显示大小)

printers: IBM-3287-1

打印机:IBM-3287-1

Note that the use of '3278' and '3287' is NOT intended to exclude any particular device capabilities; they are used here only because they are commonly known designations for a terminal and a printer member of the 3270 family of devices. The intention is to simplify the device-type negotiation (in comparison to traditional tn3270) by minimizing the number of possible device-types, and by breaking the association of a specific piece of IBM hardware with a related set of data stream capabilities. For example, negotiation of device-type

请注意,“3278”和“3287”的使用并不是为了排除任何特定的设备功能;这里使用它们只是因为它们是3270设备系列中终端和打印机成员的常见名称。其目的是通过最小化可能的设备类型数量,打破特定IBM硬件与相关数据流功能集的关联,简化设备类型协商(与传统tn3270相比)。例如,设备类型的协商

IBM-3278-2-E does NOT in and of itself preclude the use of any of the functions associated with a physical 3279 model S2B. A client's ability to support the more advanced functions of the 3270 data stream will be indicated not by negotiation of an IBM device type and model number, but rather by the combination of Read Partition Query and Query Reply.

IBM-3278-2-E本身并不排除使用与物理3279 S2B型相关的任何功能。客户机支持3270数据流更高级功能的能力不是通过协商IBM设备类型和型号来表示的,而是通过读取分区查询和查询应答的组合来表示的。

All of the terminal device-types support a "primary" display size of 24 rows by 80 columns. The "-3", "-4" and "-5" types each support an "alternate" display size as noted in the above list. The IBM-DYNAMIC device-type implies no pre-defined alternate display size; this value will be passed from the client to host applications as part of the Query Reply structured field, and it can represent any display size the client and the host application can support.

所有终端设备类型都支持24行80列的“主要”显示大小。“-3”、“-4”和“-5”类型均支持上述列表中所述的“备用”显示尺寸。IBM-DYNAMIC设备类型意味着没有预定义的备用显示大小;此值将作为查询-答复结构化字段的一部分从客户端传递到主机应用程序,它可以表示客户端和主机应用程序可以支持的任何显示大小。

Terminal device-types with the "-E" suffix should only be negotiated by clients that are willing to support some subset of the 3270 "extended data stream". This usually includes at a minimum support for extended colors and highlighting, but may also include a number of other functions, such as graphics capability, alternate character sets, and partitions.

后缀为“-E”的终端设备类型只能由愿意支持3270“扩展数据流”的某个子集的客户端协商。这通常至少包括对扩展颜色和高亮显示的支持,但也可能包括许多其他功能,如图形功能、备用字符集和分区。

Clients that negotiate a terminal device-type with the "-E" suffix or the DYNAMIC type, as well as those that negotiate a printer device-type, must be able to accept and respond to a Read Partition Query command (see the section entitled "3270 Structured Fields"). This allows the client to indicate to host applications which subsets of the 3270 extended data stream the client is willing to support.

协商带有“-E”后缀或动态类型的终端设备类型的客户端,以及协商打印机设备类型的客户端,必须能够接受并响应读取分区查询命令(请参阅标题为“3270结构化字段”的部分)。这允许客户端向主机应用程序指示客户端愿意支持3270扩展数据流的哪些子集。

In a VTAM/SNA environment, negotiation of IBM-DYNAMIC as the device-type should result in a Bind in which the Presentation Services Usage screen field (the eleventh byte in the logmode's PSERVIC field) is set to 0x03, indicating that the alternate screen size will be determined by the Query Reply (Usable Area).

在VTAM/SNA环境中,将IBM-DYNAMIC协商为设备类型应导致绑定,其中Presentation Services Usage屏幕字段(logmode的PSERVIC字段中的第十一个字节)设置为0x03,表示备用屏幕大小将由查询回复(可用区域)确定。

7.1.1 Device Pools
7.1.1 设备池

An explanation of the CONNECT and ASSOCIATE commands first requires a discussion of the organization of terminal and printer device pools that the server maintains and from which it selects device-names to assign to session requests. Definition of a few terms is also in order.

要解释CONNECT和ASSOCIATE命令,首先需要讨论服务器维护的终端和打印机设备池的组织,并从中选择要分配给会话请求的设备名称。一些术语的定义也符合顺序。

The terms "device-name", "LU name" and "network name" can be considered interchangeable in this document. They refer to a specific terminal or printer device.

术语“设备名称”、“LU名称”和“网络名称”在本文件中可以互换。它们指的是特定的终端或打印机设备。

The term "resource-name" is less specific; it may refer to a device-name, but it may also be the name of a pool of printer or terminal devices. Such a named pool could serve to group devices with similar operational or administrative characteristics. In fact, this document places no restrictions on how a server makes use of resource-names, so long as the server can take a resource-name specified by the client and use it to come up with a device-name to assign to the session. Note, however, that servers must avoid allowing ambiguity; for example, they must not allow the definition of a device-name with the same name as that of a pool of devices.

术语“资源名称”不太具体;它可能指的是设备名称,但也可能是打印机或终端设备池的名称。这种命名池可以用于对具有类似操作或管理特征的设备进行分组。事实上,本文档对服务器如何使用资源名称没有任何限制,只要服务器可以使用客户端指定的资源名称,并使用该名称生成要分配给会话的设备名称。但是,请注意,服务器必须避免出现歧义;例如,它们不能允许定义与设备池同名的设备名。

Device-names and resource-names are specified as NVT ASCII strings in which upper and lower case are considered equivalent. The length of device-names and resource-names should not exceed 8 bytes.

设备名称和资源名称指定为NVT ASCII字符串,其中大写和小写被视为等效。设备名称和资源名称的长度不应超过8字节。

A "generic session request" is one which includes neither the CONNECT nor the ASSOCIATE command, while a "specific session request" is one that includes either the CONNECT or the ASSOCIATE command.

“通用会话请求”既不包括CONNECT命令,也不包括ASABLE命令,而“特定会话请求”则包括CONNECT命令或ASABLE命令。

If a TN3270E server wishes to support traditional tn3270 clients, it must maintain a set of terminal device-names that can be used to satisfy requests from such clients for terminal sessions. This same pool could be used to satisfy generic requests for terminal sessions from TN3270E clients.

如果TN3270E服务器希望支持传统的tn3270客户端,那么它必须维护一组终端设备名称,这些名称可用于满足此类客户端对终端会话的请求。该池可用于满足来自TN3270E客户端的终端会话的一般请求。

The server may also maintain any number of other pools of device-names. For example, there could be a pool of terminal device-names reserved for a specific department within the organization, or a pool of terminal device-names that have access to certain applications on the host.

服务器还可以维护任意数量的其他设备名称池。例如,可能存在为组织内的特定部门保留的终端设备名称池,或者存在可以访问主机上某些应用程序的终端设备名称池。

For any of these terminal device pools, the TN3270E server may also have defined a "partner" or "paired" printer device for each terminal in the pool. There should be a unique, one-to-one mapping between a terminal and its associated printer. The reasoning behind such a configuration is to allow for those host applications that produce printed output bound for a printer whose device-name is determined by the device-name of the terminal that initiated the print request. These printer devices can only be assigned to specific printer session requests that use the ASSOCIATE command (see below).

对于这些终端设备池中的任何一个,TN3270E服务器还可能为池中的每个终端定义了“伙伴”或“配对”打印机设备。终端与其相关打印机之间应具有唯一的一对一映射。这种配置背后的原因是允许那些主机应用程序生成为打印机绑定的打印输出,打印机的设备名称由发起打印请求的终端的设备名称确定。这些打印机设备只能分配给使用“关联”命令的特定打印机会话请求(见下文)。

In addition, the TN3270E server may also maintain one or more pools of printer device-names that are not associated with any terminal. These printer devices can only be assigned to specific printer session requests that use the CONNECT command (see below). This allows for those host applications that generate printed output bound for a printer whose device-name is determined by something other than the device-name of the terminal that initiated the print request (for

此外,TN3270E服务器还可以维护一个或多个与任何终端都不关联的打印机设备名称池。这些打印机设备只能分配给使用CONNECT命令的特定打印机会话请求(见下文)。这允许那些为打印机生成打印输出绑定的主机应用程序,该打印机的设备名不是由启动打印请求的终端的设备名决定的(例如

example, when the userid of the person signed on to a terminal determines the print destination). It is also possible that a pool of printer device-names could be maintained to satisfy generic requests for printers (i.e., those that specify neither CONNECT nor ASSOCIATE).

例如,当登录到终端的用户的用户标识确定打印目的地时)。还可以维护打印机设备名称池,以满足对打印机的一般请求(即既不指定连接也不指定关联的打印机)。

7.1.2 CONNECT Command
7.1.2 连接命令

CONNECT can be used by the client in two ways: if the resource-name it specifies is a device-name, then the client is requesting a specific device-name. If the specified resource-name is not a device-name, then the client is requesting any one of the device-names associated with the resource-name.

客户端可以通过两种方式使用CONNECT:如果它指定的资源名称是设备名称,则客户端正在请求特定的设备名称。如果指定的资源名称不是设备名称,则客户端正在请求与资源名称关联的任何一个设备名称。

In either case, the resource indicated by the specified resource-name must not conflict with the device-type; e.g., if the client requests DEVICE-TYPE IBM-3287-1 (a printer) and specifies CONNECT T1000001, but T1000001 is a device-name defined at the host as a terminal, then the server must deny the request. Further, if the requested resource-name is a device-name already associated with some other Telnet session, or if it is not defined to the server, the server must deny the request.

在任何一种情况下,由指定资源名称指示的资源不得与设备类型冲突;e、 例如,如果客户端请求设备类型IBM-3287-1(打印机)并指定CONNECT T1000001,但T1000001是主机上定义为终端的设备名称,则服务器必须拒绝该请求。此外,如果请求的资源名称是已经与其他某个Telnet会话关联的设备名称,或者如果没有为服务器定义该名称,则服务器必须拒绝该请求。

7.1.3 ASSOCIATE Command
7.1.3 联合司令部

ASSOCIATE can be used by the client only when requesting a DEVICE-TYPE that represents a printer, and the specified device-name must be that of a terminal that was returned by the server in a previous DEVICE-TYPE IS <device-type> CONNECT <device-name> command.

仅当请求表示打印机的设备类型时,客户端才能使用ASSOCIATE,并且指定的设备名称必须是服务器在上一个设备类型IS<DEVICE TYPE>CONNECT<DEVICE name>命令中返回的终端名称。

The ASSOCIATE command requests that this session be assigned the device-name of the printer that is paired with the terminal named in the request. If the device-type does not represent a printer, or if the device-name is not that of a terminal, then the server must deny the request. Also, if the server does not have defined a partner printer for the specified terminal, it must deny the request.

ASSOCIATE命令请求为该会话分配与请求中指定的终端配对的打印机的设备名。如果设备类型不代表打印机,或者设备名称不是终端名称,则服务器必须拒绝该请求。此外,如果服务器没有为指定的终端定义伙伴打印机,则必须拒绝该请求。

The use of the ASSOCIATE command is to be as follows: A client first connects and requests a terminal from one of the terminal pools; it then uses the terminal device-name returned by the server (see "Accepting a Request", section 7.1.4 below) in a second session request, this time asking for the printer that is paired with the terminal session it just established. This allows clients to associate a printer session with a terminal rather than having to have prior knowledge of a printer device-name.

ASSOCIATE命令的使用如下:客户机首先连接并从其中一个终端池请求终端;然后,它在第二个会话请求中使用服务器返回的终端设备名称(请参阅下面第7.1.4节的“接受请求”),这一次请求与它刚刚建立的终端会话配对的打印机。这允许客户端将打印机会话与终端关联,而不必事先知道打印机设备名称。

7.1.4 Accepting a Request
7.1.4 接受请求

The server must accept the client's request or deny it as a whole - it cannot, for example, accept the DEVICE-TYPE request but deny the CONNECT portion.

服务器必须接受或拒绝客户端的请求作为一个整体-例如,它不能接受设备类型的请求,但拒绝连接部分。

If the server wishes to accept the request, it sends back the DEVICE-TYPE IS command confirming the requested device-type and the CONNECT command specifying the device-name of the terminal or printer assigned to this session.

如果服务器希望接受该请求,它将发回DEVICE-TYPE IS命令,确认请求的设备类型,并发送CONNECT命令,指定分配给该会话的终端或打印机的设备名称。

Normally, the client should accept any DEVICE-TYPE IS <device-type> CONNECT <device-name> sent by the server. An exception to this would be if the client must (e.g., to satisfy local-site policy) be connected to a specific LU name and is presented with a device-name which does not match the one requested by the client (this could happen, for example, if the client requested what it thought was a device-name, but what was defined at the server as the name of a pool of devices). In this case, the client should reject the DEVICE-TYPE IS command by terminating TN3270E negotiations.

通常,客户机应该接受服务器发送的任何设备类型为<DEVICE TYPE>CONNECT<DEVICE name>。例外情况是,如果客户端必须(例如,为了满足本地站点策略)连接到特定的LU名称,并且显示的设备名称与客户端请求的名称不匹配(例如,如果客户端请求它认为是一个设备名,但在服务器上定义为一个设备池的名称,则可能会发生这种情况)。在这种情况下,客户端应通过终止TN3270E协商来拒绝device-TYPE IS命令。

7.1.5 REJECT Command
7.1.5 拒绝命令

If the server wishes to deny the request, it sends back the DEVICE-TYPE REJECT command with one of the following reason-codes:

如果服务器希望拒绝该请求,则会发回带有以下原因码之一的设备类型拒绝命令:

   Reason code name         Explanation
   ----------------         -----------------------------------
   INV-DEVICE-TYPE          The server does not support the
                            requested device-type.
        
   Reason code name         Explanation
   ----------------         -----------------------------------
   INV-DEVICE-TYPE          The server does not support the
                            requested device-type.
        

INV-NAME The resource-name or device-name specified in the CONNECT or ASSOCIATE command is not known to the server.

INV-NAME在CONNECT或ASSOCIATE命令中指定的资源名称或设备名称对于服务器来说是未知的。

DEVICE-IN-USE The requested device-name is already associated with another session.

设备正在使用请求的设备名称已与另一个会话关联。

TYPE-NAME-ERROR The requested device-name or resource-name is incompatible with the requested device-type (such as terminal/printer mismatch).

TYPE-NAME-ERROR请求的设备名称或资源名称与请求的设备类型不兼容(例如终端/打印机不匹配)。

UNSUPPORTED-REQ The server is unable to satisfy the type of request sent by the client; e.g., a specific terminal or printer was requested but the

UNSUPPORTED-REQ服务器无法满足客户端发送的请求类型;e、 例如,请求了特定的终端或打印机,但

server does not have any such pools of device-names defined to it, or the ASSOCIATE command was used but no partner printers are defined to the server.

服务器没有为其定义任何此类设备名称池,或者使用了ASSOCIATE命令,但没有为服务器定义任何伙伴打印机。

INV-ASSOCIATE The client used the ASSOCIATE command and either the device-type is not a printer or the device-name is not a terminal.

INV-ASSOCIATE客户端使用ASSOCIATE命令,设备类型不是打印机或设备名称不是终端。

CONN-PARTNER The client used the CONNECT command to request a specific printer but the device-name requested is the partner to some terminal.

CONN-PARTNER客户端使用CONNECT命令请求特定打印机,但请求的设备名称是某个终端的伙伴。

UNKNOWN-ERROR Any other error in device type or name processing has occurred.

未知错误-设备类型或名称处理中发生任何其他错误。

The process of negotiating a device-type and device-name that are acceptable to both client and server may entail several iterations of DEVICE-TYPE REQUEST and DEVICE-TYPE REJECT commands. The client must make use of the reason-code specified by the server in any DEVICE-TYPE REJECT command(s) to minimize the amount of negotiation necessary. For example, if the client initially requests that it be assigned a specific terminal device-name via the CONNECT command, and the server rejects the request with a reason-code of UNSUPPORTED-REQ, the client must make no further specific terminal requests in the negotiations. If at any point in the process either side wishes to "bail out," it can simply send a WON'T (or DON'T) TN3270E command to the other side. At this point both sides are free to negotiate other Telnet options (including traditional tn3270).

协商客户端和服务器都可以接受的设备类型和设备名称的过程可能需要多次迭代设备类型请求和设备类型拒绝命令。客户端必须使用服务器在任何设备类型拒绝命令中指定的原因码,以最大限度地减少必要的协商量。例如,如果客户端最初通过CONNECT命令请求为其分配一个特定的终端设备名称,并且服务器拒绝该请求,原因码为UNSUPPORTED-REQ,则客户端在协商中不得再发出特定的终端请求。如果在过程中的任何时候,任何一方希望“纾困”,它可以简单地向另一方发送一个不愿意(或不愿意)TN3270E命令。此时,双方可以自由协商其他Telnet选项(包括传统的tn3270)。

7.2 FUNCTIONS Negotiation
7.2 功能谈判

Once the DEVICE-TYPE negotiation has successfully completed (i.e, when the client receives a DEVICE-TYPE IS command that is acceptable), the client must initiate the FUNCTIONS negotiation by sending the FUNCTIONS REQUEST command to the server. After this initial REQUEST command, both sides are free to transmit FUNCTIONS REQUEST and FUNCTIONS IS commands as needed.

一旦设备类型协商成功完成(即,当客户端收到可接受的设备类型IS命令时),客户端必须通过向服务器发送函数请求命令来启动函数协商。在该初始请求命令之后,双方可以根据需要自由传输函数请求和函数IS命令。

7.2.1 Commands
7.2.1 命令

The FUNCTIONS REQUEST command contains a list of the TN3270E functions that the sender would like to see supported on this session. All functions not in the list are to be considered unsupported. The list is terminated by the IAC code that precedes

FUNCTIONS REQUEST命令包含发送方希望看到此会话支持的TN3270E函数列表。不在列表中的所有功能都将被视为不受支持。列表由前面的IAC代码终止

the SE command. Functions may appear in any order in the list.

SE命令。函数可以按列表中的任何顺序出现。

Upon receipt of a FUNCTIONS REQUEST command, the recipient has two choices:

收到功能请求命令后,收件人有两个选择:

- it may respond in the positive (meaning it agrees to support all functions in the list, and not to transmit any data related to functions not in the list). To do this, it sends the FUNCTIONS IS command with the function-list exactly as it was received. At this point, FUNCTIONS negotiation has successfully completed.

- 它可能会做出肯定的响应(这意味着它同意支持列表中的所有功能,并且不传输与列表中未列出的功能相关的任何数据)。为此,它发送函数IS命令,函数列表与接收时完全相同。此时,功能协商已成功完成。

- it may respond in the negative by sending a FUNCTIONS REQUEST command in which the function-list differs from the one it received (and not simply in the order of appearance of functions in the list; at least one function must have been added to, or removed from, the list).

- 它可以通过发送函数请求命令做出否定响应,其中函数列表与它接收到的函数列表不同(不仅仅是按照函数在列表中的出现顺序;必须至少向列表中添加或删除一个函数)。

To avoid endlessly looping, both parties must not add to the function-list it receives any function that it has previously added and that the other side has removed.

为避免无休止的循环,双方不得向其收到的函数列表中添加之前已添加且另一方已删除的任何函数。

The process of sending FUNCTIONS REQUEST commands back and forth continues until one side receives a function-list it is willing to live with. It uses the FUNCTIONS IS command to accept the list, and, once this command is received by the other side, all necessary negotiation has been completed. At this point, 3270 data stream transmission can begin.

来回发送函数请求命令的过程将继续,直到一方收到它愿意接受的函数列表。它使用函数IS命令来接受列表,一旦另一方收到该命令,所有必要的协商都已完成。此时,3270数据流传输可以开始。

Note that it is possible that the function-list agreed to is null; this is referred to as "basic TN3270E". See the section entitled "Basic TN3270E" for more information.

注意,同意的功能列表可能为空;这被称为“基本TN3270E”。有关更多信息,请参阅题为“基本TN3270E”的章节。

If an impasse is reached during FUNCTIONS negotiation (for example, if a client requested and was granted a DEVICE-TYPE representing a printer, but refuses to accept either the SCS-CTL-CODES or DATA-STREAM-CTL function), then the "offended" party should terminate the negotiation by sending an IAC DON'T (or WON'T) TN3270E.

如果在功能协商期间出现僵局(例如,如果客户机请求并被授予代表打印机的设备类型,但拒绝接受SCS-CTL-CODES或DATA-STREAM-CTL功能),则“违规”方应通过发送IAC NOT(或WILL NOT)TN3270E终止协商。

7.2.2 List of TN3270E Functions
7.2.2 TN3270E函数列表

The following list briefly describes the 3270 functions that may be negotiated in the function-list:

以下列表简要介绍了功能列表中可能协商的3270个功能:

   Function Name       Description
   -------------       -----------
   SCS-CTL-CODES       (Printer sessions only).  Allows the use
                       of the SNA Character Stream (SCS) and SCS
                       control codes on the session.  SCS is
                       used with LU type 1 SNA sessions.
        
   Function Name       Description
   -------------       -----------
   SCS-CTL-CODES       (Printer sessions only).  Allows the use
                       of the SNA Character Stream (SCS) and SCS
                       control codes on the session.  SCS is
                       used with LU type 1 SNA sessions.
        

DATA-STREAM-CTL (Printer sessions only). Allows the use of the standard 3270 data stream. This corresponds to LU type 3 SNA sessions.

DATA-STREAM-CTL(仅限打印机会话)。允许使用标准3270数据流。这对应于LU类型3 SNA会话。

RESPONSES Provides support for positive and negative response handling. Allows the server to reflect to the client any and all definite, exception, and no response requests sent by the host application.

RESPONSES为正面和负面响应处理提供支持。允许服务器向客户端反映主机应用程序发送的任何和所有确定、异常和无响应请求。

BIND-IMAGE Allows the server to send the SNA Bind image and Unbind notification to the client.

BIND-IMAGE允许服务器向客户端发送SNA绑定映像和解除绑定通知。

SYSREQ Allows the client and server to emulate some (or all, depending on the server) of the functions of the SYSREQ key in an SNA environment.

SYSREQ允许客户端和服务器在SNA环境中模拟SYSREQ密钥的部分(或全部,取决于服务器)功能。

See the section entitled "Details of Processing TN3270E Functions" for a more detailed explanation of the meaning and use of these functions.

有关这些功能的含义和使用的更详细说明,请参见标题为“处理TN3270E功能的详细信息”的章节。

If in the process of functions negotiation an unrecognized function code is recieved, the recipient should simply remove that function code from the list and continue normal functions negotiation.

如果在功能协商过程中收到无法识别的功能代码,则接收者只需从列表中删除该功能代码,然后继续正常的功能协商。

8. TN3270E Data Messages
8. TN3270E数据报文

3270 device communications are generally understood to be block oriented in nature. That is, each partner buffers data until an entire "message" has been built, at which point the data is sent to the other side. The "outbound message" (from host to device) consists of a 3270 command and a series of buffer orders, buffer addresses, and data, while the "inbound message" contains only buffer orders, addresses and data. The end of a message is understood to be

3270设备通信通常被理解为在本质上是面向块的。也就是说,每个合作伙伴缓冲数据,直到生成了一条完整的“消息”,在这一点上,数据被发送到另一方。“出站消息”(从主机到设备)由3270命令和一系列缓冲顺序、缓冲地址和数据组成,而“入站消息”仅包含缓冲顺序、地址和数据。消息的结尾被理解为

the last byte transmitted (note that this discussion disregards SNA chaining). The Telnet EOR command is used to delimit these natural blocks of 3270 data within the Telnet data stream.

传输的最后一个字节(请注意,本讨论忽略SNA链接)。Telnet EOR命令用于在Telnet数据流中划分3270个自然数据块。

In TN3270E, each 3270 message must be prefixed with a TN3270E header, which consists of five bytes and whose format is defined below (see the section entitled "The TN3270E Message Header"). A "data message" in TN3270E therefore has the following construction:

在TN3270E中,每条3270消息必须以TN3270E报头作为前缀,该报头由五个字节组成,其格式定义如下(请参阅标题为“TN3270E消息报头”的部分)。因此,TN3270E中的“数据消息”具有以下结构:

          <TN3270E Header><data><IAC EOR>
        
          <TN3270E Header><data><IAC EOR>
        

It should be noted that it is possible that, for certain message types, there is no data portion present. In this case, the TN3270E data message consists of:

应当注意,对于某些消息类型,可能不存在数据部分。在这种情况下,TN3270E数据消息包括:

          <TN3270E Header><IAC EOR>
        
          <TN3270E Header><IAC EOR>
        

If either side wishes to transmit the decimal value 255 and have it interpreted as data, it must "double" this byte. In other words, a single occurrence of decimal 255 will be interpreted by the other side as an IAC, while two successive bytes containing decimal 255 will be treated as one data byte with a value of decimal 255.

如果任何一方希望传输十进制值255并将其解释为数据,则必须将该字节“加倍”。换句话说,十进制255的一次出现将被另一方解释为IAC,而包含十进制255的两个连续字节将被视为一个值为十进制255的数据字节。

It is strongly recommended that Telnet commands (other than IAC IAC) should be sent between TN3270E data messages, with no header and no trailing IAC EOR. If a TN3270E data message containing either IAC IP (to be interpreted as 3270 Attention) or IAC AO (to be interpreted as SYSREQ) is received, the receiver should defer processing the command until the 3270 data has been processed (see the appropriate sections for discussion of 3270 Attention and SYSREQ). If a TN3270E data message containing any other IAC-command sequence (other than IAC IAC) is received, it is implementation dependent when the IAC-command sequence will be processed, but it must be processed. The receiver may process it immediately, which in effect causes it to be processed as if it had been received before the current TN3270E data message, or the processing may be deferred until after the current TN3270E data message has been processed. It is because of this ambiguity that the presence of Telnet commands within a TN3270E data message (i.e., between the header and the trailing IAC EOR) is not recommended; neither clients nor servers should send such data.

强烈建议在TN3270E数据消息之间发送Telnet命令(IAC IAC除外),且不带标头和尾随IAC EOR。如果接收到包含IAC IP(解释为3270 Attention)或IAC AO(解释为SYSREQ)的TN3270E数据消息,则接收器应延迟处理该命令,直到3270数据已被处理为止(有关3270 Attention和SYSREQ的讨论,请参阅相应章节)。如果接收到包含任何其他IAC命令序列(IAC IAC除外)的TN3270E数据消息,则它取决于何时处理IAC命令序列,但必须对其进行处理。接收机可以立即对其进行处理,这实际上导致对其进行处理,如同其在当前TN3270E数据消息之前被接收一样,或者可以将处理延迟到当前TN3270E数据消息被处理之后。正是由于这种模糊性,不建议在TN3270E数据消息内(即,在报头和后续IAC EOR之间)存在Telnet命令;客户端和服务器都不应发送此类数据。

8.1 The TN3270E Message Header
8.1 TN3270E消息头

As stated earlier, each data message in TN3270E must be prefixed by a header, which consists of five bytes and is formatted as follows:

如前所述,TN3270E中的每个数据消息必须以标头作为前缀,标头由五个字节组成,格式如下:

      -----------------------------------------------------------
      | DATA-TYPE | REQUEST-FLAG | RESPONSE-FLAG |  SEQ-NUMBER  |
      -----------------------------------------------------------
         1 byte        1 byte         1 byte         2 bytes
        
      -----------------------------------------------------------
      | DATA-TYPE | REQUEST-FLAG | RESPONSE-FLAG |  SEQ-NUMBER  |
      -----------------------------------------------------------
         1 byte        1 byte         1 byte         2 bytes
        
8.1.1 DATA-TYPE Field
8.1.1 数据类型字段

The DATA-TYPE field indicates how the data portion of the message is to be interpreted by the receiver. Possible values for the DATA-TYPE field are:

数据类型字段指示接收方如何解释消息的数据部分。数据类型字段的可能值为:

   Data-type Name   Code                Meaning
   --------------   ----   ---------------------------------
   3270-DATA        0x00   The data portion of the message
                           contains only the 3270 data stream.
        
   Data-type Name   Code                Meaning
   --------------   ----   ---------------------------------
   3270-DATA        0x00   The data portion of the message
                           contains only the 3270 data stream.
        

SCS-DATA 0x01 The data portion of the message contains SNA Character Stream data.

SCS-DATA 0x01消息的数据部分包含SNA字符流数据。

RESPONSE 0x02 The data portion of the message constitutes device-status information and the RESPONSE-FLAG field indicates whether this is a positive or negative response (see below).

响应0x02消息的数据部分构成设备状态信息,响应标志字段指示这是肯定响应还是否定响应(见下文)。

BIND-IMAGE 0x03 The data portion of the message is the SNA bind image from the session established between the server and the host application.

BIND-IMAGE 0x03消息的数据部分是来自服务器和主机应用程序之间建立的会话的SNA绑定映像。

UNBIND 0x04 The data portion of the message is an Unbind reason code.

解除绑定0x04消息的数据部分是解除绑定原因代码。

NVT-DATA 0x05 The data portion of the message is to be interpreted as NVT data.

NVT-DATA 0x05消息的数据部分将被解释为NVT数据。

REQUEST 0x06 There is no data portion present in the message. Only the REQUEST-FLAG field has any meaning.

请求0x06消息中没有数据部分。只有REQUEST-FLAG字段具有任何含义。

SSCP-LU-DATA 0x07 The data portion of the message is data from the SSCP-LU session.

SSCP-LU-DATA 0x07消息的数据部分是来自SSCP-LU会话的数据。

PRINT-EOJ 0x08 There is no data portion present in the message. This value can be sent only by the server, and only on a printer session.

PRINT-EOJ 0x08消息中没有数据部分。此值只能由服务器发送,并且只能在打印机会话上发送。

8.1.2 REQUEST-FLAG Field
8.1.2 请求标志字段

The REQUEST-FLAG field only has meaning when the DATA-TYPE field has a value of REQUEST; otherwise, the REQUEST-FLAG field must be ignored by the receiver and should be set to 0x00 by the sender. Possible values for the REQUEST-FLAG field are:

仅当数据类型字段的值为REQUEST时,REQUEST-FLAG字段才有意义;否则,接收方必须忽略REQUEST-FLAG字段,发送方应将其设置为0x00。REQUEST-FLAG字段的可能值为:

   Request-Flag Name   Code                Meaning
   -----------------   ----   ---------------------------------
   ERR-COND-CLEARED    0x00   The client sends this to the server
                              when some previously encountered
                              printer error condition has been
                              cleared.  (See the section entitled
                              "The RESPONSES Function" below.)
        
   Request-Flag Name   Code                Meaning
   -----------------   ----   ---------------------------------
   ERR-COND-CLEARED    0x00   The client sends this to the server
                              when some previously encountered
                              printer error condition has been
                              cleared.  (See the section entitled
                              "The RESPONSES Function" below.)
        
8.1.3 RESPONSE-FLAG Field
8.1.3 响应标志字段

The RESPONSE-FLAG field only has meaning for certain values of the DATA-TYPE field. For DATA-TYPE field values of 3270-DATA and SCS-DATA, the RESPONSE-FLAG is an indication of whether or not the sender of the data expects to receive a response. In this case the possible values of RESPONSE-FLAG are:

RESPONSE-FLAG字段仅对数据类型字段的某些值有意义。对于3270-DATA和SCS-DATA的数据类型字段值,RESPONSE-FLAG表示数据发送方是否期望收到响应。在这种情况下,RESPONSE-FLAG的可能值为:

   Response-Flag Name  Code                Meaning
   ------------------  ----   ---------------------------------
   NO-RESPONSE         0x00   The sender does not expect the
                              receiver to respond either
                              positively or negatively to this
                              message.  The receiver must
                              therefore not send any response
                              to this data-message.
        
   Response-Flag Name  Code                Meaning
   ------------------  ----   ---------------------------------
   NO-RESPONSE         0x00   The sender does not expect the
                              receiver to respond either
                              positively or negatively to this
                              message.  The receiver must
                              therefore not send any response
                              to this data-message.
        

ERROR-RESPONSE 0x01 The sender only expects the receiver to respond to this message if some type of error occurred, in which case a negative response must be sent by the receiver.

错误响应0x01发送方仅期望接收方在发生某种类型的错误时响应此消息,在这种情况下,接收方必须发送否定响应。

ALWAYS-RESPONSE 0x02 The sender expects the receiver to respond negatively if an error occurs, or positively if no errors occur. One or the other must always be sent by the receiver.

ALWAYS-RESPONSE 0x02如果发生错误,发送方希望接收方做出负面响应,如果没有发生错误,则期望接收方做出正面响应。一个或另一个必须始终由接收方发送。

For a DATA-TYPE field value of RESPONSE, the RESPONSE-FLAG is an actual response to a previous data message (which must by definition have had a DATA-TYPE of either 3270-DATA or SCS-DATA and a RESPONSE-FLAG value of either ERROR-RESPONSE or ALWAYS-RESPONSE). In this case the possible values of RESPONSE-FLAG are:

对于响应的数据类型字段值,响应标志是对前一数据消息的实际响应(根据定义,前一数据消息的数据类型必须为3270-DATA或SCS-DATA,响应标志值必须为ERROR-RESPONSE或ALWAYS-RESPONSE)。在这种情况下,RESPONSE-FLAG的可能值为:

   Response-Flag Name  Code                Meaning
   ------------------  ----   ---------------------------------
   POSITIVE-RESPONSE   0x00   The previous message was received
                              and executed successfully with
                              no errors.
        
   Response-Flag Name  Code                Meaning
   ------------------  ----   ---------------------------------
   POSITIVE-RESPONSE   0x00   The previous message was received
                              and executed successfully with
                              no errors.
        

NEGATIVE-RESPONSE 0x01 The previous message was received but an error(s) occurred while processing it.

否定响应0x01收到上一条消息,但在处理该消息时出错。

Accompanying status information will be found in the data portion of the message.

伴随的状态信息将在消息的数据部分中找到。

For any other values of the DATA-TYPE field, the RESPONSE-FLAG field must be ignored by the receiver and should be set to 0x00 by the sender.

对于数据类型字段的任何其他值,接收方必须忽略RESPONSE-FLAG字段,发送方应将其设置为0x00。

8.1.4 SEQ-NUMBER Field
8.1.4 序号字段

The SEQ-NUMBER field is only used when the RESPONSES function has been agreed to. It contains a 2 byte binary number, and is used to correlate positive and negative responses to the data messages for which they were intended. This field must be sent in network byte order ("big endian"). If either byte contains a 0xff, it should be doubled to 0xffff before sending and stripped back to 0xff upon receipt; this is standard IAC escaping. See the section entitled "The RESPONSES Function" for further information on the use of the SEQ-NUMBER field. When the RESPONSES function is not agreed to, this field should always be set to 0x0000 by the sender and ignored by the receiver.

SEQ-NUMBER字段仅在同意响应功能时使用。它包含一个2字节的二进制数,用于将正响应和负响应与预期的数据消息关联起来。此字段必须以网络字节顺序(“big-endian”)发送。如果任一字节包含0xff,则在发送前应将其加倍为0xffff,并在接收时剥离回0xff;这是标准的IAC逃逸。有关使用序号字段的更多信息,请参见标题为“响应功能”的章节。如果不同意响应函数,发送方应始终将此字段设置为0x0000,接收方应忽略此字段。

9. Basic TN3270E
9. 基本型TN3270E

As has been stated earlier, whether or not the use of each of the TN3270E functions is allowed on a session is negotiated when the connection is established. It is possible that none of the functions are agreed to (in this case, the function-list in the FUNCTIONS REQUEST and FUNCTIONS IS commands is null). This mode of operation is referred to as "basic TN3270E". Note that, since neither the SCS-CTL-CODES function nor the DATA-STREAM-CTL function is agreed to, basic TN3270E refers to terminal sessions only.

如前所述,在建立连接时,协商是否允许在会话上使用每个TN3270E功能。可能没有任何函数被同意(在这种情况下,函数请求和函数is命令中的函数列表为空)。这种操作模式称为“基本TN3270E”。注意,由于SCS-CTL-CODES功能和DATA-STREAM-CTL功能均未达成一致,因此基本TN3270E仅指终端会话。

Basic TN3270E requires the support of only the following TN3270E header values:

基本TN3270E仅需要支持以下TN3270E标头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          3270-DATA
              DATA-TYPE          NVT-DATA
        
             Header field         Value
             ------------         -----
              DATA-TYPE          3270-DATA
              DATA-TYPE          NVT-DATA
        

The REQUEST-FLAG, RESPONSE-FLAG and SEQ-NUMBER fields are not used in basic TN3270E.

基本TN3270E中未使用请求标志、响应标志和序号字段。

9.1 3270 Mode and NVT Mode
9.1 3270模式和NVT模式

At any given time, a TN3270E connection can be considered to be operating in either "3270 mode" or "NVT mode". In 3270 mode, each party may send data messages with the DATA-TYPE flag set to 3270- DATA; sending a DATA-TYPE flag set to NVT-DATA constitutes a request to switch modes. In NVT mode, each party may send data messages with the DATA-TYPE flag set to NVT-DATA; sending 3270-DATA is a request to switch modes. The connection is initially in 3270 mode when TN3270E operation is successfully negotiated. When a party receives a message with a DATA-TYPE different from the mode it is operating in, the mode of operation for the connection is switched. Switching modes results in the client performing the equivalent of a 3270 Erase/Reset operation, as described in [5], using the default partition (screen) size. The server cannot assume the client preserves any attributes of the previous environment across a mode switch.

在任何给定时间,可以认为TN3270E连接在“3270模式”或“NVT模式”下运行。在3270模式下,各方可发送数据类型标志设置为3270-数据的数据消息;发送设置为NVT-DATA的数据类型标志构成切换模式的请求。在NVT模式下,各方可发送数据类型标志设置为NVT-data的数据消息;发送3270-DATA是切换模式的请求。当成功协商TN3270E操作时,连接最初处于3270模式。当一方收到数据类型不同于其操作模式的消息时,将切换连接的操作模式。切换模式导致客户端使用默认分区(屏幕)大小执行与3270擦除/重置操作等效的操作,如[5]中所述。服务器不能假定客户端通过模式开关保留以前环境的任何属性。

Note that even when sending NVT-DATA, each side should buffer data until an entire message is built (for the client, this would normally mean until the user presses Enter). At that point, a complete TN3270E data message should be built to transmit the NVT data.

请注意,即使在发送NVT-DATA时,每一方都应该缓冲数据,直到生成整个消息为止(对于客户端,这通常意味着直到用户按下Enter键)。此时,应构建完整的TN3270E数据消息来传输NVT数据。

Typically, NVT data is used by a server to interact with the user of a client. It allows the server to do this using a simple NVT data stream, instead of requiring a 3270 data stream. An example would be a server which displays a list of 3270 applications to which it can connect the client. The server would use NVT data to display the list and read the user's choice. Then the server would connect to the application, and begin the exchange of 3270 data between the application and the client.

通常,服务器使用NVT数据与客户机的用户进行交互。它允许服务器使用简单的NVT数据流来完成这项工作,而不需要3270数据流。例如,服务器显示3270个应用程序的列表,可以将客户端连接到该列表。服务器将使用NVT数据显示列表并读取用户的选择。然后服务器将连接到应用程序,并开始在应用程序和客户端之间交换3270数据。

10. Details of Processing TN3270E Functions
10. 处理TN3270E函数的详细信息

Agreement by both parties to a specific function in the FUNCTIONS REQUEST function-list implies agreement by each party to support a related set of values in the TN3270E header. It also implies a willingness to adhere to the rules governing the processing of data messages with regard to the agreed upon function. Either party that fails to accept header values associated either with agreed upon functions or with basic TN3270E, or attempts to use header values associated with a function that is not a part of basic TN3270E and was not agreed upon, will be considered non-conforming and in violation of the protocol. The following sections detail for each TN3270E function the associated header values and processing rules.

双方同意函数请求函数列表中的特定函数意味着各方同意支持TN3270E报头中的一组相关值。它还意味着愿意遵守关于商定职能的数据电文处理规则。任何一方如果未能接受与约定的函数或基本TN3270E相关联的头值,或试图使用与不属于基本TN3270E一部分且未经约定的函数相关联的头值,将被视为不符合和违反协议。以下各节详细介绍了每个TN3270E函数的相关标头值和处理规则。

10.1 The SCS-CTL-CODES Function
10.1 SCS-CTL-CODES功能

This function can only be supported on a 3270 printer session.

此功能仅在3270打印机会话上受支持。

Agreement to support this function requires that the party support the following TN3270E header values:

支持此功能的协议要求参与方支持以下TN3270E头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          SCS-DATA
              DATA-TYPE          PRINT-EOJ
        
             Header field         Value
             ------------         -----
              DATA-TYPE          SCS-DATA
              DATA-TYPE          PRINT-EOJ
        

A client representing a printer device uses this function to indicate its willingness to accept a data stream that includes SCS control codes. For the purposes of NVT mode versus 3270 mode, SCS-DATA must be treated exactly like 3270-DATA (i.e., it can cause a switch from NVT mode to 3270 mode).

代表打印机设备的客户端使用此函数表示其愿意接受包含SCS控制代码的数据流。就NVT模式与3270模式而言,SCS-DATA必须与3270-DATA完全相同(即,它可能导致从NVT模式切换到3270模式)。

When a printer device-type has been negotiated, either the SCS-CTL-CODES function or the DATA-STREAM-CTL function, or both, must be negotiated. This enables the server to know when it should and should not accept a session with a host application on behalf of the client. If only the SCS-CTL-CODES function is agreed to, then the server will not establish sessions with host applications that would send 3270 data stream control. If both SCS-CTL-CODES and DATA-STREAM-CTL are agreed to, then the server will establish sessions both with host applications that would send SCS control codes and with those that would send 3270 orders.

协商打印机设备类型后,必须协商SCS-CTL-CODES功能或DATA-STREAM-CTL功能或两者。这使服务器能够知道何时应该和不应该代表客户端接受与主机应用程序的会话。如果仅同意SCS-CTL-CODES功能,则服务器将不会与发送3270数据流控制的主机应用程序建立会话。如果同意SCS-CTL-CODE和DATA-STREAM-CTL,则服务器将与发送SCS控制代码的主机应用程序和发送3270订单的主机应用程序建立会话。

The server should send a TN3270E message with DATA-TYPE set to PRINT-EOJ at the end of each print job to indicate to the client that it may now take whatever action is appropriate for its environment (e.g., close a disk or spool file, etc.). The server may have multiple criteria for determining when it should send a PRINT-EOJ,

服务器应在每个打印作业结束时发送一条TN3270E消息,其中数据类型设置为PRINT-EOJ,以向客户端指示它现在可以采取适合其环境的任何操作(例如,关闭磁盘或假脱机文件等)。服务器可能有多个条件来确定何时发送打印EOJ,

such as receipt of SNA End Bracket from the host application, or expiration of a pre-defined timeout value.

例如,从主机应用程序接收SNA结束括号,或预定义超时值过期。

10.2 The DATA-STREAM-CTL Function
10.2 DATA-STREAM-CTL函数

This function can only be supported on a 3270 printer session.

此功能仅在3270打印机会话上受支持。

Agreement to support this function requires that the party support the following TN3270E header values:

支持此功能的协议要求参与方支持以下TN3270E头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          3270-DATA
              DATA-TYPE          PRINT-EOJ
        
             Header field         Value
             ------------         -----
              DATA-TYPE          3270-DATA
              DATA-TYPE          PRINT-EOJ
        

A client representing a printer device uses this function to indicate its willingness to accept a data stream that includes 3270 orders and attributes.

代表打印机设备的客户端使用此函数表示其愿意接受包含3270个订单和属性的数据流。

When a printer device-type has been negotiated, either the SCS-CTL-CODES function or the DATA-STREAM-CTL function, or both, must be negotiated. This enables the server to know when it should and should not accept a session with a host application on behalf of the client. If only the DATA-STREAM-CTL function is agreed to, then the server will not establish sessions with host applications that would send SCS control codes in a data stream. If both SCS-CTL-CODES and DATA-STREAM-CTL are agreed to, then the server will establish sessions both with host applications that would send SCS control codes and with those that would send 3270 orders.

协商打印机设备类型后,必须协商SCS-CTL-CODES功能或DATA-STREAM-CTL功能或两者。这使服务器能够知道何时应该和不应该代表客户端接受与主机应用程序的会话。如果只同意DATA-STREAM-CTL功能,则服务器将不会与主机应用程序建立会话,主机应用程序将在数据流中发送SCS控制代码。如果同意SCS-CTL-CODE和DATA-STREAM-CTL,则服务器将与发送SCS控制代码的主机应用程序和发送3270订单的主机应用程序建立会话。

The server should send a TN3270E message with DATA-TYPE set to PRINT-EOJ at the end of each print job to indicate to the client that it may now take whatever action is appropriate for its environment (e.g., close a disk or spool file, etc.). The server may have multiple criteria for determining when it should send a PRINT-EOJ, such as receipt of SNA End Bracket from the host application, or expiration of a pre-defined timeout value.

服务器应在每个打印作业结束时发送一条TN3270E消息,其中数据类型设置为PRINT-EOJ,以向客户端指示它现在可以采取适合其环境的任何操作(例如,关闭磁盘或假脱机文件等)。服务器可能有多个标准来确定何时应该发送打印EOJ,例如从主机应用程序接收SNA结束括号,或者预定义超时值过期。

10.3 The BIND-IMAGE Function
10.3 BIND-IMAGE函数

This function can only be supported when the TN3270E server represents SNA terminals and printers.

只有当TN3270E服务器代表SNA终端和打印机时,才能支持此功能。

Agreement to support this function requires that the party support the following TN3270E header values:

支持此功能的协议要求参与方支持以下TN3270E头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          BIND-IMAGE
              DATA-TYPE          UNBIND
              DATA-TYPE          SSCP-LU-DATA
        
             Header field         Value
             ------------         -----
              DATA-TYPE          BIND-IMAGE
              DATA-TYPE          UNBIND
              DATA-TYPE          SSCP-LU-DATA
        

When BIND-IMAGE is in effect, the server must inform the client when an SNA session has been established with a host application, and when such a session has been terminated. It uses DATA-TYPE values of BIND-IMAGE and UNBIND to convey this information.

当BIND-IMAGE生效时,服务器必须在与主机应用程序建立SNA会话以及该会话终止时通知客户端。它使用BIND-IMAGE和UNBIND的数据类型值来传递此信息。

When establishing an SNA session on behalf of a client, the server will receive a Bind RU from the host application. It will also receive a Start Data Traffic RU. Once both of these have been responded to positively by the server, it must then inform the client of the presence of this session by sending it a data message with the DATA-TYPE flag set to BIND-IMAGE. The data portion of this message must contain the bind image exactly as it was received in the Bind RU that the server accepted on behalf of the client. The format and maximum length of this bind image are defined in [6].

当代表客户端建立SNA会话时,服务器将从主机应用程序接收绑定RU。它还将接收启动数据通信RU。一旦服务器对这两个会话都做出了肯定的响应,它就必须向客户端发送一条数据消息,将数据类型标志设置为BIND-IMAGE,通知客户端存在此会话。此消息的数据部分必须包含与服务器代表客户端接受的绑定RU中接收的绑定映像完全相同的绑定映像。此绑定图像的格式和最大长度在[6]中定义。

When an SNA session between the server and a host application is terminated, the server must send a data message to the client with the DATA-TYPE flag set to UNBIND. If the server was notified of the session termination via an SNA Unbind RU, it should include the Unbind reason code in the data portion of the message it sends to the client. If the server itself requested the SNA session termination (for example, as part of SYSREQ key processing), it should set the data portion of the UNBIND message to 0x01, indicating "normal end of session".

当服务器和主机应用程序之间的SNA会话终止时,服务器必须向客户端发送数据消息,并将数据类型标志设置为UNBIND。如果通过SNA解除绑定RU通知服务器会话终止,则服务器应在发送给客户端的消息的数据部分中包含解除绑定原因代码。如果服务器本身请求SNA会话终止(例如,作为SYSREQ密钥处理的一部分),则应将解除绑定消息的数据部分设置为0x01,指示“会话正常结束”。

Another aspect of the BIND-IMAGE function alters the allowable DATA-TYPE flag values slightly from the behavior described in the section entitled "Basic TN3270E". When BIND-IMAGE is in effect, data messages with DATA-TYPE set to 3270-DATA or SCS-DATA are not allowed before the first BIND-IMAGE is received by the client; only SSCP-LU-DATA or NVT-DATA can be used to transmit user- oriented data. The same applies to data messages exchanged after an UNBIND is sent and before another BIND-IMAGE is received by the client. Once the client receives a BIND-IMAGE data message, the allowable DATA-TYPE values,

BIND-IMAGE函数的另一个方面稍微改变了允许的数据类型标志值,与“Basic TN3270E”一节中描述的行为不同。当BIND-IMAGE生效时,在客户端收到第一个BIND-IMAGE之前,不允许数据类型设置为3270-data或SCS-data的数据消息;只有SSCP-LU-DATA或NVT-DATA可用于传输面向用户的数据。这同样适用于在客户端发送解除绑定后和接收另一个绑定映像之前交换的数据消息。一旦客户端收到BIND-IMAGE数据消息,允许的数据类型值,

in addition to SSCP-LU-DATA, now include 3270-DATA and/or SCS-DATA, depending on whether a terminal or printer device-type was negotiated, and whether a printer client agreed to DATA-STREAM-CTL or SCS-CTL-CODES, or both. (See the section entitled "The SYSREQ Function" for further discussion of the SSCP-LU session in an SNA environment.)

除SSCP-LU-DATA外,现在还包括3270-DATA和/或SCS-DATA,具体取决于是否协商了终端或打印机设备类型,以及打印机客户端是否同意DATA-STREAM-CTL或SCS-CTL-CODE,或两者。(有关SNA环境中SSCP-LU会话的进一步讨论,请参阅标题为“SYSREQ功能”的章节。)

10.4 The RESPONSES Function
10.4 响应函数

This function can be supported for both terminal and printer sessions connected to both SNA and non-SNA servers.

连接到SNA和非SNA服务器的终端和打印机会话都支持此功能。

Agreement to support this function requires that the party support the following TN3270E header values:

支持此功能的协议要求参与方支持以下TN3270E头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          RESPONSE
              DATA-TYPE          REQUEST
              RESPONSE-FLAG      -all values-
              REQUEST-FLAG       ERR-COND-CLEARED
              SEQ-NUMBER         binary values from 0-32767
        
             Header field         Value
             ------------         -----
              DATA-TYPE          RESPONSE
              DATA-TYPE          REQUEST
              RESPONSE-FLAG      -all values-
              REQUEST-FLAG       ERR-COND-CLEARED
              SEQ-NUMBER         binary values from 0-32767
        

Whenever a data message is sent with a DATA-TYPE of either SCS-DATA or 3270-DATA, the sender must set the RESPONSE-FLAG field to either NO-RESPONSE, ERROR-RESPONSE, or ALWAYS-RESPONSE. It is anticipated that the client side will normally set RESPONSE-FLAG to NO-RESPONSE. The server, if it represents an SNA device, should set RESPONSE-FLAG to reflect the response value set in the RH of the RU that generated this data message - Definite Response resulting in a RESPONSE-FLAG value of ALWAYS-RESPONSE, Exception Response resulting in ERROR-RESPONSE being set, and No Response causing a setting of NO-RESPONSE. A non-SNA server should set RESPONSE-FLAG to ERROR-RESPONSE.

每当发送数据报文时,数据类型为SCS-data或3270-data,发送方必须将RESPONSE-FLAG字段设置为NO-RESPONSE、ERROR-RESPONSE或ALWAYS-RESPONSE。预计客户端通常会将RESPONSE-FLAG设置为NO-RESPONSE。如果服务器代表SNA设备,则应设置RESPONSE-FLAG以反映在生成此数据消息的RU的右侧中设置的响应值-确定响应导致响应标志值始终为-RESPONSE,异常响应导致设置错误响应,无响应导致设置无响应。非SNA服务器应将RESPONSE-FLAG设置为ERROR-RESPONSE。

In addition, the sender must keep a count of the messages with a DATA-TYPE of 3270-DATA or SCS-DATA that it sends on a given TN3270E session. This counter should start at zero for the first such message, and be incremented by one for each subsequent message. Note that this counter is independent of any SNA sequence numbers, and should not be reset to zero as a result of Bind or Unbind. If the counter reaches the maximum of 32767, it should be restarted at zero. The sender must place this value in the SEQ-NUMBER field of the TN3270E header before it sends the message. Note that the SEQ-NUMBER field must be set regardless of the value of the RESPONSE-FLAG field.

此外,发送方必须对其在给定TN3270E会话上发送的数据类型为3270-DATA或SCS-DATA的消息进行计数。对于第一条这样的消息,此计数器应从零开始,对于后续的每条消息,此计数器应递增1。请注意,此计数器独立于任何SNA序列号,不应因绑定或取消绑定而重置为零。如果计数器达到最大值32767,则应在零位重新启动。在发送消息之前,发送方必须将该值放入TN3270E头的SEQ-NUMBER字段中。请注意,无论RESPONSE-FLAG字段的值如何,都必须设置SEQ-NUMBER字段。

10.4.1 Response Messages
10.4.1 响应消息

Whenever a data message with a DATA-TYPE of either SCS-DATA or 3270- DATA is received, the receiver must attempt to process the data in the data portion of the message, then determine whether or not it should send a data message with a DATA-TYPE of RESPONSE. If the data message it has just processed had a RESPONSE-FLAG value of NO-RESPONSE, or if it had a value of ERROR-RESPONSE and there were no errors encountered while processing the data, then no RESPONSE type message should be sent. Otherwise, a data message should be sent in which the header DATA-TYPE field is set to RESPONSE, and in which the SEQ-NUMBER field is a copy of the SEQ-NUMBER field from the message to which this response corresponds. The RESPONSE-FLAG field in this header must have a value of either POSITIVE-RESPONSE or NEGATIVE-RESPONSE. A POSITIVE-RESPONSE should be sent if the previously processed message's header specified ALWAYS-RESPONSE and no errors were encountered in processing the data. A NEGATIVE-RESPONSE should be sent when

每当接收到数据类型为SCS-data或3270-data的数据消息时,接收器必须尝试处理消息数据部分中的数据,然后确定是否应发送具有数据类型响应的数据消息。如果它刚刚处理的数据消息的RESPONSE-FLAG值为NO-RESPONSE,或者如果它的ERROR-RESPONSE值为ERROR-RESPONSE,并且在处理数据时没有遇到错误,则不应发送响应类型的消息。否则,应发送一条数据消息,其中标题数据类型字段设置为响应,其中序号字段是该响应所对应消息中序号字段的副本。此标头中的RESPONSE-FLAG字段的值必须为肯定响应或否定响应。如果先前处理的邮件的标题指定了ALWAYS-RESPONSE,并且在处理数据时未遇到错误,则应发送肯定的-RESPONSE。应在以下情况下发送否定响应:

1) the previously processed message specified ERROR-RESPONSE or ALWAYS-RESPONSE and

1) 先前处理的消息指定了错误响应或始终响应,并且

2) some kind of error occurred while processing the data.

2) 处理数据时发生了某种错误。

Normally only the client will be constructing and sending these RESPONSE messages. A negative response sent by the client to the server is the equivalent of a Unit Check Status [7]. All references to device status and sense codes in this section rely on [7].

通常,只有客户端将构造和发送这些响应消息。客户端向服务器发送的否定响应相当于单元检查状态[7]。本节中对设备状态和检测代码的所有引用均依赖于[7]。

The data portion of a RESPONSE message must consist of one byte of binary data. The value of this byte gives a more detailed account of the results of having processed the previously received data message. The possible values for this byte are:

响应消息的数据部分必须由一个字节的二进制数据组成。该字节的值给出了处理先前接收的数据消息的结果的更详细说明。此字节的可能值为:

For a RESPONSE-FLAG value of POSITIVE-RESPONSE -

对于肯定响应的响应标志值-

             Value            Meaning
             -----            -------
             0x00      Successful completion (when sent by the client,
                       this is equivalent to "Device End").
        
             Value            Meaning
             -----            -------
             0x00      Successful completion (when sent by the client,
                       this is equivalent to "Device End").
        

For a RESPONSE-FLAG value of NEGATIVE-RESPONSE -

对于负响应的响应标志值-

             Value            Meaning
             -----            -------
             0x00      An invalid 3270 command was received
                       (equivalent to "Command Reject").
        
             Value            Meaning
             -----            -------
             0x00      An invalid 3270 command was received
                       (equivalent to "Command Reject").
        

0x01 Printer is not ready (equivalent to "Intervention Required").

0x01打印机未就绪(相当于“需要干预”)。

0x02 An illegal 3270 buffer address or order sequence was received (equivalent to "Operation Check").

0x02接收到非法的3270缓冲区地址或顺序(相当于“操作检查”)。

0x03 Printer is powered off or not connected (equivalent to "Component Disconnected").

0x03打印机已关机或未连接(相当于“组件已断开”)。

When the server receives any of the above responses, it should pass along the appropriate information to the host application. The appropriate information is determined by whether the server represents an SNA or a non-SNA device.

当服务器收到上述任何响应时,它应该将适当的信息传递给主机应用程序。适当的信息由服务器表示SNA还是非SNA设备来确定。

An SNA server should pass along a POSITIVE-RESPONSE from the client as an SNA positive Response Unit to the host application. It should translate a NEGATIVE-RESPONSE from the client into an SNA negative Response Unit in which the Sense Data Indicator bit is on and which contains one of the following sense codes:

SNA服务器应将客户机的肯定响应作为SNA肯定响应单元传递给主机应用程序。它应将来自客户端的负响应转换为SNA负响应单元,在该单元中,检测数据指示器位为on,并且包含以下检测代码之一:

          RESPONSE-FLAG        Equivalent        SNA Sense Code
          -------------        ----------        --------------
              0x00           Command Reject        0x10030000
        
          RESPONSE-FLAG        Equivalent        SNA Sense Code
          -------------        ----------        --------------
              0x00           Command Reject        0x10030000
        

0x01 Intervention Required 0x08020000

需要0x01干预0x08020000

0x02 Operation Check 0x10050000

0x02运行检查0x10050000

0x03 Component Disconnected 0x08310000

0x03组件已断开0x08310000

A non-SNA server should pass along a POSITIVE-RESPONSE from the client by setting the Device End Status bit on. It should reflect a NEGATIVE-RESPONSE from the client by setting the Unit Check Status Bit on, and setting either the Command Reject, Intervention Required, or Operation Check Sense bit on when responding to the Sense command.

非SNA服务器应通过将设备端状态位设置为on来传递来自客户端的肯定响应。它应通过将机组检查状态位设置为on,并在响应Sense命令时将命令拒绝、需要干预或操作检查Sense位设置为on,反映客户机的负面响应。

In the case of Intervention Required or Component Disconnected being passed by the server to the host application, the host would normally refrain from sending any further data to the printer. If and when the error condition at the client has been resolved, the client must send to the server a data message whose header DATA-TYPE field is set to REQUEST, and whose REQUEST-FLAG is set to ERR-COND-CLEARED. Note that this message has no data portion. Upon receipt of this message, the server should pass along the appropriate information to the host application so that it may resume sending printer output. Again, the form of this information depends on whether the server represents an SNA or a non-SNA device.

在需要干预或服务器将组件断开连接传递给主机应用程序的情况下,主机通常不会向打印机发送任何进一步的数据。如果客户机上的错误条件已得到解决,则客户机必须向服务器发送一条数据消息,该消息的标题数据类型字段设置为REQUEST,其REQUEST-FLAG设置为ERR-COND-CLEARED。请注意,此消息没有数据部分。收到此消息后,服务器应将适当的信息传递给主机应用程序,以便恢复发送打印机输出。同样,此信息的形式取决于服务器是表示SNA还是表示非SNA设备。

An SNA server should reflect an ERR-COND-CLEARED to the host application by sending an SNA LUSTAT RU with one of the following sense codes:

SNA服务器应通过发送带有以下检测代码之一的SNA LUSTAT RU,向主机应用程序反映已清除的ERR-COND:

- if the previous error condition was an Intervention Required, the server should send sense code 0x00010000

- 如果先前的错误条件是需要干预,则服务器应发送检测代码0x00010000

- if the previous error condition was Component Disconnected, the server should send sense code 0x082B0000

- 如果先前的错误条件是组件断开连接,则服务器应发送检测代码0x082B0000

A non-SNA server should set the corresponding bits in the Ending Status and Sense Condition bytes.

非SNA服务器应在结束状态和检测条件字节中设置相应的位。

10.5 The SYSREQ Function
10.5 SYSREQ函数

This function can only be supported when the TN3270E server represents SNA devices.

只有当TN3270E服务器代表SNA设备时,才能支持此功能。

Agreement to support this function requires that the party support the following TN3270E header values:

支持此功能的协议要求参与方支持以下TN3270E头值:

             Header field         Value
             ------------         -----
              DATA-TYPE          SSCP-LU-DATA
        
             Header field         Value
             ------------         -----
              DATA-TYPE          SSCP-LU-DATA
        

The 3270 SYSREQ key can be useful in an SNA environment when the ATTN key is not sufficient to terminate a process. (See the section entitled "The 3270 ATTN Key" for more information.)

当ATTN密钥不足以终止进程时,3270 SYSREQ密钥在SNA环境中非常有用。(有关更多信息,请参阅标题为“3270 ATTN键”的部分。)

10.5.1 Background
10.5.1 出身背景

In SNA, there is a session between the host application (the PLU, or Primary Logical Unit) and the TN3270E server representing the client (the SLU, or Secondary Logical Unit). This is referred to as the PLU-SLU session, and it is the one on which normal communications flow. There is also a session between the host telecommunications access method (the SSCP, or System Services Control Point) and the SLU, and it is referred to as the SSCP-LU session. This session is used to carry various control information and is normally transparent to the user; normal 3270 data stream orders are not allowed in this data. For more information, refer to [7].

在SNA中,主机应用程序(PLU或主逻辑单元)和代表客户机的TN3270E服务器(SLU或辅助逻辑单元)之间存在会话。这被称为PLU-SLU会话,它是正常通信流所在的会话。主机电信接入方法(SSCP或系统服务控制点)和SLU之间也有一个会话,称为SSCP-LU会话。该会话用于承载各种控制信息,通常对用户透明;此数据中不允许正常的3270数据流顺序。有关更多信息,请参阅[7]。

The terminal display and keyboard are usually "owned" by the PLU-SLU session, meaning any data the user types is sent to the host application. The SYSREQ key is used to toggle ownership of the keyboard and display between the PLU-SLU session and the SSCP-LU session. In other words, the user is able to press SYSREQ and then communicate directly with the host SSCP. The user may then enter any

终端显示器和键盘通常由PLU-SLU会话“拥有”,这意味着用户输入的任何数据都会发送到主机应用程序。SYSREQ键用于在PLU-SLU会话和SSCP-LU会话之间切换键盘和显示器的所有权。换句话说,用户能够按下SYSREQ,然后直接与主机SSCP通信。然后,用户可以输入任何

valid Unformatted Systems Services commands, which are defined in the USS table associated with the SLU. The most common USS command users employ is "LOGOFF," which requests that the SSCP immediately terminate the PLU-SLU session. The usual reason for requesting such an action is that the host application (the PLU) has stopped responding altogether.

有效的未格式化系统服务命令,在与SLU关联的USS表中定义。用户使用的最常见USS命令是“注销”,该命令要求SSCP立即终止PLU-SLU会话。请求此类操作的通常原因是主机应用程序(PLU)已完全停止响应。

Whenever the keyboard and display are owned by the SSCP-LU session, no data is allowed to flow in either direction on the PLU-SLU session. Once "in" the SSCP-LU session, the user may decide to switch back to the PLU-SLU session by again pressing the SYSREQ key.

只要键盘和显示器归SSCP-LU会话所有,PLU-SLU会话中的任何方向都不允许数据流动。一旦“进入”SSCP-LU会话,用户可通过再次按下SYSREQ键决定切换回PLU-SLU会话。

10.5.2 TN3270E Implementation of SYSREQ
10.5.2 SYSREQ的TN3270E实现

The design of some TN3270E servers allows them to fully support the SYSREQ key because they are allowed to send USS commands on the SSCP-LU session. Other TN3270E servers operate in an environment which does not allow them to send USS commands to the SSCP; this makes full support of the SYSREQ key impossible. For such servers, TN3270E provides for emulation of a minimal subset of functions, namely, for the sequence of pressing SYSREQ and typing LOGOFF that many users employ to immediately terminate the PLU-SLU session.

一些TN3270E服务器的设计允许它们完全支持SYSREQ密钥,因为允许它们在SSCP-LU会话上发送USS命令。其他TN3270E服务器在不允许向SSCP发送USS命令的环境中运行;这使得不可能完全支持SYSREQ键。对于这样的服务器,TN3270E提供了对最小功能子集的模拟,即许多用户用来立即终止PLU-SLU会话的按SYSREQ和键入LOGOVE的顺序。

The Telnet Abort Output (AO) command is the mechanism used to implement SYSREQ key support in TN3270E because, in a real SNA session, once the user presses the SYSREQ key, the host application is prevented from sending any more output to the terminal (unless the user presses SYSREQ a second time), but the user's process continues to execute.

Telnet Abort Output(AO)命令是用于在TN3270E中实现SYSREQ键支持的机制,因为在实际SNA会话中,一旦用户按下SYSREQ键,主机应用程序将无法向终端发送更多输出(除非用户第二次按下SYSREQ),但用户的进程将继续执行。

In order to implement SYSREQ key support, TN3270E clients that have agreed to the SYSREQ function should provide a key (or combination of keys) that is identified as mapping to the 3270 SYSREQ key. When the user presses this key(s), the client should transmit a Telnet AO command to the server.

为了实现SYSREQ密钥支持,同意SYSREQ函数的TN3270E客户端应提供一个密钥(或密钥组合),该密钥被标识为映射到3270 SYSREQ密钥。当用户按下此键时,客户端应向服务器发送Telnet AO命令。

Upon receipt of the AO command, a TN3270E server that has agreed to the SYSREQ function should enter what will be loosely termed "suspended mode" for the connection. If a server that has not agreed to the SYSREQ function receives an AO command, it should simply ignore it. Any attempt by the host application to send data to the client while the connection is "suspended" should be responded to by the server with a negative response, sense code 0x082D, indicating an "LU Busy" condition. The server should not transmit anything to the client on behalf of the host application. While the connection is "suspended," any data messages exchanged between the client and server should have the DATA-TYPE flag set to SSCP-LU-DATA; the data stream will be as defined in [7], specifically the section entitled

在收到AO命令后,同意SYSREQ功能的TN3270E服务器应为连接进入松散地称为“暂停模式”的状态。如果未同意SYSREQ函数的服务器接收到AO命令,则应忽略该命令。当连接处于“挂起”状态时,主机应用程序尝试向客户端发送数据时,服务器应以否定响应响应响应,检测代码0x082D,表示“LU忙”状态。服务器不应代表主机应用程序向客户端传输任何内容。连接“暂停”时,客户端和服务器之间交换的任何数据消息的数据类型标志应设置为SSCP-LU-data;数据流的定义见[7],特别是标题为

"Operation in SSCP-SLU Session."

“SSCP-SLU会话中的操作。”

At this point, the behavior of the server depends upon whether or not it is allowed to send USS commands on the SSCP-LU session. Servers that have this ability should simply act as a vehicle for passing USS commands and responses between the client and the SSCP.

此时,服务器的行为取决于是否允许在SSCP-LU会话上发送USS命令。具有此功能的服务器只应充当在客户端和SSCP之间传递USS命令和响应的工具。

Servers that are not allowed to send USS commands on the SSCP-LU session should behave as follows:

不允许在SSCP-LU会话上发送USS命令的服务器的行为应如下所示:

- if the user transmits the string LOGOFF (upper or lower case), the server should send an Unbind SNA RU to the host application. This will result in termination of the PLU-SLU session. If the BIND-IMAGE function was agreed upon, then the server should also send a data message to the client with the DATA-TYPE flag set to UNBIND and the data portion set to 0x01.

- 如果用户发送字符串注销(大写或小写),服务器应向主机应用程序发送未绑定SNA RU。这将导致PLU-SLU会话终止。如果同意使用BIND-IMAGE函数,则服务器还应向客户端发送数据消息,其中数据类型标志设置为UNBIND,数据部分设置为0x01。

- if the user transmits anything other than LOGOFF, the server should respond with the string "COMMAND UNRECOGNIZED" to the client. The server should not send anything to the host application on behalf of the client.

- 如果用户发送的不是注销,服务器应该向客户端发送字符串“COMMAND UNRECOGNIZED”。服务器不应代表客户端向主机应用程序发送任何内容。

Regardless of which kind of server is present (i.e., whether or not it may send USS commands on the SSCP-LU session), while the connection is suspended, the user may press the "SYSREQ" key again. This will result in the transmission of another AO to the server. The server should then send to the host application an LUSTAT RU with a value of 0x082B indicating "presentation space integrity lost". The server will then "un-suspend" the Telnet connection to the client, meaning it will allow the host application to once again send data to the client.

无论存在哪种类型的服务器(即,它是否可以在SSCP-LU会话上发送USS命令),当连接挂起时,用户可以再次按下“SYSREQ”键。这将导致向服务器传输另一个AO。然后,服务器应向主机应用程序发送一个LUSTAT RU,其值为0x082B,表示“表示空间完整性丢失”。然后,服务器将“取消挂起”到客户端的Telnet连接,这意味着它将允许主机应用程序再次向客户端发送数据。

11. The 3270 ATTN Key
11. 3270 ATTN键

The 3270 ATTN key is interpreted by many host applications in an SNA environment as an indication that the user wishes to interrupt the execution of the current process. The Telnet Interrupt Process (IP) command was defined expressly for such a purpose, so it is used to implement support for the 3270 ATTN key. This requires two things:

SNA环境中的许多主机应用程序将3270 ATTN密钥解释为用户希望中断当前进程执行的指示。Telnet中断处理(IP)命令是专门为此目的定义的,因此它用于实现对3270 ATTN密钥的支持。这需要两件事:

- TN3270E clients should provide as part of their keyboard mapping a single key or a combination of keys that map to the 3270 ATTN key. When the user presses this key(s), the client should transmit a Telnet IP command to the server.

- TN3270E客户端应在其键盘映射中提供映射到3270 ATTN键的单键或组合键。当用户按下此键时,客户端应向服务器发送Telnet IP命令。

- TN3270E servers should translate the IP command received from a TN3270E client into the appropriate form and pass it along to the host application as an ATTN key. In other words, the

- TN3270E服务器应将从TN3270E客户端接收的IP命令转换为适当的形式,并将其作为ATTN密钥传递给主机应用程序。换句话说

server representing an SLU in an SNA session should send a SIGNAL RU to the host application.

在SNA会话中表示SLU的服务器应向主机应用程序发送信号RU。

The ATTN key is not supported in a non-SNA environment; therefore, a TN3270E server representing non-SNA 3270 devices should ignore any Telnet IP commands it receives from a client.

在非SNA环境中不支持ATTN密钥;因此,代表非SNA 3270设备的TN3270E服务器应忽略从客户端接收的任何Telnet IP命令。

12. 3270 Structured Fields
12. 3270结构化字段

3270 structured fields provide a much wider range of features than "old-style" 3270 data, such as support for graphics, partitions and IPDS printer data streams. It would be unreasonable to expect all TN3270E clients to support all possible structured field functions, yet there must be a mechanism by which those clients that are capable of supporting some or all structured field functions can indicate their wishes.

3270结构化字段提供比“旧式”3270数据更广泛的功能,例如支持图形、分区和IPDS打印机数据流。期望所有TN3270E客户支持所有可能的结构化现场功能是不合理的,但必须有一种机制,使那些能够支持部分或全部结构化现场功能的客户能够表明他们的意愿。

The design of 3270 structured fields provides a convenient means to convey the level of support (including no support) for the various structured field functions. This mechanism is the Read Partition Query command, which is sent from the host application to the device. The device responds with a Query Reply structured field(s) listing which, if any, structured field functions it supports.

3270结构化字段的设计提供了一种方便的方式来传达各种结构化字段功能的支持级别(包括不支持)。此机制是读取分区查询命令,它从主机应用程序发送到设备。设备以一个查询-回复结构化字段(如果有的话)进行响应,该字段列出了它支持的结构化字段函数。

The Query Reply is also used to indicate some device capabilities which do not require the use of structured fields, such as extended color support and extended highlighting capability. Most host applications will use Read Partition Query to precisely determine a device's capabilities when there has been some indication that the device supports the "extended data stream".

查询回复还用于指示一些不需要使用结构化字段的设备功能,例如扩展颜色支持和扩展高亮显示功能。当设备支持“扩展数据流”时,大多数主机应用程序将使用读取分区查询来精确确定设备的功能。

Therefore, all TN3270E clients that negotiate a terminal device-type that contains a "-E" suffix, the DYNAMIC terminal type, or a printer device-type, must be able to respond to a Read Partition Query command. Note that these clients must support both the Read Partition Query (Type 02), and all forms of the Read Partition Query List (Type 03).

因此,协商包含“-E”后缀的终端设备类型、动态终端类型或打印机设备类型的所有TN3270E客户端必须能够响应读取分区查询命令。请注意,这些客户端必须同时支持读取分区查询(类型02)和所有形式的读取分区查询列表(类型03)。

13. Implementation Guidelines
13. 实施准则
13.1 3270 Data Stream Notes
13.1 3270数据流注释

Implementors of TN3270E clients should note that the command codes for the various 3270 Read and Write commands have different values depending on how the server is connected to the host (local versus remote, SNA versus non-SNA). Clients should be coded to check for the various possible values if they wish to be compatible with the widest range of servers. See [7] for further details.

TN3270E客户机的实施者应注意,各种3270读写命令的命令代码具有不同的值,具体取决于服务器与主机的连接方式(本地与远程、SNA与非SNA)。如果客户端希望与范围最广的服务器兼容,则应对其进行编码,以检查各种可能的值。有关更多详细信息,请参见[7]。

13.2 Negotiation of the TN3270E Telnet Option
13.2 TN3270E Telnet选项的谈判

Since TN3270E is a Telnet Option governed by [8], both client and server are free to attempt to initiate negotiation of TN3270E by sending a DO TN3270E command. However, just as is usually the case with the Telnet DO TERMINAL-TYPE, it is anticipated that the server will normally be the one sending the DO TN3270E, and the client will be responding with a WILL or a WON'T TN3270E.

由于TN3270E是受[8]控制的Telnet选项,因此客户端和服务器都可以通过发送DO TN3270E命令来尝试启动TN3270E的协商。然而,正如Telnet DO终端类型通常的情况一样,预计服务器通常是发送DO TN3270E的服务器,而客户端将使用will或NOT TN3270E进行响应。

13.3 A "Keep-alive" Mechanism
13.3 “保持活力”机制

In many environments, it is very helpful to have in place a mechanism that allows timely notification of the loss of a 3270 session. TN3270E does not require that any form of keep-alive mechanism be employed by either clients or servers, but implementors wishing to support such a mechanism should consider the following guidelines.

在许多环境中,建立一种机制非常有用,该机制允许及时通知3270会话的丢失。TN327 0E不要求任何形式的保活机制由客户端或服务器使用,但希望支持这种机制的实现者应考虑以下准则。

There are at least three possible means of providing a keep-alive mechanism in TN3270E: the TCP Keepalive, the Telnet IAC NOP command [8], and the Telnet DO TIMING-MARK option [9]. Each method has its advantages and disadvantages. It is recommended that TN3270E clients and servers that support keep-alives should support all three methods, and that both sides should always respond to TIMING-MARKs.

在TN3270E中,至少有三种可能的方式提供保持活动机制:TCP Keepalive、Telnet IAC NOP命令[8]和Telnet DO TIMING-MARK选项[9]。每种方法都有其优缺点。建议支持keep alives的TN3270E客户端和服务器支持这三种方法,并且双方都应始终响应时间标记。

Note that both clients and servers could be configured to "actively" implement keep-alives. That is, both sides could send a TIMING-MARK or a NOP or issue a TCP Keepalive in order to determine whether or not the partner is still alive. Alternatively, network administrators may wish to configure only one side to send keep-alives; in this case, the other side would be a "passive" participant which simply responds to the keep-alives it receives.

请注意,客户机和服务器都可以配置为“主动”实现keep alives。也就是说,双方都可以发送一个时间标记或NOP,或者发出一个TCP Keepalive,以确定合作伙伴是否仍然活着。或者,网络管理员可能希望只配置一方来发送keep alives;在这种情况下,另一方将是一个“被动”的参与者,只对其收到的保持生命作出反应。

Implementors who want their code to be capable of being an "active" keep-alive participant should make their client or server configurable so that administrators can set which, if any, keep-alive mechanism should be employed, and how often it should be used.

那些希望自己的代码能够成为“主动”保持活动参与者的实现者应该使他们的客户机或服务器可配置,以便管理员可以设置应该使用哪种(如果有的话)保持活动机制,以及应该使用多长时间。

Upon failure of a session on which keep-alives are used, both parties should make the proper notifications. A client should give the user some indication of the failure, such as an error code in the Operator Information Area of the screen. A server should notify the host application that the session has been terminated, for example by sending an UNBIND with type CLEANUP in an SNA environment.

当使用keep alives的会话失败时,双方应发出适当的通知。客户端应向用户提供一些故障指示,例如屏幕操作员信息区域中的错误代码。服务器应通知主机应用程序会话已终止,例如通过在SNA环境中发送类型为CLEANUP的解除绑定通知。

13.4 Examples
13.4 例子

The following example shows a TN3270E-capable server and a traditional tn3270 client establishing a connection:

以下示例显示了支持TN3270E的服务器和建立连接的传统tn3270客户端:

Server: IAC DO TN3270E Client: IAC WON'T TN3270E Server: IAC DO TERMINAL-TYPE Client: IAC WILL TERMINAL-TYPE Server: IAC SB TERMINAL-TYPE SEND IAC SE Client: IAC SB TERMINAL-TYPE IS IBM-3278-2 IAC SE Server: IAC DO EOR IAC WILL EOR Client: IAC WILL EOR IAC DO EOR Server: IAC DO BINARY IAC WILL BINARY Client: IAC WILL BINARY IAC DO BINARY (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC不会TN3270E服务器:IAC DO终端类型客户端:IAC将会终端类型服务器:IAC SB终端类型发送IAC SE客户端:IAC SB终端类型是IBM-3278-2 IAC SE服务器:IAC DO EOR IAC将会EOR客户端:IAC将会EOR IAC DO EOR服务器:IAC DO BINARY IAC将会二进制客户端:IAC将会二进制IAC DO BINARY(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing a generic pool (non-specific) terminal session:

以下示例显示了一个支持TN3270E的服务器和一个支持TN3270E的客户端建立一个通用池(非特定)终端会话:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-2 IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-2 CONNECT anyterm IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST RESPONSES IAC SE Server: IAC SB TN3270E FUNCTIONS IS RESPONSES IAC SE (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC将TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-2 IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-2连接任意项IAC SE客户端:IAC SB TN3270E函数请求响应IAC SE服务器:IAC SB TN3270E函数为响应IAC SE(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing a terminal session where the client requests a specific device-name:

以下示例显示了支持TN3270E的服务器和支持TN3270E的客户端建立终端会话,其中客户端请求特定的设备名称:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-5-E CONNECT myterm IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-5-E CONNECT myterm IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST RESPONSES BIND-IMAGE IAC SE Server: IAC SB TN3270E FUNCTIONS IS RESPONSES BIND-IMAGE IAC SE (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC WILL TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-5-E连接myterm IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-5-E连接myterm IAC SE客户端:IAC SB TN3270E函数请求响应BIND-IMAGE IAC SE服务器:IAC SB TN3270E函数IS-IMAGE IAC SE(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing a terminal session where the client requests a resource-name and is returned a device-name chosen by the server:

以下示例显示了一个支持TN3270E的服务器和一个支持TN3270E的客户端,它们建立了一个终端会话,在该会话中,客户端请求一个资源名称,并返回一个由服务器选择的设备名称:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-5-E CONNECT pool1 IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-5-E CONNECT term0013 IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST BIND-IMAGE IAC SE Server: IAC SB TN3270E FUNCTIONS IS BIND-IMAGE IAC SE (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC将TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-5-E连接池1 IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-5-E连接term0013 IAC SE客户端:IAC SB TN3270E函数请求绑定映像IAC SE服务器:IAC SB TN3270E函数为BIND-IMAGE IAC SE(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client attempting to establish a terminal session; multiple attempts are necessary because the device-name initially requested by the client is already in use:

以下示例显示了尝试建立终端会话的支持TN3270E的服务器和支持TN3270E的客户端;需要多次尝试,因为客户端最初请求的设备名称已在使用中:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-5 CONNECT myterm IAC SE Server: IAC SB TN3270E DEVICE-TYPE REJECT REASON DEVICE-IN-USE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-2 CONNECT herterm IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-2 CONNECT herterm IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST RESPONSES IAC SE Server: IAC SB TN3270E FUNCTIONS IS RESPONSES IAC SE (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC WILL TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-5 CONNECT myterm IAC SE服务器:IAC SB TN3270E设备类型拒绝原因设备在用IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-2 CONNECT herm IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-2 CONNECT herterm IAC SE客户端:IAC SB TN3270E函数请求响应IAC SE服务器:IAC SB TN3270E函数为响应IAC SE(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing a printer session where the client requests a specific device-name, and where some amount of 3270 function negotiation is required before an agreement is reached:

以下示例显示了支持TN3270E的服务器和支持TN3270E的客户端建立打印机会话,其中客户端请求特定的设备名称,并且在达成协议之前需要进行一定量的3270功能协商:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3287-1 CONNECT myprt IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3287-1 CONNECT myprt IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST DATA-STREAM-CTL IAC Server: IAC SB TN3270E FUNCTIONS REQUEST DATA-STREAM-CTL RESPONSES IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST DATA-STREAM-CTL IAC Server: IAC SB TN3270E FUNCTIONS IS DATA-STREAM-CTL IAC SE

服务器:IAC DO TN3270E客户端:IAC将TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3287-1连接myprt IAC SE服务器:IAC SB TN3270E设备类型为IBM-3287-1连接myprt IAC SE客户端:IAC SB TN3270E函数请求数据流-CTL IAC服务器:IAC SB TN3270E函数请求DATA-STREAM-CTL响应IAC SE客户端:IAC SB TN3270E函数请求DATA-STREAM-CTL IAC服务器:IAC SB TN3270E函数为DATA-STREAM-CTL IAC SE

(3270 data stream is exchanged)

(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing first a specific terminal session, then a printer session where the "partner" printer for the assigned terminal is requested:

以下示例显示了支持TN3270E的服务器和支持TN3270E的客户机,首先建立特定的终端会话,然后建立打印机会话,其中请求分配终端的“合作伙伴”打印机:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-2 CONNECT termxyz IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-2 CONNECT termxyz IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST RESPONSES IAC SE Server: IAC SB TN3270E FUNCTIONS IS RESPONSES IAC SE (3270 data stream is exchanged) . . . . (user decides to request a printer session, so client again connects to Telnet port on server) Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3287-1 ASSOCIATE termxyz IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3287-1 CONNECT termxyz's-prt IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST SCS-CTL-CODES RESPONSES IAC SE Server: IAC SB TN3270E FUNCTIONS IS SCS-CTL-CODES RESPONSES IAC SE (3270 data stream is exchanged)

服务器:IAC DO TN3270E客户端:IAC WILL TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-2 CONNECT termxyz IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-2 CONNECT termxyz IAC SE客户端:IAC SB TN3270E函数请求响应IAC SE服务器:IAC SB TN3270E函数为响应IAC SE(交换3270数据流)。(用户决定请求打印机会话,所以客户端再次连接到服务器上的Telnet端口)服务器:IAC DO TN3270E客户端:IAC将TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3287-1关联termxyz IAC SE服务器:IAC SB TN3270E设备类型为IBM-3287-1连接termxyz的prt IAC SE客户端:IAC SB TN3270E功能请求SCS-CTL-CODES响应IAC SE服务器:IAC SB TN3270E功能为SCS-CTL-CODES响应IAC SE(交换3270数据流)

The following example shows a TN3270E-capable server and a TN3270E-capable client establishing first a terminal session where a resource-name was requested and a server chosen device-name was returned, then a printer session where the "partner" printer for the assigned terminal is requested:

以下示例显示了支持TN3270E的服务器和支持TN3270E的客户端,首先建立一个终端会话,在该会话中请求资源名称并返回服务器选择的设备名称,然后建立一个打印机会话,在该会话中请求分配终端的“合作伙伴”打印机:

Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3278-5 CONNECT poolxyz IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3278-5 CONNECT terma IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST RESPONSES IAC SE

服务器:IAC DO TN3270E客户端:IAC WILL TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3278-5 CONNECT poolxyz IAC SE服务器:IAC SB TN3270E设备类型为IBM-3278-5 CONNECT terma IAC SE客户端:IAC SB TN3270E函数请求响应IAC SE

Server: IAC SB TN3270E FUNCTIONS IS RESPONSES IAC SE (3270 data stream is exchanged) . . . . (user decides to request a printer session, so client again connects to Telnet port on server) Server: IAC DO TN3270E Client: IAC WILL TN3270E Server: IAC SB TN3270E SEND DEVICE-TYPE IAC SE Client: IAC SB TN3270E DEVICE-TYPE REQUEST IBM-3287-1 ASSOCIATE terma IAC SE Server: IAC SB TN3270E DEVICE-TYPE IS IBM-3287-1 CONNECT terma's-prt IAC SE Client: IAC SB TN3270E FUNCTIONS REQUEST SCS-CTL-CODES RESPONSES IAC SE Server: IAC SB TN3270E FUNCTIONS IS SCS-CTL-CODES RESPONSES IAC SE (3270 data stream is exchanged)

服务器:IAC SB TN3270E功能是响应IAC SE(交换3270数据流)。(用户决定请求打印机会话,所以客户端再次连接到服务器上的Telnet端口)服务器:IAC DO TN3270E客户端:IAC将TN3270E服务器:IAC SB TN3270E发送设备类型IAC SE客户端:IAC SB TN3270E设备类型请求IBM-3287-1关联terma IAC SE服务器:IAC SB TN3270E设备类型为IBM-3287-1连接terma的prt IAC SE客户端:IAC SB TN3270E功能请求SCS-CTL-CODES响应IAC SE服务器:IAC SB TN3270E功能为SCS-CTL-CODES响应IAC SE(交换3270数据流)

14. Security Considerations
14. 安全考虑

These extensions to telnet do not provide any security features beyond that of ordinary telnet; so a TN3270E session is no more secure than an ordinary telnet session. Once standard authentication and/or privacy mechanisms for telnet have been defined, these may also be usable by TN3270E. One of the important uses of authentication would be to answer the question of whether or not a given user should be allowed to "use" a specific terminal or printer device-name.

telnet的这些扩展不提供普通telnet以外的任何安全功能;因此,TN3270E会话并不比普通的telnet会话更安全。一旦定义了telnet的标准身份验证和/或隐私机制,TN3270E也可以使用这些机制。身份验证的一个重要用途是回答是否应允许给定用户“使用”特定终端或打印机设备名称的问题。

15. References
15. 工具书类

[1] Rekhter, J., "Telnet 3270 Regime Option", RFC 1041, January 1988.

[1] Rekhter,J.,“Telnet 3270体制选择”,RFC 10411988年1月。

[2] VanBokkelen, J., "Telnet Terminal-Type Option", RFC 1091, February 1989.

[2] VanBokkelen,J.,“Telnet终端类型选项”,RFC 109119989年2月。

[3] Postel, J., and J. Reynolds, "Telnet Binary Transmission", STD 27, RFC 856, May 1983.

[3] Postel,J.和J.Reynolds,“Telnet二进制传输”,STD 27,RFC 856,1983年5月。

[4] Postel, J., "Telnet End of Record Option", RFC 885, December 1983.

[4] Postel,J.,“Telnet记录结束选项”,RFC 885,1983年12月。

[5] "3270 Information Display System - Data Stream Programmer's Reference", publication number GA24-0059, IBM Corporation.

[5] “3270信息显示系统-数据流程序员参考”,出版物编号GA24-0059,IBM公司。

[6] "SNA Formats", publication number GA27-3136, IBM Corporation.

[6] “SNA格式”,出版物编号GA27-3136,IBM公司。

[7] "3174 Establishment Controller Functional Description", publication number GA23-0218, IBM Corporation.

[7] “3174机构控制器功能说明”,出版物编号GA23-0218,IBM公司。

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

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

[9] Postel, J., and J. Reynolds, "Telnet Timing Mark Option", STD 31, RFC 860, May 1983.

[9] Postel,J.和J.Reynolds,“Telnet定时标记选项”,STD 31,RFC 860,1983年5月。

[10] J. Penner, "TN3270 Current Practices", RFC 1576, January, 1994.

[10] J.Penner,“TN3270现行做法”,RFC 1576,1994年1月。

16. Author's Note
16. 作者说明

Portions of this document were drawn from the following sources:

本文件的部分内容取自以下来源:

- A White Paper written by Owen Reddecliffe, WRQ Corporation, October 1991.

- Owen Reddecliffe撰写的白皮书,WRQ公司,1991年10月。

- Experimental work on the part of Cleve Graves and Michelle Angel, OpenConnect Systems, 1992 - 1993.

- 克利夫·格雷夫斯和米歇尔·安吉尔的实验工作,OpenConnect系统,1992-1993年。

- Discussions at the 1993 IETF meetings.

- 1993年IETF会议上的讨论。

- Discussions on the "TN3270E" list, 1993-94 and 1997.

- 关于1993-1994年和1997年“TN3270E”清单的讨论。

17. Author's Address
17. 作者地址

Bill Kelly Division of University Computing 144 Parker Hall Auburn University, AL 36849

比尔·凯利(Bill Kelly)美国阿尔卑斯州帕克霍尔奥本大学计算机系144号,邮编36849

Phone: (334) 844-4512 EMail: kellywh@mail.auburn.edu

电话:(334)844-4512电子邮件:kellywh@mail.auburn.edu

18. Full Copyright Statement
18. 完整版权声明

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

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

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.

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