📄 rfc1329.txt
字号:
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 + -