📄 rfc333.txt
字号:
Network Working Group Bob BresslerRequest for Comments: 333 MIT/Dynamic ModelingNIC # 9926 Dan MurphyCategory: C9 (experimentation) BBN/TENEXObsoletes: 62 Dave WaldenUpdates: none BBN/IMP 15 May 1972 A PROPOSED EXPERIMENT WITH A MESSAGE SWITCHING PROTOCOLCONTENTS Introduction .................................................. 1 Some Background ............................................... 2 References .................................................... 3 MSP Specification ............................................. 4 Issue ......................................................... 8 Message Header ................................................ 10 Examples ...................................................... 15 TELNET ........................................................ 16 The Information Operator ...................................... 16 Unique Port Numbers ........................................... 20 Flow Chart .................................................... 23 MSP Variations ................................................ 25 Appendix ...................................................... 26INTRODUCTION A message switching protocol (MSP) is a system whose function is to switch messages among its ports. For example, there is an implementation of an MSP in each Interface Message Processor. We believe that the effective utilization of communications networks by computer operating systems will require a better understanding of MSPs. In particular, we feel that Network Control Programs (NCPs), as they have been implemented on the ARPA Computer Network (ARPANET), do not adequately emphasize the communications aspects of networking -- i.e., they reflect a certain reluctance on the part of systems people to move away from what we term "the stream orientation". We propose, as an aside the network development using the current NCPs, to rethink the design of NCP- level software beginning with a consideration of MSPs. The thrust of this note is to sketch how one would organize the lowest level host-host protocol in the ARPANET around MSPs and how this organization would affect the implementation of host software.Bressler, et al. Experimentation [Page 1]RFC 333 MESSAGE SWITCHING PROTOCOL EXPERIMENT May 1972SOME BACKGROUND Over the past several weeks there has been considerable informal discussion about the possibility of implementing, on an experimental basis, in several of the ARPA Network Host Computers, NCPs which follow a protocol based on the concept of message switching rather than the concept of line switching (see the parenthetical sentence in the first paragraph of page 6 of NIC document 8246, Host/Host Protocol for the ARPA Network). Party to this discussion have been Bob Bressler (MIT/Dynamic Modeling) Steve Crocker (ARPA), Will Crowther (BBN/IMP), Tom Knight (MIT/AI), Alex McKenzie (BBN/IMP), Bob Metcalfe (MIT/Dynamic Modeling), Dan Murphy (BBN/TENEX), Jon Postel (UCLA/NMC), and Dave Walden (BBN/IMP). Several interesting points and conclusions have been made during this discussion: 1. Bressler has implemented a message switched interprocess communication system for the Dynamic Modeling PDP-10 and has extended it so it could be used for interprocess communication between processes in the Dynamic Modeling PDP-10 and the AI PDP-10. He reports that it is something like an order of magnitude smaller than his NCP. 2. Murphy has noted that a Host/Host protocol based on message switching could be implemented experimentally and run in parallel with the real Host/Host protocol using some of the links set aside for experimentation. Further, Murphy has noted that if this experimental message switching protocol were implemented in TENEX, a number of (TENEX) sites could easily participate in the experiment. 3. It is the consensus of the discussants that Bressler should take a crack at specifying a message switching protocol* and that if this specification looked relatively easy to implement, a serious attempt should be made by Murphy and Bressler to find the resources to implement the experimental protocol on the two BBN TENEX and the MIT Dynamic Modeling and AI machines. 4. MSP was chosen as the acronym for Message Switching Protocol, and links 192-195 were reserved for use in an MSP experiment. ------------- *This note fulfills any obligation Bressler may have incurred to produce an MSP specification.Bressler, et al. Experimentation [Page 2]RFC 333 MESSAGE SWITCHING PROTOCOL EXPERIMENT May 1972 We solicit comments and suggestions from the Network Working Group with regard to this experiment. However, although we will very much appreciate comments and suggestions, because this is a limited experiment and not an attempt to specify a protocol to supersede the present Host/Host protocol for the ARPA Network, we may arbitrarily reject suggestions.REFERENCES Familiarly with the following references will be helpful to the reading of the rest of this note. 1) NIC document 8246, HOST/HOST PROTOCOL FOR THE ARPA NETWORK 2) NIC document 9348 on the Telnet Protocol 3) NIC document 7101, OFFICIAL INITIAL CONNECTION PROTOCOL, DOCUMENT # 2 4) a system of interprocess communication in a resource sharing computer network, CACM, April, 1972. Reference 4 is a revision of RFC 62. We strongly suggest the reader be familiar with reference 4 before he attempts to read the present RFC; a reprint of reference 4 is attached as an appendix.Bressler, et al. Experimentation [Page 3]RFC 333 MESSAGE SWITCHING PROTOCOL EXPERIMENT May 1972MSP SPECIFICATION Our MSP is essentially a generalization of the interprocess communication system outlined in Section 3 of the fourth reference. (Henceforth, if we are required to mention the interprocess communication system presented in Section 3 of reference 4, we shall call it "the IPC".) For two processes to communicate using the MSP, the process desiring to send must in some sense execute a SEND and the process desiring to receive must in some sense execute a RECEIVE. The SEND and RECEIVE, in effect, rendezvous somewhere and transmission is allowed to take place. With the RECEIVE are specified (among other things) a FROM-TO-PORT-ID, a TO-PORT-ID, and a RENDEZVOUS HOST. With SEND are specified a from-port-id, a to-port- id, a rendezvous Host, and (possibly) some data to be transmitted. Using SEND and RECEIVE, sending a message from a SENDER PROCESS to a RECEIVER PROCESS takes place as follows. The sender process executes a SEND which causes an OUT-MESSAGE plus the specified data to be transmitted to the Host specified as the rendezvous Host in the SEND. Concurrently (although not necessarily simultaneously)the receiver process executes a RECEIVE which causes an IN-MESSAGE to be sent to the Host specified as the rendezvous Host in the RECEIVE. At the rendezvous Host, OUT-messages and IN-messages are entered in a table called the RENDEZVOUS TABLE. When an OUT-message and an IN-message are detected with matching to-port-id, from-port-id, and rendezvous Host, three things are done: 1) the OUT-message plus the data is forwarded to the Host which was the source of the IN-message, 2) the IN-message is forwarded to the Host which was the source of the OUT- message, and 3) the IN-message and OUT-message plus the data are deleted from the rendezvous table in the rendezvous Host. The process is greatly simplified if the rendezvous Host is also either the send Host or receive Host. Specific algorithms enumerating these sequences appear later in this note. To clarify the basic concepts, let us look at a case involving three Hosts, to which we shall give the names SND, RCV, and RNDZ. At Host SND, process S is doing a send, and at Host RCV, process R is doing a receive. Both specify rendezvous at Host RNDZ.Bressler, et al. Experimentation [Page 4]RFC 333 MESSAGE SWITCHING PROTOCOL EXPERIMENT May 1972+--------------------+ +----------+ +--------------------+|HOST SND | | | |HOST RCV || | | | | || | | | | || (PROCESS) | +----------+ | || ( S ) | HOST | || \ | RNDZ | (PROCESS) || [DATA]| | ( R ) |+--------------------+ +--------------------+Process S now executes a SEND with from-port-id = S, to-port-id = R, and rendezvous-Host = RNDZ.Host SND then creates a table entry in its rendezvous table.+-----------------------------------+|HOST SND MSP _ _ _ || ------------->|_ _ _| || / ^ |_ _ _| <-|-------RENDEZVOUS| / | |_ _ _| | TABLE|(PROCESS) | ||( S ) +-- SEND (from=S to=R; rend=RNDZ)| \ || [DATA] |+-----------------------------------+Host SND now sends an "OUT" message with S's data to Host RNDZ. HOST SND HOST RNDZ+------------+ +---------------------------+| MSP| "OUT" + DATA |MSP _____ RENDEZVOUS || |--------------------|--> |_ _ _| TABLE || | from=S; to=R | \ |_ _ _| || | | \ |_ _ _| |+------------+ | \ __ | | \---------->| | DATA | | |__|BUFFER | | | +---------------------------+ Concurrently process R at Host RCV executes a RECEIVE with from- port-id = S, to-port-id = R, and rendezvous-Host = RNDZ. As above, Host RCV creates a table entry in its rendezvous table and sends an "IN" message to Host RNDZ (see following figure).Bressler, et al. Experimentation [Page 5]RFC 333 MESSAGE SWITCHING PROTOCOL EXPERIMENT May 1972 (Don't panic now about buffering in an intermediate Host. The time to panic is afer you've read and understood the rest of our arguments.) HOST RNDZ HOST RCV+------------------------+ +-----------------------+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -