rfc187.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 590 行 · 第 1/2 页

TXT
590
字号






                     A NETWORK/440 PROTOCOL CONCEPT

Network Working Group              Douglas B. McKay
Request for Comments #187          Donald P. Karp
NIC #7131                          IBM Thomas J. Watson Research Center
Categories:  C3,C4,C5,C6,D7        Yorktown Heights, New York
Update:  None
Obsoletes:  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]

INTRODUCTION

Network/44O is an experimental project in computer netting that was
undertaken by the Computer Science Department of IBM Research. The
primary 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 is
presently being operated by the project. Implementation discussions
transpired with another department at Research in order to define a
realistic user system interface. The protocol defined for the project's
network is also the basis for the operation of an IBM OS network.

The Network/44O project has also been involved in the philosophical and
architectural concepts of network systems. The basic premise in our work
is the concept of a logical network machine.(1) The main theme is to
treat all systems involved in the network as a part of a single (large)
multiprocessor system. Although many of the ideas have been based on
hypothetical concepts, an equal number of ideas were derived from our
network implementation and operating experience.

The scope of this paper is to describe the philosophy and definition of
a network protocol that is not restricted to any physical configuration.
This is exemploified by the fact that a major portion of the ideas are
implemented in IBM's two major operational networks, one of which is a
distributed 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 ASSUMPTIONS

There was a necessity to delineate many network functions in setting up
an operating protocol. These functions included switching control,
buffer control, message control, and operating control. The operating
control function becomes further complicated as the user is able to
program the network as if it were a single operating system. The
protocol had to be further broken dowm into detailed functions in order
to cope with error recovery and handling techniques.

The original thoughts on handling these functions were to provide two
basic realms of control. The net control is a higher level function that
recognizes and controls all aspects of net jobs and the execution of job
steps in the network machine. In addition, a communication control
facility (referred to as an "Express Interpreter") was incorporated to
provide fast service for all messages that were to be moved between user
systems without intervention by the net controller.



                                                                [Page 2]

                       ---------------
                       |      NC     |
                       ---------------           ^
                              |                 /
         ---->  in            |         out    /
               --------------------------------
               |      Express Exchange        |
        <----  --------------------------------
                out                     in  ^
                                              \
                                               \

The above figure illustrates the two major functions with messages
travelling in both directions and directly through the Express Exchange,
except in the case of messages that must be acted on by the Net
Controller. These messages will be explained in detail later.

These two functions can exist on any system and operate in any physical
configuration providing the control information reflects the
configuration so that proper operation can be maintained. There is no
reference to physical configuration in this paper because of the
flexible nature of the protocol and its adaptability to any
configuration. For example, in the case of a distributed net, the
Express Exchange would pass messages directly to the next station
without any 'NC' overhead. The 'NC' would only come into play at the
final destination and with the same reasoning, the 'NC' would not have
to be present at every station.

DEFINITIONS

Before proceeding with the discussion of protocol and control, the basic
message content and concepts must be defined.

A transmission block is a physical entity that consists of header and
text. A message (logical) consists of many transmission blocks.

     ------------------------------------
     |     Header     |      Text       |
     ------------------------------------

The primary purpose of the network is to deliver messages from one user
system to another in an orderly controlled manner. In order to provide
all the information necessary to maintain control, the header contains a
set of operational functions. These functions are listed below with the
rationale for each.






                                                                [Page 3]

Action Code

This code selects the immediate destination of the transmitted blocks;
the data may be transmitted directly to the user described in the DSID
field, sent to 'NC', or used by 'EE'. Any conflict in information
between this field and any other field in the header will cause an error
message to be returned to the originating station. The AC will serve a
similar function at the receiving system, indicating to the
communications interface (CI) whether the data block is destined for a
user routine or contains control information for the CI. [The CI is that
function which interfaces directly with the local operating system.]

Transmission Block Number

Each block of transmission within the network will contain a sequential
number inserted by the transmitting station. As the block flows through
the network, every station will insert its own number into the block,
overlaying the previous station's number. The purpose of this sequential
number is to guarantee that no messages are lost in the physical
communications process.

Network Job Identifier

The function of this field is to associate a transmission block with the
network job to which it belongs. The identifier is assigned to the
network job and to each associated transmission block by the user system
or by the 'NC'. In order to establish a unique name for each job within
the network, the user node identifier (i.e., the name of the user system
originating the net job) will be concatenated with a number generated by
the originating user system.

Job Step (Marker)

The purpose here is to uniquely identify a job step within a network
job. The NC will assign this name since it maintains control of all
network jobs.

Originating System Identifier

In order to route a block of data from one user system to another, a
unique name must be associated with each user system. The name will be
assigned by the network control group at the time the user system is
accepted as a network participant. The station originating a block of
data will place his assigned identification in this field in every block
of data originating at his system.






                                                                [Page 4]

Message Priority

This field indicates transmission priority (not to be confused with
processing priority) by block within the queue for a particular user
system.

Destination System Identifier

This is similar to the originating node identifier except that the
identification inserted is that of the node for which the block is
destined.

Logical Message Flags

The message flags denote the first and last blocks of a message; all
intermediate blocks are noted by their absence. The flag field in
conjunction with the logical message sequence number will enable the
user to determine if any blocks are missing from a message and will also
provide an identifier that can be used to recover missing blocks.  When
the first and last indicators are turned on in a single block, the
message is contained within the block.

Logical Message Sequence Number

This field is used to number sequentially the blocks within a message.
The first block (denoted by the LMID) will contain the lowest number
assigned (not necessarily 1) within a message while the last block will
contain the highest number. Unlike the TBN, this number will remain
intact throughout the journey of the block through the network.  It is
used for error detection and recovery along with the logical message
flag.

Logical Message Identifier

Since all communications lines in the network can be multiplexed (blocks
within a message will be interleaved with blocks from other messages), a
message identifier becomes necessary in order to reassemble the message
at the user destination. Therefore; each block within a message will
contain an identifier unique to the message. In the simple case where
the message is contained in one block, the identifier performs no
function.

When multiple blocks comprise a message, LMID will enable the user to
reassemble the message. There can be any number of physical message
blocks associated with any logical message. It is important that the
that this LMID be used in the messages generated by the CI in response
to NC commands.




                                                                [Page 5]

Length of Text

This field contains a binary number that equals the number of characters
in the text portion of the transmission block, Although there are other
means available to obtain this number, it is included in the header for
redundancy check purposes.

Logical Message Structuring

The network controller maintains control for every user job submitted by
NJID. The following hierarchical structure is set up for a message
configuration, Any message pertaining to any step in a network job can
be tracked and retransmitted if necessary. It provides a mapping of the
logical structure of any network job into their appropriate message
configuration.

                           Net Controller
                   -------------------------------
                   |             |            |
                NJID(1)       NJID(2) - - - NJID(N)
              ---------------------- . . . . .
              |              |
          Stepname       Stepname
           -------------------------------

⌨️ 快捷键说明

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