Annotation of 43BSDReno/contrib/isode-beta/doc/manual/introduction.tex, revision 1.1

1.1     ! root        1: % run this through LaTeX with the appropriate wrapper
        !             2: 
        !             3: \chapter      {Overview}\label{overview}
        !             4: This document describes a non-proprietary implementation of some of the
        !             5: protocols defined by the International Organization for Standardization
        !             6: and International Electrotechnical Commission (ISO/IEC),
        !             7: the International Telegraph and Telephone Consultative Committee (CCITT),
        !             8: and the European Computer Manufacturer Association (ECMA).%
        !             9: \footnote{In the interests of brevity,
        !            10: unless otherwise noted,
        !            11: the term ``OSI'' is used to denote these parallel protocol suites.}
        !            12: 
        !            13: The purpose of making this software openly available is to
        !            14: accelerate the process of the development of applications in the OSI
        !            15: protocol suite.
        !            16: Experience indicates that the development of application level protocols takes
        !            17: as long as or significantly longer than the lower level protocols.
        !            18: By producing a non-proprietary implementation of the OSI protocol stack,
        !            19: it is hoped that researchers in the academic, public, and commercial arenas
        !            20: may begin working on applications immediately.
        !            21: Another motivation for this work is to foster the development of OSI protocols
        !            22: both in the European RARE and the U.S.~Internet communities.
        !            23: The Internet community is widely known as having pioneered
        !            24: computer-communications since the early {\oldstyle 1970}'s.
        !            25: This community is rich in knowledge in the field,
        !            26: but currently is not actively experimenting with the OSI protocols.
        !            27: By producing an openly available implementation,
        !            28: it is hoped that the OSI protocols will become quickly widespread in the
        !            29: Internet,
        !            30: and that a productive (and {\em painless\/}) transition in the Defense
        !            31: Data Network (DDN) might be promoted.
        !            32: The RARE community is the set of corresponding European academic and research
        !            33: organizations.
        !            34: While they do not have the same long implementation experience as the Internet
        !            35: community,
        !            36: they have a deep commitment to International Standards.
        !            37: It is intended that this release gives vital early access to prototype
        !            38: facilities.
        !            39: 
        !            40: \section      {Fanatics Need Not Read Further}
        !            41: This software can support several different network services below the
        !            42: transport service access point (TSAP).
        !            43: One of these network services
        !            44: is the \dod/ Transmission Control Protocol (TCP)\cite{TCP}.%
        !            45: \footnote{Although the TCP corresponds most closely to offering a transport
        !            46: service in the OSI model,
        !            47: the TCP is used as a connection-oriented network protocol
        !            48: (i.e., as co-service to X.25).}
        !            49: This permits the development of the higher level protocols in a robust and
        !            50: mature internet environment, while providing us the luxury of not having to
        !            51: recode anything when moving to a network where the OSI Transport Protocol (TP)
        !            52: is used to provide the TSAP.
        !            53: However, the software also operates over pure OSI lower levels of software.
        !            54: it is mainly used in that fashion~---~outside of the United States.
        !            55: 
        !            56: Of course,
        !            57: there will always be ``zealots of the pure faith'' making claims to the effect
        !            58: that:
        !            59: \begin{quote}\em
        !            60: TCP/IP is dead!
        !            61: Any work involving TCP/IP simply dilutes the momentum of OSI.
        !            62: \end{quote}
        !            63: or, from the opposite end of the spectrum, that
        !            64: \begin{quote}\em
        !            65: The OSI protocols will never work!
        !            66: \end{quote}
        !            67: Both of these statements,
        !            68: from diametrically opposing protocol camps are, of course, completely
        !            69: unfounded and largely inflammatory.
        !            70: TCP/IP is here, works well,
        !            71: and enjoys a tremendous base of support.
        !            72: OSI is coming, and will work well,
        !            73: and when it eventually comes of age,
        !            74: it will enjoy an even larger base of support.
        !            75: 
        !            76: The role of ISODE,
        !            77: in this maelstrom that generates much heat and little light,
        !            78: is to provide a useful transition path between the two protocol suites in which
        !            79: complementary efforts can occur.
        !            80: The ISODE approach is to use the strengths of both the DDN and OSI protocol
        !            81: suites in a cooperative and positive manner.
        !            82: For a more detailed exposition of these ideas,
        !            83: kindly refer to \cite{Open.Book} or the earlier work \cite{ISO.on.DDN}.
        !            84: 
        !            85: \section      {The Name of the Game}\label{name}
        !            86: The name of the software is the ISODE.
        !            87: The official pronunciation of the ISODE,
        !            88: takes four syllables: {\em I-SO-D-E}.
        !            89: This choice is mandated by fiat, not by usage,
        !            90: in order to avoid undue confusion.
        !            91: 
        !            92: Please, as a courtesy, do not spell ISODE any other way.
        !            93: For example, terms such as ISO/DE or ISO-DE do not refer to the software!
        !            94: Similarly, do not try to spell out ISODE in such a way as to imply an
        !            95: affiliation with the International Organization for Standardization.
        !            96: There is no such relationship.
        !            97: The {\em ISO\/} in ISODE is not an acronym for this organization.
        !            98: In fact, the {\em ISO\/} in ISODE doesn't really meaning anything at all.
        !            99: It's just a catchy two syllable sound.
        !           100: 
        !           101: \section      {Operating Environments}
        !           102: This release is coded entirely in the {\em C\/} programming
        !           103: language\cite{C.Language},
        !           104: and is known to run under the following operating systems
        !           105: (without any kernel modifications):
        !           106: \begin{itemize}
        !           107: \item  Berkeley \unix/\\
        !           108: The software should run on any faithful port of 4.2\bsd/, 4.3\bsd/,
        !           109: or 4.4\bsd/ \unix/.
        !           110: Sites have reported the software running:
        !           111: on the Sun-3 workstation running Sun \unix/~4.2 release~3.2 and later;
        !           112: on the Sun Microsystems workstation (Sun-3, Sun-4, and Sun-386i) running SunOS
        !           113: release 4.0 and later;
        !           114: on the \vaxstation/ running \ultrix/,
        !           115: on the Integrated Solutions workstation;
        !           116: and,
        !           117: on the RT/PC running 4.3\bsd/.%
        !           118: \footnote{Do not however, attempt to compile the software with the SunPro
        !           119: \pgm{make} program!
        !           120: It is not, contrary to any claims, compatible with the standard \pgm{make}
        !           121: facility.
        !           122: Further,
        !           123: note that if you are running a version of SunOS 4.0 prior to release 4.0.3,
        !           124: then you may need to use the \pgm{make} program found in \file{/usr/old/},
        !           125: if the standard \pgm{make} you are using is the SunPro \pgm{make}.
        !           126: In this case,
        !           127: you will need to put the old,
        !           128: standard \pgm{make} in \file{/usr/bin/},
        !           129: and you can keep the SunPro \pgm{make} in \file{/bin/}.}
        !           130: 
        !           131: In addition to using the native TCP facilities of Berkeley \unix/,
        !           132: the software has also be interfaced to versions~4.0 through~6.0 
        !           133: of the SunLink X.25 and OSI packages
        !           134: (although Sun may have to supply you with some modified \verb"sgtty" and
        !           135: \verb"ioctl" include files if you are using an earlier version of SunLink
        !           136: X.25).
        !           137: The optional SunLink Communications Processor running DCP 3.0~software has
        !           138: also been tested with the software.
        !           139: 
        !           140: \item  AT\&T \unix/\\
        !           141: The software should run on any faithful port of SVR2 \unix/ or SVR3 \unix/.
        !           142: One of the systems tested was running with an
        !           143: Excelan \exos/ 8044 TCP/IP card.
        !           144: The Excelan package implements the networking semantics of the 4.1a\bsd/ \unix/
        !           145: kernel.
        !           146: As a consequence,
        !           147: the software should run on any faithful port of 4.1a\bsd/ \unix/,
        !           148: with only a minor amount of difficultly.
        !           149: As of this writing however,
        !           150: this speculation has not been verified.
        !           151: The particular system used was a Silicon Graphics IRIS workstation.%
        !           152: \footnote{This test was made with an earlier release of this software,
        !           153: and access to an SGI workstation was not available when the current version of
        !           154: the software tested.
        !           155: However, the networking interface is still believed to be correct for the
        !           156: Excelan package.}
        !           157: 
        !           158: Another system was running the WIN TCP/IP networking package.
        !           159: The WIN package implements the networking semantics of the 4.2\bsd/ \unix/
        !           160: kernel.
        !           161: The particular system used was a 3B2 running System~V release~2.0.4,
        !           162: with WIN/3B2 version~1.0.
        !           163: 
        !           164: Another system was also running the WIN TCP/IP networking package
        !           165: but under System~V release~3.0.
        !           166: The WIN package on SVR3 systems emulates the networking semantics of the
        !           167: 4.2\bsd/ \unix/ kernel but uses STREAMS and TLI to do so.
        !           168: 
        !           169: \item  AIX\\
        !           170: The software should run on the IBM AIX Operating System
        !           171: which is a UNIX-based derivative of AT\&T's System~V.
        !           172: The particular system used was a RT/PC system running version~2.1.2
        !           173: of AIX.
        !           174: 
        !           175: \item  HP-UX\\
        !           176: The software should run on HP's \unix/-like operating system, HP-UX.
        !           177: The particular system used was an Indigo 9000/840 system running version
        !           178: A.B1.01 of HP-UX.
        !           179: The system has also reported to have run on an HP 9000/350 system under
        !           180: version~6.2 of HP-UX.
        !           181: 
        !           182: \item  ROS\\
        !           183: The software should run on the Ridge Operating system, ROS.
        !           184: The particular system used was a Ridge-32 running version 3.4.1 of ROS.
        !           185: 
        !           186: \item  Pyramid OsX\\
        !           187: The software should run on a Pyramid computer running OsX.
        !           188: The particular system used was a Pyramid~98xe running version 4.0 of OsX.
        !           189: \end{itemize}
        !           190: 
        !           191: Since a Berkeley \unix/ system is the primary development platform for ISODE,
        !           192: this documentation is somewhat slanted toward that environment.
        !           193: 
        !           194: \section      {Organization of the Release}
        !           195: A strict layering approach has been taken in the organization of the release.
        !           196: The documentation mimics this relationship approximately:
        !           197: the first two volumes describe,
        !           198: in top-down fashion,
        !           199: the services available at each layer along with the databases used by those
        !           200: services;
        !           201: the third volume describes some applications built using these facilities;
        !           202: the fourth volume describes a facility for building applications based on a
        !           203: programming language, rather that network-based, model;
        !           204: and,
        !           205: the fifth volume describes a complete implementation of the OSI Directory.
        !           206: 
        !           207: In \volone/,
        !           208: the ``raw'' facilities available to applications are described,
        !           209: namely four libraries:
        !           210: \begin{itemize}
        !           211: \item  the \man libacsap(3n) library,
        !           212:        which implements the OSI Association Control Service (ACS);
        !           213: 
        !           214: \item  the \man librosap(3n) library,
        !           215:        which implements different styles of the OSI Remote Operations Service
        !           216:        (ROS);
        !           217: 
        !           218: \item  the \man librtsap(3n) library,
        !           219:        which implements the OSI Reliable Transfer Service (RTS);
        !           220:        and,
        !           221: 
        !           222: \item  the \man libpsap(3) library,
        !           223:        which implements the OSI abstract syntax and transfer mechanisms.
        !           224: \end{itemize}
        !           225: 
        !           226: In \voltwo/,
        !           227: the services upon which the application facilities are built are described,
        !           228: namely three libraries:
        !           229: \begin{itemize}
        !           230: \item  the \man libpsap2(3n) library,
        !           231:        which implements the OSI presentation service;
        !           232: 
        !           233: \item  the \man libssap(3n) library,
        !           234:        which implements the OSI session service;
        !           235:        and,
        !           236: 
        !           237: \item  the \man libtsap(3n) library,
        !           238:        which implements an OSI transport service access point.
        !           239: \end{itemize}
        !           240: In addition,
        !           241: there is a replacement for the \man libpsap2(3n) library called the
        !           242: \man libpsap2-lpp(3n) library.
        !           243: This implements the lightweight presentation protocol for TCP/IP-based
        !           244: internets as specified in RFC1085.
        !           245: 
        !           246: In addition,
        !           247: \voltwo/ contains information on how to configure the ISODE for your network.
        !           248: 
        !           249: In \volthree/,
        !           250: some application programs written using this release are described,
        !           251: including:
        !           252: \begin{itemize}
        !           253: \item  An implementation of the ISO FTAM
        !           254:        which runs on Berkeley or AT\&T \unix/.
        !           255:        FTAM, which stands for File Transfer, Access and Management,
        !           256:        is the OSI file service.
        !           257:        The implementation provided is fairly complete in the context
        !           258:        of the particular file services it offers.
        !           259:        It is a minimal implementation in as much as it offers only four core
        !           260:        services: transfer of text files, transfer of binary files,
        !           261:        directory listings, and file management.
        !           262: 
        !           263: \item  An implementation of an FTAM/FTP gateway,
        !           264:        which runs on Berkeley \unix/.
        !           265: 
        !           266: \item  An implementation of the ISO VT
        !           267:        which runs on Berkeley \unix/.
        !           268:        VT, which stands for Virtual Terminal, is the OSI terminal service.
        !           269:        The implementation consists of a basic class, TELNET profile
        !           270:        implementation.
        !           271: 
        !           272: \item  An implementation of the ``little services'' often used for debugging
        !           273:        and amusement.
        !           274: 
        !           275: \item  An implementation of a simple image database service.
        !           276: \end{itemize}
        !           277: 
        !           278: In \volfour/,
        !           279: a ``cooked'' interface for applications using remote operations is described,
        !           280: which consists of three programs and a library:
        !           281: \begin{itemize}
        !           282: \item  the \man rosy(1) compiler,
        !           283:        which is a stub-generator for specifications of Remote Operations;
        !           284: 
        !           285: \item  the \man posy(1) compiler,
        !           286:        which is a structure-generator for ASN.1 specifications;
        !           287: 
        !           288: \item  the \man pepy(1) compiler,
        !           289:        which reads a specification for an application and produces a program
        !           290:        fragment that builds or recognizes the data structures (APDUs in OSI
        !           291:        argot) which are communicated by that application;
        !           292:        and,
        !           293: 
        !           294: \item  the \man librosy(3n) library,
        !           295:        which is a library for applications using this distributed
        !           296:        applications paradigm.
        !           297: \end{itemize}
        !           298: 
        !           299: In \volfive/,
        !           300: the QUIPU directory is described,
        !           301: which currently consists of several programs and a library:
        !           302: \begin{itemize}
        !           303: \item  the \man quipu(8c) program,
        !           304:        which is a Directory System Agent (DSA);
        !           305: 
        !           306: \item  the \man dish(1c) family of programs,
        !           307:        which are a set of DIrectory SHell commands;
        !           308:        and,
        !           309: 
        !           310: \item  the \man libdsap(3n) library,
        !           311:        which is a library for applications using the Directory.
        !           312: \end{itemize}
        !           313: 
        !           314: \section      {A Note on this Implementation}
        !           315: Although the implementation described herein might form the basis for a
        !           316: production environment in the near future,
        !           317: this release is not represented as as ``production software''.
        !           318: 
        !           319: However,
        !           320: throughout the development of the software,
        !           321: every effort has been made to employ good software practices which result in
        !           322: efficient code.
        !           323: In particular,
        !           324: the current implementation avoids excessive copying of bytes as data moves
        !           325: between layers.
        !           326: Some rough initial timings of echo and sink entities at the transport and
        !           327: session layers indicate data transfer rates quite competitive with a raw TCP
        !           328: socket (most differences were lost in the noise).
        !           329: The work involved to achieve this efficiency was not demanding.
        !           330: 
        !           331: Additional work was required so that programs utilizing the \man libpsap(3)
        !           332: library could enjoy this level of performance.
        !           333: Although data transfer rates at the reliable transfer and remote operations
        !           334: layers are not as good as raw TCP,
        !           335: they are still quite impressive
        !           336: (on the average,
        !           337: the use of a ROS interface (over presentation, session, and ultimately the TCP)
        !           338: is only 20\% slower than a raw TCP interface).
        !           339: 
        !           340: \section      {Changes Since the Last Release}\label{isode:changes}
        !           341: A brief summary of the major changes between v~\isodeprevrsn/ and v~\isodevrsn/
        !           342: are now presented.
        !           343: These are the user-visible changes only;
        !           344: changes of a strictly internal nature are not discussed.
        !           345: 
        !           346: \begin{itemize}
        !           347: \item  A new program, \pgm{pepsy}, has been developed to replace both
        !           348:        \pgm{pepy} and \pgm{posy}.
        !           349:        It is described in \volfour/.
        !           350: 
        !           351: \item  The \pgm{dsabuild} program has been removed,
        !           352:        in favor of some shell scripts.
        !           353: 
        !           354: \item  The ``higher performance nameservice'' has been discontinued in favor
        !           355:        of a ``user-friendly nameservice''.
        !           356:        As such,
        !           357:        the syntax of the \verb"str2aei" routine has changed.
        !           358: 
        !           359: \item  The \verb"na_type" and \verb"na_subnet" fields of the network address
        !           360:        structure described in \voltwo/ on page~\pageref{nsap:addresses}
        !           361:        have been renamed.
        !           362:        For compatibility,
        !           363:        macros are provided.
        !           364:        These macros will be removed after this release.
        !           365: \end{itemize}
        !           366: 
        !           367: As a rule,
        !           368: the upgrade procedure is a two-step process:
        !           369: first,
        !           370: attempt to compile your code, keeping in mind the changes summary relevant to
        !           371: the code;
        !           372: and,
        !           373: second,
        !           374: once the code successfully compiles,
        !           375: run the code through \man lint(1) with the supplied lint libraries.
        !           376: 
        !           377: Although
        !           378: every attempt has been made to avoid making changes which would affect
        !           379: previously coded applications,
        !           380: in some cases incompatible changes were required in order to
        !           381: achieve a better overall structure.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.