diff options
Diffstat (limited to 'doc/rfc/rfc98.txt')
-rw-r--r-- | doc/rfc/rfc98.txt | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc98.txt b/doc/rfc/rfc98.txt new file mode 100644 index 0000000..3e8316b --- /dev/null +++ b/doc/rfc/rfc98.txt @@ -0,0 +1,563 @@ + + + + + + +Network Working Group +Request for Comments #98 +Network Information Center #5744 + + Logger Protocol Proposal + + Edwin W. Meyer, Jr. + Thomas P. Skinner + February 11, 1971 + + + With the ARPA Network Host-to-Host Protocol specified and at +least partially implemented at a number of sites, the question of what +steps should be taken next arises. There appears to be a widespread +feeling among Network participants that the first step should be the +specification and implementation of what has been called the "Logger +Protocol"; the Computer Network Group at project MAC agrees. The term +"logger" has been commonly used to indicate the basic mechanism to gain +access (to "login") to a system from a console. A network logger is +intended to specify how the existing logger of a network host is to +interface to the network so as to permit a login from a console attached +to another host. + + To implement network login capability now seems quite +desirable.In the first place, it is natural for Network participants to +wish to learn more about the remote systems in the immediate fashion +afforded by direct use of those systems. In the second place, the +technical problems introduced by remote logins are probably less complex +than those involved with such further tasks as generalized file +transfer; thus, a Logger Protocol could be implemented relatively +quickly, furnishing additional impetus and encouragement for taking +still further steps. + + In order to furnish at least a basis for discussion (and at most +an initial version of a Logger Protocol), we have prepared this +document, which attempts to present a minimal set of conditions for +basing a Logger Protocol. This proposal covers only the mechanism for +accomplishing login. What occurs following login is not discussed here, +because we feel more experimentation is necessary before any protocol +for general console communication can be established as standard. In its +absence, each site should specify its own experimental standards for +console communications following login. + + + Some of the points raised in this document have already reached +a certain level of consensus among network participants while at least +one point is rather new. It should be clearly understood, however, that +we feel regardless of the disposal of particular issues, Networkwide + + + + [Page 1] + +RFC 98 Logger Protcol Proposal Feb 1971 + + +agreement should be reached as soon as possible on some general +protocol. This is all the more desirable in view of the fact that it is +quite likely that certain points which should be covered in this +protocol will only become apparent during the course of implementation; +therefore, the sooner a common basis for implementation can be reached, +the sooner a more rigorous protocol can be enunciated. + + Before turning to 1) a discussion of the points with which to +decide the protocol should deal, and 2) specifications for the current +state of the protocolm we feel that we should acknowledge the +consideration that a case could be made for avoidingthe difficulty of +generating a Logger Protocol by simply declaring that each host may +specify its own, perhaps unique, preferences for being approached over +the Network. Although such a course is certainly possible, it does not +seem to us to be desirable. One reason for avoiding such a course is +simply that following it hamper general Network progress, in that +adressing the task of interfacing with some 20 systems is bound to more +time-consuming than to interface with "one" system, even though each +indivudual one of the former, multiple interfaces might be in some sense +simpler than the latter, single interface. Another consideration is less +pragmatic, but nonetheless important: agreement on a common protocol +would tend to foster a sense of Network "community", which would tend to +be fragmented by the local option route. After all, the Host-to-Host +Protocol could have been handled on a per-host basis as well; assumedly, +one reason why it has not had something to do with similar, admittedly +abstract considerations. + +Context + + Structurally, the mechanism serving to login a user over the Network +consists of two parts, one part at the using host, the other at the +serving host. The using or local host is the one to which the users +typewriter is directly connected; it contains a modulewhich channels and +transforms communications between the Network connection and the +typewriter. The serving or foreign host provides the service to be used; +it contains programming that adapts the logger and command system to use +through the Network rather than a local typewriter. + + There are three different phases to a login through the network. + + 1. During the connection phase the users console is connected to + the serving logger through the network. This is, of course, + the most important phase from the protocol viewpoint. + + 2. The second or dialog phase consists of a sequence of exchange + between the user and the logger that serves to identify the + user and verify his right to use the system. In some hosts, + this phase may be minimal or non-existent. + + + + [Page 2] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + 3. The admission phase occurs after the user has successfully + completed the login dialog. It consists of switching his + network typewriter connections from the logger to an entity + providing a command processor of some sort. In some hosts + this switching may be totally conceptual; in others there + may be a real internal switching between entities. + + +The Connection Phase + + The issues involved in specifying a protocol for implementing +login can be separatedintop two major parts: how to establish and +maintain the network connection between the typewriter and the logger, +and how to conduct a dialog after the connection is made. The first part +is called the Initial Connection Protocol by Harlem and Heafner in RFC +80. It in turn consists of two subparts: how to establish a connection +and how and when to destroy it. + + We endorse the proposal for establishing a connection made in +RFC 80, which we summarize briefly for convenience. It is a two-step +process utilizing the NCP control messages to effect a connection +between the logger and the console of a potential user. First, the user +causes the hosts NCP to send out a "request for connection" control +message destined for the serving hosts loggers contact socket. The two +purposes of this message are to indicate to the logger that this user +wishes to initiate a login dialog and to communicate the identifiers of +the and send socket he wishes to operate for this purpose. The logger +rejects this request to free its contact socket. As the second step the +logger choses two sockets to connect to the user's sockets, and +dispatches connection requests for these. If the user accepts the +connection within a reasonable period, the connection phase is over, and +the dialog phase can begin. If the user does not respond, the requests +are aborted and the logger abandons this login attempt. + + There is another part to an NCP: when and how to disconnect. +There are two basic situations when a logger should disconnect. The +first situation may arise of the serving host's volition. The logger may +decide to abandon a login attempt or a logged-in user may decide to log +out. The second situation may be due to the using host's volition or +network difficulties. This situation occurs when the serving host +receives a "close connection" control message or one of the network +error messages signifying that further transmission is impossible. This +may happen for either the "read" or the "write" connection, +Disconnecting involves both the deletion of the network connections and +the stoppage of any activity at the serving host related to that user. +If the login is in progress, it should be abandoned. If the user is +already logged in, his process should be stopped, since he no longer has +control over what it is doing. This is not intended to restrict absentee + + + + [Page 3] + +RFC 98 Logger Protcol Proposal Feb 1971 + + +(i.e. consoleless) jobs. + +The Dialog Phase + + The second major part other than getting connected is how to +conduct the login dialog. This resolves itself into two parts: what to +say and in what form to say it. The login dialog generally consist of a +sequence of exchanges, a prompting by the logger followed by a user +reply specifying a name, a project, or password. However, exactly what +information is desired in what sequence is idiosyncratic to each host. +Rather than attempt to specify a standard sequence for this dialog, we +have taken the approach that each host may specify its own sequence, so +long as it is expressible as an exchange of messages in a basic +transmission format. A message is a set of information transmitted by +one of the parties that is sufficient for the other party to reply.By +host specification, either the logger or the user sends sends the first +message of the dialog. After that, messages are exchanged sequentially +until the dialog is completed. In this context "message" has no relation +to "IMP message". + + The other issue involved in the login dialog is the format for +transmitting a message. We propose that it be transmitted as a sequence +of ASCII characters (see Specificarions) in groupings calle transaction +blocks. + + 1. Character Set, We feel that there should be a standard + character set for logging-in. The alternative, requiring a + using host to maintain different transformation between its set + and of each serving host, is a burden that can only narrow the + scope of interhost usage, The character set proposed, ASCII is + widely used standard. Each host must define a transformation + sufficient to transform an arbitrary character sequence in the + host's code into ASCII and back again, without any ambiguity, + The definition of ASCII sequences to express characters not + contained in ASCII is appropriate. + + 2. Transaction Blocks. A message is transmitted as an arbitrary + integral number of transaction blocks. A transaction block + consists basically of a string of ASCII characters preceeded + by a character count. (It also contains a code field. See + below.) The count is included as an aid to efficiently + assembling a message. Some systems do not scan each character + as it is input from the console. Rather, such systems have + hardware IO controllers that place input characters into a + main memory buffer and interrupt the central processor only + when it receives an "action" character (such as "newline"). + This reduces the load on the central processor. Because such + a hardware facility is not available for interpreting + + + + [Page 4] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + network messages this scheme is proposed as a substitute. It + helps in two ways. First, a system need take no action until + it receives all characters specified in the count. Second, it + need not scan each character to find the end of the message. + The message ends at the end of the of a transaction block. + +Other Issues + + There are several other issues involved in the area of remote +logins which we feel should be raised, although most need not +necessarily have firm agreements reached for an intial protocal. + +1. "Echoplex". Echoplex is a mode of typewriter operation in which + all typed material is directed by the computer. A key struck by + a user does not print directly. Rather the code is sent to the + computer, which "echoes" it back to be printed on the typewriter. + To reduce complexity, there is to be no option for network + echoplexing (for the login only). A using system having its + typewriters operating in echoplex mode must generate a local + echo to its typewriters. However, a serving system operating + echoplexed should suppress the echo of the input during the login + phase. + +2. Correction of Mistakes. During the login dialog the user may make + a typing mistake. There is no mistake correction ecplicitly + proposed here. If the message in error has not yet been + transmitted, the user can utilize the input editing conventions + of either the using or the serving host. In the first case, the + message is corrected before transmission; in the second, it is + corrected at the serving host. If the user has made an + uncorrectlable mistake, he should abort the login and try again. + To abort, he instructs the local (using) host to "close" one of + the connections. The connections are disconnected as specified in + the Initial Connection Protocol. + +3. "Waiting". It may happen that the user may get into a login dialog + but for some reason does not complete it. The logger is left + waiting for a response by the user. The logger should not wait + indefinitely but after a reasonable interval (perhaps a minute) + abort the login and "close" the connections according to the + provisions of the Initial Connection Protocol. + +4. Socket Assignments. The Initial Connection Protocol does not + specify the ownership of the sockets to be used by the logger in + connecting to the user. (The use code field of the socket + identifier determines ownership.) The sockets may belong to the + logger or may have an arbitraryuser code not used by another + process currently existing at the serving host. Under this initial + + + + [Page 5] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + scheme, it is not possible to implement administratively assigned + user codes, because the logger must assign permanent sockets + before the identity of the user is verified. A future connection + protocol can avoid this problem by implementing a socket + connection as a part of the admission phase. The logger would talk + to the user over the logger's sockets. Following identification it + would transfer the connections to the sockets belonging to the + user. + +5. General Console Communications. A companion paper under + preparation outlines a protocol for general console communcations + between hosts. This paper will seek to adress most of the + problems associated with typewriter like communications. This + includes discussion of full and half duplex, character escapes, + action characters and other pertinent topics. Such a protocol + might not be suitable for all terminals and host systems but + would include solutions to problems for many. It is not + intended as a monolithic standard, but rather as a recommendation + for those sites who wish to implement a common protocol. The + important point is that we feel quite a bit of actual network + usage is required before all the problems are better understood. + This is a prerequisite for devising a standard. + + + SPECIFICATIONS + +Initial Connection Protocol - Connection Phase + + The following sequence is as presented in RFC 80. It is restated + here for completeness. + +1. To intiate contact , the using process requests a connection of + his receive socket (US) to a socket (SERV) in the serving host. + By convention, this socket has the 24-bit user number field set + to zero. The 8-bit tag or AEN field is set to one indicating + the socket gender to be that of a sending socket. There is no + restriction on the choice of the socket US other than it be of + of the proper gender; in this case a receive socket. As a result + the using NCP sends: + + User -> Server + + 8 32 32 8 + +-----+------------+------------+-----+ + | RTS | US | SERV | P | + +-----+------------+------------+-----+ + + + + + + [Page 6] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + over the control link one, where P is the receive link assigned + by the user's NCP. + +2. The serving host now has the option of accepting the request for + connection or closing the the connection. + + a. If he sends a close it is understood by the user that the + foreign host is unable to satisfy a request for service at + this time. The serving host's NCP would send: + + Server -> User + + 8 32 32 + +-----+-----------+------------+ + | CLS | SERV | US | + +-----+-----------+------------+ + + with the user's NCP sending the echoing close: + + User -> Server + + 8 32 32 + +-----+-----------+------------+ + | CLS | US | SERV | + +-----+-----------+------------+ + + b. If the serving host is willing to provide service it will + accept the connection and immediately close the connection. + This results in the the serving host's NCP sending: + + Server -> User + + 8 32 32 + +-----+-----------+------------+ + | STR | SERV | US | + +-----+-----------+------------+ + + 8 32 32 + +-----+-----------+------------+ + | CLS | SERV | US | + +-----+-----------+------------+ + + + + + + + + + + + [Page 7] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + with the user's NCP sending the echoing close. It sends: + + User -> Server + + 8 32 32 + +-----+-----------+------------+ + | CLS | US | SERV | + +-----+-----------+------------+ + + It should be mentioned that the echoing closes are required + by the host-to-host protocol and not by the logger initial + connection protocol. + +Character Set + + The character set used in conducting the login dialog is +standard ASCII as documented in "American National Standard Code for +Information Interchange", ANS X3, 4-1968, American National Standard +Institute, October, 1968. A logger at a serving host may demand any kind +of input that can be expressed as a string of one or more ASCII +characters. It similarly, it may output any such string. + + All ASCII characters are legal, including the graphics and +control characters. However, it is proposed that the only standard way +of indicating the end of a console line be the line feed character +(012). This is in accordance with an anticipated change to the ASCII +standard. + + Currently the ASCII standard permits two methods of ending a +line. One method defines a single character, line feed (012), as +incorporating the combined functions of line space and carriage return +to the lefthand margin. The second method, implicitly permitted by +ASCII, uses the two character sequence line feed (012) and carriage +return (015) to perform the same function. + + There is a proposal that the ASCII standard be changed to +include a return to the left-hand margin in all vertical motion +characters of at least one full space (line feed, vertical tab and new +page). This will disallow the dual character sequence to end a line. + + It is suggested that a character in a hostst character set not +having any ASCII equivalnet be represented by the ASCII two character +sequence ESC (033) and one of the ASCII characters. Each host should +publish a list of the escape sequence it has defined. + + + + + + + + [Page 8] + +RFC 98 Logger Protcol Proposal Feb 1971 + + +Transaction Block Format + + All textual messages exchanged between user and logger are to +consist of one or more "transaction blocks". Each transaction block is a +sequence of 8-bit elements in the following format: + + <code> <count> <char1> ... <charn> + +<code> is an 8-bit element that is not interpreted in this + protocol. In the proposed general console communications + protocol, this field specifies communication modes or + special characteristics of this transaction block. Here + <code> is to be zero. + +<count> is an 8-bit element that specifies the number of character + elements that follow in this transaction block. It is + interpreted as a binary integer which has a permissible + range between 0 and 127. The most significant bit is zero. + +<chari> is an 8-bit element containing a standard 7-bit ASCII + character right-adjusted. The most significant bit is + zero. The number of <chari> in the transaction block is + governed by the <count> field. A maximum of 127 and + minimum of zero characters are permitted in a single + transaction block. + + The most significant bit of each of these elements is zero, +effectively limiting each of these elements to seven bits of +significance. The reason for doing this is twofold: the eighth bit of +the <chari> elements is specifically reserved for future expansion, and +it was desired to limit all the elements so as to permit certain +implementations to convert the incoming stream from 8-bit elements to +7-bit elements prior to decoding. + + With one exception, there is to be no semantic connotation +attached with the division of a logger-user message into one or more +transaction blocks. The character string comprising the message to be +transmitted may be divided and apportioned among multiple transaction +blocks according to the whim of the sending host. If less than 128 +characters in length, the message may be sent as a single transaction +block. The exception is that separate messages may not appear in the +same transaction block. That is, a message must start at the beginning +of a transaction block and finish at the end of one. Note also that +there is no syntactic device for specifying the last transaction block +of a message. It is presumed that the logger end user both have +sufficient knowledge of the format to know when all of a message has +arrived + + + + + [Page 9] + +RFC 98 Logger Protcol Proposal Feb 1971 + + + Note that the first 8-bits of data transmitted through a newly +established connection must be a type code as specified in Protocol +Document 1. This type code must be sent prior to the first transaction +block and should be discarded by the receiving host. + + +Acknowledgments + + Robert Bressler, Allen Brown, Robert Metcalfe, and Michael +Padlipsky contributed directly to the establishment of the ideas +presented here. Thanks are due Michael Padlipsky and others for +editorial comments. + + + [ This RFC was put into machine readable form for entry ] + [ into the online RFC archives by Carl Moberg 1/98 ] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Page 10] + |