📄 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 29.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 station9.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 19929.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 Typesdefault 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 1992My_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 + -