⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1201.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 2 页
字号:






Network Working Group                                          D. Provan
Request for Comments: 1201                                  Novell, Inc.
Obsoletes:  RFC 1051                                       February 1991


              Transmitting IP Traffic over ARCNET Networks

Status of this Memo

   This memo defines a protocol for the transmission of IP and ARP
   packets over the ARCnet Local Area Network.  This RFC specifies an
   IAB standards track protocol for the Internet community, and requests
   discussion and suggestions for improvements.  Please refer to the
   current edition of the "IAB Official Protocol Standards" for the
   standardization state and status of this protocol.  Distribution of
   this memo is unlimited.

1.  Introduction

   This memo specifies a method of encapsulating Internet Protocol (IP)
   [1] and Address Resolution Protocol (ARP) [2] datagrams for
   transmission across ARCNET [3] using the "ARCNET Packet Header
   Definition Standard" [4].  This memo offers a replacement for RFC
   1051.  RFC 1051 uses an ARCNET framing protocol which limits
   unfragmented IP packets to 508 octets [5].

2.  ARCNET Packet Format

   In 1989, Apple Computers, Novell, ACTINET Systems, Standard
   Microsystems, and Pure Data Research agreed to use the ARCNET
   datalink protocol defined in "ARCNET Packet Header Definition
   Standard" [4].  We'll begin with a brief description of that
   protocol.

2.1.  ARCNET Framing

   ARCNET hardware supports two types of frames: short frames, which are
   always 256 octets long, and long frames, which are always 512 octets
   long.  All frames begin with a hardware header and end with the
   client's data preceded by a software header.  Software places padding
   in the middle of the packet between the hardware header and the
   software header to make the frame the appropriate fixed length.
   Unbeknown to the software, the hardware removes this padding during
   transmission.

   Short frames can hold from 0 to 249 octets of client data.  Long
   frames can hold from 253 to 504 octets of client data.  To handle
   frames with 250, 251, or 252 octets of data, the datalink protocol



Provan                                                          [Page 1]

RFC 1201                      IP on ARCNET                 February 1991


   introduces a third frame type: the exception frame.

   These three frame formats are shown here.  Except as noted, each
   block represents one octet.


       Short Frame             Long Frame          Exception Frame

    +---------------+      +---------------+      +---------------+
    |     source    |      |     source    |      |     source    |
    +---------------+      +---------------+      +---------------+
    |  destination  |      |  destination  |      |  destination  |
    +---------------+      +---------------+      +---------------+
    |     offset    |      |       0       |      |       0       |
    +---------------+      +---------------+      +---------------+
    .     unused    .      |     offset    |      |     offset    |
    .  (offset - 3  .      +---------------+      +---------------+
    .     octets)   .      .     unused    .      .     unused    .
    +---------------+      .  (offset - 4  .      .  (offset - 4  .
    |  protocol ID  |      .     octets)   .      .     octets)   .
    +---------------+      +---------------+      +---------------+
    |  split flag   |      |  protocol ID  |      |  protocol ID  |
    +---------------+      +---------------+      +---------------+
    |   sequence    |      |  split flag   |      | flag: FF hex  |
    +    number     +      +---------------+      +---------------+
    |  (2 octets)   |      |   sequence    |      | padding: 0xFF |
    +---------------+      +    number     +      +---------------+
    .               .      |  (2 octets)   |      | padding: 0xFF |
    .  client data  .      +---------------+      +---------------+
    . (256 - offset .      .               .      | (protocol ID) |
    .   - 4 octets) .      .               .      +---------------+
    .               .      .               .      |  split flag   |
    +---------------+      .               .      +---------------+
                           .               .      |   sequence    |
                           .  client data  .      +    number     +
                           . (512 - offset .      |  (2 octets)   |
                           .   - 4 octets) .      +---------------+
                           .               .      .               .
                           .               .      .  client data  .
                           .               .      . (512 - offset .
                           .               .      .   - 8 octets) .
                           .               .      .               .
                           +---------------+      +---------------+

      These packet formats are presented as software would see them
      through ARCNET hardware.  [3] refers to this as the "buffer
      format".  The actual format of packets on the wire is a little
      different: the destination ID is duplicated, the padding between



Provan                                                          [Page 2]

RFC 1201                      IP on ARCNET                 February 1991


      the offset field and the protocol ID field is not transmitted, and
      there's some hardware framing information.  In addition, the
      hardware transmits special packets for buffer allocation and
      reception acknowledgement which are not described here [3].

2.2.  Datalink Layer Fragmentation

   ARCNET hardware limits individual frames to 512 octets, which allows
   504 octets of client data.  This ARCNET datalink protocol allows the
   datalink layer to break packets into as many as 120 fragments for
   transmission.  This allows ARCNET clients to transmit up to 60,480
   octets in each packet.

   The "split flag" describes datalink layer packet fragments.  There
   are three cases: an unfragmented packet, the first fragment of a
   fragmented packet, and any other fragment of a fragmented packet.

   Unfragmented packets always have a split flag of zero.

   The first fragment of a fragmented packet has a split flag equal to
   ((T-2)*2)+1, where T is the total number of fragments to expect for
   the packet.

   Subsequent fragments of a fragmented packet have a split flag equal
   to ((N-1)*2), where N is the number of this fragment.  For example,
   the fourth fragment of a packet will always have the split flag value
   of six ( (4-1)*2 ).

   The receiving station can identify the last fragment of a packet
   because the value of its 8-bit split flag will be one greater than
   the split flag of the first fragment of the packet.

      A previous version of this ARCNET datalink protocol definition
      only allowed packets which could be contained in two fragments.
      In this older standard, the only legal split flags were 0, 1, and
      2.  Compatibility with this older standard can be maintained by
      configuring the maximum client data length to 1008 octets.

   No more that 120 fragments are allowed.  The highest legal split flag
   value is EE hex.  (Notice that the split flag value FF hex is used to
   flag exception packets in what would otherwise be a long packet's
   split flag field.)

   All fragments of a single packet carry the same sequence number.

2.3.  Datalink Layer Reassembly

   The previous section provides enough information to implement



Provan                                                          [Page 3]

RFC 1201                      IP on ARCNET                 February 1991


   datalink reassembly.  To avoid buffer allocation problems during
   reassembly, we recommend allocating enough space for the entire
   reassembled packet when the first fragment arrives.

   Since fragments are sent in order, the reassembly procedure can give
   up on a packet if it receives a fragment out of order.  There is one
   exception, however.  It is possible for successfully received
   fragments to be retransmitted.  Reassembly software should ignore
   repetitious fragments without giving up on the packet.

   Since fragments will be sent briskly, the reassembly procedure can
   give up on a partially reassembled packet if no additional fragments
   for it arrive within a few seconds.

2.4.  Datalink Layer Retransmission

   For each unicast ARCNET packet, the hardware indicates to the sender
   whether or not the receiver acknowledged the packet.  To improve
   reliability, datalink implementations are encouraged to retransmit
   unacknowledged packets or packet fragments.  Several retransmissions
   may be necessary.  Broadcast packets, however, are never acknowledged
   and, therefore, they should never be retransmitted.

   Packets which are successfully received may not be successfully

⌨️ 快捷键说明

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