|
Network Working Group Request for Comments: 44 |
A. Shoshani R. Long A. Landsberg System Development Corporation 10 April 1970 |
Generally, we are satisfied with the suggestions for the new Host- to-Host protocol. However, we think that a few refinements may be helpful.
We suggest separation of these two cases for the following reasons: a) Reconnection in Case 1 is necessary and useful, while the usefulness of Case 2 is still in doubt.
b) Case 1 is simple to implement (at least conceptually) while Case 2 involves an elaborate mechanism of commands because of the asynchronous nature of the network (four out of nine commands were suggested to handle Case 2 in RFC #36).
Thus we think that at least in the first usage of the Host-to-Host protocol reconnection in Case 2 should be left out. An additional system call (not a command) is therefore needed to permit Case 1, which is SWITCH <socket 1> <socket 2>.
II. The CLOSE command as suggested in RFC #36 seems to be used for two purposes: block a connection and abort a connection. To avoid ambiguity it would be desirable to have two commands: BLOCK and CLOSE. As suggested in RFC #36, the response for both commands can be the SUSPEND command which acknowledges the reception of BLOCK or CLOSE commands.
III. After a connection has been established, we see no reason for keeping the "foreign socket" in a local connection table. Since there is a one-to-one correspondence between a link number of the foreign Host and a foreign socket number, we can use the link number in the commands. Thus, except for the RFC command, all commands can use link numbers and therefore eliminate a 40- bit foreign socket number in every entry of the connection table (size being critical for some Hosts). We note that if connections will be multiplexed over links as suggested in RFC
#38, then the foreign socket would be needed in the connection
table.
IV. In RFC#33 the term PORT was introduced. Although this is private to every Host, we have a comment. If ports are used such that there is a one-to-one correspondence between a port for some user and a socket, then ports are completely redundant. However, a Host may wish to multiplex ports over connections, in which case an additional mechanism is needed.
To summarize the last four comments, we suggest that in the initial version the following system calls and commands will be used (most of them in RFC 33 and 36).
System Calls:
1) INITIATE <my socket> <your socket>
2) ACCEPT <my socket>
3) SWITCH <socket 1> <socket 2>
4) LISTEN <my socket>
5) CLOSE <my socket>
6) TRANSMIT <my socket> <address>
Commands:
Commands 0, 1, 3, 4 as in RFC #36 (pp.5) and in addition:
1) BLOCK: BLK <link>
2) CLOSE: CLS <link>
a) Hosts provide their padding in addition to the IMP's padding (double padding).
b) Hosts make sure that all messages end on a word boundary by shifting their messages (when necessary) and adjusting the "marking" accordingly.
VI. Our preference to the above issues is as follows:
a) "Double padding" -it turns out to be easy for us to get our
messages to be sent on a word boundary by shifting the leader
of a message (and adjusting the "marking" accordingly) rather
than the data. Thus we will prefer solution V.1.b).
b) "Echoing" - we prefer no echoing. We think that character
echoing should be managed locally.
c) "Code Conversion" we prefer a Network Common Code.
Initially, ASCII-8 can be used, and then expanded according
to the needs of the Network.
[ This RFC was put into machine readable form for entry ] [ into the online RFC archives by Alison De La Cruz 12/00 ]