1998-01-09 09:34:28 +03:00
|
|
|
.\" $NetBSD: intro.nr,v 1.2 1998/01/09 06:34:46 perry Exp $
|
|
|
|
.\"
|
1994-06-19 04:07:16 +04:00
|
|
|
.NC "Introduction"
|
|
|
|
.sh 1 "Introduction"
|
|
|
|
.pp
|
|
|
|
This document describes the design and implementation of the ISO
|
|
|
|
transport and network layers written for the ACIS Operating System,
|
|
|
|
the IBM ACIS port of Berkeley 4.3 Unix\**
|
|
|
|
.(f
|
|
|
|
\** Unix is a registered trademark of AT&T.
|
|
|
|
.)f
|
|
|
|
for the IBM RT PC,
|
|
|
|
hereafter called AOS.
|
|
|
|
Collectively, this work is called the Wisconsin ARGO kernel.
|
|
|
|
The ARGO kernel supports the
|
|
|
|
the connection-oriented ISO transport service (COTS), the
|
|
|
|
ISO connectionless network service (CLNS)
|
|
|
|
and a
|
|
|
|
connection-oriented network service (CONS).
|
|
|
|
The COTS is provided by the ISO transport protocol TP,
|
|
|
|
ISO 8073 Revised.
|
|
|
|
The CLNS is provided by the connectionless network protocol,
|
|
|
|
ISO 8473.
|
|
|
|
The CONS is provided by the X.25 protocols.
|
|
|
|
The ARGO implementation of the CONS is not a complete
|
|
|
|
ISO CONS, but contains enough of the CONS to support
|
|
|
|
the COTS and the CLNS (in the latter case, the CONS can be
|
|
|
|
viewed as a subnetwork service).
|
|
|
|
.pp
|
|
|
|
The purposes of this document are
|
|
|
|
.ip "1) "
|
|
|
|
to describe the transport service and the software interface
|
|
|
|
between the user and provider of this service,
|
|
|
|
.ip "2) "
|
|
|
|
to describe the network service and the software interface it
|
|
|
|
provides,
|
|
|
|
.ip "3) "
|
|
|
|
to describe the design of the software which provides
|
|
|
|
these services, and
|
|
|
|
.ip "4) "
|
|
|
|
to provide a guide for readers who are perusing or maintaining
|
|
|
|
the ARGO kernel source code.
|
|
|
|
.pp
|
|
|
|
It is assumed that the reader is familiar with the \fBC\fR
|
|
|
|
programming language,
|
|
|
|
with Unix conventions, and with the ISO specifications listed in Appendix A.
|
|
|
|
.sh 1 "Organization"
|
|
|
|
.pp
|
|
|
|
This document is composed of several chapters.
|
|
|
|
Chapter One contains this introduction. Chapter Two presents a
|
|
|
|
definition of terms and phrases used throughout the document.
|
|
|
|
Chapter Three describes the transport service interface, which is
|
|
|
|
the interface between the transport protocol implementation software and the transport user software.
|
|
|
|
Chapter Four describes the network service interface, and the interface
|
|
|
|
above and below the network layer.
|
|
|
|
Chapter Five explains the format of an OSI address.
|
|
|
|
Chapter Six describes the
|
|
|
|
the architecture of the interprocess communication support in the
|
|
|
|
kernel, which to a large degree mandates
|
|
|
|
the design of a protocol implementation for a 4.3 Unix kernel.
|
|
|
|
Chapter Seven describes the design of this transport
|
|
|
|
protocol implementation,
|
|
|
|
including descriptions of implementation options.
|
|
|
|
Chapter Eight describes the design of the network layer implementation.
|
|
|
|
Chapter Nine describes the way errors are handled in the system.
|
|
|
|
Chapter Ten summarizes the methods used for
|
|
|
|
testing and debugging the ARGO kernel.
|
|
|
|
Appendix A is a list of the applicable ISO standards.
|
|
|
|
.\" The manual pages relevant to the transport and network layers
|
|
|
|
.\" are included as Appendix B.
|
|
|
|
.pp
|
|
|
|
Several conventions are followed in this document.
|
|
|
|
All procedure names and system call names are followed
|
|
|
|
by a pair of parentheses, for example,
|
|
|
|
\fIread()\fR.
|
|
|
|
References to manual pages consist of the name of the
|
|
|
|
manual page, followed by the section in which
|
|
|
|
the man page is found: \fIread(2)\fR.
|