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 + -
显示快捷键?