⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc62.txt

📁 RFC技术文档 从0000-05
💻 TXT
📖 第 1 页 / 共 4 页
字号:
RFC 62                  IPC for Resource Sharing          3 August 1970                        SITE K                        SITE L                        ______                        ______                       /      \                      /      \                      /        \                    /        \                     /          \        Rendezvous/          \                    /            \            table            \                   |              |              |              |                   |   Process A  |           ^  |   Process B  |                   |              |           |  |              |                    \   port P   /            |   \            /                     \          /             |    \          /                      \        / <--RECEIVE __/     \        /                       \______/     MESSAGE          \______/                                    to site L                                    containing P, Q, & K   A RECEIVE message is sent from site K to site L and is entered in the   rendezvous table at site L.  At some other time, process B executes a   SEND to port P from port Q specifying site L as the rendezvous site.                        SITE K                        SITE L                        ______                       ______                       /      \                     /      \                      /        \                   /        \                     /          \       Rendezvous/          \                    /            \           table            \                   |              |             |              |                   |   Process A  |             |   Process B  |                   |              |             |              |                    \   port P   /        <--------- port Q   /                     \          /                 \          /                      \        /        SEND       \        /                       \______/                     \______/                                        to site L                                        containing P & Q   A rendezvous is made, the rendezvous table is cleared, and the   transmission to port P at site K takes place.  The SEND site number   (and conceivably the SEND port number) is appended to the messages of   the transmission for the edification of the receiving process.Walden                                                        [Page 11]RFC 62                  IPC for Resource Sharing          3 August 1970                        SITE K                         SITE L                        ______                        ______                       /      \                      /      \                      /        \                    /        \                     /          \                  /          \                    /            \                /            \                   |              |              |              |                   |   Process A  |              |   Process B  |                   |              |              |              |                    \   port P   /                \   port Q   /                     \          /<--transmission<--\          /                      \        /                    \        /                       \______/   to port P, site K  \______/                                  containing data and L   Process B may simultaneously wish to execute a RECEIVE from port N at   port M.   Note that there is only one important control message in this system   which moves between sites, the type of message that is called a   Host/Host protocol message in [2].  This control message is the   RECEIVE message.  There are two other possible intersite control   messages: an error message to the originating site when a RECEIVE or   SEND is timed out, and the SEND message in the rare case when the   rendezvous site is not the SEND site.  There must also be a standard   format for messages between ports.  For example, the following:Walden                                                        [Page 12]RFC 62                  IPC for Resource Sharing          3 August 1970         _________________           __________________      _____________        | rendezvous site |  <6>    | destination site |    | source site |        |-----------------|         |------------------|    |-------------|        |    RECEIVE port |         |   RECEIVE port   |    | RECEIVE port|        |-----------------|         |------------------|    |-------------|        |    SEND port    |         |   SEND port      |    | SEND port   |        |-----------------|         |------------------|    |-------------|        |                 |         |   source site    |    |             |        |                 |         |------------------|    |             |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |     data        |         |     data         |    |   data      |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |                 |         |                  |    |             |        |_________________|         |__________________|    |_____________|         transmitted                 transmitted             received         by SEND                     by Network              by RECEIVE         process                     Controller              process   In the model time-sharing system it was possible to pass a port form   process to process.  This is still possible with a distributed Network   Controller.   Remember that, for a message to be sent from one process to another, a   SEND to port M from port N and a RECEIVE at port M from port N must   rendezvous, normally at the SEND site.  Both processes keep track of   where they think the rendezvous site is and supply this site as a   parameter of appropriate operations.  The RECEIVE process thinks it is   the SEND site also.  Since once a SEND and a RECEIVE rendezvous the   transmission is sent to the source of the RECEIVE and the entry in the   rendezvous table is cleared and must be set up again for each further   transmission from N to M, it is easy for a RECEIVE port to be moved.   If a process sends both the port numbers and the rendezvous site   number to a new process at some other site which executes a RECEIVE   using these same old port numbers and rendezvous site specification,   the SENDer never knows the RECEIVEr has moved.  It is slightly harder   for a send port to move.  However, if it does, the pair of port   numbers that has been being used for a SEND and the original   rendezvous site number are passed to the new site.  The process at the   new SEND site specifies the old rendezvous site with the first SEND   from the new site.  The RECEIVE process will also still think the   rendezvous site is the old site, so the SEND and RECEIVE will meet at   the old site.  When they meet, the entry in the table at that site is   cleared, and both the SEND and RECEIVE messages are sent to the newWalden                                                        [Page 13]RFC 62                  IPC for Resource Sharing          3 August 1970   SEND site just as if they had been destined for there in the first   place.  The SEND and RECEIVE then meet again at the new rendezvous   site and transmission may continue as if the port had never moved.   Since all transmissions contain the source site number, further   RECEIVEs will be sent to the new rendezvous site.  It is possible to   discover that this special manipulation must take place because a SEND   message is received at a site that did not originate the SEND   message<7>.  Note that the SEND port and the RECEIVE port can move   concurrently.   Of course, all of this could have also been done if the processes had   sent messages back and forth announcing any potential moves and the   new site numbers.   A problem that may have occurred to the reader is how the SEND and   RECEIVE buffers get matched for size.  The easiest solution would be   to require that all buffers have a common size but this is   unacceptable since it does not easily extend to a situation where   processes in autonomous operating systems are attempting to   communicate.  A second solution is for the processes to pass messages   specifying buffer sizes.  If this solution is adopted, excessive data   sent from the SEND process and unable to fix into the RECEIVE buffer   is discarded and the RECEIVE process notified.  The solution has great   appeal on account of its simplicity.  A third solution would be for   the RECEIVE buffer size to be passed to the SEND site with RECEIVE   message and to notify the SEND process when too much data is sent or   even to pass the RECEIVE buffer size on to the SEND process.  This   last method would also permit the Network Controller at the SEND site   to make two or more SENDs out of one, if that was necessary to match a   smaller RECEIVE buffer size.   The maintenance of unique numbers is also a problem when the processes   are geographically distributed.  Three solutions to this problem are   presented here.  The first possibility is for the autonomous operating   systems to ask the Network Controller for the unique numbers   originally and then guarantee the integrity of any unique numbers   currently owned by local processes and programs using whatever means   are at the operating system's disposal.  In this case, the Network   Controller would provide a method for a unique number to be sent from   one site to another and would vouch for the number's identity at the   new site.  The second method is simply to give the unique numbers to   the processes that are using them, depending on the non-malicious   behavior of the processes to preserve the unique numbers, or if an   accident should happen, the two passwords (SEND and RECEIVE port   numbers) that are required to initiate a transmission.  If the unique   numbers are given out in a non-sequential manner and are reasonably   long (say 32 bits), there is little danger.  In the final method, a   user identification is included in the port numbers and the individualWalden                                                        [Page 14]RFC 62                  IPC for Resource Sharing          3 August 1970   operating systems guarantee the integrity of these identification   bits.  Thus a process, while not able to be sure that the correct port   is transmitting to him, can be sure that some port of the correct user   is transmitting.  This is the so-called virtual net concept suggested   by W. Crowther [2].<8>   A third difficult problem arises when remote processes wish to   communicate, the problem of maintaining high bandwidth connections   between the remote processes.  The solution to this problem lies in   allowing the processes considerable information about the state of an   on-going transmission.  First, we examine a SEND process in detail.   When a process executes a SEND, the local portion of the Network   Controller passes the SEND on to the rendezvous site, normally the   local site.  When a RECEIVE arrives matching a pending SEND, the   Network Controller notifies the SEND process by causing an interrupt   to the specified restart location.  Simultaneously the Network   Controller starts shipping the SEND buffer to the RECEIVE site.  When   transmission is complete, a flag is set which the SEND process can   test.  While a transmission is taking place, the process may ask the   Network Controller to perform other operations, including other SENDs.   A second SEND over a pair of ports already in the act of transmission   is noted and the SEND becomes active as soon as the first transmission   is complete.  A third identical SEND results in an error message to   the SENDing process.  Next, we examine a RECEIVE process in detail.   When a process executes a RECEIVE, the RECEIVE is sent to the   rendezvous site.  When data resultant from this RECEIVE starts to   arrive at the RECEIVE site, the RECEIVE process is notified via an   interrupt to the specified restart location.  When the transmission is   complete, a flag is set which the RECEIVE process can test.  A second   RECEIVE over the same port pair is allowed.  A third results in an   error message to the RECEIVE process.  Thus, there is sufficient   machinery to allow a pair of processes always to have both a   transmission in progress and the next one pending.  Therefore, no   efficiency is lost.  On the other hand, each transmission must be   preceded by a RECEIVE into a specified buffer, thus continuing to   provide complete flow control.4. A Potential Application   Only one  resource sharing computer network currently exists, the   ARPA Computer Network.  In this section, I discuss application of the   system described in this paper to the ARPA Network [2][5][9].   The ARPA Network currently incorporates ten sites spread across the   United States.  Each site consists of one to three (potentially four)   independent computer systems called Hosts and one communications   computer system called an IMP.  All of the Hosts at a site areWalden                                                        [Page 15]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -