rfc740.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,121 行 · 第 1/3 页

TXT
1,121
字号
      one record; however, those sites which are concerned with
      efficiency should send transactions as close as possible to the
      880 byte limit.

      There is no necessary connection between physical message
      boundaries and transactions ("logical messages"); the NCP can
      break a transaction arbitrarily into physical messages. The CCN
      server starts each transaction at the beginning of a new physical
      message, but this is not a requirement of the protocol.

      Each logical record within a transaction begins with an "op code"
      byte which contains the channel identification, so its value is
      unique to each channel but constant within a channel.  This choice
      provides the receiver with a convenient way to verify
      bit-synchronization, and it also allows an extension in the future
      to true "multi-leaving" (i.e., multiplexing all channels within
      one connection in each direction).

      The only provisions for transmission error detection in the
      current NETRJS protocol are (1) the "op code" byte to verify bit
      synchronization and (2) the transaction sequence number. Under the
      NETRJS protocol, a data transfer error must abort the entire
      transmission; there is no provision for restart.















Braden                                                          [page 7]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



   2.  Meta-Notation

      The following description of the NETRJS data transfer protocol
      uses a formal notation derived from that proposed in RFC 31 by
      Bobrow and Sutherland. The notation consists of a series of
      productions for bit string variables. Each variable name which
      represents a fixed length field is followed by the length in bits
      (e.g., SEQNUMB(16)).  Numbers enclosed in quotes are decimal,
      unless qualified by a leading X meaning hex.  Since each hex digit
      is 4 bits, the length is not shown explicitly in hex numbers.  For
      example, '255'(8) and X'FF' both represent a string of 8 one bits.

      The meta-syntactic operators are:

         |     :alternative string

         [ ]   :optional string

         ( )   :grouping

         +     :catenation of bit strings

      The numerical value of a bit string (interpreted as an integer) is
      symbolized by a lower case identifier preceding the string
      expression and separated by a colon.  For example, in
      "i:FIELD(8)", i symbolizes the numeric value of the 8 bit string
      FIELD.

      Finally, we use Bobrow and Sutherland's symbolism for iteration of
      a sub-string:  (STRING-EXPRESSION = n); denotes n occurrences of
      STRING-EXPRESSION, implicitly catenated together.  Here any n
      greater or equal to 0 is assumed unless n is explicitly
      restricted.

   3.  Protocol Definition

      STREAM ::= (TRANSACTION = n) + [END-OF-DATA]

         That is, STREAM, the entire sequence of data on a particular
         open channel, is a sequence of n TRANSACTIONS followed by an
         END-OF-DATA marker (omitted if the sender aborts the channel).

      TRANSACTION ::= THEAD(72) + (RECORD = r) + ('0'(1) = f)

         That is, a transaction consists of a 72 bit header, r records,
         and f filler bits; it may not exceed 880*8 bits.






Braden                                                          [page 8]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



      THEAD ::= X'FF'+f:FILLER(8)+SEQNUMB(16)+LENGTH(32)+X'00'

         Transactions are to be consecutively numbered in the SEQNUMB
         field, starting with 0 in the first transaction after the
         channel is (re-) opened.  The 32 bit LENGTH field gives the
         total length in bits of the r RECORD's which follow.  For
         convenience, the using site may add f additional filler bits at
         the end of the transaction to reach a convenient word boundary
         on his machine; the value f is transmitted in the FILLER field
         of THEAD.

      RECORD ::= COMPRESSED | TRUNCATED

         RJS will accept intermixed RECORD's which are COMPRESSED or
         TRUNCATED in an input stream.  RJS will send one or the other
         format in the printer and punch streams to a given VRBT; the
         choice is determined for each terminal id.

      COMPRESSED ::= '2'(2) + DEVID(6) + (STRING = p) + '0'(8)

      STRING     ::= ('6'(3) + i:DUPCOUNT(5))  |

         This form represents a string of i consecutive blanks

                     ('7'(3) + i:DUPCOUNT(5) + TEXTBYTE(8)) |

         This form represents string of i consecutive duplicates of
         TEXTBYTE.

                     ('2'(2) + j:LENGTH(6) + (TEXTBYTE(8) = j))

         This form represents a string of j characters.

      TRUNCATED  ::= '3'(2) + DEVID(6) + n:COUNT(8) + (TEXTBYTE(8)=n)

      DEVID(6)   ::= DEVNO(3) + t:DEVTYPE(3)

         DEVID identifies a particular virtual device, i.e., it
         identifies a channel.  DEVTYPE specifies the type of device, as
         follows:

            t = 1:  Output to remote operator console
                2:  Input from remote operator console
                3:  Input from card reader
                4:  Output to printer
                5:  Output to card punch
              6,7:  Unused





Braden                                                          [page 9]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



         DEVNO identifies the particular device of type t at this remote
         site; at present only DEVNO = 0 is possible.

      END-OF-DATA ::=X'FE'

         Signals end of job (output) or job stack (input).














































Braden                                                         [page 10]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



                               APPENDIX B

                    Telnet for VRBT Operator Console

   The remote operator console connections use the ASCII Telnet
   protocol. Specifically:

      1.  The following one-to-one character mappings are used for the
      three EBCDIC graphics not in ASCII:

         ASCII in Telnet     |  NETRJS
         ----------------------------------------------------
         broken vertical bar |  solid vertical bar
         tilde               |  not sign
         back slash          |  cent sign

      2.  Telnet controls are ignored.

      3.  An operator console input line which exceeds 133 characters
      (exclusive of CR LF) is truncated by NETRJS.

      4.  NETRJS accepts BS (Control-H) to delete a character and CAN
      (Control-X) to delete the current line.  The sequence CR LF
      terminates each input and output line.  HT (Control-I) is
      translated to a single space. An ETX (Control-C) terminates
      (aborts) the session.  All other ASCII control characters are
      ignored.

      5.  NETRJS translates the six ASCII graphics with no equivalent in
      EBCDIC into the character question mark ("?") on input.






















Braden                                                         [page 11]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



                               APPENDIX C

                            Carriage Control

   The carriage control characters sent in a printer channel by NETRJS
   conform to IBM's extended USASI code, defined by the following table:

      CODE       ACTION BEFORE WRITING RECORD
      ----       ----------------------------
      Blank      Space one line before printing
      0          Space two lines before printing
      -          Space three lines before printing
      +          Suppress space before printing
      1          Skip to channel 1
      2          Skip to channel 2
      3          Skip to channel 3
      4          Skip to channel 4
      5          Skip to channel 5
      6          Skip to channel 6
      7          Skip to channel 7
      8          Skip to channel 8
      9          Skip to channel 9
      A          Skip to channel 10
      B          Skip to channel 11
      C          Skip to channel 12



























Braden                                                         [page 12]

RFC 740                                              RTB 42423 22 Nov 77
NETRJS Protocol



                               APPENDIX D

                      Network/RJS Command Summary

   This section presents an overview of the RJS Operator Commands, for
   the complete form and parameter specifications please see references
   2 and 3.

   Terminal Control and Information Commands

      SIGNON       First command of a session; identifies VRBT by giving
                   its terminal id.

      SIGNOFF      Last command of a session; RJS waits for any data
                   transfer in progress to complete and then closes all
                   connections.

      STATUS       Outputs on the remote operator console a complete
                   list, or a summary, of all jobs in the system for
                   this VRBT, with an indication of their processing
                   status in the batch host.

      ALERT        Outputs on the remote operator console an "Alert"
                   message, if any, from the computer operator.  The
                   Alert message is also automatically sent when the
                   user does a SIGNON, or whenever the message changes.

      MSG          Sends a message to the computer operator or to any
                   other RJS terminal (real or virtual).  A message from
                   the computer operator or another RJS terminal will
                   automatically appear on the remote operator console.

   Job Control and Routing Commands

⌨️ 快捷键说明

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