home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 100s / rfc187.txt < prev    next >
Text File  |  1997-05-29  |  25KB  |  590 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                      A NETWORK/440 PROTOCOL CONCEPT
  8.  
  9. Network Working Group              Douglas B. McKay
  10. Request for Comments #187          Donald P. Karp
  11. NIC #7131                          IBM Thomas J. Watson Research Center
  12. Categories:  C3,C4,C5,C6,D7        Yorktown Heights, New York
  13. Update:  None
  14. Obsoletes:  None
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                  This RFC is being circulated as an
  23.                  information RFC. Its intent is to
  24.                  convey some of the thinking and
  25.                  philosophy that went into IBM's
  26.                  network protocol and overall
  27.                  network design.
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                                                                 [Page 1]
  59.  
  60. INTRODUCTION
  61.  
  62. Network/44O is an experimental project in computer netting that was
  63. undertaken by the Computer Science Department of IBM Research. The
  64. primary objectives of the project have been to understand netting,
  65. identify design problems and implement the solutions to these problems.
  66.  
  67. The above objectives have been met since a network has been built and is
  68. presently being operated by the project. Implementation discussions
  69. transpired with another department at Research in order to define a
  70. realistic user system interface. The protocol defined for the project's
  71. network is also the basis for the operation of an IBM OS network.
  72.  
  73. The Network/44O project has also been involved in the philosophical and
  74. architectural concepts of network systems. The basic premise in our work
  75. is the concept of a logical network machine.(1) The main theme is to
  76. treat all systems involved in the network as a part of a single (large)
  77. multiprocessor system. Although many of the ideas have been based on
  78. hypothetical concepts, an equal number of ideas were derived from our
  79. network implementation and operating experience.
  80.  
  81. The scope of this paper is to describe the philosophy and definition of
  82. a network protocol that is not restricted to any physical configuration.
  83. This is exemploified by the fact that a major portion of the ideas are
  84. implemented in IBM's two major operational networks, one of which is a
  85. distributed configuration and the other a star configuration.
  86.  
  87. (1) Intenet - Report 2, February 1, 1970, Computer Science Department,
  88.     IBM Corporation, T. J. Watson Research Center, Yorktown Heights,
  89.     New York.
  90.  
  91. BASIC ASSUMPTIONS
  92.  
  93. There was a necessity to delineate many network functions in setting up
  94. an operating protocol. These functions included switching control,
  95. buffer control, message control, and operating control. The operating
  96. control function becomes further complicated as the user is able to
  97. program the network as if it were a single operating system. The
  98. protocol had to be further broken dowm into detailed functions in order
  99. to cope with error recovery and handling techniques.
  100.  
  101. The original thoughts on handling these functions were to provide two
  102. basic realms of control. The net control is a higher level function that
  103. recognizes and controls all aspects of net jobs and the execution of job
  104. steps in the network machine. In addition, a communication control
  105. facility (referred to as an "Express Interpreter") was incorporated to
  106. provide fast service for all messages that were to be moved between user
  107. systems without intervention by the net controller.
  108.  
  109.  
  110.  
  111.                                                                 [Page 2]
  112.  
  113.                        ---------------
  114.                        |      NC     |
  115.                        ---------------           ^
  116.                               |                 /
  117.          ---->  in            |         out    /
  118.                --------------------------------
  119.                |      Express Exchange        |
  120.         <----  --------------------------------
  121.                 out                     in  ^
  122.                                               \
  123.                                                \
  124.  
  125. The above figure illustrates the two major functions with messages
  126. travelling in both directions and directly through the Express Exchange,
  127. except in the case of messages that must be acted on by the Net
  128. Controller. These messages will be explained in detail later.
  129.  
  130. These two functions can exist on any system and operate in any physical
  131. configuration providing the control information reflects the
  132. configuration so that proper operation can be maintained. There is no
  133. reference to physical configuration in this paper because of the
  134. flexible nature of the protocol and its adaptability to any
  135. configuration. For example, in the case of a distributed net, the
  136. Express Exchange would pass messages directly to the next station
  137. without any 'NC' overhead. The 'NC' would only come into play at the
  138. final destination and with the same reasoning, the 'NC' would not have
  139. to be present at every station.
  140.  
  141. DEFINITIONS
  142.  
  143. Before proceeding with the discussion of protocol and control, the basic
  144. message content and concepts must be defined.
  145.  
  146. A transmission block is a physical entity that consists of header and
  147. text. A message (logical) consists of many transmission blocks.
  148.  
  149.      ------------------------------------
  150.      |     Header     |      Text       |
  151.      ------------------------------------
  152.  
  153. The primary purpose of the network is to deliver messages from one user
  154. system to another in an orderly controlled manner. In order to provide
  155. all the information necessary to maintain control, the header contains a
  156. set of operational functions. These functions are listed below with the
  157. rationale for each.
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.                                                                 [Page 3]
  165.  
  166. Action Code
  167.  
  168. This code selects the immediate destination of the transmitted blocks;
  169. the data may be transmitted directly to the user described in the DSID
  170. field, sent to 'NC', or used by 'EE'. Any conflict in information
  171. between this field and any other field in the header will cause an error
  172. message to be returned to the originating station. The AC will serve a
  173. similar function at the receiving system, indicating to the
  174. communications interface (CI) whether the data block is destined for a
  175. user routine or contains control information for the CI. [The CI is that
  176. function which interfaces directly with the local operating system.]
  177.  
  178. Transmission Block Number
  179.  
  180. Each block of transmission within the network will contain a sequential
  181. number inserted by the transmitting station. As the block flows through
  182. the network, every station will insert its own number into the block,
  183. overlaying the previous station's number. The purpose of this sequential
  184. number is to guarantee that no messages are lost in the physical
  185. communications process.
  186.  
  187. Network Job Identifier
  188.  
  189. The function of this field is to associate a transmission block with the
  190. network job to which it belongs. The identifier is assigned to the
  191. network job and to each associated transmission block by the user system
  192. or by the 'NC'. In order to establish a unique name for each job within
  193. the network, the user node identifier (i.e., the name of the user system
  194. originating the net job) will be concatenated with a number generated by
  195. the originating user system.
  196.  
  197. Job Step (Marker)
  198.  
  199. The purpose here is to uniquely identify a job step within a network
  200. job. The NC will assign this name since it maintains control of all
  201. network jobs.
  202.  
  203. Originating System Identifier
  204.  
  205. In order to route a block of data from one user system to another, a
  206. unique name must be associated with each user system. The name will be
  207. assigned by the network control group at the time the user system is
  208. accepted as a network participant. The station originating a block of
  209. data will place his assigned identification in this field in every block
  210. of data originating at his system.
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.                                                                 [Page 4]
  218.  
  219. Message Priority
  220.  
  221. This field indicates transmission priority (not to be confused with
  222. processing priority) by block within the queue for a particular user
  223. system.
  224.  
  225. Destination System Identifier
  226.  
  227. This is similar to the originating node identifier except that the
  228. identification inserted is that of the node for which the block is
  229. destined.
  230.  
  231. Logical Message Flags
  232.  
  233. The message flags denote the first and last blocks of a message; all
  234. intermediate blocks are noted by their absence. The flag field in
  235. conjunction with the logical message sequence number will enable the
  236. user to determine if any blocks are missing from a message and will also
  237. provide an identifier that can be used to recover missing blocks.  When
  238. the first and last indicators are turned on in a single block, the
  239. message is contained within the block.
  240.  
  241. Logical Message Sequence Number
  242.  
  243. This field is used to number sequentially the blocks within a message.
  244. The first block (denoted by the LMID) will contain the lowest number
  245. assigned (not necessarily 1) within a message while the last block will
  246. contain the highest number. Unlike the TBN, this number will remain
  247. intact throughout the journey of the block through the network.  It is
  248. used for error detection and recovery along with the logical message
  249. flag.
  250.  
  251. Logical Message Identifier
  252.  
  253. Since all communications lines in the network can be multiplexed (blocks
  254. within a message will be interleaved with blocks from other messages), a
  255. message identifier becomes necessary in order to reassemble the message
  256. at the user destination. Therefore; each block within a message will
  257. contain an identifier unique to the message. In the simple case where
  258. the message is contained in one block, the identifier performs no
  259. function.
  260.  
  261. When multiple blocks comprise a message, LMID will enable the user to
  262. reassemble the message. There can be any number of physical message
  263. blocks associated with any logical message. It is important that the
  264. that this LMID be used in the messages generated by the CI in response
  265. to NC commands.
  266.  
  267.  
  268.  
  269.  
  270.                                                                 [Page 5]
  271.  
  272. Length of Text
  273.  
  274. This field contains a binary number that equals the number of characters
  275. in the text portion of the transmission block, Although there are other
  276. means available to obtain this number, it is included in the header for
  277. redundancy check purposes.
  278.  
  279. Logical Message Structuring
  280.  
  281. The network controller maintains control for every user job submitted by
  282. NJID. The following hierarchical structure is set up for a message
  283. configuration, Any message pertaining to any step in a network job can
  284. be tracked and retransmitted if necessary. It provides a mapping of the
  285. logical structure of any network job into their appropriate message
  286. configuration.
  287.  
  288.                            Net Controller
  289.                    -------------------------------
  290.                    |             |            |
  291.                 NJID(1)       NJID(2) - - - NJID(N)
  292.               ---------------------- . . . . .
  293.               |              |
  294.           Stepname       Stepname
  295.            -------------------------------
  296.            |             |             |
  297.         LMID(1)       LMID(2)       LMID(n)
  298.         -----------------------------------
  299.         |                                 |
  300.       LMSN(1)       LMSN(2)             LMSN(n)
  301.  
  302.  
  303. The Express Exchange is a combination of functions. It is basically a
  304. communication handler and store and forward switch. The 'EE' has the
  305. ability to keep track of all messages in the network by TEN (defined
  306. earlier). It is therefore possible to record and reflect the entire
  307. status of the network down to any detail desired.
  308.  
  309. PROTOCOL
  310.  
  311. The protocol for operating a network system has different levels of
  312. control. The 'EE' must exercise control on the communication link
  313. between any pair of stations. The NC maintains control at the net job
  314. level. However, the functions that each unit performs are combined to
  315. handle special control cases. These complimentary functions will be
  316. discussed in detail as they arise in the protocol discussion.
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.                                                                 [Page 6]
  324.  
  325. First of all, there must be a series of initialization messages sent
  326. from one station to another before any actual message transmission takes
  327. place. These messages are sent between each station and positive
  328. acknowledgments must be received in order to complete the initial hand
  329. shaking.
  330.  
  331. At any point during the transmission of messages an error can occur
  332. which will be detected by a negative acknowledgement. The message in
  333. error will be retransmitted several times. If the error persists, the
  334. line is timed out and will be retried later. The assumption here is the
  335. line may be temporarily noisy and we give it time to quiesce.
  336.  
  337. When a station receives an initialization message it is possible to
  338. respond in several ways depending on the status of the user system.
  339.  
  340. (1) The station receiving the initialization message can acknowledge
  341.     that it is ready to receive and transmit.
  342. (2) Temporarily cannot receive certain logical messages (actual data
  343.     transmissions) but can receive special control messages.  This
  344.     option allows a user system to selectively process net jobs as
  345.     facilities on his system become available.
  346. (3) Unable to receive traffic (in other words, the user system is
  347.     logically or physically disconnected from the network).
  348. (4) Unable to receive new network job requests but able to handle
  349.     traffic for jobs in progress. The user system may have several
  350.     jobs in progress that are transmitting and receiving messages.
  351.     This acknowledgement gives the user system the ability to allow
  352.     these jobs to continue normal processing.
  353.  
  354. The last alternative gives the CI at each user system the mechanism to
  355. selectively demultiplex itself to handling one logical message. The
  356. temporarily deactivated.
  357.  
  358. Thus, all user systems can selectively halt messages throughout the
  359. entire network. The destination system can selectively halt all messages
  360. for a given NJID or selective halt logical messages within a net job.
  361. The adjacent system would keep accepting messages until its buffers were
  362. filled to some operational threshold limit that must be maintained to
  363. keep the network from coming to a complete standstill, and would issue
  364. selective halts to systems sending to it. It is conceivable that the
  365. message blocks of one logical message would be stored in distributed
  366. segments throughout the network.
  367.  
  368. The same selective halt mechanism can be applied in reverse through a
  369. resume message. The resume message can apply to an entire set of
  370. messages for a net job or selective logical messages within a job. The
  371. reinitiation of a transmission takes place between any two stations that
  372. wish to allow more message blocks to be transmitted. The destination
  373.  
  374.  
  375.  
  376.                                                                 [Page 7]
  377.  
  378. station must resume on a particular logical message to allow the message
  379. to reach its final destination and complete transmission through the
  380. network. The LMID of the message header enables the 'EE' and 'NC' to
  381. cooperate in controlling and cleaning up network operation. Not only
  382. does this cooperation between logical levels reduce a duplication of
  383. effort but it enables the control to become realistic and practical.
  384. Complete separation of communications and control functions could cause
  385. a loss of useful information that may not be obtained by other means.
  386.  
  387. For example, if a file transmission consisted of many blocks and a
  388. transmission error occurred that the network was unable to recover.  The
  389. 'EE' would notify the 'NC' of the error occurrence on this file
  390. transmission and then 'NC' would issue purge messages to the 'EE's for
  391. those particular 'logic message' blocks. This mechanism-allows a general
  392. 'clean-up' and management of all file transmissions.
  393.  
  394. There is also the condition when a receiving system goes down. When this
  395. occurs there may be a number of network jobs involved with that user
  396. system. If the user system remains down for an extended period of time
  397. and the 'EE' buffer resources are filled to threshold limit, it may be
  398. necessary to purge pending message blocks. The 'EE' will notify the 'NC'
  399. of the user system being down and the 'NC' will issue purge commands to
  400. the 'EE' for all pending messages of those netjobs involved with the
  401. down user system. However, in our present implementation the 'EE' uses
  402. disk storage as a logical extension of core for message buffering. In
  403. this operation, the freeing of real core buffers becomes a simple matter
  404. of moving the messages on to disk for later retrieval. In some instances
  405. of transmission a file may be scored in segments at several locations
  406. until the receiving system is able to receive it. Network buffer
  407. resources are treated as a logically simple entity that may be
  408. physically distributed.
  409.  
  410. When the user system comes back on the air the involved user network job
  411. will be restarted by issuing resume transmit commands to the 'EE'.  If
  412. the user is, an interactive user controlling the network, he would be
  413. notifed of the problem and status of his file transmission. He could
  414. then reinstate his command at a later time. The batch network jab would
  415. be restarted at a point where no unnecessary retransmission would occur.
  416.  
  417. It has not been determined how long files should reside in a store and
  418. forward node before being purged from the network. If a backing storage
  419. device is available to network operation, the file can remain for a
  420. longer time but still not indefinitely.
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.                                                                 [Page 8]
  430.  
  431. NC PROTOCOL
  432.  
  433. The File Transmission Protocol of the 'NC' is primarily concerned with
  434. the control and transfer of user files for storage, temporary use at a
  435. remote system, and execution.
  436.  
  437. The commands and status messages that pertain to the second level logic
  438. of the 'NC' are sent and interpreted by the sending and receiving
  439. systems. All initiation of file transfers result from direct user
  440. commands to the 'NC'.
  441.  
  442. The sending system will first be interrogated to determine if the file
  443. is resident at that system. The user must provide the necessary
  444. information to locate the file if it is not catalogued at that system.
  445. This information consists of the physical attributes, such as volume and
  446. serial number. A negative acknowledgement to this message would result
  447. in the termination of a net job step with the reason for termination
  448. returned to the originator.
  449.  
  450. When a positive acknowledgement is received by the 'NC' it has two
  451. options available. It must first determine the amount of unused buffer
  452. space in the 'EE' and based on the size of the file to be transferred,
  453. decide whether to have the data set sent immediately or wait for an
  454. acknowledgement to the receive message.
  455.  
  456. If the 'NC' decides to move the file regardless of the state of the
  457. receiving system, the 'NC' will issue a send or receive message to both
  458. systems simultaneously. A negative response to the 'receive' message is
  459. taken as a definite refusal by the receiving system to accept the data
  460. transmission. This may result from insufficient resources to handle the
  461. job. If the file was transmitted from the receiving system and is
  462. resident in the network storage facilities, the user will be notified of
  463. its exact location so that he may move it from that point at a later
  464. time. If the 'NC' chose the second option, the file would still be
  465. resident at the originating system.
  466.  
  467. A positive acknowledgement will allow the file to continue its normal
  468. flow through the network. Queuing in the 'EE' is always done in order
  469. that 'receive' messages will be sent before the actual data files. The
  470. possibilities include loading the file directly into the job stream
  471. (this step assumes the appropriate JCL is included in the text of the
  472. files) or cataloguing the file at the remote system or storing it for
  473. temporary immediate use. All network files are catalogues with a unique
  474. name that includes User ID (unique at his home node), home node ID
  475. (unique in the network) and his own data name which is unique in his own
  476. work. The 'receive' message may also contain some special instructions
  477. to print or punch a file.
  478.  
  479.  
  480.  
  481.  
  482.                                                                 [Page 9]
  483.  
  484. When the sending and receiving stations have completed the file
  485. transfer, they send status messages back to the 'NC' indicating the
  486. completed action. These status messages enable the 'NC' to keep a record
  487. of user network job steps and their progress through the network. These
  488. status messages play an important part in insuring proper checkpoint
  489. restart for the network.
  490.  
  491. Files routed specifically for execution require a third status message
  492. from the receiving user system. The system must indicate when and how
  493. the job completed execution. This status message will also contain the
  494. appropriate accounting information to allow dynamic updating of network
  495. user and system accounting information. It is not clear at this time
  496. what should be accounted for in the network, but it is an area of prime
  497. concern to operational networks.
  498.  
  499. An error in the second logic level can occur during the file
  500. transmission. There may be an error moving files from devices into the
  501. line buffers or reading from the line buffers. When this occurs, the
  502. operating system must pass this information to the 'NC'. The 'NC' will
  503. then terminate the task involved in this job step and purge all the
  504. network buffers containing blocks of this message transmission.
  505.  
  506. When the 'NC' receives the file error message it will immediately send a
  507. 'release' message to all the network tasks supporting this job step.
  508. This action will cause the user systems to end all pending tasks
  509. associated with this net job step. In addition a purge message for that
  510. job step will be sent to the 'EE' to purge the message from its buffers.
  511. If there is more than one 'EE' involved, the purge message would be
  512. passed to all other 'EE's.
  513.  
  514. This is another example of the 'EE' and 'NC' combining functional
  515. capability and providing effective management of network traffic. The
  516. mapping of message Into the job step allows the 'NC' to selectively
  517. choose all messages it wishes to purge.
  518.  
  519. The protocol the user must use for interactive use of the network is
  520. different, There are some standard message types that are provided for
  521. interactive use to insure the proper message recognition from one system
  522. to another, Terminal type traffic will be sent across the network
  523. through the normal netting' interface, The control information that a
  524. terminal sends to the operating system must be incorporated in the
  525. network protocol by the 'CI'.
  526.  
  527. The interactive user can request a direct connection to the remote
  528. system through the 'NC'. The 'NC' will notify the remote system of the
  529. user request and establish the user's direct link, The 'NC' becomes a
  530. monitor of the conversation but no longer becomes involved with the
  531. messages. Other conversational messages are sent back and forth through
  532.  
  533.  
  534.  
  535.                                                                [Page 10]
  536.  
  537. the 'EE' with no interaction by the 'NC'. In the event one of the
  538. systems goes down breaking the logical link, the 'NC' must notify the
  539. other system to terminate the waiting task, In most cases a user system
  540. will be isolated from the second user system by other stations and the
  541. 'NC' is a convenient way of notifying other user systems about the
  542. "disaster."
  543.  
  544. Once the user's connection is established, three types of messages may
  545. be generated, These messages are identified by the 'AC' field in the
  546. header. The three basic transmission types covered by the protocol are:
  547. a response requested - with or without text included in the message, a
  548. text message which is simply a response to the first or just data to be
  549. printed at the user's terminal, and finally, an interrupt message which
  550. indicates the user wishes to stop a task or talk directly to the
  551. operating system.
  552.  
  553. It is important to note that regardless of what type of conditions
  554. exist, there are always enough buffers left to receive an interrupt
  555. message and terminate or flush any existing task and the associated
  556. operation it may be supporting.
  557.  
  558. CONCLUSION
  559.  
  560. The protocol concepts discussed in this paper were developed to
  561. facilitate the transfer of data between two or more independent systems.
  562. The protocol is able to handle the various pathological cases that may
  563. arise during network operation, A fundamental design consideration in
  564. developing these concepts was to maintain complete recovery from any
  565. recoverable error condition.
  566.  
  567. Many of the concepts have been used in an operational star network, with
  568. a single 'EE' and 'NC' located in the central system and a 'CI' located
  569. at each participating system. The successful operation of the network
  570. has proven the feasibility of this protocol.
  571.  
  572. ACKNOWLEDGMENT
  573.  
  574. The authors wish to acknowledge the design and implementation effort of
  575. the contributing members of the Computer Science Department of the T. J.
  576. Watson Research Center.
  577.  
  578.  
  579.        [ This RFC was put into machine readable form for entry ]
  580.            [ into the online RFC archives by Tim Buck 5/97 ]
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                [Page 11]
  589.  
  590.