RFC 1188

Proposed Standard for the Transmission of IP Datagrams over FDDI Networks

๐Ÿ“… published October 1990, from ietf

RFC 1188: A Proposed Standard for the Transmission of IP Datagrams over FDDI Networks ๐Ÿฆ‹

Okay bestie, this is RFC 1188, and it's giving standards track ๐Ÿ’…. D. Katz from Merit/NSFNET wrote it back in October 1990. It's a Proposed Standard on the IAB Standards Track, and it obsoletes RFC 1103 ๐ŸŽ€. Go check out the title block if you want the official details.


Status of this Memo โœจ

This memo defines how to wrap up IP datagrams and ARP requests and replies on FDDI (Fiber Distributed Data Interface) networks ๐ŸŒธ. It's a protocol on the IAB Standards Track, and the authors actively want the community to discuss it and send ideas for making it better ๐Ÿ’–. For the official standardization state and status, check the current edition of "IAB Official Protocol Standards" ๐Ÿ“š.

This proposal came from the IP over FDDI Working Group of the IETF ๐Ÿงš. Comments go to the IETF IP over FDDI Working Group Chair. The distribution of this memo is unlimited, so share the love ๐Ÿซถ.

Abstract ๐Ÿฆ‹

This document explains how IP and ARP get used on FDDI networks. It describes the encapsulation method and some media-specific stuff you'll want to know ๐Ÿ”ฅ.

Acknowledgments ๐Ÿ’œ

This memo borrows a LOT of its concept and wording from RFC 1042 [3], which Jon Postel and Joyce K. Reynolds wrote at USC/Information Sciences Institute ๐ŸŒˆ. The author also gives a shoutout to the IP Over FDDI Working Group of the IETF, the members of ANSI ASC X3T9.5, and the rest of the FDDI community ๐Ÿ‘‘.

Conventions โญ

Okay so, the language in the spec items follows these rules. Pay attention, these are important ๐Ÿ™ˆ:

  • MUST, SHALL, or Mandatory: the item is an absolute requirement of the specification ๐Ÿ’….
  • SHOULD or RECOMMENDED: you should generally follow the item unless you're in an exceptional situation ๐Ÿ“.
  • MAY or OPTIONAL: the item is truly optional. You can follow it or ignore it, depending on what your implementation needs ๐Ÿฆ‹.

Introduction ๐ŸŒธ

The goal here is to make implementations that are compatible and can talk to each other, for transmitting IP datagrams [1] and ARP requests and replies [2] ๐Ÿ’–.

FDDI is a family of standards for Local Area Networks (LANs) ๐ŸŒ. It covers the Physical Layer and the Media Access Control Sublayer of the Data Link Layer, as defined by the ISO Open System Interconnection Reference Model (ISO/OSI) โœจ. Some documents are still on their way to International Standardization for Media Access Control (MAC) [4], Physical Layer Protocol (PHY) [5], Physical Layer Medium Dependent (PMD) [6], and Station Management (SMT) [7]. The FDDI family lines up with the IEEE 802 MAC layer standards [8, 9, 10] ๐ŸŽ€.

The rest of the Data Link Service comes from the IEEE 802.2 Logical Link Control (LLC) service [11]. Here's how the stack looks ๐Ÿ‘‘:

        +-------------+
        |   IP/ARP    |
        +-------------+
        |  802.2 LLC  |
        +-------------+-----+
        |  FDDI MAC   | F   |
        +-------------+ D S |
        |  FDDI PHY   | D M |
        +-------------+ I T |
        |  FDDI PMD   |     |
        +-------------+-----+

This memo describes how IP and ARP work in this environment ๐Ÿฆ‹. Right now, IP and ARP don't have to behave the same way on FDDI and IEEE 802 networks. Still, the goal is not to block Data Link Layer interoperability once the standards define it ๐Ÿซถ.

FDDI standards cover both single and dual MAC stations. This document only covers IP and ARP on single MAC stations, whether they're single-attach or dual-attach ๐Ÿงš. Dual MAC operation will show up in a future document ๐Ÿ”ฎ.

Packet Format ๐Ÿ’…

IP datagrams and ARP requests and replies sent on FDDI networks SHALL be encapsulated within the 802.2 LLC and Sub-Network Access Protocol (SNAP) [12] data link layers, plus the FDDI MAC and physical layers ๐ŸŒˆ. The SNAP MUST be used with an Organization Code that says the SNAP header contains the EtherType code (as listed in Assigned Numbers [13]) โœจ.

Only 802.2 LLC Type 1 communication gets used here ๐ŸŽ€. Every 802.2 station that conforms MUST implement it ๐Ÿ™ˆ. All frames MUST be sent in the standard 802.2 LLC Type 1 Unnumbered Information format. The DSAP and SSAP fields of the 802.2 header get set to the assigned global SAP value for SNAP [11] ๐Ÿ’–. In the SNAP, the 24-bit Organization Code MUST be zero, and the remaining 16 bits hold the EtherType from Assigned Numbers [13] (IP = 2048, ARP = 2054) ๐Ÿ‘‘.

Here are the layouts ๐Ÿงš:

      ...--------+--------+--------+
                 MAC Header        |                           FDDI MAC
      ...--------+--------+--------+

      +--------+--------+--------+
      | DSAP=K1| SSAP=K1| Control|                            802.2 LLC
      +--------+--------+--------+

      +--------+--------+---------+--------+--------+
      |Protocol Id or Org Code =K2|    EtherType    |        802.2 SNAP
      +--------+--------+---------+--------+--------+

The total length of the LLC Header and the SNAP header is 8 octets ๐ŸŒธ. The K1 value is 170 (decimal) ๐Ÿ’œ. The K2 value is 0 (zero) ๐Ÿ“. The control value is 3 (Unnumbered Information) ๐Ÿ”ฅ.

Address Resolution ๐Ÿฆ‹

Mapping 32-bit Internet addresses to 48-bit FDDI addresses SHALL be done with the dynamic discovery procedure of the Address Resolution Protocol (ARP) [2] ๐ŸŒˆ.

Internet addresses get assigned arbitrarily on Internet networks ๐ŸŒ. Each host's implementation MUST know its own Internet address and respond to Address Resolution requests appropriately ๐Ÿ’–. It MUST also use ARP to translate Internet addresses to FDDI addresses whenever it's needed ๐Ÿซถ.

ARP has a bunch of fields that tune how it gets used in any specific context [2]. They are ๐ŸŽ€:

hrd   16 - bits     The Hardware Type Code
pro   16 - bits     The Protocol Type Code
hln    8 - bits     Octets in each hardware address
pln    8 - bits     Octets in each protocol address
op    16 - bits     Operation Code

The hardware type code for IEEE 802 networks is 6 [13] โœจ. The hardware type code for Ethernet networks is 1 [13] ๐Ÿงš. Ugh, the two values are different, and that causes interoperability problems in bridged environments ๐Ÿ˜ญ. So that Ethernets in a bridged environment still work, ARP packets SHALL be transmitted with a hardware type code of 1 ๐Ÿ’…. ARP packets SHALL also be accepted if they arrive with a hardware type code of either 1 or 6 ๐ŸŒธ.

The protocol type code for IP is 2048 [13] ๐Ÿ‘‘. The hardware address length is 6 ๐Ÿ“. The protocol address length (for IP) is 4 ๐Ÿ’œ. The operation code is 1 for request and 2 for reply ๐Ÿ”ฅ.

Here's the bit-order thing, and it's kind of a big deal ๐Ÿ™ˆ. So that bridged environments keep working, the hardware addresses in ARP packets (ar$sha, ar$tha) MUST be carried in "canonical" bit order, with the Group bit in the low order bit of the first octet ๐Ÿฆ‹. FDDI addresses normally have the Group bit in the high order bit position, so the addresses MUST be bit-reversed within each octet ๐Ÿ’–.

Although this is outside the scope of the document, it is RECOMMENDED that MAC addresses be represented in canonical order in all Network Layer protocols carried within the information field of an FDDI frame ๐ŸŽ€.

(Part 1 of 2. Part 2 is coming next ๐Ÿ’…๐ŸŒˆ)

MAC Layer Details โœจ

okay so this is where FDDI gets really specific, bestie, so let's go ๐Ÿซถ

Packet Size ๐Ÿ“

okay so the FDDI MAC spec [4] sets a max frame size of 9000 symbols (4500 octets) for all frame fields, and that includes four symbols (two octets) of preamble ๐Ÿ™ˆ. once you account for the LLC/SNAP header, that leaves roughly 4470 octets for data.

but we want room to grow! ๐ŸŒฑ future extensions to the MAC header and frame status fields need space, so it's desirable to reserve extra room for MAC overhead โœจ

So the MTU of FDDI networks SHALL be 4352 octets ๐Ÿ’– That gives 4096 octets of data and 256 octets of headers at the network layer and above. Implementations MUST NOT send packets larger than the MTU.

Gateway implementations MUST be prepared to accept packets as large as the MTU and fragment them when necessary. Gateway implementations SHOULD be able to accept packets as large as can be carried within a maximum size FDDI frame and fragment them.

Host implementations SHOULD be prepared to accept packets as large as the MTU ๐ŸŽ€. however, hosts MUST NOT send datagrams longer than 576 octets unless they have explicit knowledge that the destination is prepared to accept them. Host implementations MAY accept packets as large as can be carried within a maximum size FDDI frame. A host MAY communicate its size preference in TCP-based applications via the TCP Maximum Segment Size option [17].

Datagrams on FDDI networks MAY be longer than the general Internet default maximum packet size of 576 octets. Hosts connected to an FDDI network SHOULD keep this in mind when sending datagrams to hosts that are not on the same local network. It MAY be appropriate to send smaller datagrams to avoid unnecessary fragmentation at intermediate gateways. Please see [17] for further information.

There is no minimum packet size restriction on FDDI networks.

In order to not preclude interoperability with Ethernet in a bridged environment, FDDI implementations MUST be prepared to receive (and ignore) trailing pad octets ๐Ÿงš

Other MAC Layer Issues ๐Ÿ’…

The FDDI MAC spec does not require that 16-bit and 48-bit address stations be able to interwork fully. It does, however, require that 16-bit stations have full 48-bit functionality, and that both types of stations be able to receive frames sent to either size broadcast address. To avoid interoperability problems, only 48-bit addresses SHALL be used with IP and ARP.

The FDDI MAC spec defines two classes of LLC frames, Asynchronous and Synchronous. Asynchronous frames are further controlled by a priority mechanism and two classes of token, Restricted and Unrestricted. Only the use of Unrestricted tokens and Asynchronous frames are REQUIRED by the standard for FDDI interoperability ๐Ÿ‘‘

All IP and ARP frames SHALL be transmitted as Asynchronous LLC frames using Unrestricted tokens, and the Priority value is a matter of local convention. Implementations SHOULD make the priority a tunable parameter for future use. It is RECOMMENDED that implementations provide for the reception of IP and ARP packets in Synchronous frames, as well as Restricted Asynchronous frames.

After packet transmission, FDDI provides Frame Copied (C) and Address Recognized (A) indicators. Using these indicators is a local implementation decision. Implementations MAY choose to perform link-level retransmission, ARP cache entry invalidation, etc., based on the values of these indicators and other information. The semantics of these indicators, especially in the presence of bridges, are not well defined as of this writing. Implementors are urged to follow the work of ANSI ASC X3T9.5 in regard to this issue in order to avoid interoperability problems ๐Ÿฅน


IEEE 802.2 Details ๐Ÿฆ‹

okay so this part is not necessary for supporting IP and ARP, BUT all implementations MUST support IEEE 802.2 standard Class I service in order to be compliant with 802.2 ๐Ÿ”ฅ. The minimum functionality for a conformant station is described below. Some functions aren't directly related to supporting the SNAP SAP (like responding to XID and TEST commands directed to the null or global SAP addresses), but they're part of a general LLC implementation. Implementors SHOULD consult IEEE Std. 802.2 [11] for details.

802.2 Class I LLC requires the support of Unnumbered Information (UI) Commands, eXchange IDentification (XID) Commands and Responses, and TEST link (TEST) Commands and Responses. Stations need not be able to transmit XID and TEST commands, but they MUST be able to transmit responses.

Encodings ๐ŸŒธ

Command frames are identified by having the low order bit of the SSAP address reset to zero. Response frames have the low order bit of the SSAP address set to one.

  • The UI command has an LLC control field value of 3.
  • The XID command/response has an LLC control field value of 175 (decimal) if the Poll/Final bit is off, or 191 (decimal) if the Poll/Final bit is on.
  • The TEST command/response has an LLC control field value of 227 (decimal) if the Poll/Final bit is off, or 243 (decimal) if the Poll/Final bit is on.

Elements of Procedure ๐Ÿ”ฅ

UI responses and UI commands with the Poll bit set SHALL be ignored. UI commands having other than the SNAP SAP in the DSAP or SSAP fields SHALL NOT be processed as IP or ARP packets.

When an XID or TEST command is received, an appropriate response MUST be returned. XID and TEST commands MUST be responded to only if the DSAP is the SNAP SAP (170 decimal), the Null SAP (0 decimal), or the Global SAP (255 decimal). XID and TEST commands received with other DSAP values MUST NOT be responded to unless the station supports the addressed service. Responses to XID and TEST frames SHALL be constructed as follows:

Destination MAC:  Copied from Source MAC of the command
Source MAC:       Set to the address of the MAC receiving
                  the command
DSAP:             Copied from SSAP of the command
SSAP:             Set to 171 decimal (SNAP SAP + Response bit)
                  if the DSAP in the command was the SNAP SAP
                  or the Global SAP; set to 1 decimal
                  (Null SAP + Response bit) if the DSAP in the
                  command was the Null SAP

When responding to an XID or a TEST command, the value of the Final bit in the response MUST be copied from the value of the Poll bit in the command.

XID response frames MUST include an 802.2 XID Information field of 129.1.0 indicating Class I (connectionless) service.

TEST response frames MUST echo the information field received in the corresponding TEST command frame.


Appendix on Numbers ๐Ÿงš

The IEEE specifies numbers as bit strings with the least significant bit first, or bit-wise little-endian order. The Internet protocols are documented in bit-wise big-endian order. This MAY cause some confusion about the proper values to use for numbers. Here are the conversions for some numbers of interest ๐Ÿ’œ

Number           IEEE        Internet    Internet
                 Binary      Binary      Decimal

UI               11000000    00000011    3
SAP for SNAP     01010101    10101010    170
Global SAP       11111111    11111111    255
Null SAP         00000000    00000000    0
XID              11110101    10101111    175
XID Poll/Final   11111101    10111111    191
XID Info                                 129.1.0
TEST             11000111    11100011    227
TEST Poll/Final  11001111    11110011    243

References ๐Ÿ“š

[1] Postel, J., "Internet Protocol", RFC 791, USC/Information Sciences Institute, September 1981.

[2] Plummer, D., "An Ethernet Address Resolution Protocol - or - Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware", RFC 826, MIT, November 1982.

[3] Postel, J., and Reynolds, J., "A Standard for the Transmission of IP Datagrams over IEEE 802 Networks", RFC 1042, USC/Information Sciences Institute, February 1988.

[4] ISO, "Fiber Distributed Data Interface (FDDI) - Media Access Control", ISO 9314-2, 1989. See also ANSI X3.139-1987.

[5] ISO, "Fiber Distributed Data Interface (FDDI) - Token Ring Physical Layer Protocol", ISO 9314-1, 1989. See also ANSI X3.148-1988.

[6] ISO, "Fiber Distributed Data Interface (FDDI) - Physical Layer Medium Dependent", ISO DIS 9314-3, 1989. See also ANSI X3.166-199x.

[7] ANSI, "FDDI Station Management", ANSI X3T9.5/84-49 Rev 6.0, 1990.

[8] IEEE, "IEEE Standards for Local Area Networks: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", IEEE, New York, New York, 1985.

[9] IEEE, "IEEE Standards for Local Area Networks: Token-Passing Bus Access Method and Physical Layer Specification", IEEE, New York, New York, 1985.

[10] IEEE, "IEEE Standards for Local Area Networks: Token Ring Access Method and Physical Layer Specifications", IEEE, New York, New York, 1985.

[11] IEEE, "IEEE Standards for Local Area Networks: Logical Link Control", IEEE, New York, New York, 1985.

[12] IEEE, "Draft Standard P802.1A--Overview and Architecture", 1989.

[13] Reynolds, J.K., and J. Postel, "Assigned Numbers", RFC 1060, USC/Information Sciences Institute, March 1990.

[14] Braden, R., and J. Postel, "Requirements for Internet Gateways", RFC 1009, USC/Information Sciences Institute, June 1987.

[15] Deering, S., "Host Extensions for IP Multicasting", RFC 1112, Stanford University, August 1989.

[16] Cohen, D., "On Holy Wars and a Plea for Peace", Computer, IEEE, October 1981.

[17] Postel, J., "The TCP Maximum Segment Size Option and Related Topics", RFC 879, USC/Information Sciences Institute, November 1983.


Security Considerations ๐Ÿ’€

This is the one part I'm not gonna sugarcoat ๐Ÿ’€: security issues are not discussed in this memo.

Author's Address ๐Ÿ’œ

Dave Katz
Merit/NSFNET
1075 Beal Ave.
Ann Arbor, MI  48109

Phone: (313) 763-4898

EMail: dkatz@merit.edu
๐Ÿ“ฆ where this page comes from