📄 rfc187.txt
字号:
A NETWORK/440 PROTOCOL CONCEPTNetwork Working Group Douglas B. McKayRequest for Comments #187 Donald P. KarpNIC #7131 IBM Thomas J. Watson Research CenterCategories: C3,C4,C5,C6,D7 Yorktown Heights, New YorkUpdate: NoneObsoletes: None This RFC is being circulated as an information RFC. Its intent is to convey some of the thinking and philosophy that went into IBM's network protocol and overall network design. [Page 1]INTRODUCTIONNetwork/44O is an experimental project in computer netting that wasundertaken by the Computer Science Department of IBM Research. Theprimary objectives of the project have been to understand netting,identify design problems and implement the solutions to these problems.The above objectives have been met since a network has been built and ispresently being operated by the project. Implementation discussionstranspired with another department at Research in order to define arealistic user system interface. The protocol defined for the project'snetwork is also the basis for the operation of an IBM OS network.The Network/44O project has also been involved in the philosophical andarchitectural concepts of network systems. The basic premise in our workis the concept of a logical network machine.(1) The main theme is totreat all systems involved in the network as a part of a single (large)multiprocessor system. Although many of the ideas have been based onhypothetical concepts, an equal number of ideas were derived from ournetwork implementation and operating experience.The scope of this paper is to describe the philosophy and definition ofa network protocol that is not restricted to any physical configuration.This is exemploified by the fact that a major portion of the ideas areimplemented in IBM's two major operational networks, one of which is adistributed configuration and the other a star configuration.(1) Intenet - Report 2, February 1, 1970, Computer Science Department, IBM Corporation, T. J. Watson Research Center, Yorktown Heights, New York.BASIC ASSUMPTIONSThere was a necessity to delineate many network functions in setting upan operating protocol. These functions included switching control,buffer control, message control, and operating control. The operatingcontrol function becomes further complicated as the user is able toprogram the network as if it were a single operating system. Theprotocol had to be further broken dowm into detailed functions in orderto cope with error recovery and handling techniques.The original thoughts on handling these functions were to provide twobasic realms of control. The net control is a higher level function thatrecognizes and controls all aspects of net jobs and the execution of jobsteps in the network machine. In addition, a communication controlfacility (referred to as an "Express Interpreter") was incorporated toprovide fast service for all messages that were to be moved between usersystems without intervention by the net controller. [Page 2] --------------- | NC | --------------- ^ | / ----> in | out / -------------------------------- | Express Exchange | <---- -------------------------------- out in ^ \ \The above figure illustrates the two major functions with messagestravelling in both directions and directly through the Express Exchange,except in the case of messages that must be acted on by the NetController. These messages will be explained in detail later.These two functions can exist on any system and operate in any physicalconfiguration providing the control information reflects theconfiguration so that proper operation can be maintained. There is noreference to physical configuration in this paper because of theflexible nature of the protocol and its adaptability to anyconfiguration. For example, in the case of a distributed net, theExpress Exchange would pass messages directly to the next stationwithout any 'NC' overhead. The 'NC' would only come into play at thefinal destination and with the same reasoning, the 'NC' would not haveto be present at every station.DEFINITIONSBefore proceeding with the discussion of protocol and control, the basicmessage content and concepts must be defined.A transmission block is a physical entity that consists of header andtext. A message (logical) consists of many transmission blocks. ------------------------------------ | Header | Text | ------------------------------------The primary purpose of the network is to deliver messages from one usersystem to another in an orderly controlled manner. In order to provideall the information necessary to maintain control, the header contains aset of operational functions. These functions are listed below with therationale for each. [Page 3]Action CodeThis code selects the immediate destination of the transmitted blocks;the data may be transmitted directly to the user described in the DSIDfield, sent to 'NC', or used by 'EE'. Any conflict in informationbetween this field and any other field in the header will cause an errormessage to be returned to the originating station. The AC will serve asimilar function at the receiving system, indicating to thecommunications interface (CI) whether the data block is destined for auser routine or contains control information for the CI. [The CI is thatfunction which interfaces directly with the local operating system.]Transmission Block NumberEach block of transmission within the network will contain a sequentialnumber inserted by the transmitting station. As the block flows throughthe network, every station will insert its own number into the block,overlaying the previous station's number. The purpose of this sequentialnumber is to guarantee that no messages are lost in the physicalcommunications process.Network Job IdentifierThe function of this field is to associate a transmission block with thenetwork job to which it belongs. The identifier is assigned to thenetwork job and to each associated transmission block by the user systemor by the 'NC'. In order to establish a unique name for each job withinthe network, the user node identifier (i.e., the name of the user systemoriginating the net job) will be concatenated with a number generated bythe originating user system.Job Step (Marker)The purpose here is to uniquely identify a job step within a networkjob. The NC will assign this name since it maintains control of allnetwork jobs.Originating System IdentifierIn order to route a block of data from one user system to another, aunique name must be associated with each user system. The name will beassigned by the network control group at the time the user system isaccepted as a network participant. The station originating a block ofdata will place his assigned identification in this field in every blockof data originating at his system. [Page 4]Message PriorityThis field indicates transmission priority (not to be confused withprocessing priority) by block within the queue for a particular usersystem.Destination System IdentifierThis is similar to the originating node identifier except that theidentification inserted is that of the node for which the block isdestined.Logical Message FlagsThe message flags denote the first and last blocks of a message; allintermediate blocks are noted by their absence. The flag field inconjunction with the logical message sequence number will enable theuser to determine if any blocks are missing from a message and will alsoprovide an identifier that can be used to recover missing blocks. Whenthe first and last indicators are turned on in a single block, themessage is contained within the block.Logical Message Sequence NumberThis field is used to number sequentially the blocks within a message.The first block (denoted by the LMID) will contain the lowest numberassigned (not necessarily 1) within a message while the last block willcontain the highest number. Unlike the TBN, this number will remainintact throughout the journey of the block through the network. It isused for error detection and recovery along with the logical messageflag.Logical Message IdentifierSince all communications lines in the network can be multiplexed (blockswithin a message will be interleaved with blocks from other messages), amessage identifier becomes necessary in order to reassemble the messageat the user destination. Therefore; each block within a message willcontain an identifier unique to the message. In the simple case wherethe message is contained in one block, the identifier performs nofunction.When multiple blocks comprise a message, LMID will enable the user toreassemble the message. There can be any number of physical messageblocks associated with any logical message. It is important that thethat this LMID be used in the messages generated by the CI in responseto NC commands. [Page 5]Length of TextThis field contains a binary number that equals the number of charactersin the text portion of the transmission block, Although there are othermeans available to obtain this number, it is included in the header forredundancy check purposes.Logical Message StructuringThe network controller maintains control for every user job submitted byNJID. The following hierarchical structure is set up for a messageconfiguration, Any message pertaining to any step in a network job canbe tracked and retransmitted if necessary. It provides a mapping of thelogical structure of any network job into their appropriate messageconfiguration. Net Controller ------------------------------- | | | NJID(1) NJID(2) - - - NJID(N) ---------------------- . . . . . | | Stepname Stepname -------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -