Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
~2~8~66
END USER DATA ST~EAM SYNTAX
Background of the Invention
(1) Field of the Invention
-
The present invention relates to communication networks
in general and more particularly to the protocols which are
used to transport information within the networks.
(2) Prior Art
The use of computer network systems for processing and
transmitting data is well known in the prior art. A typical
computer network system consists of at least one host
computer running under some type of operating system,
communication controllers, a communication medium and a
plurality of end users (terminals, printers, displays,
etc.). The host computer is connected, via communication
media, to either a communication controller or an end user
terminal. The communication controller interfaces with
other communication controllers or end user terminals via
the communication medium. The communication medium may be
telephone lines, channels, satellites, etc. By entering a
request at a user terminal, a user may extract data from the
host computer. Similarly, a user may enter information on a
terminal and have it transmit to the host computer for
processing and/or to another terminal in the network.
In addition to the physical structure, the prior art
computing systems are controlled by a system architecture
which ensures the orderly flow of information throughout the
system The prior art describes several types of
architectures. For example, an overview of the architecture
used in computer networks is given in an article entitled,
"Computer Network Architecture," by S. Wecker in Computer,
September 1979. Another overview, including a description
of System Network Architecture (SNA) is given in an article
entitled, "An Introduction to Network Architectures and
Protocols," by P. E. Green
2 ~Z31 ~66
and printed in the IBM System Journal, Vol. 18, No. 2, 1979.
In these articles, the various computer networks such as
SNA, DMA, ARPANET, etc. are described by means of
hierarchical architectural layers, where the lowest layer
relates to the physical communication lines interconnecting
various user nodes of the network and where the highest
level concerns the conversation per se between the various
end users of the network.
In an attempt to standardize network architecture, the
International Organization for Standardization ~ISO) has
adopted a model which is described by Herbert Zimmerman in
an article entitled, "OSI Reference Model - the ISO Model of
Architecture for Open Systems Interconnections," IEEE
Transactions on Communications, April 1980. The model
architecture consists of seven layers, namely: physical,
data link, network, transport, sessions, presentation and
application layers. The present invention mainly concerns
the presentation service layer of SNA which relates to the
information unit which is used to transmit information
between two end users.
The prior art utilizes "Information Units" with
different type formats for carrying messages through the
network. Notwithstanding the type of format, the prior art
Information Units are plagued by a common problem; namely,
how to identify the length of a particular message and how
to distinguish between control information and user data.
The control information is used by the presentation layer
while the user data is for an end user.
One prior art solution is the use of delimiters to
bracket the message. A beginning delimiter is used to
signify the beginning of a message and an end delimiter is
used to signify the end of a message. In addition to the
delimiter an identification marker is used within the
message to differentiate between "user data" and "control
information."
Although the above information unit and technique works
well for the intended purpose, it is not very efficient.
This is so because the receiving node must analyze the
message to determine the type of information. The analysis
takes time which tends to slow down the performance of the
overall system. Moreover, the prior art information unit is
not easily adapted to transport control and/or
~'
3 ~18~66
user data in a common data stream. Finally, there are
several applications in which predefined delimiters cannot
be used to signify the start and end point of user data.
Summary of the Present Invention
It is a general object of the present invention to
provide a more efficient information unit for carrying
information within a communication network.
It is a more specific object to provide an information
unit which carries mixed types of information (i.e., user
data and control information) in a common da-ta stream.
It is another object of the present invention to
provide an information unit which transports variahle length
data.
The above and other objects are achieved by an
information unit in which the user data and/or system
control information is preceded by a length field. The
value of the length field is the sum of the number of bytes
for the user data plus the number of bytes for the length
field. Values that are less than the length of the length
field are used to prefix control information. By prefixing
user data with valid predefined length field and control
information with non-valid length field, a common
information unit is provided to transport user data and
control information in a common bit stream.
In one feature of the invention a mode bit in the
length field is used to chain user data. An "on" bit
signifies the coming of more data. An "off" bit signifies
the end of data.
The foregoing features and advantages of the invention
will be more fully described in the accompanying drawings.
Brief Description of the Drawings
Fig. lA-lB shows the format for the communication
transport unit (CTU) according to the teaching of the
present invention.
12~8466
Fig. 2 shows a schematic of a computer network. The
CTU of Fig. 1 can be used to carry data and/or control
information in the network of Fig. 2.
Fig. 3 shows a block diagram of the components of a
computer network.
Fig. 4 shows a flow chart of a computer program for
processing a data stream configured in the format of Fig. 1.
Fig. 5 shows a flow chart of a computer program for
creating a data stream in the format of Fig. 1.
Fig. 6 shows a flow chart of a computer program which
sets the continuation or mode bit.
Fig. 7 shows a flow chart of a computer program ~or
processing a bit stream with a continuation hit therein.
Detailed Description of the Preferred Embodiment
The invention to be described herein is intended to be
a general vehicle for carrying data and control information
throughout a computer network system. This being the case,
the invention is not restricted to any specific type of
computer network. However, it works well with the IBM* SNA
network which uses the SNA architecture and protocols and as
such will be described in that environment. However, this
should not be construed as a limitation on the scope of the
present invention since it is within the skill of one
skilled in the computing art to use the invention as is
disclosed herein or with slight modification to transport
information in other than the IBM SNA network.
A typical SNA network is described in the IBM manual,
"Advanced Communication Functions for Virtual
Telecommunications Access Method," GC27-0463-2, Fehruary
1981. The SNA network utilizes the system network
architecture (SNA) to allow terminals, application programs,
and other logical resources to communicate with one another
using SNA entities called logical units (LUs). A more
* Trade Mark
~2~ 66
detailed description of the architecture and network is
given in the above referenced manual which is incorporated
herein by reference.
Figs. lA-lC show the format for the communication
transport system according to the teaching of the present
invention. This transport system is the vehicle which
transports information (user data and/or control data)
throughout the network (to be described hereinafter). The
format includes a link header (LH) 70, a transmission header
(TH) 72, a request-response header 74, a request-response
unit (RU) 76, and a link trailer (LT) 78. The
request-response header and the request-response unit form
the basic information unit (BIU). The basic information
unit combines with the transmission header to form the path
information unit (PIU).
Finally, the path information unit combines with the
link header and link trailer to form the basic link unit
(BLU). A basic link unit may include one or more PIUs. It
should be noted that as the basic information unit travels
through the various SNA levels the additional units are
added. The basic information unit is the unit that travels
from end user node to another end user node in the network.
As will be explained subsequently, it is the content of this
unit that is modified according to the teaching of the
present invention to provide a more efficient transmission
vehicle. The transmission header contains information which
guides the BIU through the network. The transmission header
comprises address information and other necessary
information for transmission control. The link header and
link trailer are added to the PIU to control the
transmission of a PIU over a link.
Fig. lB represents the expanded RU. The expanded RU
includes a length field identified by numeral 80. The
length field 80 is joined to a data field identified by
numeral 82. Data field 82 may be used to transport end user
data andtor control data. As will be explained
subsequently, in order to determine whether or not data
field 82 contains user data or control data, one has to
examine the contents of the length field 80. The primary
function of the length field 80 is to identify the number of
user data bytes that are contained within the data field 82.
:~2~8~6~i
Note that as t:he maximum length of the RU is specified
at session creation time and is typically less than the
length of a user data stream. It may take many RUs to
transport a particular user data stream. In fact, when more
than one user data stream (each one composed of a len~th
field and user data) is to be sent, the following data
stream may not start on an RU boundary.
A condition which is imposed on the length field is
that its transmitted value must be e~ual to the number of
bytes in the user data field plus the number of hytes in the
length field itself. This means that if N bytes are
designated for the data field and M bytes for the length
field, respectively, then the length field must be set, at
data generation time, to M+N. When the data is received at
a destination logical unit (LU), the LU knows that the user
must process N bytes of user data. The remaining (M+N)-N)
value represents the number of bytes designated for the
length field. It should be noted that the number of bytes
which are designated for the length field may be determined
at system definition or session setup time.
Because the length field is of finite length, the user
data might be too long to be described by the length field.
To accommodate such large amounts of user data, an indicia
is provided in the length field and is used as a
"continuation" (cont.) or more-to-come indicator. When the
user data is too great to be coded in the number of bytes
assigned for the length field, some arbitrary amount is
encoded, the continuation indicator is turned "on" to a
first state and the remainder of the user data is put into
the following logical messaqe (with the properly encoded
length field). When the last portion of the user data is
placed in the following logical message, the continuation
indicia is placed in a second state (i.e., turned off).
In the preferred embodiment of this invention, the
continuation indicator is the left-most bit of the length
field. In Fig. lC the continuation indicator is identified
by numeral 8~. It should be noted that any other
appropriate bit in the length field can be used to indicate
the coming of additional data or the end of data without
departing from the scope of the present invention.
66
Referring to Fig. lC, since the value in length field
80 has to be the sum of the length field and the number of
bytes of user data, there are some values which are illegal
to be used in the length field. These illegal values are
placed in the control data identification field 8~ to
identify control data. It is therefore clear from Fig. lC
that by prefixing the length field with a continuation
indicator, prefixing the user data field with a length
field, and by prefixing the control information with a
control information identification code field, the
communication transport system of the present invention can
transport mixed variable length user data and system control
data in the same data stream.
It should be noted that the user data and system
control data are distinguished from each other based on the
values in the length field. Invalid values in the length
field indicate the presence of system control information
whereas valid lengths indicate user data. This allows user
data to be a transparent bit stream. In addition, the
length field itself may be used as a total system control or
system control information may follow the length field as a
formatted data stream.
An example will now be used to demonstrate the
operation of the above described communication transport
system. Suppose 50,000 bytes of user data were to be
transmitted. A further system limitation is that each
transmission must contain less than 32,767 bytes. One might
set the length field of the first logical message to be
27,002 (consisting of 27,000 bytes of user data and 2 bytes
of length field) with the continuation indicator set in the
first state "on". In the second logical message the length
field indicator is set in the second state (turned "off")
and the second logical message is 23,002. By examining the
figure, after removing the number of bytes assigned to the
length field, the user data adds up to 50,000 bytes. It
should be noted that any number of logical messages can be
continued so long as each of the messages is less than the
number of bytes which are allowed for a particular system.
In this example the (hexidecimal) Iength field values
0000, 0001, 8000, and 8001 are illegal because all logical
messages must have a length of two or greater value. These
illegal values can be used as 'escapes" to signify non-end
user logical messages. With
~L8~i6
respect to Fig. lC, those illegal values can be placed in
the control data identification field 86 to prefix control
information.
Fig. 5 shows an algorithm for processing a data stream
to fit in the protocol of the above-described communication
transport system. The first block in the algorithm is
identified by numeral ~ t is an entry hlock and
signifies the poin-t where the processor (to be described
later) enters the formatting algorithm. The program next
descends to decision block 90. In block 90 the program
checks to see whether the data to he transported is user
data. If it is, the program enters block 92 where it sets
the length field to a value equal to the size of the user
data plus the size of the length field. The program then
descends and escapes from the program via block 94. If the
data is not user data, the program then descends into block
96. In block 96 the program sets the length field to an
"escape" value and exits from the program via block 94.
Fig. 6 shows a flow chart of an algorithm for setting
the continuation indicator. The program includes start
block 98 through which the program enters the algorithm.
The program, via decisional block 100, checks to see whether
the user data length is less than or equal to the maximum
length that can be sent through that particular system. If
it is, the program enters block 102. In block 102~ the
program sets the continuation indicator in an "off" state
and sets the length field to user data length. The program
then escapes through end block 104.
If the user data is greater than the maximum length
which can be sent, the program enters block 106. In block
106 the program sets the continuation indicator in the "on"
state, sets the length field to the actual amount of user
data sent plus the value of the length field, and subtracts
the actual amount of user data sent from user data length.
The program then enters into a loop until all the user data
is transmitted. The program then sets the continuation bit
in the "off" state and escapes from the program via block
104.
Fig. 4 shows the flow chart of an algorithm for
processing the data stream. This algorithm would he
implemented on the processor of the node which receives a
message. The entry point of the
algorithm is a start hlock identified by numeral 108. The
program then descends into block 110 where it sets the
length field to the initial length field in received data
stream. The program then descends into decisional block
112. In block 112 the prograrn checks to see whether the
length field contains a valid value. If it does, the
program enters block 1l4. In block 11~ the received data is
processed as user data. The program -then descends into
decisional block 116. It then checks to see if it is the
end of the data stream. If it is, the program descends into
end block 118.
If the program decides that this is not the end of the
data stream, it then enters block 120. In block 120 the
program sets the length field to the next length field in
the data stream and loops into block 112. As before, in
block 112, the program checks to see if the length field
contains a valid length value. If it does not, the program
enters block 122 where the data is processed as control
information. In essence, the length field of received
messages is examined. If it contains a valid length value,
the data is passed to the end user where it is processed as
user data. If the value in the length field is invalid, the
data is passed to the control section of the LU where it is
processed as control data.
Fig. 7 shows a flow chart of an algorithm for
processing the continuation indicator at the receiving node.
In essence, the algorithm tests the status of the
continuation bit. If the bit is on, the data is processed
as incomplete user data. If the bit is off, the data is
processed as complete user data.
Fig 2 shows the structure for a basic SNA network.
The above described communication transport system can be
used for transporting messages between the I,Us of the
network of Fig. 2 The system is comprised of an SNA
transport network identified by numeral 130. SNA
transportation networks are well known in the prior art and
as such the details will not be given. Suffice it to say
that the transport network is comprised of a plurality of
nodes (not shown) and transmission links (not shown) for
interconnecting the nodes. A plurality of logical units
identifi~d by LUa, LUb, LUC, are connected to the transport
network. Each of the logical units is fitted with appli-
cation programs P, I/O devices and associated data bases.
For example, J,IJ may be an application sub-system with its
~2~8~66
application programs and data bases. LUa is structured so
that its interface to the program is user friendly while the
interface to the transport ne-twork is such that messages are
efficiently formatted for transmission in the network.
Still referring to Fig. 2, Lua is further characterized
by its ability to communicate in a "high level user friendly
language" with its own attached programs. As a result of
the communication, a message is assembled, formatted, in the
format of the present invention, and transmitted to Lua'
(not shown~. The structure of LUa' is similar to that of
LUa. The function of LUa' is to process messages from I.Ua
and forward them to programs (not shown) which are coupled
to LUa'. The presence of LUa and LUa' enables
program-to-program communication. A set of user friendly
language called "verbs" is published in "Transaction
Programmer's Reference Manual for Logical Unit 6.2"
(GC30-3084-1). LUb may be an intelligent office work
station like Displaywriter with its local office application
program, local document storage, keyboard/display, and
printer. Finally, LU could be a traditional fixed function
display terminal. Of course, other types of devices and LUs
can be connected to the network.
Fig. 3 shows a detailed schematic of a network 130
(Fig. 2) including two domains (A&B). Since the structure
of both domains is substantially the same, the details are
given for domain A only with a skeleton showing to represent
the components of domain B. The network includes a host
processor 1 located in node A and a host processor 9 located
in domain B. The host processors may be any conventional
host computers. In the preferred embodiment of this
invention the host computers are IBM System 370. The host
processor 1 includes an operating system 17, a plurality of
application programs 13, and a virtual telecommunication
access method (VTAM) 12. A logical unit (LUa) couples the
application program to VTAM. The structure of LUa is
identical to the structure of the above-described LU .
Essentially, LUa accepts instructions and commands from an
application program to formulate a message and transport the
message from node A to node B. Of course, the messaqe is
formatted in the format of the above described communication
transport system.
~X1~66
VTAM contains a system service control point (SSCP)
component 14. VTAM is an IBM communication access method
which is well known in the prior art and as such details
will not be given. Suffice it to say that the system
service control point 14 is a componerlt of VTAM that manages
a domain of the network. The SSCP performs functions such
as bringing up the network, shutting it down, assisting and
establishing and terminating the communication between
network addressable units, utilizing the above described
algorithm for formulating transportation units and re~cting
to network problems, such as failure of the link or control
unit. To perform these functions, the SSCP must be able to
communicate with physical uni~s (PU) and logical units (LU).
Usually, the communication is within its own domain. A more
detailed description of the VTAM/SSCP is given in "General
Information for Virtual Telecommunication Access Method"
(GC27-0463 and GC27-0462). The cited ]iterature is
incorporated herein by reference.
Still referring to Fig. 3, a communication controller 2
is attached to the host 1 via a channel 16, and a local
cluster controller 4 is attached over channel 15 to the
host. The communication controller 2 is a transmission
control unit with processing controlled by advanced
communication function (ACF) network control program (NCP)
that resides in its storage. The ACF/NCP is well known to
those skilled in the art and as such details will not be
given. Suffice it to say that the main purpose of the
network control program is to transmit data received from
the host processor 1 to terminals, clusters, or other NCPs
and to receive data from the terminals, clusters, or other
NCPs and sends it to the host. The NCP can process data in
various ways as it passes through the controller. In
controlling the flow of data, the NCP must interact with
portions of the controller hardware. On the line side, the
NCP interacts with the communication scanner (not shown) and
on the channel side it interacts with the channel adapter
(not shown). A more detailed description of the
communication controller and its associated control programs
is given in the above referenced manual.
The communlcation controller 2 is connected to a remote
cluster controller 5 over a synchronous data link control
(S~LC) link 21. The communication controller 2 is also
connected over link 25 to a remote communication controller
6 by means of link 21' to 24' to
12~ 6
terminals 31, 32 and 33. A cross domain link 26' connects
the communication controller to a remote controller ll in
node B. In node B there is also shown a communication
controller 10 connected between the host processor 9 and the
remote communication controller 11. :[t should be noted that
the communication controller 2 and its controlled program
are substantially the same as the remote controller 11.
Each element, in the network of Fig. 3, that can send
or receive data is assigned a network address and is known
as a network addressable unit (NAU). The network address
uniquely identifies the element, regardless of whether the
element is a device such as a term nal or terminal control
unit, programs such as application programs, and a cluster
controller wherein a host processor or a portion of an
access method, such as VTAM. The network address contains
information necessary to route data to its destination. It
ought to be noted that SNA defines three types of network
addressable units; namely: system service control point
(SSCP), physical units (PU), and logical units (LU).
A physical unit (PU) is represented in Fig. 3 as an
encircled PU. It is a portion of the device, usually
programming or circuitry or both, that performs control
functions for the device in which it is located and, in some
cases, for devices that are attached to the device that
contains the PU. For the device under its control the
physical unit takes action during activation and at
deactivation during error recovery and resetting
synchronization, during testing, and during gathering of
statistics and operation of the device. Each device in the
network is associated with a physical unit. In the local
cluster controller 4 there is a physical unit 41 and in the
remote cluster controller 5 there is a physical unit 51.
There are also physical units in the local communication
controller 2 and the remote communication controller 6.
A logical unit (LU) is a device or program by which an
end user, a terminal operator, and/or input/output mechanism
gains access to the network. The logical unit can be built
in logic or programming associated terminals, sub-system
stand-alone device or application program. As far as the
network is concerned, the logical unit (LU) is an access
port into the network. The logical
lZ~66
unit may or may not be the original source. The contents of
the request for the information for which the request is
based may have originated at the device controlled by the
logical unit. Similarly, the network sees a logical unit as
a destination of a request (RU) unit. In Fig. 3 a logical
unit is shown as an encircled LU. In the host processor 1
there is shown a plurality of application programs logical
units 13~ In the local cluster controller 4, there are two
logical units 42' and 43 controlling the devices 44' and 45.
Cluster controller 5 contains logical units 52-54
controlling devices and loops 55-57. Each of the terminals
31-33 is comprised of PUs 34-36 and LUs 37-39. This
concludes the detailed description of the invention.
While the invention has been particularly shown and
described with reference to the preferred embodiments
thereof, it will be understood by those skilled in the art
that various changes in form and details may be made therein
without departing from the spirit and scope of the
invention.