rfc1561.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,403 行 · 第 1/4 页
TXT
1,403 行
+---+---+---+
| F | M | E |
| P | F | R |
+---+---+---+
The Fragmentation Permitted (FP) flag, when set to a value of one
(1), is semantically equivalent to the "may fragment" value of the
Don't Fragment field of IP; similarly, when set to zero (0), the
Fragmentation Permitted flag is semantically equivalent to the "Don't
Fragment" value of the Don't Fragment Flag of IP.
[Note: If the Fragmentation Permitted field is set to the value 0,
then the Data Unit Identifier, Fragment Offset, and Total Length
fields are not present. This denotes a single fragment datagram. In
such datagrams, the Fragment Length field contains the total length
of the datagram.]
The More Fragments flag of CLNP is semantically and syntactically the
same as the More Fragments flag of IP; a value of one (1) indicates
that more segments/fragments are forthcoming; a value of zero (0)
indicates that the last octet of the original packet is present in
this segment.
The Error Report (ER) flag is used to suppress the generation of an
error message by a host/router that detects an error during the
processing of a CLNP datagram; a value of one (1) indicates that the
host that originated this datagram thinks error reports are useful,
and would dearly love to receive one if a host/router finds it
necessary to discard its datagram(s).
Piscitello [Page 7]
RFC 1561 CLNP in TUBA Environments December 1993
4.6 Type field
The type field distinguishes data CLNP packets from Error Reports
from Echo packets. The following values of the type field apply:
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| flags | 1 | 1 | 1 | 0 | 0 | => Encoding of Type = data packet
+---+---+---+---+---+---+---+---+
| flags | 0 | 0 | 0 | 0 | 1 | => Encoding of Type = error report
+---+---+---+---+---+---+---+---+
| flags | 1 | 1 | 1 | 1 | 0 | => Encoding of Type = echo request
+---+---+---+---+---+---+---+---+
| flags | 1 | 1 | 1 | 1 | 1 | => Encoding of Type = echo reply
+---+---+---+---+---+---+---+---+
Error Report packets are described in Section 5.
Echo packets and their use are described in RFC 1139 [9].
4.7 Fragment Length
Like the Total Length of the IP header, the Fragment length field
contains the length in octets of the fragment (i.e., this datagram)
including both header and data.
[Note: CLNP also may also have a Total Length field, that contains
the length of the original datagram; i.e., the sum of the length of
the CLNP header plus the length of the data submitted by the higher
level protocol, e.g., TCP or UDP. See Section 4.12.]
4.8 Checksum
A checksum is computed on the header only. It MUST be verified at
each host/router that processes the packet; if header fields are
changed during processing (e.g., the Lifetime), the checksum is
modified. If the checksum is not used, this field MUST be coded with
a value of zero (0). See Appendix A for algorithms used in the
computation and adjustment of the checksum. Readers are encouraged to
see [10] for a description of an efficient implementation of the
checksum algorithm.
4.9 Addressing
CLNP uses OSI network service access point addresses (NSAPAs); NSAPAs
serve the same identification and location functions as an IP
address, plus the protocol selector value encoded in the IPv4
datagram header, and with additional hierarchy. General purpose
Piscitello [Page 8]
RFC 1561 CLNP in TUBA Environments December 1993
CLNP implementations MUST handle NSAP addresses of variable length up
to 20 octets, as defined in ISO/IEC 8348 [11]. TUBA implementations,
especially routers, MUST accommodate these as well. Thus, for
compatibility and interoperability with OSI use of CLNP, the initial
octet of the Destination Address is assumed to be an Authority and
Format Indicator, as defined in ISO/IEC 8348. NSAP addresses may be
between 8 and 20 octets long (inclusive).
TUBA implementations MUST support both ANSI and GOSIP style
addresses; these are described in RFC 1237 [12], and illustrated in
Figure 4-2. RFC 1237 describes the ANSI/GOSIP initial domain parts
as well as the format and composition of the domain specific part. It
is further recommended that TUBA implementations support the
assignment of system identifiers for TUBA/CLNP hosts defined in [13]
for the purposes of host address autoconfiguration as described in
[14]. Additional considerations specific to the interpretation and
encoding of the selector part are described in sections 4.9.2 and
4.9.4.
+-------------+
| <-- IDP --> |
+----+--------+----------------------------------+
|AFI | IDI | <-- DSP --> |
+----+--------+----+---+-----+----+-----+---+----+
| 47 | 0005 |DFI |AA |Rsvd | RD |Area |ID |Sel |
+----+--------+----+---+-----+----+-----+---+----+
octets | 1 | 2 | 1 | 3 | 2 | 2 | 2 | 6 | 1 |
+----+--------+----+---+-----+----+-----+---+----+
Figure 4-2 (a): GOSIP Version 2 NSAP structure.
+-------------+
|<-- IDP --> |
+----+--------+----------------------------------+
|AFI | IDI | <-- DSP --> |
+----+--------+----+---+-----+----+-----+---+----+
| 39 | 840 |DFI |ORG|Rsvd | RD |Area |ID |Sel |
+----+--------+----+---+-----+----+-----+---+----+
octets | 1 | 2 | 1 | 3 | 2 | 2 | 2 | 6 | 1 |
+----+--------+----+---+-----+----+-----+---+----+
Figure 4-2 (b): ANSI NSAP address format for DCC=840
Piscitello [Page 9]
RFC 1561 CLNP in TUBA Environments December 1993
Definitions:
IDP Initial Domain Part
AFI Authority and Format Identifier
IDI Initial Domain Identifier
DSP Domain Specific Part
DFI DSP Format Identifier
AA Administration Authority
ORG Organization Name (numeric form)
Rsvd Reserved
RD Routing Domain Identifier
Area Area Identifier
ID System Identifier
Sel NSAP Selector
4.9.1 Destination Address Length Indicator
This field indicates the length, in octets, of the Destination
Address.
4.9.2 Destination Address
This field contains an OSI NSAP address, as described in Section 4.9.
It MUST always contain the address of the final destination. (This is
true even for packets containing a source route option, see Section
4.13.4).
The final octet of the destination address MUST always contain the
value of the PROTO field, as defined in IP. The 8-bit PROTO field
indicates the next level protocol used in the data portion of the
CLNP datagram. The values for various protocols are specified in
"Assigned Numbers" [15]. For the PROTO field, the value of zero (0)
is reserved.
TUBA implementations that support TCP/UDP as well as OSI MUST use the
protocol value (1Dh, Internet decimal 29) reserved for ISO transport
protocol class 4.
4.9.3 Source Address Length Indicator
This field indicates the length, in octets, of the Source Address.
4.9.4 Source Address
This field contains an OSI NSAP address, as described in Section 4.9.
The final octet of the source address is reserved. It MAY be set to
the protocol field value on transmission, and shall be ignored on
reception (the value of zero MUST not be used).
Piscitello [Page 10]
RFC 1561 CLNP in TUBA Environments December 1993
4.10 Data Unit Identifier
Like the Identification field of IP, this 16-bit field is used to
distinguish segments of the same (original) packet for the purposes
of reassembly. This field is present when the fragmentation permitted
flag is set to one.
4.11 Fragment Offset
Like the Fragment Offset of IP, this 16-bit is used to identify the
relative octet position of the data in this fragment with respect to
the start of the data submitted to CLNP; i.e., it indicates where in
the original datagram this fragment belongs. The offset is measured
in octets; the value of this field shall always be a multiple of
eight (8). This field is present when the fragmentation permitted
flag is set to one.
4.12 Total Length
The total length of the CLNP packet in octets is determined by the
originator and placed in the Total Length field of the header. The
Total Length field specifies the entire length of the original
datagram, including both the header and data. This field MUST NOT be
changed in any fragment of the original packet for the duration of
the packet lifetime. This field is present when the fragmentation
permitted flag is set to one.
4.13 Options
All CLNP options are "triplets" of the form <parameter code>,
<parameter length>, and <parameter value>. Both the parameter code
and length fields are always one octet long; the length parameter
value, in octets, is indicated in the parameter length field. The
following options are defined for CLNP for TUBA.
4.13.1 Security
The value of the parameter code field is binary 1100 0101. The length
field MUST be set to the length of a Basic (and Extended) Security IP
option(s) as identified in RFC 1108 [16], plus 1. Octet 1 of the
security parameter value field -- the CLNP Security Format Code -- is
set to a binary value 0100 0000, indicating that the remaining octets
of the security field contain either the Basic or Basic and Extended
Security options as identified in RFC 1108. This encoding points to
the administration of the source address (e.g., ISOC) as the
administration of the security option; it is thus distinguished from
the globally unique format whose definition is reserved for OSI use.
Implementations wishing to use a security option MUST examine the
Piscitello [Page 11]
RFC 1561 CLNP in TUBA Environments December 1993
PROTO field in the source address; if the value of PROTO indicates
the CLNP client is TCP or UDP, the security option described in RFC
1108 is used.
[Note: If IP options change, TUBA implementations MUST follow the new
recommendations. This RFC, or revisions thereof, must document the
new recommendations to assure compatibility.]
The formats of the Security option, encoded as a CLNP option, is as
follows. The CLNP option will be used to convey the Basic and
Extended Security options as sub-options; i.e., the exact encoding of
the Basic/Extended Security IP Option is carried in a single CLNP
Security Option, with the length of the CLNP Security option
reflecting the sum of the lengths of the Basic and Extended Security
IP Option.
+--------+--------+--------+--------+--------+---//----+-
|11000100|XXXXXXXX|01000000|10000010|YYYYYYYY| | ...
+--------+--------+--------+--------+--------+---//----+----
CLNP CLNP CLNP BASIC BASIC BASIC
OPTION OPTION FORMAT SECURITY OPTION OPTION
TYPE LENGTH CODE TYPE LENGTH VALUE
(197) (130)
---+------------+------------+----//-------+
... | 10000101 | 000LLLLL | |
-----+------------+------------+----//-------+
EXTENDED EXTENDED EXTENDED OPTION
OPTION OPTION VALUE
TYPE (133) LENGTH
The syntax, semantics and processing of the Basic and Extended IP
Security Options are defined in RFC 1108.
4.13.2 Type of Service
[Note: Early drafts recommended the use of IP Type of Service as
specified in RFC 1349. There now appears to be a broad consensus that
this encoding is insufficient, and there is renewed interest in
exploring the utility of the "congestion experienced" flag available
in the CLNP QOS Maintenance option. This RFC thus recommends the use
of the QOS Maintenance option native to CLNP.]
The Quality of Service Maintenance option allows the originator of a
CLNP datagram to convey information about the quality of service
requested by the originating upper layer process. Routers MAY use
this information as an aid in selecting a route when more than one
route satisfying other routing criteria is available and the
Piscitello [Page 12]
RFC 1561 CLNP in TUBA Environments December 1993
available routes are know to differ with respect to the following
qualities of service: ability to preserve sequence, transit delay,
cost, residual error probability. Through this option, a router may
also indicate that it is experiencing congestion.
The encoding of this option is as follows:
+-----------+-----------+----------+
| 1100 0011 | 0000 0001 | 110ABCDE |
+-----------+-----------+----------+
CLNP QOS OPTION QOS FLAGS
TYPE (195) LENGTH
The value of the parameter code field MUST be set to a value of
binary 1100 0011 (the CLNP Quality of Service Option Code point).
The length field MUST be set to one (1).
Bits 8-6 MUST be set as indicated in the figure. The flags "ABCDE"
are interpreted as follows:
A=1 choose path that maintains sequence over
one that minimizes transit delay
A=0 choose path that minimizes transit delay over
one that maintains sequence
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?