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

📄 rfc1329.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 4 页
字号:
Kuehn                                                           [Page 7]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


   to ARP                                                     to ARP
   +----X----------------------------------------------------X--------+
   |    |                                                   | IP      |
   |    | ARP frames                            read        | frames  |
   |    |                                       entries     |         |
   | +----------------------------+   +---------+       +----------+  |
   | | Cache Administration       |->-| Address |---->--|  Multi-  |  |
   | +----------------------------|->-| Cache   |       |  plexer  |  |
   |  |        |        |        |    +---------+       |          |  |
   |  |        |        |        |                      +----------+  |
   |  | ARP    | DMARP  | ARP    | DMARP                |        |    |
   |  | frames | frames | frames | frames            IP |     IP |    |
   |  |        |        |        |               frames | frames |    |
   |  |        |        |        |                      |        |    |
   +--X--------X--------X--------X-----------------------X--------X---+
   to SNAP 1         to SNAP 2                    to SNAP 1   to SNAP 2

9.1. The Address Cache

   In the address cache, the associations of primary MAC addresses to
   secondary MAC addresses are stored for other dual MAC stations on the
   network.  There are no entries for single MAC stations.

   Because the OR- and the LS-bit (see table) always have inverted
   values, one of the bits is redundant.  Afterwards the examination of
   an entry state gets easier by the introduction of both bits, they are
   defined together.  The ARP is able to support other protocol address
   formats than the IP format.  To support this ARP property by DMARP,
   the protocol type number as used in the ARP frames is stored in every
   entry of the address cache.  So, a dual MAC station is able to
   communicate with another station with DMARP, even if the other
   station does not use IP.  The numbers used in DMARP frames and the
   address cache for the protocol type and the address length are taken
   over from ARP.

   name               length     comment
   --------------------------------------------------------------------

   P-MAC address      48 bit     Address of the primary MAC
                                 in an other dual MAC station

   S-MAC address      48 bit     Address of the secondary MAC
                                 in that station

   LS-bit             1 bit      A load sharing can be performed
                                 with that station
                                 ("Load sharing bit")




Kuehn                                                           [Page 8]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


   OR-bit             1 bit      No load sharing may be done
                                 with that station
                                 ("Other ring bit")

   H-bit              1 bit      The load sharing with that
                                 station is trusty.
                                 ("Hold bit")

   Q-bit              1 bit      A query frame was sent to that
                                 station, no hold frame was
                                 received yet ("Query bit")

   R-bit              1 bit      This entry cannot be changed by
                                 DMARP ("Read-only bit")

   V-bit              1 bit      The entry is valid
                                 ("Valid bit")

   subscript          32 bit     Unique number, identifying this
                                 entry

   protocol type      16 bit     Number of the protocol type
                                 that was last used in that
                                 station

9.2. The Multiplexer

   The multiplexer deals with multiplexing the IP frames upon the two
   FDDI rings.  Broadcast and multicast frames are always sent on the
   primary ring.  Otherwise, the contents of the address cache and a load
   sharing criteria are used to decide on which of the rings an IP frame
   has to be transmitted.  If there is no entry for the primary MAC
   address of the destination station in the cache, the IP frame is
   transmitted on the primary ring.  If there is an entry for the
   destination station and the LS-bit is set, a load sharing can be done
   with this station.  Later on a load sharing criteria, which is beyond
   the scope of this document, decides, which one of the rings is used
   for transmission.  An example for a load sharing criteria is the
   length of the transmit queues in the MACs.  The multiplexer requires an
   abstract function only, which returns the appropriate ring for the
   transmission of an actual IP frame.

   Additionally, the multiplexer filters the received IP frames:
   multicast or broadcast frames received from the secondary MAC are
   discarded.






Kuehn                                                           [Page 9]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


9.3. The Cache Administration

   The cache administration creates and deletes the entries in the
   address cache.  For this purpose, it communicates with other load
   sharing entities in other dual MAC stations with the DMARP.  The
   cache administration handles the delivery of ARP frames to the ARP
   and the SNAP entity in the station, respectively.

   The cache administration needs three timers for the communication with
   the DMARP, which have to be supported by the system environment.  Each
   of these timers must support a timer entity for each entry in the
   address cache, whereby a single one is running at a time.

   Supported timer services:

      TIMER_request(time, name, subscript)
      TIMER_response(name, subscript)
      TIMER_cancel(name, subscript):

   A timer entity is started by the service TIMER_request and cancelled
   by the TIMER_cancel service request. The TIMER_response service
   indicates that a timer entity has run out.  The parameter name is the
   name of a timer: OR-Entry-Timer, Hold-Timer, or Query-Timer.  Each
   entry in the address cache is uniquely identified by a number
   subscript).  This number is also the number of an associated timer
   entity.  How to dispose these numbers is a question of
   implementation.  The parameter time determines the time period when
   the timer runs out.  This parameter has the value OR-set-timeout for
   the OR-Entry-Timer, Hold-time for the Hold-Timer and Query-time for
   the Query-Timer.

9.4. Configuring the Timer Parameters

   The OR-set-timeout parameter for the OR-Entry-Timer

      The period of time, determined by this parameter, should be
      essentially longer than the maximum time for a frame to travel
      around the entire network.  The expression entire network means
      the network which is constituted by the subnetworks linked
      together with transparent bridges.  When entries with OR-bit set
      are created continuously for a dual MAC station by the timeout
      mechanism, this parameter determines the periods of time between
      the consecutive requests that are sent to this station.  If the
      state of the dual FDDI ring changes and an entry with LS-bit set
      could be created, this parameter additionally determines the
      maximum time until the new entry is created.  (If an entry could
      not be created by transmission of search frames.)  Therefore, the
      OR-set-timeout parameter should be set to some 10 seconds.



Kuehn                                                          [Page 10]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


   The Hold-time parameter for the Hold-Timer

      The period of time, determined by this parameter, should as well
      be essentially longer than the maximum time for a frame to travel
      around the entire network.  When two stations communicate for the
      first time, they exchange ARP frames and DMARP replies.  The
      Hold-time parameter determines the period of time until the load
      sharing is assumed to be accomplished after the setting of the
      LS-bit.  In this period of time, the frames mentioned above must
      have reached its destination.  If an entry would be marked with
      the H-bit incorrectly, the time until it gets corrected will be
      relatively long (Query time).  Proposed dimension: several
      minutes.

   The Query-time parameter for the Query-Timer

      When an entry is marked with LS- and H-bit it is assumed, that
      load sharing can be performed with the associated station.  To
      allow the correction of a wrong value of the H-bit, the
      correctness of the H-bit is tested in periods of time, determined
      by the parameter Query-time.  It is tested whether a frame is
      received, which was sent by the secondary MAC to the secondary MAC
      address of the target station.  (The target station acknowledges
      the reception of the query frame by a hold frame.)  To limit the
      traffic caused by the query and hold frames, the parameter Query-
      time should be set to several minutes.

9.5. Format of DMARP Frames

   fieldname            length            comment
   --------------------------------------------------------------------

   hardware type        16 bit            1 = "ethernet"

   protocol type        16 bit            2048D = "Internet
                                          Protocol"

   length of hardware   8 bit             Value in octets,
   addresses                              6 for 48 bit MAC addresses

   length of protocol   8 bit             Value in octets,
   addresses                              4 for Internet addresses

   operation            16 bit            1: "reply"
                                          2: "request"
                                          3: "error"
                                          4: "search"
                                          5: "found"



Kuehn                                                          [Page 11]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


                                          6: "query"
                                          7: "hold"

   1. hardware address  ... octets

   2. hardware address  ... octets

   protocol address     ... octets
   sender

   protocol address     ... octets
   receiver

   --------------------------------------------------------------------

   The value for the field "protocol type" is the same as in ARP frames.

9.6. Contents of DMARP Frames

   In the following tables of DMARP frames, the fields containing the
   length and type of protocol and hardware addresses are omitted.

   Format:

   +-------------------------------------------------------------+
   | Operation | 1. hardware | 2. hardware | protocol | protocol |
   |           | address     |    address  | address  | address  |
   |           |             |             | sender   | receiver |
   +-------------------------------------------------------------+

   Operation = 1 (reply), 2 (request), 3 (error):
   +-----------------------------------------------------------------+
   | Operation | P-MAC address | S-MAC address | protocol | protocol |
   |           | sender        | sender        | address  | address  |
   |           |               |               | sender   | receiver |
   +-----------------------------------------------------------------+

   +-------------------------------------------------------------------+
   | Operation=4 | P-MAC        | P-MAC address | protocol | broadcast |
   | (search)    | address      | counter-      | address  | protocol  |
   |             | sender       | station       | sender   | address   |
   +-------------------------------------------------------------------+

   +-------------------------------------------------------------------+
   | Operation=5 | P-MAC        | S-MAC address | protocol | broadcast |
   | (found)     | address      | counter-      | address  | protocol  |
   |             | sender       | station       | sender   | address   |
   +-------------------------------------------------------------------+



Kuehn                                                          [Page 12]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


   +-------------------------------------------------------------------+
   | Operation=6 | S-MAC        | P-MAC address | protocol | broadcast |
   | (query)     | address      | counter-      | address  | protocol  |
   |             | sender       | station       | sender   | address   |
   +-------------------------------------------------------------------+

   +-------------------------------------------------------------------+
   | Operation=7 | P-MAC address | S-MAC address | protocol | protocol |
   | (hold)      | sender        | sender        | address  | address  |
   |             |               |               | sender   | receiver |
   +-------------------------------------------------------------------+

   Apart from the error frames all frames are sent on the secondary
   ring.  The reply, error and search frames are addressed to the
   broadcast hardware address.  The request, found, query and hold
   frames are addressed to an individual secondary MAC address.

10. Formal Description

   The following description is written in ESTELLE.

10.1. Global Constants, Variables and Types

default individual queue;

timescale ...;

type

 PDU_type        = ... ; (* format of a Protocol Data Unit:
                             String of variable length               *)
 HW_addr_type    = ... ; (* format of a 48 bit MAC address           *)
 PR_addr_type    = ... ; (* General: format of a protocol address
                            in an ARP or DMARP frame                 *)
 IP_addr_type    = ... ; (* General: format of an IP address         *)
 QoS_type        = ... ; (* General: format of a Quality-of-
                             -Service statement                      *)
 timer_name_type = ... ; (* Type for the name of a system timer      *)

 flag = (reset,set);

var

(*
  The values of these variables are set in the initialization part or
  by external management functions.
*)




Kuehn                                                          [Page 13]

RFC 1329     Address Resolution for Dual MAC FDDI Networks      May 1992


My_P_MAC_addr      : HW_addr_type; (* Address of the MAC, placed on
                                      the primary ring               *)
My_S_MAC_addr      : HW_addr_type; (* Address of the MAC, placed on
                                      the secondary ring             *)
My_IP_address      : IP_addr_type; (* IP address of this station     *)
Broadcast_HW_addr  : HW_addr_type; (* Broadcast MAC address (48 bit) *)
Broadcast_IP_addr  : IP_addr_type; (* Broadcast IP address           *)
dmarp_QoS          : QoS_type;     (* Quality_of_Service-statement
                                      for DMARP frames               *)

ethernet         : integer; (* Type statement in DMARP frames        *)
ip               : integer; (* Number for IP as protocol type        *)
fddi_addr_length : integer; (* Length of a MAC address in octetts    *)
ip_addr_length   : integer; (* Length of a IP address in octetts     *)

OR_set_timeout   : integer; (* Parameter for the OR-Entry-Timer      *)
Query_time       : integer; (* Parameter for the Hold-Timer          *)
Hold_time        : integer; (* Parameter for the Query-Timer         *)

10.2. Channels

   channel SAPchn(User,Provider);
   by User :
    UNITDATA_request
    (
      Source_addr  : HW_addr_type;
      Dest_addr    : HW_addr_type;
      QoS          : QoS_type;
      PDU          : PDU_type;
    )
   by Provider :
    UNITDATA_indication
    (
      Source_addr  : HW_addr_type;
      Dest_addr    : HW_addr_type;
      QoS          : QoS_type;
      PDU          : PDU_type;
    )

   channel System_Access_Point_chn(User,Provider);
   by User:
    TIMER_request(Time       : integer;
                  Timer_id   : timer_name_type;
                  subscript  : integer);

    TIMER_cancel(Timer_id    : timer_name_type;
                 subscript   : integer);




Kuehn                                                          [Page 14]

⌨️ 快捷键说明

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