Trailing-Edge
-
PDP-10 Archives
-
BB-BT99V-BB_1990
-
10,7/anf10/anf10d.mem
There is 1 other file named anf10d.mem in the archive. Click here to see a list.
DIGITAL EQUIPMENT CORPORATION
DISTRIBUTED PROCESSING NETWORK FACILITIES
DECNET-10
Specification for:
Network Control Language
N C L
Date: 14-July-75 PRELIMINARY
Address any technical comments to:
Dave McClure
Digital Equipment Corp.
200 Forest Street
Marlboro, Massachusetts
DECNET-NCL Page 2
14-Jul-75 - PRELIMINARY
Copyright (C) 1975, Digital Equipment Corporation
This material may be copied, in whole or in part, provided that the
above copyright notice is included in each copy along with an
acknowledgement that the copy describes the NCL protocol developed by
Digital Equipment Corporation.
This material may be changed without notice by Digital Equipment
Corporation, and Digital Equipment Corporation is not responsible for
any errors which may appear herein.
DECNET-NCL Page 3
14-Jul-75 - PRELIMINARY
CONTENTS
1.0 INTRODUCTION
1.1 NCL Functions
2.0 COMMUNICATION ENVIRONMENT
3.0 NCL MESSAGES
3.1 User Interface an Operation
3.2 Message Formats
3.3 Data Messages
3.4 Unnumbered Control Messages
3.5 Numbered Control Messages
4.0 OPERATION
4.1 Logical Link Operation
4.2 Network Testing and Maintenance
4.3 Routing
5.0 INTERFACE TO OPERATING SYSTEMS
6.0 CONSIDERATIONS IN DESIGN
Appendix A - Object Types
Appendix B - Message Summary
Appendix C - Device Specific Attributes
Appendix D - Sample Messages
DECNET-NCL Page 4
INTRODUCTION
1.0 INTRODUCTION
This document defines the Network Control Language (NCL) for the Digital
Equipment Corp. DECsystem-10 distributed computing network facilities
(DECNET-10). DECNET-10 CONSISTS OF SOFTWARE/HARDWARE PACKAGES,
INTEGRATED INTO DIGITAL'S PRODUCTS, THAT ALLOW EASY INTERCOMPUTER
COMMUNICATIONS BETWEEN COMPUTER SYSTEMS CONNECTED TOGETHER BY
COMMUNICATION LINKS. DECNET-10 MAY BE USED TO CREATE DISTRIBUTED
PROCESSING COMPUTER NETWORKS SUITABLE FOR USE IN A VARIETY OF
APPLICATION AREAS. FOR AN OVERVIEW OF THE DECNET system see the product
brochure or the technical summary document on DECNET.
The basic goals of DECNET-10 are to create facilities that permit device
sharing and interprogram communication among the systems connected
together in a DECNET-10 environment. To achieve these goals and allow
easy integration into existing systems, DECNET-10 has been designed to
use a layered structured approach. Each layer in the system performs a
distinct set of functions, within each layer these functions have been
separated into distinct functional modules. The structuring of the
system into layered communication levels and functional modules within
these levels provides the implementor with the flexibility necessary to
integrate the network functions into existing systems. The design also
allows for ease of subsetting and future development within the DECNET
implementations.
The presentation in this document is at the overall design level and
does not imply the actual structure of the implementations. The
structure of DECNET implementations depends heavily on the facilities
available and structure of the individual systems, for example,
multiprogramming, protection mechanism, memory management and I/O
mechanisms. The implementations will, as much as possible, reflect the
structured layered design inherent in the DECNET system.
The key to a successful network is the standardization and compatibility
of the protocols used in the system. Each level (layer) in the
DECNET-10 structure corresponds to one or more specific protocols
reflected in that level. The levels in the structure are divided as
follows:
1. Hardware level - The transmission/reception of the
data bits over a physical link.
This layer is concerned with
transmission techniques
(synchronous, asynchronous,
parallel), character synchronization
and modem operation.
2. Physical link level - The interface of message packets
to/from the hardware level. The
physical link level is concerned
with message error detection and
recovery, message sequencing and
message synchronization over the
physical links.
DECNET-NCL Page 5
INTRODUCTION
3. Logical link level - The multiplexing/demultiplexing of
the physical link message stream
into individual message streams for
each logical link level is concerned
with end-to-end sequencing and
acknowledgment, message segmenting
and routing.
4. Dialogue level - The conversion created from
converting the messages sent over a
logical link into a meaningful
exchange between users.
The hardware level is implemented via a device driver and interrupt
service routine. Its purpose is to exchange data with the interface and
to handle synchronization and modem control for the hardware.
The physical link level implements the link protocol for error detection
and recovery. In DECNET-10 this is an implementation of DDCMP (Digital
Data Communications Message Protocol).
The logical link level creates logical data links via the NCL (Network
Control Language). NCL commands support the creation of the logical
links and the transfers of user data over those links.
The dialogue level is the conversation built from an exchange of
messages between users. This level of exchange occurs between general
user processes and between user processes and the functional modules
supporting I/O devices, file structures, and program transfers.
The diagram below shows how the various level of protocol are related.
Device ----- ----- Functional modules
\ /
----- DDCMP --- NCL -----
/ \
Drivers ----- ----- User processes
Levels: Hardware Physical Logical Dialogue
link link
DECNET-10 Structure
1.1 NCL Functions
NCL creates a mechanism for general communication between processes
operating in DECNET-10 systems. It is concerned with the creation of
conversation paths (logical links), the routing and flow control of data
over those links and the diagnosiblity of problems in the transfer of
data through the network, NCL assumes an error-free physical data link
over which it may pass messages to adjacent systems. In DECNET-10 this
DECNET-NCL Page 6
INTRODUCTION
error-free link is created from the DDCMP line discipline, the device
driver, the hardware interface, modems (if any), and the physical wire
link.
NCL provides the following functions within a network system:
1. Functions to the dialogue level:
a. Create a conversation path (logical link).
b. Transmit data over a logical link.
c. Receive data over a logical link.
d. Interrupt over a logical link.
2. Functions for operation of link:
a. Multiplex logical links into physical links.
b. Control traffic over logical links.
c. Ensure end-to-end delivery of data
in proper sequence.
3. Functions for network supervision:
a. Route messages through net.
b. Detect node/link failures and
maintain routing paths.
4. Functions for network maintenance:
a. Maintain error logs.
b. Examine and deposit remote node memory.
DECNET-NCL Page 7
COMMUNICAITON ENVIRONMENT
2.0 COMMUNICAITON ENVIRONMENT
The Network Control Language consists of two, essentially independent,
functions. The first is conerned with the creation and operation of the
logical links, the mechanism for interprogram communication in DECNET.
The second is concerned with the creation and operation of a
communication network and is used by the first function for message
routing and network maintenance. If one looks at the two systems
engaged in a single conversation the network appears as:
User process---NCL---Communication Net---NCL---User process
NOTE
This diagram shows logical data flow and
does not include the physical links and
DDCMP protocol used in actual data flow.
The communication net is used to transfer data from the NCL on one node
to the NCL on another node. The communciation net may physically
consist of simply the two nodes connectecd by a single wire:
1. Node A------Node B
one or more nodes in between:
2. Node A---Node X---Node Y---Node B
or more complex topologies:
3. Node A---Node X----Node Y
| |
--------Node Z------Node B
The actual data transfers over the net, for instance in example 2, go
from node A/NCD to Node A/DDCMP to Node X/DDCMP to Node X/NCL, where a
routing decision is made; to Node X/DDCMP to Node Y/DDCMP to Node
Y/NCL, where another routing decision is made; to Node Y/DDCMP to Node
B/DDCMP to Node B/NCL to the user. As can be seen the NCL's at nodes A
and B perform both logical link functions and routing functions while
the NCL's at nodes X and Y may perform only routing functions. If one
considers only the end-to-end or logical link functions of NCL then the
system may be viewed as the end NCL modules with a communication net
used to physically transport the data between the systems. This
communication net may have a number of varying properties including:
1. Guaranteed sequential delivery of messages (sequential nodes)
2. Possible non-delivery or delivery out of order
(non-sequential nodes)
DECNET-NCL Page 8
NCL MESSGAES
3.0 NCL MESSGAES
NCL networks can contain two types of nodes; "sequential" and
"nonsequential".
A sequential node is one that has only one path from it to any other
node in the network. A sequential node whose DDCMP ACKs a message is
committed to pass the message on in numerical order to its destination.
The message can only be discarded if the destination node has become
disconnected.
In a nonsequential network, there may be multiple paths from one node to
any other node. Because of the possibility of having several paths, a
message may become lost and require retransmission (e.g., an
intermediate node's DDCMP ACKs a message and then the node dies).
Further, messages to a nonsequential node may arrive out of numerical
order (e.g., the route of the second message differs from that of the
first message and the second message arrives before the first). A
nonsequential node whose DDCMP ACKs a message should pass the message on
to its destination, but passing the message is not required.
Nonsequential nodes maintain an end-to-end numbering scheme for all
important messages in order to determine whether their messages have
arrived at their destinations. The NCL-REP, NCL-ACK, and NCL-NAK
messages are used to maintain the message numbering scheme.
For nonsequential networks, it is important that messages not lie around
too long. (Consider the case of node A sending message 1 to node B,
then transmitting messages 2 through 256 and having the message numbers
wrap-around to 1 again. The second copy of message 1 is sent from node
A, but the first one suddenly arrives at node B. Node B then believes
that the old message 1 arriving is actually the second.) Therefore, in
nonsequential networks, if the DDCMP routine is unable to successfully
transmit a message to the next node on the path within a fixed period of
time, the message is disposed of, and the DDCMP messages are realigned
using the RESET and RESAK messages. Any node can calculate the maximum
length of time a message can be outstanding (time period times maximum
number of links), and use this time for its NCL-REP timer.
3.1 User Interface And Operation
The basic goal of NCL is to create paths of conversation between users
(interprocess communication) and manage the operation of these paths.
The user has four basic commands that may be issued to NCL for the
operation of this communications mechanism:
1. CONNECT - directs NCL to create a communication path
(logical link) between the processes issuing the
command (usually with an ASSIGN system command,
INIT UUO, OPEN UUO, or FORTRAN OPEN statement)
DECNET-NCL Page 9
NCL MESSGAES
2. TRANSMIT - directs NCL to send user data over the logical
link (usually performed with an OUTPUT UUO or
FORTRAN WRITE statement)
3. RECEIVE - directs NCL to receive data over the link
(usually done with an INPUT UUO or a FORTRAN
READ statement)
4. DISCONNECT - terminates the conversation and destroys the
logical link (usually done with a DEASSIGN
system command, RELEASE UUO, or FORTRAN CLOSE
statement)
To minimize system buffer occupancy, NCL does not move any data over the
link until a transmit request has a corresponding receive request,
implying a user buffer for the incoming data. The commands are
interpreted by NCL and result in one or more messages exchanged by NCL
modules. These messages, to be described in the next section are:
1. CONNECT command - Connect message (Control Message)
2. TRANSMIT command - Data message
3. RECEIVE command - Data request (Control Message)
4. DISCONNECT command - Disconnect message (Control Message)
3.2 Message Formats
This section describes the basic messages and their formats. Sections
4.0 through 4.1.3 describe the state transitions and operation of the
NCL. The following notation is used to describe the messages:
Field (length) : coding = description of field
Field = the name of the field being described
Length = the length of the field as:
1. a number meaning number of 8-bit bytes
2. a number followed by a "B" meaning number of bits
3. the letters "EX" meaining extensible field - Extensible
fields are variable length consisting of 8-bit bytes,
where the high-order bit of each byte denotes whether the
next byte is part of the same field. A 1 means the next
byte is part of this field while a 0 denotes the last
byte. Extensible fields can be ASCII or binary. If
DECNET-NCL Page 10
NCL MESSGAES
ASCII they are merely variable length strings of 7-bit
ASCII. If binary then 7-bits from each byte are
concatenated into a single binary field.
coding = the representation type used A=7-bit ASCII, B=binary
BM=bit map (each bit has
specific meaning)
If length and coding are omitted Field represents a number of
subfields specified in description.
All fields are transmitted low-order bit first on the data links unless
otherwise specified. All number values are in decimal representation.
Parentheses "( )" around a field indicate that the field can be
repeated. The parentheses are not part of the NCL syntax.
NOTE
The size of extensible fields may be
limited to some maximum number of bytes
or bits.
Users exchange data over conversation paths (logical links) created by
NCL. The NCLs also exchange data for creation and supervision of the
logical links as well as for network control and routing. There are two
types of messages, therefore, that are exchanged by NCLs. Data Messages
(DM) carry the dialogue level information between processes and Control
Messages (CM) carry information between NCL modules. Control Messages
can be either numbered (NCMs) or unnumbered (UCMs).
Messages exchanged by NCL, both DM and CM, may pass through several
intermediate nodes along the communication path or may be directly
connected by a physical link. In the former case the message must
include routing information for use by intermediate nodes; in the
latter case such information may be omitted for efficiency. It is
recommended that messages always be built to include both the
destination and source node addresses. This eliminates the need to
rebuild the message to include routing information if a link should go
down.
Messages take the following general form:
NCT DNA SNA NCA NCN DAT
NCT(EX) : BM = A group of flags denoting characteristics of the
message. They have the following meaning if set:
bits 0-2- the type of the field in binary
0 = data message or numbered control
message
1 = ACK,
2 = NAK,
3 = REP,
4 = START
5 = STACK
DECNET-NCL Page 11
NCL MESSGAES
6 = node-ID
bit 3 - DNA and SNA present - routing informaiton
is included following this field
bit 4 - This is a trace mode message
bit 5 - Interrupt message (does not affect the data
request count)
bit 6 - Non-sequential node
bit 7 - Reserved for extension (currently 0)
DNA(EX) : B = The destination node identifier (binary number) -
where 0 = next node on link - used to address
adjacent node over synchronous line. This field
is optional and is included only if NCT bit 3 is
set.
NOTE
The user usually addresses node using
an ASCII name which is internally mapped
into the destination node address.
SNA(EX) : B = The source node identifier - (maximum of 6 bits
with 6.02 monitors) may not be 0. This field is
optional and is included only if NCT bit 3 is set.
NOTE
The omission of the DNA defaults to
DNA = 0 and implies the SNA as the
adjacent node sending this message.
NCA(1) : B = Network Control ACK.; the number of the last
network control message correctly received.
NCN(1) : B = the number of this network control message.
DAT = the message information for DM or CM.
3.3 Data Messages
If any of the three low-order bits of NCT are set, the message is an
Unnumbered Control Message; otherwise it is a Data Message (DM) or a
Numbered Control Message. If the first byte of DAT is zero, then the
message is a Numbered Control Message; otherwise it is a Data Message.
For a DM, DAT is:
DNA DAP
DLA(EX) : B = the logical link destination address for this
DECNET-NCL Page 12
NCL MESSGAES
message. This is the address for a conversation
and is usually dynamically assigned via the
connection procedure. The maximum size for DLA is
12 bits. Zero is an illegal DLA address.
DAP = a data message in accordance with the Data Access Protocol
3.4 Unnumbered Control Messages
If bits 0-2 of NCT indicate that the message is an unnumbered control
message, and the message is a START, STACK, or NODE-ID message, then DAT
has the form:
NNM SNM SID
NNM(EX) : B = node name identifying node. Maximum of 12 bits;
zero means the next node over an asynchronous line.
SNM(EX) : A = station name.
SID(EX) : A = software identification containig two sub-fields;
(1) name and version of the operating system and
network software, (2) creation data of the software.
If bits 0-2 of NCT indicate that the message is an unnumbered control
message and the message is not a START, STACK, or NODE-ID, then DAT is
empty.
3.5 Numbered Control Messages
If the three low-order bits in NCT and the first byte of DAT are zero,
the message is a Numbered Control Message (NCM). NCMs are used to pass
information between NCL modules. These message are divided into three
group:
1. NCMs related to operation of logical links
2. NCMs related to network testing
3. NCMs related to routing
All NCMs have the following form for DAT:
<0> (CNT TYP CMD)
DECNET-NCL Page 13
NCL MESSGAES
CNT(1) : B = the number of bytes in this NCM (not including CNT
byte) - allows blocking of NCMs.
This field is OPTIONAL depending on bit 4 of NCT.
TYP(1) : B = the number representing the type of NCM. These
numbers are given with each NCM description and in
the summary in Appendix A. Types 128-255 are
reserved for any user extensions to NCL.
CMD = the data specific to each NCM.
DECNET-NCL Page 14
NCL MESSGAES
3.5.1 Control Message For Logical Link Operation -
3.5.1.1 CONNECT (TYP = 1) -
The connect message is used to establish a logical link (communication
path) between processes in the network. The state transitions for the
connection sequence, given in section 4.1.1, basically consist of the
exchange of connect initiate and connect confirm messages. The form of
CMD for the connect message is:
DLA SLA DNF SFN MML FEA
DLA(EX) : B = destination message link address (i.e., the index
into the node's connection database, maximum of
12 bits; zero is illegal.
SLA(EX) : B = source message link address, maximum of 12 bits;
zero is illegal.
DPN = destination process name. Consists of:
OBJ PID
OBJ(1) : B = object type for process
0 = terminal handler
1 = terminal
2 = Card reader
3 = Line printer
4 = Paper-tape reader
5 = Paper-tape punch
6 = Plotter
7 = Magnetic-tape
10 = DECtape
200-377 = reserved
PID(EX) : A = task-name and qualifier (e.g., PPN or UIC)
SPN = source process name. Consists of
OBJ PID
MML(1) : B = maximum NCL message length for connection;
including NCL header, but not including DDCMP
information.
FEA = feature included. Consists of:
DCM RLN DVT
DCM(1) : BM = data code and mode
0 = ASCII
DECNET-NCL Page 15
NCL MESSGAES
1 = EBCDIC
2 = Image
3 = Hollerith (CDR only)
4 = DEC image (CDR only)
5 = reserved
6 = compressed format
RLN(EX) : B = maximum record length. Dependent on device;
Usual values are 132 for line printer, 80 for card
reader, etc.
DVT = device specific attributes. See Appendix C.
3.5.1.2 DISCONNECT (TYP = 2) -
The disconnect message is used to destroy a logical link previously
established and/or confirm that a connection rejection has been
completed. The state transitions usually consist of the exchange of
disconnect initiate and disconnect confirm messages. The form of CMD
for the disconnect message is:
DLA SLA RSN
DLA(EX) : B = destination message link address (i.e., the index
into the node's connection database). Maximum of
12 bits; zero is illegal.
SLA(EX) : B = source message link address. Maximum of 12 bits;
zero is illegal.
RSN(1) : B = the reason for the disconnect.
0 - no specific reason
1 - object type unsupported
2 - too many connects to node
3 - too many connects to process
4 - process does not exist
3.5.1.3 NEIGHBOURS (TYP = 3) -
The NEIGHBOURS message for non-sequential nodes includes all adjacent
nodes that a node will route to.
For sequential nodes, the NEIGHBOURS message includes all nodes it will
route to.
DECNET-NCL Page 16
NCL MESSGAES
Each time a node (1) acquires a new neighbor, (2) loses a neighbor, or
(3) changes a link level, it sends a NEIGHBOURS message to all the nodes
known to it. The form of CMD for the NEIGHBOURS message is:
( NNM LVL )
NNM(EX) : B = node name identifying node
LVL(1) : B = link value used to determine the preferred path.
(The preferred path is the path whose link values
add up to the lowest number.)
3.5.1.4 REQUEST CONFIGURATION (TYP = 4) -
The request configuration message is sent to the NCL module at another
node to get information on the operating system and version being used,
the NCL options supported and the node address and name. This
information is returned in a configuration message. The byte labelled
CMD is omitted for this message.
3.5.1.5 CONFIGURATION (TYP = 5) -
This message returns the system configuration and options in response to
a request configuration message. The form of CMD is:
( OBJ NDV )
OBJ(1) : B = object type for process as described in Section 3.5.1.1.
NDV(EX) : BM = the number of devices available
3.5.1.6 DATA REQUEST (TYP = 6) -
The DATA REQUEST message informs the destination node that the source
node is willing to accept data. The CMD form is:
DLA DRQ
DLA(EX) : B = description message link address. Maximum of 12 bits.
DRQ(1) : B = number of data requests outstanding. Each data
request enables one DDCMP message to be received.
DECNET-NCL Page 17
NCL MESSGAES
3.5.1.7 STATION CONTROL (TYP = 7) -
Station control messages are used to perform operations with the
bootstrap level of remote station software. CMD for STATION CONTROL
messages is one of the following forms:
BOOT - LNM <000>
EXAMINE - LNM <001> AD1 AD2
DEPOSIT - LNM <002> ADR DATA
GO TO - LNM <003> ADR
CLEAR - LNM <004> AD1 AD2
DEBUG - LNM <005>
ACCEPT - LNM <011> ADR DATA
EXAMINE DATA - LNM <012> ADR DATA
REJECT - LNM <013>
REQUEST BOOT - LNM <014> TYPE SER DES
REQUEST LOAD - LNM <015> TYPE SER DES
LNM(1) : B = the number of the line connecting the destination
node to the node which is to receive the station
control message. Zero means the destination node;
N means that the node connected to line (N-1) of
the destination node is to receive the message.
DES(EX) : A = a string of ASCII characters which describes ther
program to be loaded. This is usually a file
description.
SER(EX) : B = the serial number of the node to be booted.
TYPE(EX) : B = the code for the type of node requesting the load.
1 = DC71 (PDP81 with DP01).
2 = DC72 (PDP8E with DP8E).
3 = PDP-11/40 with DU11.
4 = DAS82 (PDP-11/40 with DQ11).
ADR(3) : B = an address made up of three concatenated bytes,
with the low-order byte arriving first (on the
PDP-8 based nodes, the length of this field is 2
bytes). ADR indicates the address in the remote
node which is being operated on.
AD1(3) : B = an address made up of three bytes (two for PDP-8s)
indicating the lower limit of the range of
locations to be operated on.
AD2(3) : B = an address made up of three bytes (two for PDP-8s)
indicating the upper limit of the range of
locations to be operated on.
DATA(EX) : B = the information portion of the STATION CONTROL
messages. When only one ADP is specified with a
data stream for deposit, the data is deposited in
sequential locations starting at the address
DECNET-NCL Page 18
NCL MESSGAES
specified and continuing until the data runs out
(determined by the byte count).
DECNET-NCL Page 19
OPERATION
4.0 OPERATION
This section describes the operation of NCL with respect to the message
categories:
1. Messages related to logical link operation.
2. Messages related to routing.
4.1 Logical Link Operation
The basic function of NCL is to provide an interprocess communication
mechanism between processes located on different nodes in a DECNET
system. This mechanism operates via a communication path known as a
logical link.
Logical links define the end points of a conversation (dialogue) and in
no way imply the technique used for message transmission between those
end points or the line discipline used.
The NCL modules creating the link and passing data over it must know
certain characteristics of the communication system being used. Much of
this has been described earlier in the discussion on characteristics of
the communication network. The two important characteristics are those
of non-sequential delivery or sequential delivery. These
characteristics determine whether or not certain NCL options must be
used to guarantee sequential message delivery to the user. The NCL
functions for operation of logical links include:
1. creation/destruction of logical links.
2. control of traffic over logical links.
3. insure sequentiality and delivery.
4. create a mechanism for interruption over logical links.
These functions are described below.
4.1.1 Creation Of Logical Links -
The establishment of a logical link is a cooperative effort between the
processes wishing to engage in a conversation. The protocol achieves
security and protection by letting the parties involved in a
conversation decide if they should converse. The creation of a link
involves an exchange of connect messages. One of the processes issues a
connect command to NCL through an interface in the operating system
DECNET-NCL Page 20
OPERATION
environment (such as the ASSIGN command). This command causes NCL to
send a connect-initiate message to the destination NCL. This message
includes the names of the processes wishing to connect and any
additional information one process wishes to pass along to the other,
such as passwords, device characteristics, etc.
The destination process receives this information and decides whether or
not to complete the connection. If it does, it issues a connect command
and NCL sends a connect-confirm message back to complete the connection
procedure. Otherwise, it issues a connect-reject command causing a
disconnect message to be sent and the logical link broken.
There are two other reasons for rejecting connections:
1. an error was detected and an error message was sent back
2. a connect-rejection by NCL (disconnect message)
To improve the efficiency of logical link operation the connection
procedure encodes the process names and associated queues into an
address which is passed over in the connect-initiate (SRCADDR) and a
corresponding encoding returned from the other end in a connect-confirm.
The following notation is used for this and other state diagrams:
CI(a,b) - connect initiate:dest addr=a, src addr=b
CC(a,b) - connect confirm
DM(a,n) - data message: dest addr = a, message number = n
DR(a,n,k) - data request: dest addr = a, request count = n, ack
number = k
DS(a,b) - disconnect by NCL
The state operations for connection are:
1. Normal connection
CI(0,a)---------------->
complete <----------------CC(a,b)
2. Connection rejection
CI(0,a)---------------->
<----------------DS(a,0)
3. Sender aborts or cancels connection
CI(0,a)---------------->
connect cancelled
<--------------CC(a,b)
DS(b,a)--------------->
DECNET-NCL Page 21
OPERATION
<--------------DS(a,b)
4. Error in connect parameters
CI(0,a)--------------->
<--------------DS(CI(0,a))
5. Error in confirming parameters
CI(0,a)--------------->
<--------------CC(a,b)
DS(CC(a,b))--------------->
<--------------DS(a,b)
These state examples are not exhaustive but give the operation in the
basic cases.
4.1.2 Message Transfer Over Logical Links -
When the connection procedure has been completed, each end of the
logical link has a reference number (destination address) it uses to
address the logical link. This address is used in data messages sent
over the link and in control messages referencing the link.
The design of NCL does not include any provision for disk storage of
incoming messages. A user wishing such a facility may add it locally
without affecting NCL operation.
In order to minimize system buffer occupancy a traffic control scheme
has been included in the operation of the logical links: a message is
not transmitted over a logcial link until the receiving user has
allocated a buffer for storage of the message (issued a receive command
to NCL). This is implemented on the logical link by a request count
scheme. Whenever a receive command is issued, the destination NCL sends
a data request message. When a transmit is issued the source NCL checks
the current data request count. If the count is greateer than 0, NCL
sends the message and decrements the count. To improve efficiency, NCL
need not send data request messages with each request but may wait for a
number of them to accumulate and then send the total in one message.
The operation is as follows:
1. User issues receive command.
2. NCL sends a data rquest for N messages.
3. Other NCL modules may then send N data messages.
When a user issues a transmit command, the NCL module checks the current
local request count and if greater than zero, sends the message.
The state operations for message transfer are:
DECNET-NCL Page 22
OPERATION
1. Single request and acknowledge
User issues "receive"
DR(a,1,b)--------------->
User issues "transmit"
<----------------DM(a,b+1)
Acknowledge message (numbered)
DR(a,0,b+1)-------------->
2. Acknowledge and request
dR(a,1,b)---------------->
<-----------------DM(a,b+1)
DR(a,1,b+1)-------------->
<-----------------DM(a,b+2)
DR(a,1,b+2)-------------->
There are many other possibilities due to timing but these examples give
the basic flavor of the traffic control/acknowledgement schemes.
4.1.3 Interruption Over Logical Links -
The NCL has a mechanism for allowing interruption over a logical link.
This feature allows:
1. Interruption to "wake-up" a user and start data transfer.
This is very useful on links with intermittent transfers
because the user is not required to have an outstanding
receive.
2. Interruption of the normal data stream to inform the user of
some unusual condition.
The interrupt message is sent without any previous request and is passed
to the user outside the normal buffer mechanism scheme usually through
some local interrupt mechanism (i.e. synchronous system traps, event
flags, mail boxes, etc.).
Some implementations may limit the amount of data that may be sent in an
interrupt message.
DECNET-NCL Page 23
OPERATION
4.1.4 Destruction Of Logical Links -
Logical links may be terminated upon request from the user, failure of
the user process, or failure of a communication link or intermediate
node. All these cases are handled in about the same way, the main
difference being that the processes are notified of the different reason
for disconnection. If it is process-initiated, the NCL module sends a
disconnect message upon receipt of a disconnect command from the user.
This message may include optional data the disconnecting process wishes
to pass to the other end. All transmit and receive commands currently
pending are terminated, the user only being sure that transmit commands
that have completed have been received at the destination node. Upon
receipt of a disconnect message the receiving NCL notifies the process
via some local mechanism and also terminates any pending commands. It
returns a disconnect-confirm message to close off the logical link.
Messages received between the sending of a disconnect message and the
receipt of a disconnect-confirm are discarded. The processes on the
link must complete their conversation prior to issuing the disconnect
command. It has the effect of immediately "hanging up". Either process
may initiate a disconnect, not necessarily the one that initiated the
connection.
In the aborting case the same things happen except the receiving process
is notified that this is a disconnect abort and is not passed any
optional data, as in the process-initiated case. Some examples of
disconnection states are:
DI(a,b) - disconnect initiate: dest addr=a, srcaddr=b
DC(a,b) - disconnect confirm
DA(a,b) - disconnect abort
1. User initiates disconnect
DI(a,b)----------->(on numbered links resent on timeout)
complete
complete<----------DC(b,a)
2. User aborts
DA(a,b)---------->(on numbered links resent on timeout)
complete
complete<---------DC(b,a)
4.2 Network Testing And Maintenance
Current knowledge of network testing and maintenance is limited to those
operations available using the Remote Debugger DDT11. Further
information on DDT11 can be obtained in the DECNET-10 User's Manual in
the chapter on Network Maintenance.
DECNET-NCL Page 24
OPERATION
4.3 Network Message Routing
To enhance the operation and characteristics of DECNET-10, NCL allows
routing of messages within the system. This means that the computer
systems (nodes) in which the communicating processes exist do not have
to be directly connected by a physical link. Routing allows
conversations with processes to which there are paths, not necessarily
direct wire connections. This means that intermediate nodes act as
routers in the forwarding of messages.
The basic concepts of routing are fairly straightforward. A message
enters a node and is given to NCL. NCL examines the routing
information, deciding if it is the destination system. If not, it
executes a routing algorithm, whose purpose is to associate the
destination address with an outgoing physical link number.
The routing header in NCL includes some characteristics flags, the
destination node address and the source node address. In point-to-point
only communications this header may be omitted for efficiency. The
receipt of a message without a DNA and SNA implies that the receiver is
the destination node and the node on the other end of the physical link
is the source node. The NCT flags are used by the routing algorithm to
pick the outgoing link. Routing algorithms can be very simple table
lookups or very complex computations attempting to find optimal paths on
a dynamic basis. The algorithms used, and the information that must be
exchanged by routine nodes is what makes routing a complex problem. The
mechanics of receiving a message and forwarding it on another link are
rather simple.
Sections 4.3.1 through 4.3.3 descirbe the routing techniques employed in
DECNET-10. This is independent of the other two sections of the NCL
specification, logical link operation and maintenance and testing.
Other routing algorithms and techniques may be used without affecting
logical link operation. All NCLs in a network must, however, be aware
of the characteristics of the routing algorithm and communication system
in order to choose an option consistent with the routing. This has been
discussed earlier in the characteristics of the communication system and
the operation of numbered and unnumbered logical links.
4.3.1 Sequential Node Routing -
Sequential nodes in a network can only send messages down a single link.
Therefore, the routing from sequential nodes is direct until a
non-sequential node is reached. At the non-sequential node, adaptive
routing techniques are used to pass the message to the destination.
DECNET-NCL Page 25
OPERATION
4.3.2 Adaptive Routing - Non-Sequential Nodes -
The most dynamic scheme is the adaptive routing technique that adapts to
changes in the topology and selects the best path for message routing.
The technique uses the NEIGHBOURS message to pass information between
network nodes on the current state of each others neighbours. This
technique is based on the concept that a node's routing information is
no better than the routing information of its neighbors (adjacent
nodes). When a node routes a message to one of its neighbors it is then
up to the neighbor to route it further. It does no good for a node to
have "better" information than the node to which it is sending the
message for further routing.
Based on this concept, nodes send NEIGHBOURS messages to adjacent nodes
whenever there is a change to their route path table which will change
routing path information. Since NEIGHBOURS messages are sent only to
neighbor nodes they themselves do not require routing. This eliminates
the race condition problem when routing messages are being routed with
invalid routing tables trying to update these tables.
Nodes operating in such an environmen may be either end nodes or routing
nodes. End nodes perform no routing and are either sources or
destinations for messages. The requirements are that these nodes accept
NEIGHBOURS messages and either discard them or keep the names of valid
nodes; and if they have multiple physical links they keep the link
numbers for each valid node. End nodes may, thus, oeprate either
intelligently by knowing all valid nodes and checking messages before
sending them out; or by simply sending and handling the routing error
messages when they are sent back.
Routing nodes must send NEIGHBOURS messages when physical link status
changes (up or down) and when they have updated their tables and this
causes a routing change. Routing nodes may maintain alternate paths in
their routing table if desired. The lack of this will result in the
absence of a path when the primary route fails. The node may then have
to wait until it receives a NEIGHBOURS message with a new route to the
destination node if one exists.
Transit values are assigned to links based on their goodness or "cost".
They may have values from 1-9, 1 being a better or lower cost link.
Once transit values in route tables reach 127 they remain at this
maximum value. Each node adds its link transit value to values received
in NEIGHBOURS messages to obtain the total cost to the destination node.
The basic rule in using routing in a non-sequential network is that the
total transit cost from the neighbour doing the routing must be less
than the total transit cost from the node itself.
DECNET-NCL Page 26
OPERATION
4.3.3 Multiple Path Routing -
There are many cases when a node has more traffic to another node than
the bandwidth of the highest speed link or path between them. In theses
cases the nodes may wish to use several paths simultaneously for
increased performance and high reliability. It is possible to do this
in a number of ways. One way is to assign multiple addresses to nodes
and different routing paths to each address. When logical links are
assigned, the operating system may alternately map the node name into
these multiple addresses. There are not changes to NCL in this case.
Some logical links take one path, while some take another. Unnumbered
logical links may be used if the routing for each link is sequential.
NCL may choose to send messages through a logical link which does not
have the lowest transit cost if the DDCMP queues for that link are
backed up. Again, NCL can chooses an alternate route to the destination
as long as the neighbour it routes through has a transit cost to the
destination less than the cost of the node itself.
5.0 INTERFACE TO OPERATING SYSTEMS
The NCL interface to a TOPS-10 network operating system is via system
commands and monitor calls (UUOs). The elements in the interface are
described in the DECNET-10 User's Guide.
6.0 CONSIDERATION IN DESIGN
To be completed.
APPENDIX A
OBJECT TYPES
This is the current list of object types defined for processes in
DECNET-10.
Object Type Number Object Description
0 = terminal handler
1 = terminal
2 = Card reader
3 = Line printer
4 = Paper-tape reader
5 = Paper-tape punch
6 = Plotter
7 = Magnetic-tape
10 = DECtape
200-377 = reserved
APPENDIX B
MESSAGE SUMMARY
Unnumbered Control - NCT DNA SNA NCA NCN NNM SNM SID
Numbered Control - NCT DNA SNA NCA NCN <0> CMD
Data Messages - NCT DNA SNA NCA NCN DLA DAP
CMD message formats are:
CONNECT - CNT <1> DLA SLA DPN SPN MML FEA
DISCONNECT - CNT <2> DLA SLA RSN
NEIGHBOURS - CNT <3> NNM LVL
REQ CONFIG - CNT <4> OBJ NDV PID
CONFIGURATION - CNT <5>
DATA REQUEST - CNT <6> DLA DRQ
STATION CONTROL - CNT <7> STC
APPENDIX C
DEVICE SPECIFIC ATTRIBUTES
Table C-1
Card Reader Specific Attributes
WORD BITS MEANINIG
1 0-1 speed
0 = don't care
1 = <300 cards/minute
2 = between 300 and 600 cards/minute
3 = >600 cards/minute
2 mark sense if set
3 hardware EOF required if set
4 suppress EOF card detection if set
5-6 unused
7 extensible bit - should be zero
DEVICE SPECIFIC ATTRIBUTES Page C-2
Table C-2
Line Printer Specific Attributes
WORD BITS MEANING
1 0-1 speed
0 = don't care
1 = <300 lines/minute
2 = between 300 and 600 lines/minute
3 = >600 lines/minute
2 lower case required
3 removable character set required
4 multi-part paper required
5 12 channel skipping required
6 unused
7 extensible bit - should be set to 1
2 0-1 skip requirements
0 = don't care
1 = changeable from handler
2 = changeable at site
3 = changeable, but don't care how
2 requires overprint if set
3 6 lines/inch printer required
4 8 lines/inch printer required
5 changeable fromwidth required if set
6 unused
7 extensible bit - should be zero
DEVICE SPECIFIC ATTRIBUTES Page C-3
Table C-3
Terminal Specific Attributes
WORD BITS MEANING
1 0 modem control
1 auto-baud detection
2 handler can set baud rates
3 2741
4 Baudot
5 auto-dial line
6 unused
7 extensible bit - should be zero
APPENDIX D
SAMPLE MESSAGES
D.1 SAMPLE CONNECT MESSAGE
110,10,3,46,133,0,13,1,24,44,0,0,1,15,112,0,110,7
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being
set indicates that the sender is a non-sequential
node.
2 10 DNA - the destination node number is 10.
3 3 SNA - the source node number is 3.
4 46 NCA - the last network message correctly received
was message number 46.
5 133 NCN - this is message number 133.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 13 CNT - this byte indicates that there are 13 bytes
remaining in this message.
8 1 this byte identifies that this is a CONNECT
message.
9 24 DLA - the destination message link address is 24.
If this byte was zero, the message would be a
CONNECT initiate. Since it is zero, the message
is a CONNECT confirm.
10 44 SLA - the source message link address is 44.
11 0 OBJ - the destination object type for the process
is TTY handler.
12 0 PID - the destination process identification is
the default choice.
13 1 OBJ - the source object type for the process is
TTY.
14 15 PID - the source process unit number is 15.
15 112 MML - the maximum message length is 112 bytes.
16 0 DCM - the data code is ASCII
SAMPLE MESSAGES Page D-2
SAMPLE CONNECT MESSAGE
17 110 RLN - the record length is 110 (octal) characters.
18 7 DVT - the attributes of the terminal are: (1)
modem control, (2) auto-baud, and (3) the handler
can set the baud rates.
D.2 SAMPLE DISCONNECT MESSAGE
110,10,3,46,137,0,4,2,76,40,0
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 10 DNA - the destination node number is 10.
3 3 SNA - the source node number is 3.
4 46 NCA - the last network message correctly received
was message number 46.
5 137 NCN - this is message number 137.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 4 CNT - this byte indicates that there are 4 bytes
remaining in this message.
8 2 this byte indentifies that this is a DISCONNECT
message.
9 76 DLA - the destination message link address is 76.
10 40 SLA - the source message link address is 40.
11 0 RSN - the value zero indicates that this is a
normal disconnection.
D.3 SAMPLE NEIGHBOURS MESSAGE
110,6,22,46,153,0,5,3,10,55,5,110
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 6 DNA - the destination node number is 6.
3 22 SNA - the source node number is 22.
SAMPLE MESSAGES Page D-3
SAMPLE NEIGHBOURS MESSAGE
4 46 NCA - the last network message correctly received
was message number 46.
5 153 NCN - this is message number 153.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 5 CNT - this byte indicates that there are 5 bytes
remaining in this message.
8 3 this byte indentifies that this is a NEIGHBOURS
message.
9 10 NNM - one neighbour of node 22 is node number 10.
10 55 LVL - the link value between nodes 22 and 10 is 55.
11 5 NNM - another neighbour of node 22 is node number 5.
12 110 LVL - the link value between nodes 22 and 5 is 110.
D.4 SAMPLE REQUEST CONFIGURATION MESSAGE
110,20,77,66,122,0,1,4
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message of Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 20 DNA - the destination node number is 20.
3 77 SNA - the source node number is 77.
4 66 NCA - the last network message correctly received
was message number 66.
5 122 NCN - this is message number 122.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 1 CNT - this byte indicates that there is 1 byte
remaining in this message.
8 4 this byte identifies that this is a REQUEST
CONFIGURATION message.
D.5 SAMPLE CONFIGURATION MESSAGE
110,40,26,55,100,0,7,5,1,10,2,1,3,1
BYTE CONTENTS MEANING
SAMPLE MESSAGES Page D-4
SAMPLE CONFIGURATION MESSAGE
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 40 DNA - the destination node number is 40.
3 26 SNA - the source node number is 26.
4 55 NCA - the last network message correctly received
was message number 55.
5 100 NCN - this is message number 100.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 7 CNT - this byte indicates that there are 7 bytes
remaining in this message.
8 5 this byte identifies that this is a CONFIGURATION
message.
9 1 OBJ - the object type for the process is TTY.
10 10 NDV - this bit map indicates that there are two
terminals on node 40.
11 2 OBJ - the object type for the process is card
reader.
12 1 NDV - there is one card reader on node 40.
13 3 OBJ - the object type for the process is line
printer.
14 1 NDV - there is one line printer on node 40.
D.6 SAMPLE DATE REQUEST MESSAGE
110,3,10,46,115,0,3,6,24,3
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 3 DNA - the destination node number is 3.
3 10 SNA - the source node number is 10.
4 46 NCA - the last network message correctly received
was message number 46.
5 115 NCN - this is message number 115.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 3 CNT -this byte indicates that there are 3 bytes
remaining in this message.
8 6 this byte identifies that this is a DATA REQUEST
message.
9 24 DLA - the destination message link address is 24.
10 3 DRQ - there are three more outstanding data
requests.
SAMPLE MESSAGES Page D-5
SAMPLE REQUEST MESSAGE
D.7 SAMPLE STATION CONTROL MESSAGE
110,3,10,76,114,0,5,7,1,1,110,130
BYTE CONTENTS MEANING
1 110 NCT - bit 0 is zero which indicates that this
message is either a Data Message or Numbered
Control Message; bit 3 is set indicating that
SNA and DNA bytes are present; bit 6 being set
indicates that the sender is a non-sequential
node.
2 3 DNA - the destination node number is 3.
3 10 SNA - the source node number is 10.
4 76 NCA - the last network message correctly received
was message number 76.
5 114 NCN - this is message number 114.
6 0 this byte differentiates a Numbered Control
Message from a Data Message. Zero indicates that
this is a Numbered Control Message.
7 5 CNT - this byte indicates that there are 5 bytes
remaining in this message.
8 7 this byte identifies that this is a STATION
CONTROL message.
9 1 LNM - this byte indicates that the node under
consideration is connected to line 0 of node
number 3.
10 1 the STATION CONTROL message is EXAMINE.
11 110 the first location to be examined is location 110.
12 130 the last location to be examined is location 130.