home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1576.txt < prev    next >
Text File  |  1996-05-07  |  25KB  |  370 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          J. Penner Request for Comments: 1576                                     DCA, Inc. Category: Informational                                     January 1994 
  8.  
  9.                          TN3270 Current Practices 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  This memo    does not specify an Internet standard of any kind.  Distribution of    this memo is unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    This document describes the existing implementation of transferring    3270 display terminal data using currently available telnet    capabilities.  The name traditionally associated with this    implementation is TN3270. 
  18.  
  19.    Information is provided to aid in the implementation of TN3270    servers as well as client terminal emulators. 
  20.  
  21.    The following areas pertaining to TN3270 implementations are covered    in this document: 
  22.  
  23.       1. the telnet options negotiated to transition from a NVT ASCII          state to a TN3270 state ready to process incoming 3270 data          stream commands 
  24.  
  25.       2. the method for sending and receiving 3270 data 
  26.  
  27.       3. the method of handling some special keys known as SYSREQ and          ATTN using current available telnet commands 
  28.  
  29.       4. the events that will transition a TN3270 session back to an NVT          session 
  30.  
  31. Table of Contents 
  32.  
  33.       1.  Motivation  . . . . . . . . . . . . . . . . . . .   2       2.  Background  . . . . . . . . . . . . . . . . . . .   2       3.  Telnet Options and Commands Used  . . . . . . . .   4       4.  Connection Negotiation  . . . . . . . . . . . . .   4       4.1 3270 Regime Option  . . . . . . . . . . . . . . .   6       4.2 Suppress Go Ahead Option  . . . . . . . . . . . .   6       4.3 Echo Option . . . . . . . . . . . . . . . . . . .   6       4.4 Timing Mark Option  . . . . . . . . . . . . . . .   7 
  34.  
  35.  
  36.  
  37. TN3270 Enhancements Working Group                               [Page 1] 
  38.  RFC 1576                TN3270 Current Practices            January 1994 
  39.  
  40.        5.  Testing for session presence  . . . . . . . . . .   7       6.  Handling 3270 data  . . . . . . . . . . . . . . .   7       7.  3270 Structured Fields  . . . . . . . . . . . . .   8       8.  The 3270 ATTN (Attention) Key . . . . . . . . . .   8       9.  The 3270 SYSREQ Key . . . . . . . . . . . . . . .   9       10. Items not addressed by TN3270 . . . . . . . . . .  10       11. References  . . . . . . . . . . . . . . . . . . .  10       12. Security Considerations . . . . . . . . . . . . .  11       13. Author's Note . . . . . . . . . . . . . . . . . .  11       14. Author's Address  . . . . . . . . . . . . . . . .  12 
  41.  
  42. 1. Motivation 
  43.  
  44.    3270 display terminal data differs from traditional display terminal    data in that it is block mode and uses EBCDIC instead of ASCII    character representation. These two differences are the primary    reason for the differentiation of TN3270 from standard Telnet in this    document. 
  45.  
  46. 2. Background 
  47.  
  48.    Existing complex IBM 3270 display terminal networks are not easily    integrated with the increasing number of multi-platform networking    environments, specifically TCP/IP. These complex networks include    terminals attached to a 3270 host using SNA (Systems Network    Architecture) and non-SNA connections. To address the issue of easily    connecting display terminals to 3270 hosts using IP networks, several    vendors have introduced telnet servers that provide TCP/IP users a    connection to existing IBM mainframes by supporting display terminal    emulation using a subset of the existing telnet protocol.  Telnet    servers may exist on the host itself, or be connected to the host    using SNA or non-SNA methods. 
  49.  
  50.    IBM terminals are generically referred to as 3270's which includes a    broad range of terminals and devices, not all of which actually begin    with the numbers 327x. 
  51.  
  52.    3270 terminals in the IBM SNA network environment have two sessions    with the host computer application. One is used for communicating    with the host application, the other is used for communicating with    the SSCP (System Services Control Point) that links the terminal with    the appropriate host computer.  For the purposes of TN3270, this    distinction is not apparent or relevant since there is actually only    a single telnet session with the host computer or server.  On an IBM    SNA network, the 3270 terminal has a special key that toggles between    the two sessions (SYSREQ).  A brief discussion on how some telnet    servers deal with this is included. 
  53.  
  54.  
  55.  
  56.  TN3270 Enhancements Working Group                               [Page 2] 
  57.  RFC 1576                TN3270 Current Practices            January 1994 
  58.  
  59.     In an SNA environment, a client session is identified by a Logical    Unit (LU) name.  In a non-SNA environment, there is not a LU name    associated with a client session.  The closest thing to a LU name in    the TN3270 environment is the client's IP address.  Although some    telnet servers are connected to the host using SNA, TN3270 clients    using these servers have no defined way to determine the LU name    associated with the session. 
  60.  
  61.    Telnet servers that exist in non-SNA environments do not have to be    concerned about providing TN3270 clients with support for the SNA    functions described in this document. 
  62.  
  63.    TN3270 does not support typical SNA responses and is classified as a    non-SNA protocol.  A TN3270 emulator is not aware or concerned about    how the telnet server is connected to a 3270 host application. 
  64.  
  65.    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. 
  66.  
  67.    Some typical "SNA" functions such as the SYSREQ and ATTN keys have    been mapped to existing telnet commands and are supported by some    telnet server implementations. 
  68.  
  69.    Currently, support for 3270 terminal emulation over Telnet is    accomplished by the de facto standard of negotiating three separate    Telnet Options - Terminal-Type [2], Binary Transmission [3], and End    of Record [4].  This negotiation and the resulting data flow will be    described below. 
  70.  
  71.    RFC 1041 [1] attempted to standardize the method of negotiating 3270    terminal support by defining the 3270 Regime Telnet Option.    Historically, very few developers and vendors ever implemented RFC    1041. 
  72.  
  73.    All references in this document to the 3270 datastream, SNA versus    non-SNA operation, 3270 datastream commands, orders, structured    fields and the like rely on [6]. 
  74.  
  75.    References to SNA Request and Response Units rely on [7].  References    to SNA and SSCP rely on [12]. 
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  TN3270 Enhancements Working Group                               [Page 3] 
  86.  RFC 1576                TN3270 Current Practices            January 1994 
  87.  
  88.  3. Telnet Options and Commands Used 
  89.  
  90.    TN3270 makes use of existing Telnet options and does not define any    additional options or commands. 
  91.  
  92.        Telnet option    Value (decimal)        -------------    ---------------        BINARY            0        TERMINAL-TYPE    24        EOR              25 
  93.  
  94.    Additional options may be used during a TN3270 session and are    interpreted as per their respective RFCs. These are [1] 3270-REGIME,    [8] SUPPRESS-GO-AHEAD, [9] ECHO and [10] TIMING-MARK. Other options    should be rejected unless they are specifically handled by the client    for NVT mode. 
  95.  
  96.    Commands that may be encountered during a TN3270 session and are    described in RFC 854 [11] include NOP, BREAK and Interrupt Process. 
  97.  
  98. 4. Connection Negotiation 
  99.  
  100.    The following example shows a TN3270-capable server and a TN3270    client establishing a connection: 
  101.  
  102.    The TCP/IP port used to connect with is 23 (Telnet). 
  103.  
  104.    At any place before and during the TN3270 connection negotiation    process, other telnet commands and data may be transferred and will    be interpreted under the existing telnet state. Some existing TN3270    servers start a client connection using an NVT telnet dialog to    establish parameters needed to complete the TN3270 connection to the    desired host. 
  105.  
  106.    The order of negotiating terminal type, EOR and BINARY is not    significant, this example shows a typical TN3270 connection. 
  107.  
  108.       Server:  IAC DO TERMINAL-TYPE 
  109.  
  110.       Client:  IAC WILL TERMINAL-TYPE 
  111.  
  112.       Server:  IAC SB TERMINAL-TYPE SEND IAC SE 
  113.  
  114.       Client:  IAC SB TERMINAL-TYPE IS <terminal type>IAC SE 
  115.  
  116.       where <terminal type> is a string consisting of terminal model,       type and support of enhanced attribute bytes; an example is IBM-       3278-2.  The acceptable values are listed in RFC 1340, Assigned 
  117.  
  118.  
  119.  
  120. TN3270 Enhancements Working Group                               [Page 4] 
  121.  RFC 1576                TN3270 Current Practices            January 1994 
  122.  
  123.        Numbers [5].  Other values are in use that do not exist in [5]. 
  124.  
  125.       The -2 following 3278 designates the alternate screen size.  3270       terminals have the ability to switch between the standard (24x80)       screen size and an alternate screen size.  Model -2 is 24x80 which       is the same as the standard size.  Model -3 is 32x80, model -4 is       43x80 and model -5 is 27x132. 
  126.  
  127.       Appending the two character string "-E" to the end of the terminal       type signifies that the terminal is capable of handling 3270       extended data stream. This is interpreted to mean that the       terminal is able to handle structured fields, which are described       below.  Some telnet server implementations also interpret this to       mean that the terminal is capable of handling extended attributes       (highlighting, field validation, character set, outlining, etc.)       [6]. 
  128.  
  129.       The 3279 series of terminals is capable of extended attributes       while the 3278 series is not. 
  130.  
  131.       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       Server:  <3270 data stream> IAC EOR       Client:  <3270 data stream> IAC EOR            .            .            .            . 
  132.  
  133.    To terminate the connection the socket is closed by one of the    session partners. Typically, when the user logs off of the host, the    telnet server closes the connection. 
  134.  
  135.    If the telnet server wishes to go back to NVT mode, it may issue the    following telnet options: 
  136.  
  137.        Server:  IAC WONT BINARY        Client:  IAC DONT BINARY 
  138.  
  139.            or 
  140.  
  141.        Server:  IAC WONT EOR        Client:  IAC DONT EOR 
  142.  
  143.    Either one of the above two cases causes the connection to not    satisfy the requirements for a valid TN3270 session. The telnet    client would then process data from the server as though it were NVT    ASCII data. 
  144.  
  145.  
  146.  
  147. TN3270 Enhancements Working Group                               [Page 5] 
  148.  RFC 1576                TN3270 Current Practices            January 1994 
  149.  
  150.     The following examples show how a TN3270 client handles the 3270-    REGIME, SUPPRESS-GO-AHEAD, ECHO and TM options. 
  151.  
  152. 4.1 3270 Regime Option 
  153.  
  154.    Very few servers support the 3270 Regime Telnet Option.  If the    client does not support this option and responds negatively as shown    in the following example, the server will proceed on to the more    typical example shown above. 
  155.  
  156.       Server:  IAC DO 3270-REGIME       Client:  IAC WONT 3270-REGIME        Normal negotiation:       Server:  IAC DO TERMINAL-TYPE          ...  (see above) 
  157.  
  158. 4.2 Suppress Go Ahead Option 
  159.  
  160.    The Suppress Go Ahead option [8] is requested by some servers. The    Suppress Go Ahead option RFC lists the default as being go aheads are    transmitted to signal the receiver to begin transmitting.  Since    TN3270 negotiates binary and end-of-record and is a block mode    protocol, the telnet go ahead character is not sent.  Most servers do    not negotiate this option even though they do not use the telnet go    ahead character. 
  161.  
  162.       Server:  IAC DO SUPPRESS-GO-AHEAD       Client:  IAC WILL SUPPESS-GO-AHEAD 
  163.  
  164. 4.3 Echo Option 
  165.  
  166.    The Echo option [9] is negotiated by those servers that make use of    the telnet NVT mode to allow the user to enter information prior to    negotiating the options necessary for TN3270.  This information    includes but is not limited to user identification, password and    destination 3270 host.  Some servers accept the default for this    option which is for the client to not do a local echo of characters    the user enters at the keyboard. This allows the server to decide if    it should echo characters back to the client (or not in the case of    password). Echoing characters back to the client causes slow response    time since every character is typically echoed individually. Because    of this, some servers negotiate for the client to do it's own local    echoing (except for passwords). The following example illustrates    this case. 
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. TN3270 Enhancements Working Group                               [Page 6] 
  175.  RFC 1576                TN3270 Current Practices            January 1994 
  176.  
  177.        Server:  IAC DO ECHO       Client:  IAC WILL ECHO         (Client does local display of all characters)       Server:  IAC WONT ECHO       Client:  IAC DONT ECHO         (Client enters password - not locally displayed or remotely       echoed)       Server:  IAC DO ECHO       Client:  IAC WILL ECHO      (Client resumes local display of all characters)  4.4 Timing Mark Option 
  178.  
  179.    The Timing Mark option [10] is used by some servers to test for the    continued presence of a TN3270 client. The following example will    assure the server the client is still alive. 
  180.  
  181.       Server:  IAC DO TIMING-MARK       Client:  IAC WONT TIMING-MARK 
  182.  
  183. 5. Testing for session presence 
  184.  
  185.    The NOP command (hexadecimal F1) [11] is used by some servers to test    for the continued presence of a TN3270 client. If a client has    terminated abnormally, TCP/IP send errors will occur. The Timing Mark    option, described above, is also used to test for presence. 
  186.  
  187.       Server:  IAC NOP       Client:  <ignore / no response> 
  188.  
  189. 6. Handling 3270 data 
  190.  
  191.    The 3270 data stream consists of a command and its associated data.    Commands include but are not limited to erase screen, erase and write    to screen and read current screen; see [6] for a complete description    of 3270 commands and parameters. 
  192.  
  193.    The reason for negotiating the EOR telnet option [4] is to provide a    method for separating these commands since no length information is    specified. 3270 commands are interpreted by the telnet client in    their entirety.  Each 3270 command and possible data is terminated    with the IAC EOR sequence. 
  194.  
  195.    The Binary option [3] is also required since 3270 data may contain    the FF (hexadecimal) or IAC character. When this character is    encountered during a TN3270 connection it is handled as per the    Binary RFC [3]. 
  196.  
  197.  
  198.  
  199.  TN3270 Enhancements Working Group                               [Page 7] 
  200.  RFC 1576                TN3270 Current Practices            January 1994 
  201.  
  202.  7. 3270 Structured Fields 
  203.  
  204.    3270 structured fields provide a much wider range of features than    "old-style" 3270 data, such as support for graphics, partitions and    IPDS printer datastreams. A structured field is a 3270 data type that    allows non 3270 data to be embedded within 3270 data. Briefly, a    structured field consists of the structured field command followed by    one or more data blocks. Each data block has a length and a    structured field identifier, followed optionally by additional data. 
  205.  
  206.    Not every TN3270 client can be expected to support all structured    field functions.   There must be a  mechanism by which those clients    that are capable of supporting some or all structured field functions    can indicate their wishes. This is typically done by adding "-E" to    the end of the terminal type string. That is, when the terminal    identifies itself as being able to handle extended attributes, it    also is capable of being able to send and receive structured fields. 
  207.  
  208.    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 client.    The client responds with a Query Reply, listing which, if any,    structured field functions it supports. 
  209.  
  210.    A TN3270 client that supports structured fields will respond to a    Read Partition Query command with the appropriate reply.  The    sequence of events when a client receives a Read Partition Query and    does not support structured fields is left up to the client    implementation.  Typically clients can identify at least this    structured field and reply with a null set. 
  211.  
  212. 8. The 3270 ATTN (Attention) Key 
  213.  
  214.    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.  A majority of the telnet servers    currently accept the telnet IAC BREAK (code 243) [11] sequence to    signal this event. 
  215.  
  216.    Use of this key requires two things: 
  217.  
  218.     - The TN3270 clients 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 transmits a Telnet BREAK command to the server. 
  219.  
  220.  
  221.  
  222.  
  223.  
  224. TN3270 Enhancements Working Group                               [Page 8] 
  225.  RFC 1576                TN3270 Current Practices            January 1994 
  226.  
  227.      - The TN3270 servers translate the BREAK command received from       a TN3270 client into the appropriate form and pass it along       to the host application as an ATTN key.  In other words, the       server representing an SLU in an SNA session would send       a SIGNAL RU to the host application. 
  228.  
  229.    The ATTN key is not supported in a non-SNA environment; therefore, a    TN3270 server representing non-SNA 3270 devices ignores any Telnet    BREAK commands it receives from a client. 
  230.  
  231. 9. The 3270 SYSREQ Key 
  232.  
  233.    The 3270 SYSREQ key is useful in an environment where the telnet    server is attached to the host using SNA. The SYSREQ key is useful in    this environment when the host application becomes locked or the user    wishes to terminate the session without closing the Telnet    connection. 
  234.  
  235.    The Telnet Interrupt Process (IP) command [11] is interpreted by some    telnet servers as a SYSREQ key. Other servers recognize the 3270 Test    Request key as a SYSREQ key.  In an SNA environment, pressing this    key toggles the terminal between the host application session and the    SSCP session.  Usually the user will enter LOGOFF once this key has    been pressed to terminate the application session and then select a    new host to connect to.  Sometimes, if SYSREQ is pressed again, the    host application will become unlocked and normal activities may then    proceed. 
  236.  
  237.    It is entirely up to the telnet server to interpret this command and    send the appropriate commands to the host as well as format the    resulting host data for display on the telnet client. The data format    during the SSCP session is in a slightly different format than normal    3270 data. Since the telnet server has no way to pass this data    directly to the telnet client, it must either handle it entirely and    ignore SYSREQ events or convert it to 3270  data to present to the    client. 
  238.  
  239.    To implement SYSREQ key support, TN3270 clients 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 would either    transmit a Telnet IP command or Test Request key to the server,    depending on the server implementation. 
  240.  
  241.    TN3270 servers representing non-SNA 3270 terminals may ignore any    Telnet IP commands or Test Request keys they receive from a client. 
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  TN3270 Enhancements Working Group                               [Page 9] 
  248.  RFC 1576                TN3270 Current Practices            January 1994 
  249.  
  250.  10. Items not addressed by TN3270 
  251.  
  252.    There are several items that are not supported by current TN3270    implementations; among them are the following: 
  253.  
  254.     - TN3270 provides no capability for clients to emulate the 328x       class of printers. 
  255.  
  256.     - There is no mechanism by which a Telnet client can 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. 
  257.  
  258.     - The 3270 ATTN and SYSREQ keys are not universally supported. 
  259.  
  260.     - There is no support for the SNA positive/negative response       process. All data that is sent is assumed to either be handled       or ignored.  The lack of SNA response processing in TN3270 is       part of what makes TN3270 efficient.       A negative response indicates some sort of error at the client       while processing the previously received data; this could be       caused by the host application building a 3270 datastream that       contains an invalid command, or by a mechanical error at the       client side, among other things.       Positive responses indicate processing of the previously received       data has completed. 
  261.  
  262.     - There is no mechanism by which the client can access the SNA       BIND information.  The BIND image in a SNA environment       contains a detailed description of the session between the       telnet server and the host application. 
  263.  
  264.     - The connection negotiation does not make it clear whether       clients should support 3270 structured fields. 
  265.  
  266. 11. References 
  267.  
  268.    [1] Rekhter, Y., "Telnet 3270 Regime Option", RFC 1041, IBM        Corporation, January 1988. 
  269.  
  270.    [2] VanBokkelen, J., "Telnet Terminal-Type Option", RFC 1091, FTP        Software, Inc., February 1989. 
  271.  
  272.    [3] Postel, J., and J. Reynolds, "Telnet Binary Transmission", STD        27, RFC 856, USC/Information Sciences Institute, May 1983. 
  273.  
  274.  
  275.  
  276.  
  277.  
  278. TN3270 Enhancements Working Group                              [Page 10] 
  279.  RFC 1576                TN3270 Current Practices            January 1994 
  280.  
  281.     [4] Postel, J., "Telnet End of Record Option", RFC 885,        USC/Information Sciences Institute, December 1983. 
  282.  
  283.    [5] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340,        USC/Information Sciences Institute, July 1992. 
  284.  
  285.    [6] "3270 Information Display System - Data Stream Programmer's        Reference", publication number GA23-0059, IBM Corporation. 
  286.  
  287.    [7] "Systems Network Architecture - Formats", publication number        GA27-3136, IBM Corporation. 
  288.  
  289.    [8] Postel, J., and J. Reynolds, "Telnet Suppress Go Ahead Option",        STD 29, RFC 858, USC/Information Sciences Institute, May 1983. 
  290.  
  291.    [9] Postel, J., and J. Reynolds, "Telnet Echo Option", STD 28, RFC        857, USC/Information Sciences Institute, May 1983. 
  292.  
  293.   [10] Postel, J., and J. Reynolds, "Telnet Timing Mark Option", STD 31,        RFC 860, USC/Information Sciences Institute, May 1983. 
  294.  
  295.   [11] Postel, J., and J. Reynolds, "Telnet Protocol Specification", STD        8, RFC 854, USC/Information Sciences Institute, May 1983. 
  296.  
  297.   [12] "Systems Network Architecture - Concepts and Products",        publication number GC30-3072, IBM Corporation. 
  298.  
  299. 12. Security Considerations 
  300.  
  301.    Security issues are not discussed in this memo. 
  302.  
  303. 13. Author's Note 
  304.  
  305.    Portions of this document were drawn from the following sources: 
  306.  
  307.     - A White Paper written by Owen Reddecliffe, WRQ Corporation,       October 1991. 
  308.  
  309.     - Experimental work on the part of Cleve Graves and Michelle       Angel, OpenConnect Systems, 1992 - 1993. 
  310.  
  311.     - Discussions at the March 1993 IETF meeting and TN3270 BOF at       Interop August 1993. 
  312.  
  313.     - Discussions on the "TN3270E" list, 1993. 
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  TN3270 Enhancements Working Group                              [Page 11] 
  320.  RFC 1576                TN3270 Current Practices            January 1994 
  321.  
  322.  14. Author's Address 
  323.  
  324.    Jon Penner    DCA, Inc.    2800 Oakmont Drive    Austin, TX 78664 
  325.  
  326.    Phone: (512) 388-7090 FAX    EMail: jjp@bscs.com           or dca/g=Jon/s=Penner/ou=DCAAUS@mhs.attmail.com 
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368. TN3270 Enhancements Working Group                              [Page 12] 
  369.  
  370.