summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc123.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc123.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc123.txt')
-rw-r--r--doc/rfc/rfc123.txt165
1 files changed, 165 insertions, 0 deletions
diff --git a/doc/rfc/rfc123.txt b/doc/rfc/rfc123.txt
new file mode 100644
index 0000000..2ba89c3
--- /dev/null
+++ b/doc/rfc/rfc123.txt
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+Network Working Group S. Crocker
+Request for Comments: 123 UCLA
+NIC #5837 20 April 71
+Categories: D.1
+Obsoletes: RFCs 66, 80
+Updates: RFCs 98, 101
+
+
+ A Proferred Official ICP
+
+By Initial Connection Protocol (ICP), I mean a third level protocol
+which is initiated by a user process at one site in order to contact a
+server process at another site. Typically, the user process will be a
+Telnet and the server process will be a logger, but there may be other
+cases.
+
+In this RFC, I wish to describe a family of ICPs suitable for
+establishing one pair of connections (one in each direction) between any
+user process and any server process, and to propose further a particular
+subset of this family as the standard ICP for connecting user processes
+to loggers on systems which accept teletype-like devices.
+
+Notation
+
+We have no standard notation for describing system calls which initiate
+and close connections or cause data to be sent, so I will use the
+following ad hoc notation.
+
+Init (local = l, foreign = f, size = s)
+
+ causes the local Host to attempt to establish a connection between
+ socket l at the local Host and socket f, with a byte size of s for
+ the connection.
+
+ l is a 32 bit local socket number,
+ f is a 40 bit foreign socket number, the high-order eight bits
+ of which specify the foreign Host, and
+ s is an eight bit non-zero byte size.
+ The sum of l and f must be odd.
+
+Listen (local = l, size = s)
+
+ causes the local Host to wait for a request for connection to local
+ socket l with byte size s. The process will be woken when a
+ connection is established. The parameters l and s are the same as
+ for Init.
+
+
+
+
+
+ [Page 1]
+
+Send (socket = l, data = d)
+
+ The data named by d is sent over the connection attached to local
+ socket l. l must be a send socket attached to a connection. d is the
+ name of a data area.
+
+Receive (socket = l, data = d)
+
+ The receive side counterpart to send.
+
+Close (socket = l)
+
+ Any connection currently attached to a local socket l is closed.
+
+A Family of ICPs
+
+Briefly, a server process at a site attaches a well-advertised send
+socket L and listens. A user process initiates connection to L from its
+receive socket U. The byte size for this connection is 32. The server
+process then transmits a 32-bit even number S and closes the connection.
+The 32-bit number S and its successor, S+1, are the socket number the
+server will use. The final steps are for sockets S and S+1 at the
+server site to be connected to sockets U+1 and U respectively at the
+user site.
+
+Using the notation, the server executes the following sequence:
+
+ Listen (socket = L, size = 32)
+ [Wait until a user connects]
+ Send (socket = L, data = S)
+ Close (socket = L)
+ Init (local = S, foreign = U+1, size = Bu)
+ Init (local = S+1, foreign = U, size = Bs)
+
+The user executes the following:
+
+ Init (local = U, foreign = L, size = 32)
+ Receive (socket = U, data = S)
+ Close (socket = U)
+ Init (local = U+1, foreign = S, size = Bu)
+ Init (local = U, foreign = S+1, size = Bs)
+
+Note that L is a send socket (odd), while S and U are receive sockets
+(even). Where L, S or U are used as values of local, they are 32-bit
+numbers; where they are values of foreign, they are 40-bit numbers. The
+parameters Bs and Bu are the byte sizes to be sent by the server and
+user, respectively.
+
+
+
+
+ [Page 2]
+
+Examination of the above sequences reveals that an ICP is characterized
+by the three numbers L, Bs and Bu, and must meet the restrictions that
+
+ (a) L is a send socket,
+ (b) Bs and Bu are legal byte sizes, and
+ (c) for each L there is only on pair of associated byte sizes.
+
+This last restriction prevents two distinct services from being
+available through the same socket and distinguished only by the byte
+sizes.
+
+Telnet ICP
+
+For connecting teletype-like users, i.e. interactive and ASCII, to Hosts
+serving such users, I propose an ICP of the form described above and
+characterized by L = 1, Bs = Bu = 8. [There has been some confusion
+about socket numbers. Here I specifically mean L = X00000001]
+
+Formalities
+
+I propose that the Telnet ICP be made official. Comments should be
+published before the May NWG meeting, the subject will be discussed
+there, and we will decide there to accept or reject this protocol.
+
+
+ [ This RFC was put into machine readable form for entry ]
+ [ into the online RFC archives by Jeff Sorte 5/97 ]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [Page 3]
+