rfc1561.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,403 行 · 第 1/4 页

TXT
1,403
字号






Network Working Group                                      D. Piscitello
Request for Comments: 1561                               Core Competence
Category: Experimental                                     December 1993


                  Use of ISO CLNP in TUBA Environments

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Abstract

   This memo specifies a profile of the ISO/IEC 8473 Connectionless-mode
   Network Layer Protocol (CLNP, [1]) for use in conjunction with RFC
   1347, TCP/UDP over Bigger Addresses (TUBA, [2]).  It describes the
   use of CLNP to provide the lower-level service expected by
   Transmission Control Protocol (TCP, [3]) and User Datagram Protocol
   (UDP, [4]).  CLNP provides essentially the same datagram service as
   Internet Protocol (IP, [5]), but offers a means of conveying bigger
   network addresses (with additional structure, to aid routing).

   While the protocols offer nearly the same services, IP and CLNP are
   not identical. This document describes a means of preserving the
   semantics of IP information that is absent from CLNP while preserving
   consistency between the use of CLNP in Internet and OSI environments.
   This maximizes the use of already-deployed CLNP implementations.

Acknowledgments

   Many thanks to Ross Callon (Wellfleet Communications), John Curran
   (BBN), Cyndi Jung (3Com), Paul Brooks (UNSW), Brian Carpenter (CERN),
   Keith Sklower (Cal Berkeley), Dino Farinacci and Dave Katz (Cisco
   Systems), Rich Colella (NIST/CSL) and David Oran (DEC) for their
   assistance in composing this text.













Piscitello                                                      [Page 1]

RFC 1561               CLNP in TUBA Environments           December 1993


Conventions

   The following language conventions are used in the items of
   specification in this document:

         * MUST, SHALL, or MANDATORY -- the item is an absolute
           requirement of the specification.

         * SHOULD or RECOMMENDED -- the item should generally be
           followed for all but exceptional circumstances.

         * MAY or OPTIONAL -- the item is truly optional and may be
           followed or ignored according to the needs of the
           implementor.

1.  Terminology

   To the extent possible, this document is written in the language of
   the Internet. For example, packet is used rather than "protocol data
   unit", and "fragment" is used rather than "segment".  There are some
   terms that carry over from OSI; these are, for the most part, used so
   that cross-reference between this document and RFC 994 [6] or ISO/IEC
   8473 is not entirely painful.  OSI acronyms are for the most part
   avoided.

2.  Introduction

   The goal of this specification is to allow compatible and
   interoperable implementations to encapsulate TCP and UDP packets in
   CLNP data units. In a sense, it is more of a "hosts requirements"
   document for the network layer of TUBA implementations than a
   protocol specification. It is assumed that readers are familiar with
   STD 5, RFC 791, STD 5, RFC 792 [7], STD 3, RFC 1122 [8], and, to a
   lesser extent, RFC 994 and ISO/IEC 8473.  This document is compatible
   with (although more restrictive than) ISO/IEC 8473; specifically, the
   order, semantics, and processing of CLNP header fields is consistent
   between this and ISO/IEC 8473.

   [Note: RFC 994 contains the Draft International Standard version of
   ISO CLNP, in ASCII text. This is not the final version of the ISO/IEC
   protocol specification; however, it should provide sufficient
   background for the purpose of understanding the relationship of CLNP
   to IP, and the means whereby IP information is to be encoded in CLNP
   header fields. Postscript versions of ISO CLNP and associated routing
   protocols are available via anonymous FTP from merit.edu, and may be
   found in the directory /pub/ISO/IEC.





Piscitello                                                      [Page 2]

RFC 1561               CLNP in TUBA Environments           December 1993


3.  Overview of CLNP

   ISO CLNP is a datagram network protocol. It provides fundamentally
   the same underlying service to a transport layer as IP. CLNP provides
   essentially the same maximum datagram size, and for those
   circumstances where datagrams may need to traverse a network whose
   maximum packet size is smaller than the size of the datagram, CLNP
   provides mechanisms for fragmentation (data unit identification,
   fragment/total length and offset). Like IP, a checksum computed on
   the CLNP header provides a verification that the information used in
   processing the CLNP datagram has been transmitted correctly, and a
   lifetime control mechanism ("Time to Live") imposes a limit on the
   amount of time a datagram is allowed to remain in the internet
   system. As is the case in IP, a set of options provides control
   functions needed or useful in some situations but unnecessary for the
   most common communications.

   Note that the encoding of options differs between the two protocols,
   as do the means of higher level protocol identification. Note also
   that CLNP and IP differ in the way header and fragment lengths are
   represented, and that the granularity of lifetime control (time-to-
   live) is finer in CLNP.

   Some of these differences are not considered "issues", as CLNP
   provides flexibility in the way that certain options may be specified
   and encoded (this will facilitate the use and encoding of certain IP
   options without change in syntax); others, e.g., higher level
   protocol identification and timestamp, must be accommodated in a
   transparent manner in this profile for correct operation of TCP and
   UDP, and continued interoperability with OSI implementations. Section
   4 describes how header fields of CLNP must be populated to satisfy
   the needs of TCP and UDP.

   Errors detected during the processing of a CLNP datagram MAY be
   reported using CLNP Error Reports. Implementations of CLNP for TUBA
   environments MUST be capable of processing Error Reports (this is
   consistent with the 1992 edition (2)  of the ISO/IEC 8473 standard).
   Control messages (e.g., echo request/reply and redirect) are
   similarly handled in CLNP, i.e., identified as separate network layer
   packet types.  The relationship between CLNP Error and Control
   messages and Internet Control Message Protocol (ICMP, [7]), and
   issues relating to the handling of these messages is described in
   Section 5.








Piscitello                                                      [Page 3]

RFC 1561               CLNP in TUBA Environments           December 1993


   Table 1 provides a high-level comparison of CLNP to IP:

 Function              | ISO CLNP               | DOD IP
 ----------------------|------------------------|-----------------------
 Header Length         | indicated in octets    | in 32-bit words
 Version Identifier    | 1 octet                | 4 bits
 Lifetime (TTL)        | 500 msec units         | 1 sec units
 Flags                 | Fragmentation allowed, | Don't Fragment,
                       | More Fragments         | More Fragments,
                       | Suppress Error Reports | <not defined>
 Packet Type           | 5 bits                 | <not defined>
 Fragment Length       | 16 bits, in octets     | 16 bits, in octets
 Header Checksum       | 16-bit (Fletcher)      | 16-bit
 Total Length          | 16 bits, in octets     | <not defined>
 Addressing            | Variable length        | 32-bit fixed
 Data Unit Identifier  | 16 bits                | 16 bits
 Fragment offset       | 16 bits, in octets     | 13 bits, 8-octet units
 Higher Layer Protocol | Selector in address    | Protocol
 Options               | Security               | Security
                       | Priority               | TOS Precedence bits
                       | Complete Source Route  | Strict Source Route
                       | Quality of Service     | Type of Service
                       | Partial Source Route   | Loose Source Route
                       | Record Route           | Record Route
                       | Padding                | Padding
                       | <defined herein>       | Timestamp

                 Table 1. Comparison of IP to CLNP

   The composition and processing of a TCP pseudo-header when CLNP is
   used to provide the lower-level service expected by TCP and UDP is
   described in Section 6.

   [Note: This experimental RFC does not discuss multicasting.
   Presently, there are proposals for multicast extensions for CLNP in
   ISO/IEC/JTC1/SC6, and a parallel effort within TUBA. A future
   revision to this RFC will incorporate any extensions to CLNP that may
   be introduced as a result of the adoption of one of these
   alternatives.]












Piscitello                                                      [Page 4]

RFC 1561               CLNP in TUBA Environments           December 1993


4.  Proposed Internet Header using CLNP

   A summary of the contents of the CLNP header, as it is proposed for
   use in TUBA environments, is illustrated in Figure 4-1:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        ........Data Link Header........       | NLP ID        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |Header Length  |     Version   | Lifetime (TTL)|Flags|  Type   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        Fragment Length        |           Checksum            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Dest Addr Len |               Destination Address...          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Destination Address...                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Destination Address...                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Destination Address...                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Destination Address...                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | PROTO field   | Src  Addr Len |  Source  Address...           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Source Address...                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Source Address...                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Source Address...                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               ... Source Address...                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |Source Address |   Reserved    |       Data Unit Identifier    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Fragment Offset       |   Total Length of packet      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                   Options  (see Table 1)                      |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                               Data                            |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Note that each tick mark represents one bit position.

                     Figure 4-1. CLNP for TUBA



Piscitello                                                      [Page 5]

RFC 1561               CLNP in TUBA Environments           December 1993


  Note 1: For illustrative purposes, Figure 4-1 shows Destination
          and Source Addresses having a length of 19 octets,
          including the PROTO/reserved field. In general, addresses
          can be variable length, up to a maximum of 20 octets,
          including the PROTO/reserved field.

  Note 2: Due to differences in link layer protocols, it is not
          possible to ensure that the packet starts on an even
          alignment. Note, however, that many link level protocols
          over which CLNP is operated use a odd length link
          (e.g., IEEE 802.2). (In Figure 4-1, the rest of the CLNP
          packet is even-aligned.)

   The encoding of CLNP fields for use in TUBA environments is as
   follows.

4.1  Network Layer Protocol Identification (NLP ID)

   This one-octet field identifies this as the ISO/IEC 8473 protocol; it
   MUST set to binary 1000 0001.

4.2  Header Length Indication (Header Length)

   Header Length is the length of the CLNP header in octets, and thus
   points to the beginning of the data. The value 255 is reserved. The
   header length is the same for all fragments of the same (original)
   CLNP packet.

4.3  Version

   This one-octet field identifies the version of the protocol; it MUST
   be set to a binary value 0000 0001.

4.4  Lifetime (TTL)

   Like the TTL field of IP, this field indicates the maximum time the
   datagram is allowed to remain in the internet system.  If this field
   contains the value zero, then the datagram MUST be destroyed; a host,
   however, MUST NOT send a datagram with a lifetime value of zero.
   This field is modified in internet header processing.  The time is
   measured in units of 500 milliseconds, but since every module that
   processes a datagram MUST decrease the TTL by at least one even if it
   process the datagram in less than 500 millisecond, the TTL must be
   thought of only as an upper bound on the time a datagram may exist.
   The intention is to cause undeliverable datagrams to be discarded,
   and to bound the maximum CLNP datagram lifetime. [Like IP, the
   colloquial usage of TTL in CLNP is as a coarse hop-count.]




Piscitello                                                      [Page 6]

RFC 1561               CLNP in TUBA Environments           December 1993


   Unless otherwise directed, a host SHOULD use a value of 255 as the
   initial lifetime value.

4.5  Flags

   Three flags are defined. These occupy bits 0, 1, and 2 of the
   Flags/Type octet:

                          0   1   2

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?