rfc2734.txt

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

TXT
1,447
字号
      1394 ARP Address resolution protocol (specific to 1394)
      CSR      Control and status register
      CRC      Cyclical redundancy checksum
      EUI-64   Extended Unique Identifier, 64-bits
      GASP     Global asynchronous stream packet
      IP       Internet protocol (within this document, IPv4)
      MCAP     Multicast channel allocation protocol

2.4 Numeric values

   Decimal and hexadecimal numbers are used within this standard. By
   editorial convention, decimal numbers are most frequently used to
   represent quantities or counts. Addresses are uniformly represented
   by hexadecimal numbers, which are also used when the value
   represented has an underlying structure that is more apparent in a
   hexadecimal format than in a decimal format.

   Decimal numbers are represented by Arabic numerals or by their
   English names. Hexadecimal numbers are prefixed by 0x and represented
   by digits from the character set 0 - 9 and A - F. For the sake of
   legibility, hexadecimal numbers are separated into groups of four
   digits separated by spaces.

   For example, both 42 and 0x2A represent the same numeric value.

3. IP-CAPABLE NODES

   Not all Serial Bus devices are capable of the reception and
   transmission of 1394 ARP requests/responses or IP datagrams. An IP-
   capable node SHALL fulfill the following minimum requirements:

   - it SHALL implement configuration ROM in the general format
     specified by ISO/IEC 13213:1994 and SHALL implement the bus
     information block specified by IEEE P1394a and a unit directory
     specified by this standard;

   - the max_rec field in its bus information block SHALL be at least 8;
     this indicates an ability to accept block write requests and
     asynchronous stream packets with data payload of 512 octets. The
     same ability SHALL also apply to read requests; that is, the node
     SHALL be able to transmit a block response packet with a data
     payload of 512 octets;





Johansson                   Standards Track                     [Page 6]

RFC 2734                  IPv4 over IEEE 1394              December 1999


   - it SHALL be isochronous resource manager capable, as specified by
     IEEE P1394a;

   - it SHALL support both reception and transmission of asynchronous
     streams as specified by IEEE P1394a; and

4. LINK ENCAPSULATION AND FRAGMENTATION

   All IP datagrams (broadcast, unicast or multicast), 1394 ARP
   requests/responses and MCAP advertisements/solicitations that are
   transferred via 1394 block write requests or stream packets SHALL be
   encapsulated within the packet's data payload. The maximum size of
   data payload, in octets, is constrained by the speed at which the
   packet is transmitted.

               Table 1 - Maximum data payloads (octets)

                  Speed   Asynchronous   Isochronous
                +------------------------------------+
                |  S100 |      512     |     1024    |
                |  S200 |     1024     |     2048    |
                |  S400 |     2048     |     4096    |
                |  S800 |     4096     |     8192    |
                | S1600 |     8192     |    16384    |
                | S3200 |    16384     |    32768    |
                +------------------------------------+

   NOTE: The maximum data payloads at speeds of S800 and faster may be
   reduced (but will not be increased) as a result of standardization by
   IEEE P1394b.

   The maximum data payload for asynchronous requests and responses may
   also be restricted by the capabilities of the sending or receiving
   node(s); this is specified by max_rec in either the bus information
   block or 1394 ARP response.

   For either of these reasons, the maximum data payload transmissible
   between IP-capable nodes may be less than the default 1500 octet
   maximum transmission unit (MTU) specified by this document. This
   requires that the encapsulation format also permit 1394 link-level
   fragmentation and reassembly of IP datagrams.

   NOTE: IP-capable nodes may operate with an MTU size larger than the
   default, but the means by which a larger MTU is configured are beyond
   the scope of this document.






Johansson                   Standards Track                     [Page 7]

RFC 2734                  IPv4 over IEEE 1394              December 1999


4.1 Global asynchronous stream packet (GASP) format

   Some IP datagrams, as well as 1394 ARP requests and responses, may be
   transported via asynchronous stream packets. When asynchronous stream
   packets are used, their format SHALL conform to the global
   asynchronous stream packet (GASP) format specified by IEEE P1394a.
   The GASP format illustrated below is INFORMATIVE and reproduced for
   ease of reference, only.

                       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_length          |tag|  channel  |  0x0A |   sy  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           header_CRC                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           source_ID           |        specifier_ID_hi        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |specifier_ID_lo|                    version                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +---                           data                          ---+
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            data_CRC                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 1 - GASP format

   The source_ID field SHALL specify the node ID of the sending node and
   SHALL be equal to the most significant 16 bits of the sender's
   NODE_IDS register.

   The specifier_ID_hi and specifier_ID_lo fields together SHALL contain
   the value 0x00 005E, the 24-bit organizationally unique identifier
   (OUI) assigned by the IEEE Registration Authority (RA) to IANA.

   The version field SHALL be one.

   NOTE: Because the GASP format utilizes the first two quadlets of data
   payload in an asynchronous stream packet format, the maximum payloads
   cited in Table 1 are effectively reduced by eight octets. In the
   clauses that follow, references to the first quadlet of data payload
   mean the first quadlet usable for an IP datagram or 1394 ARP request
   or response.  When the GASP format is used, this is the third quadlet
   of the data payload for the packet.





Johansson                   Standards Track                     [Page 8]

RFC 2734                  IPv4 over IEEE 1394              December 1999


4.2 Encapsulation header

   All IP datagrams transported over 1394 are prefixed by an
   encapsulation header with one of the formats illustrated below.

   If an entire IP datagram may be transmitted within a single 1394
   packet, it is unfragmented and the first quadlet of the data payload
   SHALL conform to the format illustrated below.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | lf|          reserved         |           ether_type          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          Figure 2 - Unfragmented encapsulation header format

   The lf field SHALL be zero.

   The ether_type field SHALL indicate the nature of the datagram that
   follows, as specified by the following table.

                      ether_type   Datagram
                    +-------------------------+
                    |   0x0800   |   IPv4     |
                    |   0x0806   |   1394 ARP |
                    |   0x8861   |   MCAP     |
                    +-------------------------+

   NOTE: Other network protocols, identified by different values of
   ether_type, may use the encapsulation formats defined herein but such
   use is outside of the scope of this document.

   In cases where the length of the datagram exceeds the maximum data
   payload supported by the sender and all recipients, the datagram
   SHALL be broken into link fragments; the first two quadlets of the
   data payload for the first link fragment SHALL conform to the format
   shown below.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | lf|rsv|      datagram_size    |           ether_type          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              dgl              |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Figure 3 - First fragment encapsulation header format



Johansson                   Standards Track                     [Page 9]

RFC 2734                  IPv4 over IEEE 1394              December 1999


   The second and subsequent link fragments (up to and including the
   last) SHALL conform to the format shown below.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | lf|rsv|      datagram_size    |  rsv  |    fragment_offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              dgl              |            reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 4 - Subsequent fragment(s) encapsulation header format

   The definition and usage of the fields is as follows:

      The lf field SHALL specify the relative position of the link
      fragment within the IP datagram, as encoded by the following
      table.

                        lf      Position
                     +------------------------+
                     |   0   |  Unfragmented  |
                     |   1   |  First         |
                     |   2   |  Last          |
                     |   3   |  Interior      |
                     +------------------------+

      datagram_size: The encoded size of the entire IP datagram. The
      value of datagram_size SHALL be the same for all link fragments of
      an IP datagram and SHALL be one less than the value of Total
      Length in the datagram's IP header (see STD 5, RFC 791).

      ether_type: This field is present only in the first link fragment
      and SHALL have a value of 0x0800, which indicates an IPv4
      datagram.

      fragment_offset: This field is present only in the second and
      subsequent link fragments and SHALL specify the offset, in octets,
      of the fragment from the beginning of the IP datagram. The first
      octet of the datagram (the start of the IP header) has an offset
      of zero; the implicit value of fragment_offset in the first link
      fragment is zero.









Johansson                   Standards Track                    [Page 10]

RFC 2734                  IPv4 over IEEE 1394              December 1999


      dgl: The value of dgl (datagram label) SHALL be the same for all
      link fragments of an IP datagram. The sender SHALL increment dgl
      for successive, fragmented datagrams; the incremented value of dgl
      SHALL wrap from 65,535 back to zero.

   All IP datagrams, regardless of the mode of transmission (block write
   requests or stream packets) SHALL be preceded by one of the above
   described encapsulation headers. This permits uniform software
   treatment of datagrams without regard to the mode of their
   transmission.

4.3 Link fragment reassembly

   The recipient of an IP datagram transmitted via more than one 1394

⌨️ 快捷键说明

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