RFC 599
Update on NETRJS
NIC 20854, RFC 599: Update on NETRJS π
Okay bestie, let's start with the title block β¨ This is RFC 599, titled UPDATE ON NETRJS, and it's dated December 13, 1973 (the page header says 13 Dec 73). Robert T. Braden wrote it from UCLA/CCN, with NIC #20854 and RFC #599 as the numbers, and it sits in the Network Working Group π The header doesn't list anything it obsoletes or updates, so it's really just a status report on NETRJS. Lowkey a very important one π
A. INTRODUCTION πΈ
In July 1971, CCN published RFC #189, which defined NETRJS, a private protocol for remote job entry. NETRJS gives the Network an interface into CCN's rje program, which is called RJS (Remote Job Service).(3) As noted in an earlier RFC,(6) "RJS" is the proper name of a software package that exists only at CCN, not a generic term for rje. Not me correcting the naming π
For over two years now, CCN has been providing rje service to the Network using NETRJS. We know of the following distinct implementations of NETRJS user programs:
RAND OS/MVT on 370/158 (originally on 360/65)
UCLA-NMC SEX on Sigma 7
Illinois ANTS on PDP-11
Utah Tenex on PDP-10
MIT-DMCG ITS on PDP-10
Harvard DEC system on PDP-10
UCSB OS/MVT on 360/75
ISI,BBN,NIC,I4 Tenex on PDP-10
We apologize to anyone we accidentally left off this list π₯Ί Writing a new user process for NETRJS has turned out to be a modest and straightforward task, so honestly, no excuses needed π§
During the month of October, 1973, CCN processed 1373 batch jobs via NETRJS. The complete statistics are:
1,373 Jobs submitted
1,105 Jobs "printed"
0 Jobs "punched"
49,400 Cards "read"
822,900 Lines "printed"
18,907 Pages "printed"
393.6 Connect hours
The average job submitted was 360 lines ("cards"), and it returned 745 lines on 17.1 pages. These figures are fairly typical, so yeah, that's a whole lot of printing π¨οΈπ
B. NEW ICP SOCKETS π¦
At the request of the Socket Czar, Jon Postel (see RFC #433), we intend to move the NETRJS ICP sockets from 11, 13, and 15 to 71, 73, and 75, respectively. Right now NETRJS is available from either socket subspace, so system programmers who maintain NETRJS user processes can switch over at their leisure π«Ά We plan to "decommit" sockets 11, 13, and 15 on July 1, 1974. Mark your calendars, bestie π
Those hosts that access NETRJS via socket 1 are unaffected π
C. NEW NETRJS β¨
Last fall, CCN installed a brand new implementation of its NETRJS server. An internal NETRJS rewrite was necessitated by other system changes, and it was timed to coincide with the installation, on September 5, of the "last release" of OS/360, Release 21.7. The new version of NETRJS has a bunch of internal improvements over the original version that was written two years ago. There are also a few external differences, as follows:
1. No More Squish π«§
The long-standing "squish" problem in NETRJS has been fixed, finally π The problem came from the "squishiness" of Network data transfer, meaning the variable delay between originator and receiver processes caused by NCP buffering. The result was that a short print output file could be "transmitted" by RJS, dequeued, and discarded at CCN before the first message had actually reached the remote host. If the remote host crashed, or the user tried to cancel (and save) the output stream, it was already too late, and the output was lost in the "squish" π We were careless about this in the first version, ngl. Now NETRJS waits for the RFNM from the end-of-data mark before telling RJS to discard the job output π₯
2. Timeouts β°
The new version is a little tougher on timeouts, so CCN can free up resources when users are slow π
- a. Signon Timeout: If the user, after connecting to NETRJS and receiving the
READYmessage, fails to send a validSIGNONcommand within 3 minutes, CCN will close the Telnet connections. - b. Data Transfer Timeout:
- (1) CCN will abort the
READERdata transfer connection if the user site leaves the connection open without sending any bits for 5 minutes. - (2) CCN will abort the
PRINTERorPUNCHdata transfer connection if the user site stops accepting bits for 5 minutes.
- (1) CCN will abort the
3. New Messages π¬
The NETRJS messages sent to the remote terminal have been revised so it's easier to tell whether a problem is at CCN, at the user site, or in the Network. See Reference 8 for a complete list π
4. Subsystem Interrupt π
The user can send a Control-C to terminate their NETRJS session either before or after signon. Continuation is not possible after the Control-C.
This is the escape hatch for a user who, for some reason, can't signon, can't signoff, or can't close their Telnet connection. If the user entered via the RJS command in Socket 1, Control-C will return them to the Server Telnet command level π
One other improvement will reduce user frustration π₯Ή NETRJS now returns an INVALID SIGNON message if the user enters anything other than a valid SIGNON command after initially connecting to the NETRJS server.
D. CLARIFICATIONS AND AMENDMENTS TO NETRJS PROTOCOL π
Over the past two years, system programmers writing NETRJS user processes have pointed out areas of the protocol that were poorly defined in RFC #189. A few minor changes were also made, largely because of implementation accidents π€
- The jobname header of a print file does not have an ASA carriage control byte. However, it will be encoded in the format (compressed or truncated) selected by a particular VRBT.
- The punch connection sends 81 byte records, with the first byte being a blank carriage control character. This is contrary to RFC #189 and is illogical π© It was an implementation bug that we kept for compatibility, which is a whole mood.
- Page 3 of RFC #189 defined fixed values for the user's data transfer sockets relative to his Telnet sockets. In fact, NETRJS does not enforce these user data transfer sockets, but it will accept RFC's for any user sockets π§
- RFC #189 specified a choice of two character mappings for the virtual remote batch terminal: EBCDIC and ASCII (-68). An ASCII-63 mapping was added later for the convenience of users with Model 33-like keyboards (RAND, actually) β¨οΈ The ASCII-63 mapping is selected by doing an ICP to socket 75 or by entering "TTYRJS" in CN's Telnet Server. Figure 1 shows the actual ASCII-63 mapping in use today. This supersedes the earlier version of the mapping, which was shown in RFC 338 π
- The ASCII-68 mapping specified in RFC 189 was also changed to provide unique mappings for all ASCII characters. The present ASCII-68 mapping, used by both NETRJS and TSO at CCN, is shown in Figure 1 π
G. REFERENCES ON NETRJS β¨
- "Interim NETRJS Specifications", R. T. Braden. RFC #189: NIC #7133, July 15, 1971.
okay so this one is the basic system programmer's definition doc π and honestly? it's the real final spec π. the proposed changes mentioned on the first page of RFC #189 never got implemented, because the DTP that was super trendy back then became obsolete π
- "NETRJS Remote Operator Commands", R. T. Braden. NIC #7182, August 9, 1971
this one, plus References 3 and 8, is the remote operator (i.e. user) command language for NETRJS π. it's the basic user docs for NETRJS at CCN, so if you're a user, this is your bible π
- "Implementation of a Remote Job Service", V. Martin and T. W. Springer. NIC #7183, July, 1971.
- "Remote Job Entry to CCN via UCLA Sigma 7; A scenario", UCLA/CCN. NIC #7748, November 15, 1971.
this doc described the first NETRJS user implementation on a server host π§. honestly it's no longer of general interest, so you can let it go π«Ά
- "Using Network Remote Job Entry", E. F. Harslem. RFC #307: NIC #9258, February 24, 1972.
ngl this one is out of date π but it still gives a general vibe of the Tenex NETRJS user process "RJS", so it's worth a look for the big picture πΈ
- "EBCDIC/ASCII Mapping for Network RJS", R. T. Braden. RFC #338: NIC #9931, May 17, 1972.
the ASCII-63 mapping in here is no longer correct β, but CCN's standard ASCII-68/EBCDIC mapping is described correctly β so use that one, bestie π
- "NETRJT--Remote Job Service Protocol for TIP's", R. T. Braden. RFC #283: NIC 38165, December 20, 1971.
this was an attempt to define an rje protocol to handle TIPs β¨. NETRJT was never implemented, BUT a lot of its features got incorporated into the current Network standard RJE protocol. not gonna lie, that's iconic π¦
- "CCN NETRJS Server Messages to Remote User", R. T. Braden. NIC #20268, November 26, 1973.
- "FTP Data Compression", R. T. Braden. RFC #468: NIC #14742, March 8, 1973.
FIGURE 1. NETRJS CHARACTER MAPPINGS AT UCLA-CCN π
okay so the character set of the VRBT (VIRTUAL Remote Batch Terminal) is decided by the initial connection to RJS π, like this:
VRBT Character Set | ICP Socket OR Server Telnet Command
----------------------------------------------------------------
EBCDIC | 71 | RJS
ASCII-68 | 73 | ARJS
ASCII-63(tty) | 75 | TTYRJS
ASCII-68 Mapping
the corresponding graphics get mapped one-to-one π
unmatched graphics get mapped as in the table below π
ASCII-68 controls get mapped one-to-one onto the matching EBCDIC controls, with DC4(ASCII) mapped onto TM(EBCDIC) β¨
ASCII-63 Mapping
again, corresponding graphics get mapped one-to-one π
ASCII codes X'61' - X'7A' (the ASCII-68 lower case letters are mapped onto EBCDIC lower case π€
unmatched graphics get mapped as shown in the table below π
ASCII-63 controls X'00' - X'1F' are mapped as for ASCII-68 π
ASCII codes X'60' and X'7B' - X'7E' are mapped as shown in the following table π§
EBCDIC | ASCII-68 VRBT | ASCII-63 VRBT
---------------------------------------------------------------
vertical bar X'4F' | vertical bar X'7C' | open bracket X'5B'
not sign X'5F' | tilde X'7E' | close bracket X'5D'
cent sign X'4A' | back slash X'5C' | back slash X'5C'
underscore X'6D' | underscore X'5F' | left arrow X'5F'
. X'71' | up arrow X'5E' | up arrow X'5E'
open bracket X'AD' | open bracket X'5B' | . X'7C'
close bracket X'BD' | close bracket X'5D' | . X'7E'
. X'8B' | open brace X'7B' | . X'7B'
. X'9B' | close brace X'7D' | . X'7D'
. X'79' | accent X'60' | . X'60'
Note: this page is available on-line as HELP RJSCHARS in CCN's Telnet Server (Socket 1). the on-line version is set up to be typed out on an ASCII-68 terminal π₯οΈπ
π¦ where this page comes from
- ietf: rfc599 1973-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms