Network Working Group S. Crocker
Request for Comments: 36 16 March 1970
Protocol Notes--------The network protocol provides three facilities:
Connection Establishment ------------------------Connection establishment works essentially the same as in NWG/RFC #33. The major change is that a more general form of switching is provided independently of establishment, so establishment is simplified by not including switching procedures.
Crocker [Page 1]
RFC 36 Protocol Notes March 1970
5. The sending process may now send.Flow Control ------------In order to prevent a sending process from flooding a receiving processes it is necessary for the receiving process to be able to stop the flow(*). Flow control is integrated into the network RFNM handling. When a receiving host wishes to inhibit flow on a particular link, the host sends a special message to its IMP which causes the next RFNM on that link to be modified. The sending host interprets this message as a RFNM and as a request to stop sending. A confirming control command is returned.
Reconnection ------------For a great many reasons it is desirable to be able to switch one (or both) ends of a connection from one socket to another. Depending upon the restrictions placed upon the switching process, it may be easy or hard to implement. To achieve maximum generality, I present here a scheme for dynamic reconnection, which means that reconnection can take place even after flow has started. It may turn out that for the majority of cases, this scheme is much more expensive than it needs to be; however, the following virtues are claimed:
--------------------------------------------------- *BB&N argues that unlimited buffering should be provided. It ispossible that this would be a proper strategy: but it is foreign to my way of thinking, and I have based the protocol design on the assumption that only a small buffer is provided on the receive end of each connection.
Crocker [Page 2]
RFC 36 Protocol Notes March 1970
II Data Structures
---------------
1. Connection Table 2. Process Table 3. Input Link Table 4. Output Link Table 5. Link Assignment TableConnection Table ----------------This holds all information pertaining to local sockets, particularly whether a socket is engaged in a connection, and if so, what state the connection is in. Entries are keyed by local socket, but other tables have pointers into this table also. (See the Process Table, Input Link Table, and Output Link Table.)
Crocker [Page 3]
RFC 36 Protocol Notes March 1970
A pointer to the user's process is necessary if the process has requested a connection.Process Table -------------This table associates a process with a socket. It is used to process system calls.
Input Link Table ----------------This table associates receive links with local sockets. It is used to decide for whom incoming messages are destined.
Output Link Table -----------------This table associates send links with local sockets. It is used to interpret RFNM's and RSM commands.
Link Assignment Table ---------------------Links are assigned by receivers. This table shows which links are free.
Crocker [Page 4]
RFC 36 Protocol Notes March 1970
III Control Commands
----------------
Command Summary
Crocker [Page 5]
RFC 36 Protocol Notes March 1970
Close
Crocker [Page 6]
RFC 36 Protocol Notes March 1970
Purpose: If a process decides to short-circuit itself by connecting
Crocker [Page 7]
RFC 36 Protocol Notes March 1970
Ready