Annotation of 43BSDReno/contrib/isode-beta/doc/interim/nsap.tex, revision 1.1.1.1

1.1       root        1: \documentstyle [ucl-rn] {article}
                      2: \rnnumber{RN/89/13}
                      3: \author {S.E. Kille}
                      4: \date {February 1989}
                      5: \title {An interim approach to use of Network Addresses}
                      6: \begin {document}
                      7: \bibliographystyle {alpha}
                      8: \maketitle
                      9: \begin {abstract} The OSI Directory specifies an encoding of
                     10: Presentation Address, which utilises OSI Network Addresses as
                     11: defined in the OSI Network Layer standards \cite{CCITT.Directory}
                     12: \cite{ISO.Network.Naming}.
                     13: The OSI Directory, and any OSI application
                     14: utilising the OSI Directory must be able to deal with these Network
                     15: Addresses.  Currently, most environments cannot cope with them.  It
                     16: is not reasonable or desirable for groups wishing to investigate and
                     17: use OSI Applications in conjunction with the OSI Directory to have
                     18: to wait for the lower layers to sort out.  This note is a proposal
                     19: for mechanisms to utilise Network Addresses in the context of
                     20: existing networks, and is agreed for use in the THORN and ISODE projects.
                     21: This document is also THORN document UCL-58.
                     22: 
                     23: \end {abstract}
                     24: 
                     25: \section {Scope}
                     26: 
                     27: The Author is working on two projects with an immediate need for a
                     28: solution to this problem:
                     29: 
                     30: \begin {itemize}
                     31: \item The THORN project, which is an Esprit Project building an OSI
                     32: Directory \cite{THORN.ECW88}.
                     33: 
                     34: \item The ISODE project \cite{ISODE.Manual}, and in particular the
                     35: QUIPU directory being developed at UCL \cite{QUIPU.IFIP}.
                     36: \end {itemize}
                     37: 
                     38: The initial aim of the note is to specify a solution for these two
                     39: projects.  As full interworking between these systems is seen as
                     40: essential (to the author at least!), the same solution should be
                     41: adopted by both projects.
                     42: 
                     43: It is likely that other groups will encounter the same problem, and
                     44: so it may be useful for this proposal to be adopted in a wider
                     45: forum.
                     46: 
                     47: \begin {description}
                     48: \item[NOTE:] This document must be read in the context of ISO 8348 Addendum 2
                     49: \cite{ISO.Naming}.
                     50: \end {description}
                     51: 
                     52: 
                     53: \section {The Problem}
                     54: 
                     55: When utilising the OSI Directory, the OSI location of an End System
                     56: will be determined by a Network Address, which is taken from a
                     57: Presentation Address, looked up in the OSI Directory.   
                     58: 
                     59: The ``real world'' of OSI (at least the one the author is in) consists of:
                     60: 
                     61: \begin {itemize}
                     62: \item An international X.25 network, which routes on the basis of
                     63: X.121 addresses. By and large this is X.25(80), but some parts are
                     64: now X.25(84) and will carry Network Addresses as user data.  OSI
                     65: Transport is mapped onto the variant of X.25 which is to hand.
                     66: 
                     67: \item Large private X.25 networks, which do not have DNICs, but are
                     68: otherwise similar to the previous (in particular Janet). 
                     69: 
                     70: \item Isolated networks running Connection Oriented Network Service
                     71: (e.g., Pink Book Ethernets).
                     72: 
                     73: \item Isolated networks running Connectionless Network Service
                     74: (e.g., MAP LANs).
                     75: 
                     76: \item Isolated TCP/IP LANs, utilising RFC 1006 to
                     77: support the OSI Transport Service\cite{RFC-1006}.
                     78: 
                     79: \item The DARPA/NSF Internet, also using RFC 1006.
                     80: \end {itemize}
                     81: 
                     82: In general, these systems need to be interconnected by the
                     83: unfortunate mechanisms of transport bridging --- but this is another
                     84: story.  It is hoped that the mechanisms described in this note will
                     85: reduce the need for Transport Bridging, and make more of these
                     86: networks behave as subnetworks (OSI Terminology).
                     87: 
                     88: Where End Systems do have access to Network Service, there is no
                     89: general mechanism for Network Address to SNPA binding (local table
                     90: lookup is the norm).
                     91: 
                     92: \section {The ``Right Solution''}
                     93: 
                     94: Before diving into ugliness, it is worth noting briefly what the
                     95: intended solution is.  Network Addresses are globally allocated, and
                     96: do not imply anything about routing or location.  An End System is
                     97: attached to one or more subnetworks at Subnetwork Points of
                     98: Attachment (SNPAs).  Intermediate Systems join subnetworks, again
                     99: being attached at SNPAs.  Routing is achieved by repeated binding of
                    100: Network Address to SNPA (initially at the Originating End System,
                    101: and then at each Intermediate System).  This binding is achieved by
                    102: use of a directory service\footnote{The OSI Directory is almost
                    103: certainly inappropriate for this function --- a special purpose
                    104: network directory is needed.}. 
                    105: 
                    106: The rest of this section is a polemic --- mainly to make the author
                    107: feel better.  Network Addresses have been designed for general
                    108: purpose allocation.  Whilst this is one important characteristic of
                    109: a Network Address, others have been entirely neglected.  The
                    110: practicalities of routing and lookup in directory service appear to
                    111: have been ignored in the design.  The issue of building the
                    112: mechanisms for routing are being discussed as some sort of
                    113: afterthought.  This is sad, and it seems to the author that the
                    114: network address specification will need to be entirely rewritten
                    115: before large scale OSI can become a reality.  
                    116: 
                    117: \section {The General Approach Proposed}
                    118: 
                    119: The means of connecting to a remote Application Entity is broadly as
                    120: follows.  
                    121: 
                    122: \begin {enumerate}
                    123: \item Look up the Application Entity in the OSI Directory to obtain
                    124: the Presentation Address \footnote{Strictly an Application Entity
                    125: should have only one Presentation Address.  In practice it may have
                    126: several, and the network addresses of each Presentation Address
                    127: should be considered.}.
                    128: 
                    129: \item Take each Network Address, and determine if it can be used
                    130: (and how).
                    131: 
                    132: \item Determine an order of preference for the Network Addresses.
                    133: 
                    134: \item Attempt to connect to one or more of the Network Addresses.
                    135: \end {enumerate}
                    136: 
                    137: This note is concerned with the second step, and will probably have
                    138: implications on the third.  The following mechanisms for Network
                    139: Address are discussed in this note:
                    140: 
                    141: \begin {itemize}
                    142: \item X.121 form
                    143: \item A special encoding for networks which do not provide Network
                    144: Service.
                    145: \item Other forms
                    146: \end {itemize}
                    147: 
                    148: \section {X.121 Form}
                    149: 
                    150: In principle, the IDP is only an allocation mechanism, and has no
                    151: routing implications.  However, due to the lack of a network
                    152: directory service, it is recommended that any End System with
                    153: Connection Oriented Network Service and access to the international
                    154: X.25 service uses X.121 form relative to its access point.
                    155: Allocation of DSP is a private issue.  
                    156: 
                    157: Conversely it is recommended that if an X.121 IDP form Network
                    158: Address is interpreted, then the X.121 address will provide a route (by
                    159: defining an SNPA on the international X.25 network).
                    160: There may be additional and perhaps preferable routes which can be
                    161: determined by private means.  
                    162: 
                    163: If the DSP is absent, the form should be interpreted as implying a mapping
                    164: of Transport onto X.25(80).   
                    165: 
                    166: \section {Requirements}
                    167: 
                    168: The requirements for use of OSI over existing networks, when using the
                    169: OSI Directory are:
                    170: 
                    171: \begin {enumerate}
                    172: \item The information for the layers below Transport must be
                    173: obtained from the Network Address.  This is essential, because we
                    174: wish to use the OSI Directory in a standard manner, and the Network
                    175: Address is the information available.
                    176: 
                    177: \item The Network Addresses must be globally unique, as they can be
                    178: looked up by anyone with access to the Directory.
                    179: 
                    180: \item The Network Address should be allocated so that confusion with
                    181: a ``real'' Network Address is minimal.
                    182: 
                    183: \item Network Addresses must be interpretable on the basis of a
                    184: well known information, or on information which can be obtained from
                    185: the (application level) OSI Directory.
                    186: 
                    187: \item The identity of the network in question must be deduceable from
                    188: the Network Address
                    189: 
                    190: \item All network specific addressing information (including the
                    191: SNPA) must be deducible
                    192: from the Network Address
                    193: \end {enumerate}
                    194: 
                    195: \section {Proposal}
                    196: 
                    197: The following approach is proposed.  
                    198: 
                    199: \begin {itemize}
                    200: \item A (sub)network is identified by the IDP and a {\em small} part of
                    201: the DSP.
                    202: 
                    203: \item The remainder of the DSP encodes network specific information
                    204: 
                    205: \item It is suggested that the following IDPs are not used:
                    206: \begin {itemize}
                    207: \item Local (the values must be globally unique)
                    208: \item X.121 (because it will be confused with real Network Addresses)
                    209: \item DCC (because it seems like a bad move)
                    210: \end {itemize}
                    211: 
                    212: \item It is suggested that a Telex form IDP is used because:
                    213: \begin {itemize}
                    214: \item It gives the largest DSP
                    215: \item It is less likely than other forms to be used for ``real''
                    216: Network Addresses
                    217: \end {itemize}
                    218: 
                    219: \end {itemize}
                    220: 
                    221: The scope of the proposed encoding is where:
                    222: 
                    223: \begin {itemize}
                    224: \item The value of the IDP is recognised
                    225: \item The encoding of the DSP is abstract decimal
                    226: \item The first two digits of the DSP are recognised
                    227: \end {itemize}
                    228: 
                    229: In these cases, the IDP + 2 digit prefix identify a subnetwork in which the
                    230: value of the DSP is to be interpreted.
                    231: 
                    232: \section {The DSP Encoding}
                    233: 
                    234: It is proposed to use a decimal abstract encoding for the DSP.  This
                    235: is a new encoding, as the only alternative on the table (ECMA 117)
                    236: \cite{ECMA.117},
                    237: is not entirely suitable.  Use of a binary
                    238: encoding, with the DSP structured in ASN.1 would have been a very
                    239: attractive approach.  However, it appears that there is insufficient
                    240: space in the Network Address for this to be feasible.  
                    241: 
                    242: The following structure is proposed:
                    243: 
                    244: \begin {center}
                    245: \begin {tabular}{|l||c|c|}
                    246: \hline
                    247: Digit   & 1-2     & 3-27 \\
                    248: \hline
                    249: Meaning  & Prefix & Network Specific \\
                    250: \hline
                    251: \end {tabular}
                    252: \end {center}
                    253: 
                    254: \begin {description}
                    255: \item [2 digits] Prefix.  This allows for multiple usage of the same DSP, by
                    256: not consuming it all.  It also allows for the DSP to be used with different
                    257: encodings.
                    258: 
                    259: \item [Network Specific]
                    260: 
                    261: The network specific allocation should be less than 20 digits if
                    262: this DSP structure is to be used with any IDI format.  This is
                    263: increased to 27 for the Telex format.
                    264: 
                    265: 
                    266: \end {description}
                    267: 
                    268: \subsection {X.25(80) Allocation}
                    269: 
                    270: The IDP/Prefix identifies an X.25(80) subnetwork.
                    271: There is a need to represent a DTE Number, and optionally an X.25
                    272: Protocol ID or CUDF (many implementations require these due 
                    273: to shortage of X.121 address space) in the DSP.
                    274: This is structured in one of two possible ways:
                    275: 
                    276: \begin {center}
                    277: \begin {tabular}{|l||c|c|}
                    278: \hline
                    279: Digit   & 1 & Remainder \\
                    280: \hline 
                    281: Meaning  & 0 & DTE \\
                    282: \hline
                    283: \end {tabular}
                    284: \end {center}
                    285: 
                    286: 
                    287: \begin {center}
                    288: \begin {tabular}{|l||c|c|c|c|}
                    289: \hline
                    290: Digit   & 1  & 2 & 3 -- (n*3)+2 & Remainder \\
                    291: \hline
                    292: Meaning   & 1 or 2 & n  &  PID or CUDF & DTE \\
                    293: \hline
                    294: \end {tabular}
                    295: \end {center}
                    296: 
                    297: The network specific part is structured as follows:
                    298: 
                    299: \begin {description}
                    300: \item [1]  This has the following values
                    301: \begin {description}
                    302: \item [0] DTE only
                    303: \item [1] DTE + PID 
                    304: \item [2] DTE + CUDF 
                    305: \item [3-9] Reserved
                    306: \end {description}
                    307: 
                    308: \item[2]
                    309: 
                    310: The length of the PID/CUDF in octets
                    311: 
                    312: \item [Remainder] The PID/CUDF takes as many digits as indicated by
                    313: 3 times octet 2, and the DTE is terminated by the end of the Network Address.
                    314: Each octet of the PID/CUDF is encoded as three decimal digits, representing
                    315: the decimal value of the octet.
                    316: 
                    317: \item 
                    318: \end {description}
                    319: 
                    320: For example, the JANET DTE 000005111600 with ASCII CUDF ``12'' would be
                    321: encoded in the following way.  The first lines describe the abstract
                    322: notation.  Note that where the IDI is not of maximum length, that the
                    323: translation to concrete decimal is not mechanical
                    324: 
                    325: \begin {center}
                    326: \begin {small}
                    327: \begin {tabular}{|l||c|c|c|c|c|c|}
                    328: \hline
                    329: Part & \multicolumn{2}{c|}{IDP} &  \multicolumn{4}{c|}{DSP} \\
                    330: \hline
                    331: Component & AFI & IDI & Prefix & Dte+Cudf & Len & CUDF + DTE  \\
                    332: \hline
                    333: Octet & & & 1-2 & 3 & 4 & 5-20 \\
                    334: \hline
                    335: Value & Telex & 007 28722 & 02 & 2 & 2 &  049050 000005111600 \\
                    336: \hline
                    337: \hline
                    338: Cncrt Decimal & 54  & 007 28722 & 02 & 2 & 2 &  049050 000005111600 \\
                    339: \hline
                    340: Cncrt Binary & 54 & 00 72 87 22 & 02 & \multicolumn{2}{c|}{22} & 04 90 50
                    341:  00 00 51 11 60 0f \\
                    342: \hline
                    343: \end {tabular}
                    344: \end {small}
                    345: \end {center}
                    346: 
                    347: Note that concrete binary is representing octets in hexadecimal.  This is
                    348: the syntax most likely to be used in practice.
                    349: 
                    350: \subsection {TCP/IP (RFC 1006) Allocation}
                    351: 
                    352: 
                    353: The IDP and 2 digit prefix identifies a TCP/IP network here RFC 1006 is
                    354: applied.
                    355: It is necessary to use an IP Address, as there are insufficient bits
                    356: to fit in a domain.  It is structured as follows:
                    357: 
                    358: \begin {center}
                    359: \begin {tabular}{|l||c|c|c|}
                    360: \hline
                    361: Digit & 1-12 & 13-17 (optional) & 18-22 (optional) \\
                    362: \hline
                    363: Meaning  & IP Address & port & Transport Set \\
                    364: \hline
                    365: \end {tabular}
                    366: \end {center}
                    367: 
                    368: 
                    369: For TCP/IP there shall be a 20 digit long network-specific part.  First
                    370: 12 digits are for the IP address.  The port number can be upto 65535, and
                    371: needs 5 digits (this is optional, and is defaulted as defined in RFC 1006).
                    372: Finally,
                    373: there is a third part to the address, which is defined here as 
                    374: ``transport set''
                    375: that indicates what kind of IP-based transport protocols is used.
                    376: This is a decimal number from 0-65535 which is really a 16-bit flag
                    377: word.  1 is TCP, 2 is UDP.  If the transport set is not there or
                    378: no bits are set, it means ``default'' which is TCP.  This is
                    379: encoded in 5 digits.
                    380: 
                    381: 
                    382: 
                    383: Note that RFC 986 is not appropriate \cite{RFC-986}, as this currently applies to a
                    384: different architecture (we are considering RFC 1006 here).
                    385: 
                    386: 
                    387: For example, the IP Address 10.0.0.6 with port 9 over UDP is
                    388: encoded as:
                    389: 
                    390: \begin {center}
                    391: \begin {small}
                    392: \begin {tabular}{|l||c|c|c|c|c|c|}
                    393: \hline
                    394: Part & \multicolumn{2}{c|}{IDP} &  \multicolumn{4}{c|}{DSP} \\
                    395: \hline
                    396: Component & AFI & IDI & Prefix & IP Address & Port & T Set \\
                    397: \hline
                    398: Octet & & & 1-2 & 3-14 & 15-19 & 20-24 \\
                    399: \hline
                    400: Value & Telex & 007 28722 & 03 & 010 000 000 006 & 00009 & 00002 \\
                    401: \hline
                    402: \hline
                    403: Concrete Decimal & 54 & 007 28722 & 03 & 010 000 000 006 & 00009 & 00002 \\
                    404: \hline 
                    405: Concrete Binary & 54 & 00 72 87 22 & 03 & 01 00 00 00 00 06 & 00 00 9 & 0 00 02 \\
                    406: \hline
                    407: \end {tabular}
                    408: \end {small}
                    409: \end {center}
                    410: 
                    411: 
                    412: \section {Other Forms}
                    413: 
                    414: Recognition of other forms of address is a local matter.
                    415: 
                    416: \section {Transport Bridges}
                    417: 
                    418: The provision of this form of Network Address encoding will
                    419: facilitate the transparent use of Transport Bridges.  Whenever a
                    420: protocol is used which can carry the Network Address, this can be
                    421: used to contact a transport bridge as if it was the end system
                    422: \footnote{This suggests that it would be beneficial to extend RFC
                    423: 1006 to carry Network Addresses.}.
                    424: The hex (concrete) form of network address should be used.
                    425: 
                    426: \section {Encoding}
                    427: 
                    428: This document describes allocation of Network Addresses, with the DSP
                    429: considered in Abstract Decimal.  The encoding of this for use in protocols
                    430: (typically as Concrete Binary) is
                    431: described in 
                    432: ISO 8348 Addendum 2
                    433: \cite{ISO.Network.Naming}.
                    434: 
                    435: \section {Conclusions}
                    436: 
                    437: This is all pretty horrible, but there do not appear to be any
                    438: better choices.
                    439: 
                    440: \section {References}
                    441: 
                    442: \bibliography {../../../bib/sek}
                    443: \pagebreak
                    444: \appendix 
                    445: \section {Some initial Allocations}
                    446: 
                    447: This appendix gives some allocations for a few well known networks.
                    448: All are allocated on the basis of Telex numbers.  
                    449: 
                    450: \begin {center}
                    451: \begin {tabular}{|l|   ll|}
                    452: \hline
                    453: \multicolumn{1}{|c}{Net} &
                    454: \multicolumn{1}{c}{Telex} &
                    455: \multicolumn{1}{c|}{Prefix} \\
                    456: \hline
                    457: International X.25  & 007 28722 & 01 \\
                    458: Janet & 007 28722 & 02 \\
                    459: Darpa/NSF Internet  & 007 28722 & 03 \\
                    460: \hline
                    461: \end {tabular}
                    462: \end {center}
                    463: 
                    464: The international X.25 allocation is only used where a CUDF or PID is needed.
                    465: In other cases, an X.121 form Network Address with no DSP may be used.
                    466: 
                    467: \end {document}

unix.superglobalmegacorp.com

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