📄 rfc1561.txt
字号:
+---+---+---+ | 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 19934.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 purposePiscitello [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=840Piscitello [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 Selector4.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 19934.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 thePiscitello [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 thePiscitello [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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -