Movatterモバイル変換


[0]ホーム

URL:


[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

INFORMATIONAL
Network Working Group                                     D. BryantRequest for Comments: 2166                                3Com CorpCategory: Informational                                 P. Brittain                                               Data Connection Ltd.                                                          June 1997APPN Implementer's WorkshopClosed Pages Document                         DLSw v2.0 EnhancementsStatus of this MemoThis memo provides information for the Internet community.  This memodoes not specify an Internet standard of any kind.  Distribution ofthis memo is unlimited.Abstract   This document specifies   - a set of extensions toRFC 1795 designed to improve the scalability     of DLSw   - clarifications toRFC 1795 in the light of the implementation     experience to-date.   It is assumed that the reader is familiar with DLSw andRFC 1795.  No   effort has been made to explain these existing protocols or   associated terminology.   This document was developed in the DLSw Related Interest Group (RIG)   of the APPN Implementers Workshop (AIW). If you would like to   participate in future DLSw discussions, please subscribe to the DLSw   RIG mailing lists by sending a mail to majordomo@raleigh.ibm.com   specifying 'subscribe aiw-dlsw' as the body of the message.Table of Contents1. INTRODUCTION ................................................32. HALT REASON CODES............................................33. SCOPE OF SCALABILITY ENHANCEMENTS............................44. OVERVIEW OF SCALABILITY ENHANCEMENTS.........................65. MULTICAST GROUPS AND ADDRESSING..............................75.1 USING MULTICAST GROUPS......................................85.2 DLSW MULTICAST ADDRESSES....................................86. DLSW MESSAGE TRANSPORTS......................................86.1 TCP/IP CONNECTIONS ON DEMAND................................96.1.1 TCP CONNECTIONS ON DEMAND RACE CONDITIONS................9Bryant & Brittain            Informational                      [Page 1]

RFC 2166              APPN Implementer's Workshop             June 19976.2 SINGLE SESSION TCP/IP CONNECTIONS...........................96.2.1 EXPEDITED SINGLE SESSION TCP/IP CONNECTIONS..............106.2.1.1 TCP PORT NUMBERS......................................106.2.1.2 TCP CONNECTION SETUP..................................106.2.1.3 SINGLE SESSION SETUP RACE CONDITIONS..................10     6.2.1.4 TCP CONNECTIONS WITH NON-MULTICAST CAPABLE DLSW PEERS.   116.3 UDP DATAGRAMS...............................................126.3.1 VENDOR SPECIFIC FUNCTIONS OVER UDP.......................126.3.2 UNICAST UDP DATAGRAMS....................................126.3.3 MULTICAST UDP DATAGRAMS..................................136.4 UNICAST UDP DATAGRAMS IN LIEU OF IP MULTICAST...............136.5 TCP TRANSPORT...............................................147. MIGRATION SUPPORT............................................147.1 CAPABILITIES EXCHANGE.......................................147.2 CONNECTING TO NON-MULTICAST CAPABLE NODES...................157.3 COMMUNICATING WITH MULTICAST CAPABLE NODES..................158. SNA SUPPORT..................................................168.1 ADDRESS RESOLUTION..........................................168.2 EXPLORER FRAMES.............................................168.3 CIRCUIT SETUP...............................................178.4 EXAMPLE SNA SSP MESSAGE SEQUENCE............................178.5 UDP RELIABILITY.............................................198.5.1 RETRIES..................................................199. NETBIOS......................................................209.1 ADDRESS RESOLUTION..........................................219.2 EXPLORER FRAMES.............................................219.3 CIRCUIT SETUP...............................................219.4 EXAMPLE NETBIOS SSP MESSAGE SEQUENCE........................229.5 MULTICAST RELIABILITY AND RETRIES...........................2410. SEQUENCING..................................................2411. FRAME FORMATS...............................................2511.1 MULTICAST CAPABILITIES CONTROL VECTOR......................2511.1.1 DLSW CAPABILITIES NEGATIVE RESPONSE.....................2611.2 UDP PACKETS................................................2611.3 VENDOR SPECIFIC UDP PACKETS................................2712. COMPLIANCE STATEMENT........................................2813. SECURITY CONSIDERATIONS.....................................2914. ACKNOWLEDGEMENTS............................................2915. AUTHORS' ADDRESSES..........................................3016. APPENDIX - CLARIFICATIONS TORFC 1795.......................31Bryant & Brittain            Informational                      [Page 2]

RFC 2166              APPN Implementer's Workshop             June 1997   1. Introduction   This document defines v2.0 of Data Link Switching (DLSw) in the form   of a set of enhancements toRFC 1795. These enhancements are designed   to be fully backward compatible with existingRFC 1795   implementations. As a compatible set of enhancements toRFC 1795,   this document does not replace or supersedeRFC 1795.   The bulk of these enhancements address scalability issues in DLSw   v1.0.  Reason codes have also been added to the HALT_DL and   HALT_DL_NOACK SSP messages in order to improve the diagnostic   information available.   Finally, the appendix to this document lists a number of   clarifications toRFC 1795 where the implementation experience to-   date has shown that the original RFC was ambiguous or unclear. These   clarifications should be read alongsideRFC 1795 to obtain a full   specification of the base v1.0 DLSw standard.2. HALT Reason codesRFC 1795 provides no mechanism for a DLSw to communicate to its peer   the reason for dropping a circuit.  DLSw v2.0 adds reason code fields   to the HALT_DL and HALT_DL_NOACK SSP messages to carry this   information.   The reason code is carried as 6 bytes of data after the existing SSP   header.  The format of these bytes is as shown below.   Byte       Description   0-1        Generic HALT reason code in byte normal format   2-5        Vendor-specific detailed reason code   The generic HALT reason code takes one of the following decimal   values (which are chosen to match the disconnect reason codes   specified in the DLSw MIB).   1 - Unknown error   2 - Received DISC from end-station   3 - Detected DLC error with end-station   4 - Circuit-level protocol error (e.g., pacing)   5 - Operator-initiated (mgt station or local console)   The vendor-specific detailed reason code may take any value.Bryant & Brittain            Informational                      [Page 3]

RFC 2166              APPN Implementer's Workshop             June 1997   All V2.0 DLSws must include this information on all HALT_DL and   HALT_DL_NOACK messages sent to v2.0 DLSw peers.  For backwards   compatibility withRFC 1795, DLSw V2.0 implementations must also   accept a HALT_DL or HALT_DL_NOACK message received from a DLSw peer   that does not carry this information (i.e.RFC 1795 format for these   SSP messages).3. Scope of Scalability Enhancements   The DLSw Scalability group of the AIW identified a number of   scalability issues associated with existing DLSw protocols as defined   inRFC 1795:   - AdministrationRFC 1795 implies the need to define the transport address of all     DLSw peers at each DLSw.  In highly meshed situations (such as     those often found in NetBIOS networks), the resultant     administrative burden is undesirable.   - Address ResolutionRFC 1795 defines point to point TCP (or other reliable transport     protocol) connections between DLSw peers.  When attempting to     discover the location of an unknown resource, a DLSw sends an     address resolution packet to each DLSw peer over these connections.     In highly meshed configurations, this can result in a very large     number of packets in the transport network.  Although each packet     is sent individually to each DLSw peer, they are each identical in     nature.  Thus the transport network is burdened with excessive     numbers of identical packets.  Since the transport network is most     commonly a wide area network, where bandwidth is considered a     precious resource, this packet duplication is undesirable.   - Broadcast Packets     In addition to the address resolution packets described above,RFC1795 also propagates NetBIOS broadcast packets into the transport     network.  The UI frames of NetBIOS are sent as LAN broadcast     packets.RFC 1795 propagates these packets over the point to point     transport connections to each DLSw peer.  In the same manner as     above, this creates a large number of identical packets in the     transport network, and hence is undesirable.  Since NetBIOS UI     frames can be sent by applications, it is difficult to predict or     control the rate and quantity of such traffic.  This compounds the     undesirability of the existingRFC 1795 propagation method for     these packets.Bryant & Brittain            Informational                      [Page 4]

RFC 2166              APPN Implementer's Workshop             June 1997   - TCP (transport connection) Overhead     As defined inRFC 1795, each DLSw maintains a transport connection     to its DLSw peers.  Each transport connection guarantees in order     packet delivery.   This is accomplished using acknowledgment and     sequencing algorithms which require both CPU and memory at the DLSw     endpoints in direct proportion to the number transport connections.     The DLSw Scalability group has identified two scenarios where the     number of transport connections can become significant resulting in     excessive overhead and corresponding equipment costs (memory and     CPU).   The first scenario is found in highly meshed DLSw     configurations where the number of transport connections     approximates n2 (where n is the number of DLSw peers).  This is     typically found in DLSw networks supporting NetBIOS.  The second     scenario is found  in networks  where many remote locations     communicate to few central sites.  In this case, the central sites     must support n transport connections  (where n is the number of     remote sites).    In both scenarios the resultant transport     connection overhead is considered undesirable depending upon the     value of n.   - LLC2 overheadRFC 1795 specifies that each DLSw provides local termination for     the LLC2 (SDLC or other SNA reliable data link  protocol) sessions     traversing the SSP.   Because these reliable data links provide     guaranteed in order packet delivery, the memory and CPU overhead of     maintaining these connections can also become significant.   This     is particularly undesirable in the second scenario described above,     because the number of reliable connections maintained at the     central site is the aggregate of the connections maintained at each     remote site.   It is not the intent of this document to address all the undesirable   scalability issues associated withRFC 1795.  This paper identifies   protocol enhancements toRFC 1795 using the inherent multicast   capabilities of the underlying transport network to improve the   scalability ofRFC 1795.  It is believed that the enhancements   defined, herein, address many of the issues identified above, such as   administration, address resolution, broadcast packets, and, to a   lesser extent, transport overhead.  This paper does not address LLC2   overhead.  Subsequent efforts by the AIW and/or DLSw Scalability   group may address the unresolved scalability issues.Bryant & Brittain            Informational                      [Page 5]

RFC 2166              APPN Implementer's Workshop             June 1997   While it is the intent of this paper to accommodate all transport   protocols as best as is possible, it is recognized that the multicast   capabilities of many protocols is not yet well defined, understood,   or implemented. Since TCP is the most prevalent DLSw transport   protocol in use today, the DLSw Scalability group has chosen to focus   its definition around IP based multicast services. This document only   addresses the implementation detail of IP based multicast services.   This proposal does not consider the impacts of IPv6 as this was   considered too far from widespread use at the time of writing.4. Overview of Scalability Enhancements   This paper describes the use of multicast services within the   transport network to improve the scalability of DLSw based   networking.  There are only a few main components of this proposal:   - Single session TCP connectionsRFC 1795 defines a negotiation protocol for DLSw peers to choose     either two unidirectional or one bi-directional TCP connection.     DLSws implementing the enhancements described in this document must     support and use(whenever required and possible)a single bi-     directional TCP connection between DLSw peers. That is to say that     the single tunnel negotiation support ofRFC 1795 is a prerequisite     function to this set of enhancements. Use of two unidirectional TCP     connections is only allowed (and required)for migration purposes     when communicating with DLSw peers that do not implement these     enhancements.     This document also specifies a faster method for bringing up a     single TCP connection between two DLSw peers than the negotiation     used inRFC 1795.  This faster method, detailed insection 6.2.1,     must be used where both peers are known to support DLSw v2.0.   - TCP connections on demand     Two DLSw peers using these enhancements will only establish a TCP     connection when necessary.  SSP connections to DLSw peers which do     not implement these enhancements are assumed to be established by     the means defined inRFC 1795.  DLSws implementing v2.0 utilize UDP     based transport services to send address resolution packets     (CANUREACH_ex, NETBIOS_NQ_ex, etc.).  If a positive response is     received, then a TCP connection is only established to the     associated DLSw peer if one does not already exist.     Correspondingly, TCP connections are brought down when there are no     circuits to a DLSw peer for an implementation defined period of     time.Bryant & Brittain            Informational                      [Page 6]

RFC 2166              APPN Implementer's Workshop             June 1997   - Address resolution through UDP     The main thrust of this paper is to utilize non-reliable transport     and the inherent efficiencies of multicast protocols whenever     possible and applicable to reduce network overhead.  Accordingly,     the address resolution protocols of SNA and NetBIOS are sent over     the non-reliable transport of IP, namely UDP.  In addition, IP     multicast/unicast services are used whenever address resolution     packets must be sent to multiple destinations. This avoids the need     to maintain TCP SSP connections between two DLSw peers when no     circuits are active.  CANUREACH_ex and ICANREACH_ex packets can be     sent to all the appropriate DLSw peers without the need for pre-     configured peers or pre-established TCP/IP connections.  In     addition, most multicast services (including TCP's MOSPF, DVMRP,     MIP, etc.) replicate and propagate messages only as necessary to     deliver to all multicast members.   This avoids duplication and     excessive bandwidth consumption in the transport network.     To further optimize the use of WAN resources, address resolution     responses are sent in a directed fashion (i.e., unicast) via UDP     transport whenever possible.   This avoids the need to setup or     maintain TCP connections when they are not required.  It also     avoids the bandwidth costs associated with broadcasting.     Note: It is also permitted to send some address resolution traffic     over existing TCP connections.  The conditions under which this is     permitted are detailed insection 7.   - NetBIOS broadcasts over UDP     In the same manner as above, NetBIOS broadcast packets are sent via     UDP (unicast and multicast) whenever possible and appropriate. This     avoids the need to establish TCP connections between DLSw peers     when there are no circuits required.   In addition, bandwidth in     the transport network is conserved by utilizing the efficiencies     inherent to multicast service implementation.  Details covering     identification of these packets and proper propagation methods are     described insection 10.5. Multicast Groups and Addressing   IP multicast services provides an unreliable datagram oriented   delivery service to multiple parties. Communication is accomplished   by sending and/or listening to specific 'multicast' addresses.  When   a given node sends a packet to a specific address (defined to be   within the multicast address range), the IP network (unreliably)   delivers the packet to every node listening on that address.Bryant & Brittain            Informational                      [Page 7]

RFC 2166              APPN Implementer's Workshop             June 1997   Thus, DLSws can make use of this service by simply sending and   receiving (i.e., listening for) packets on the appropriate multicast   addresses. With careful planning and implementation, networks can be   effectively partitioned and network overhead controlled by sending   and listening on different addresses groups.  It is not the intent of   this paper to define or describe the techniques by which this can be   accomplished.  It is expected that the networking industry (vendors   and end users alike) will determine the most appropriate ways to make   use of the functions provided by use of DLSw multicast transport   services.5.1 Using Multicast Groups   The multicast addressing as described above can be effectively used   to limit the amount of broadcast/multicast traffic in the network.   It is not the intent of this document to describe how individual   DLSw/SSP implementations would assign or choose group addresses.  The   specifics of how this is done and exposed to the end user is an issue   for the specific implementor.  In order to provide for multivendor   interoperability and simplicity of configuration, however, this paper   defines a single IP multicast address, 224.0.10.000, to be used as a   default DLSw multicast address.  If a given implementation chooses to   provide a default multicast address, it is recommended this address   be used.  In addition, this address should be used for both   transmitting and receiving of multicast SSP messages.  Implementation   of a default multicast address is not, however, required.5.2 DLSw Multicast Addresses   For the purpose of long term interoperability, the AIW has secured a   block of IP multicast addresses to be used with DLSw.  These   addresses are listed below:   Address Range        Purpose   --------------------------------------------------------------------   224.0.10.000         Default multicast address   224.0.10.001-191     User defined DLSw multicast groups   224.0.10.192-255     Reserved for future use by the DLSw RIG in DLSw                        enhancements6. DLSw Message Transports   With the introduction of DLSw Multicast Protocols, SSP messages are   now sent over two distinct transport mechanisms: TCP/IP connections   and UDP services.  Furthermore, the UDP datagrams can be sent to two   different kinds of IP addresses: unique IP addresses (generally   associated with a specific DLSw), and multicast IP addresses   (generally associated with a group of DLSw peers).Bryant & Brittain            Informational                      [Page 8]

RFC 2166              APPN Implementer's Workshop             June 19976.1 TCP/IP Connections on Demand   As is the case inRFC 1795, TCP/IP connections are established   between DLSw peers.  UnlikeRFC 1795, however, TCP/IP connections are   only established to carry reliable circuit data (i.e., LLC2 based   circuits).  Accordingly, a TCP/IP connection is only established to a   given DLSw peer when the first circuit to that DLSw is required   (i.e., the origin DLSw must send a CANUREACH_CS to a target DLSw peer   and there is no existing TCP connection between the two).  In   addition, the TCP/IP connection is brought down an implementation   defined amount of time after the last active (not pending) circuit   has terminated.  In this way, the overhead associated with   maintaining TCP connections is minimized.   With the advent of TCP connections on demand, the activation and   deactivation of TCP connections becomes a normal occurrence as   opposed to the exception event it constitutes inRFC 1795.  For this   reason, it is recommended that implementations carefully consider the   value of SNMP traps for this condition.6.1.1 TCP Connections on Demand Race Conditions   Non-circuit based SSP packetsn (e.g.,CANUREACH_ex, etc.) may still be   sent/received over TCP connections after all circuits have been   terminated.  Taking this into account implementations should still   gracefully terminate these TCP connections once the connection is no   longer supporting circuits.  This may require an implementation to   retransmit request frames over UDP when no response to a TCP based   unicast request is received and the TCP connection is brought down.   This is not required in the case of multicast requests as these are   received over the multicast transport mechanism.6.2 Single Session TCP/IP ConnectionsRFC 1795 defines the use of two unidirectional TCP/IP sessions   between any pair of DLSw peers using read port number 2065 and write   port number 2067.  Additionally,RFC 1795 allows for implementations   to optionally use only one bi-directional TCP/IP session.  Using one   TCP/IP session between DLSw peers is believed to significantly   improve the performance and scalability of DLSw protocols.   Performance is improved because TCP/IP acknowledgments are much more   likely to be piggy-backed on real data when TCP/IP sessions are used   bi-directionally.  Scalability is improved because fewer TCP control   blocks, state machines, and associated message buffers are required.   For these reasons, the DLSw enhancements defined in this paper   REQUIRE the use of single session TCP/IP sessions.Bryant & Brittain            Informational                      [Page 9]

RFC 2166              APPN Implementer's Workshop             June 1997   Accordingly, DLSws implementing these enhancements must carry the TCP   Connections Control Vector in their Capabilities Exchange.  In   addition, the TCP Connections Control Vector must indicate support   for 1 connection.6.2.1 Expedited Single Session TCP/IP Connections   InRFC 1795, single session TCP/IP connections are accomplished by   first establishing two uni-directional TCP connections, exchanging   capabilities, and then bringing down one of the connections.  In   order to avoid the unnecessary flows and time delays associated with   this process, a new single session bi-directional TCP/IP connection   establishment algorithm is defined.6.2.1.1 TCP Port Numbers   DLSws implementing these enhancements will use a TCP destination port   of 2067 (as opposed toRFC 1795 which uses 2065) for single session   TCP connections.  The source port will be a random port number using   the established TCP norms which exclude the possibility of either   2065 or 2067.6.2.1.2 TCP Connection Setup   DLSw peers implementing these enhancements will establish a single   session TCP connection whenever the associated peer is known to   support this capability.  To do this, the initiating DLSw simply   sends a TCP setup request to destination port 2067.  The receiving   DLSw responds accordingly and the TCP three way handshake ensues.   Once this handshake has completed, each DLSw is notified and the DLSw   capabilities exchange ensues.  As inRFC 1795, no flows may take   place until the capabilities exchange completes.6.2.1.3 Single Session Setup Race Conditions   The new expedited single session setup procedure described above   opens up the possibility of a race condition that occurs when two   DLSw peers attempt to setup single session TCP connections to each   other at the same time.  To avoid the establishment of two TCP   connections, the following rules are applied when establishing   expedited single session TCP connections:   1.If an inbound TCP connect indication is received on port 2067 while     an outbound TCP connect request (on port 2067) to the same DLSw (IP     address) is in process or outstanding, the DLSw with the higher IP     address will close or reject the connection from the DLSw with the     lower IP address.Bryant & Brittain            Informational                     [Page 10]

RFC 2166              APPN Implementer's Workshop             June 1997   2.To further expedite the process, the DLSw with the lower IP address     may choose (implementation option) to close its connection request     to the DLSw with the higher address when this condition is     detected.   3.If the DLSw with the lower IP address has already sent its     capabilities exchange request on its connection to the DLSw with     the higher IP address, it must resend its capabilities exchange     request over the remaining TCP connection from its DLSw peer (with     the higher IP address).   4.The DLSw with the higher IP address must ignore any capabilities     exchange request received over the TCP connection to be terminated     (the one from the DLSw with the lower IP address).6.2.1.4 TCP Connections with Non-Multicast Capable DLSw peers   During periods of migration, it is possible that TCP connections   between multicast capable and non-multicast capable DLSw peers will   occur.  It is also possible that multicast capable DLSws may attempt   to establish TCP connections with partners of unknown capabilities   (e.g., statically defined peers).  To handle these conditions the   following additional rules apply to expedited single session TCP   connection setup:   1.If the capability of a DLSw peer is not known, an implementation     may choose to send the initial TCP connect request to either port     2067 (expedited single session setup) or port 2065 (standardRFC1795 TCP setup).   2.If a multicast capable DLSw receives an inbound TCP connect request     on port 2065 while processing an outbound request on 2067 to the     same DLSw, the sending DLSw will terminate its 2067 request and     respond as defined inRFC 1795 with an outbound 2065 request     (standardRFC 1795 TCP setup).   3.If a multicast capable DLSw receives an indication that the DLSw     peer is not multicast capable (the port 2067 setup request times     out or a port not recognized rejection is received), it will send     another connection request using port 2065 and the standardRFC1795 session setup protocol.Bryant & Brittain            Informational                     [Page 11]

RFC 2166              APPN Implementer's Workshop             June 19976.3 UDP Datagrams   As mentioned above, UDP datagrams can be sent two different ways:   unicast (e.g., sent to a single unique IP address) or multicast   (i.e., sent to an IP multicast address).  Throughout this document,   the term UDP datagram will be used to refer to SSP messages sent over   UDP, while unicast and multicast SSP messages will refer to the   specific type/method of UDP packet transport.  In either case,   standard UDP services are used to transport these packets.  In order   to properly parse the inbound UDP packets and deliver them to the SSP   state machines, all DLSw UDP packets will use the destination port of   2067.   In addition, the checksum function of UDP remains optional for DLSw   SSP messages.  It is believed that the inherent CRC capabilities of   all data link transports will adequately protect SSP packets during   transmission.  And the incremental exposure to intermediate nodal   data corruption is negligible.  For further information on UDP packet   formats see the �Frame Formats� section.6.3.1 Vendor Specific Functions over UDP   In order to accommodate vendor specific capabilities over UDP   transport, a new SSP packet format has been defined.  This new packet   format is required because message traffic of this type is not   necessarily preceded by a capabilities exchange.  Accordingly, DLSw's   wishing to invoke a vendor specific function may send out this new   SSP packet format over UDP.   Because this packet can be sent over TCP connections and non-   multicast capable nodes may not be able to recognize it,   implementations may only send this packet over TCP to DLSw peers   known to understand this packet format (i.e., multicast capable).  To   avoid this situation in the future, DLSws implementing these   enhancements must ignore SSP packets with an unrecognized DLSw   version number in the range of x'31' to x'3F'.  Further information   and the precise format for this new packet type is described below in   the �Frame Formats� section.6.3.2 Unicast UDP Datagrams   Generically speaking, a unicast UDP datagram is utilized whenever an   SSP message (not requiring reliable transport) must be sent to a   unique set (not all) of DLSw peers.  This avoids the overhead of   having to establish and maintain TCP connections when they are not   required for reliable data transport.Bryant & Brittain            Informational                     [Page 12]

RFC 2166              APPN Implementer's Workshop             June 1997   A typical example of when unicast UDP might be used would be an   ICANREACH_ex response from a peer DLSw (with which no TCP connection   currently exists).  In this case, the sending DLSw knows the IP   address of the intended receiver and can simply send the response via   unicast UDP.  In addition, there are a number of NetBIOS cases where   unicast UDP is used to handle UI frames directed to a specific DLSw   (e.g., NetBIOS STATUS_RESPONSE).  Further detail is provided in the   NetBIOS section of this document.6.3.3 Multicast UDP Datagrams   In a broad sense, multicast UDP datagrams are used whenever a given   SSP message must be sent to multiple DLSw peers.  In the case of SNA,   this is primarily the CANUREACH_ex packets.  In the case of NetBIOS,   multicast datagrams are used to send broadcast UI frames such as   NetBIOS user datagrams and broadcast datagrams.   Note, however, it is sometimes possible to avoid broadcasting certain   NetBIOS frames that would otherwise be broadcast in the LAN   environment.  This is typically accomplished using name caching   techniques not described in this paper.  In cases of this type when a   single destination DLSw can be determined, unicast transport can be   used to send the 'broadcast' NetBIOS frame to a single destination.   A more detailed listing of NetBIOS SSP packets and transport methods   can be found in the NetBIOS section of this document.6.4 Unicast UDP Datagrams in Lieu of IP Multicast   Because the use of IP multicast services is actually a function of IP   itself and not DLSw proper, it is possible for implementations to   simply make use of the UDP transport mechanisms described in this   paper without making direct use of the IP multicast function.  While   this is not considered to be as efficient as using multicast   transport mechanisms, this practice is not explicitly prohibited.   Implementations which choose to make use of UDP transport in this   manner must first know the IP address of all the potential target   DLSw peers and send individual unicast packets to each.  How this   information is obtained and/or maintained is outside the scope of   this paper.   As a matter of compliance, implementers need not send SSP packets   outbound over UDP as there are some conditions where this may not be   necessary or desirable.  It is, however, required that implementers   provide an option to receive SSP packets over UDP.Bryant & Brittain            Informational                     [Page 13]

RFC 2166              APPN Implementer's Workshop             June 19976.5 TCP Transport   Despite the addition of UDP based packet transport, TCP remains the   fundamental form of communications between DLSw peers.  In   particular, TCP is still used to carry all LLC2 based circuit data.   Throughout this document wherever UDP unicast (not multicast) is   discussed, the reader should be aware that TCP may be used instead.   Moreover, it is strongly recommended that TCP be used in preference   to UDP whenever a TCP connection to the destination already exists.   Implementations, however, should be prepared to receive SSP packets   from either transport (TCP or UDP).7. Migration Support   It is anticipated that some networks will experience a transition   stage where bothRFC 1795 (referred to as 'non-multicast' DLSws) and   It will be important for these two DLSw node types to interoperate   and thus the following accommodations for non-multicast DLSws are   required:7.1 Capabilities Exchange   In order to guarantee both backward and forward capability, DLSws   which implement these multicast enhancements will carry a �Multicast   Capabilities� Control Vector in their capabilities exchange (seeRFC1795 for an explanation of capabilities exchange protocols).   Presence of the Multicast Capabilities control vector indicates   support for the protocols defined in this document on a per DLSw peer   basis.  Conversely, lack of the Multicast Capabilities control vector   indicates no support for these extensions on a per DLSw peer basis.   Additionally, nodes implementing these enhancement will carry a   modified DLSw Version control vector (x'82') indicating support for   version 2 release 0.   Lastly, presence of these control vectors mandates a TCP Connections   Control Vector indicating support for 1 TCP connection in the same   Capabilities exchange.   If a multicast capable DLSw receives a Capabilities Exchange CV that   includes the Multicast Capabilites CV but does not meet the above   criteria, it must reject the capabilities exchange by sending a   negative response as described insection 11.1.1.Bryant & Brittain            Informational                     [Page 14]

RFC 2166              APPN Implementer's Workshop             June 19977.2 Connecting to Non-Multicast Capable Nodes   It is assumed that TCP connections to DLSw peers which do not support   multicast services are established by some means outside the scope of   this paper (i.e., non-multicast partner addresses are configured by   the customer).  TCP connections must be established and maintained to   down level nodes in the exact same manner asRFC 1795 requires,   establishes, and maintains them.  And because non-multicast DLSw   peers will not indicate support for multicast services in their   capabilities exchange, a multicast capable DLSw will know all its   non-multicast peers.7.3 Communicating with Multicast Capable Nodes   Because non-multicast nodes will not receive SSP frames via UDP   (unicast or multicast) transmission, SSP messages to these DLSw peers   must be sent over TCP connections.  Therefore, nodes which implement   the multicast protocol enhancements must keep track of which DLSw   peers do not support multicast extensions (as indicated in the   capabilities exchange).  When a given packet is sent out via   multicast services, it must also be sent over multicast UDP(to reach   other multicast capable DLSw peers) and over the TCP connection to   each non-multicast node.  And although the multicast service requires   periodic retransmissions (for reliability reasons), this is not the   case with TCP connections to non-multicast nodes. Therefore,   multicast capable DLSws should not resend SSP packets over TCP   transport connection but rather, rely upon TCP to recover any lost   packets. Furthermore, communications with non-multicast nodes should   be in exact compliance withRFC 1795 protocols.   When sending a unicast UDP message, it is important to know that the   destination DLSw supports multicast services.  This knowledge can be   obtained from previous TCP connections/capabilities exchanges or   inferred from a previously received UDP message, but how this   information is obtained is outside the scope of this paper.  In the   latter case, if the DLSw is non-multicast, then there would be a TCP   connection to it and it would be known to be non-multicast.  If it is   multicast capable and a TCP connection is in existence, then its   level is known (via the prior capabilities exchange).  If its   capabilities are not known and there is not an existing TCP   connection, then it can be implied to be multicast capable by virtue   of a cached entry but no active TCP connection (e.g., TCP peer on   demand support).  This inference, however, could be erroneous in   cases where the TCP connection (to a non-multicast DLSw) has failed   for some reason. But normal UDP based unicast verification mechanisms   will detect no active path to the destination and circuit setup will   proceed correctly (i.e., succeed or fail in accordance with true   connectivity).Bryant & Brittain            Informational                     [Page 15]

RFC 2166              APPN Implementer's Workshop             June 19978. SNA Support   Note: This paper does not attempt to address the unique issues   presented by SNA/HPR and its non-ERP data links   In SNA protocols the generalized packet sequence of interest is a   test frame exchange followed by an XID exchange.  In all cases, DLSw   uses the CANUREACH_ex and ICANREACH_ex SSP packets to complete   address resolution and circuit establishment.  The following table   describes how these packets are transported via UDP between two   multicast capable DLSw peers.                                              Transport     Message Event          Action            Mechanism         Retry   --------------------------------------------------------------------   TEST                 SEND CANUREACH_ex    Multicast/Unicast   Yes   TEST RESPONSE        SEND ICANREACH_ex       Unicast          No   The following paragraphs provide more detail on how UDP transport and   multicast protocol enhancements are used to establish SNA data links.8.1 Address Resolution   When a DLSw receives an incoming test frame from an attached data   link, the assumption is that this is an exploratory frame in   preparation for an XID exchange and link activation.  The DLSw must   determine a correlation between the destination LSAP (mac and sap   pairing) and some other DLSw in the transport network.  This paper   generically refers to this process as �address resolution�.8.2 Explorer frames   Address resolution messages may be sent over a TCP connection to a   multicast capable DLSw peer if such a connection already exists in   order that they take advantage of the guaranteed delivery of TCP.   This is particularly recommended for ICANREACH_ex frames.Bryant & Brittain            Informational                     [Page 16]

RFC 2166              APPN Implementer's Workshop             June 19978.3 Circuit Setup   Circuit setup is accomplished in the same manner as described inRFC1795.  More specifically, CANUREACH_cs, ICANREACH_cs, REACH_ACK,   XIDFRAME, etc.  are all sent over the TCP connection to the   appropriate DLSw.  This, of course, assumes the existence of a TCP   connection between the DLSw peers.  If the sending DLSw (sending a   CANUREACH_cs ) detects no active TCP connection to the DLSw peer,   then a TCP connection setup is initiated and the packet sent.  All   other circuit setup (and takedown) related sequences are now passed   over the TCP connection.8.4 Example SNA SSP Message Sequence   The following diagram provides an example sequence of flows   associated with an SNA LLC circuit setup.  All flows and states   described below correspond precisely with those defined inRFC 1795.   The only exception is the addition of a TCP connection setup and DLSw   capabilities exchange that occurs when the origin DLSw must send a   CANUREACH_CS and no TCP connection yet exists to the target DLSw   peer.Bryant & Brittain            Informational                     [Page 17]

RFC 2166              APPN Implementer's Workshop             June 1997 ======                            ___                           ====== |    |        ---------        __/   \__       ---------        |    | |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    | ======        |   |   |      <  Network  >     |   |   |        ======/______\       ---------       \__     __/      ---------       /______\ Origin       Origin DLSw         \___/        Target DLSw      Target Station        partner                          partner        Station              disconnected                    disconnectedTEST_cmd      DLC_RESOLVE_C    CANUREACH_ex               TEST_cmd----------->  ----------->     ----------->               ---------->   TEST_rsp   DLC_RESOLVE_R    ICANREACH_ex                 TEST_rsp <---------    <-----------   <-----------                <----------null XID      DLC_XID----------->  ----------->              circuit_start                           TCP Connection Setup                             <------------->                            Capabilities Exch.                             <------------->                             CANUREACH_cs    DLC_START_DL                             ----------->    ----------->                                              resolve_pending                             ICANREACH_cs    DLC_DL_STARTED                             <-----------    <-------------           circuit_established                circuit_pending                              REACH_ACK                              ----------->  circuit_established                               XIDFRAME         DLC_XID       null XID                               ----------->     --------->    -------->        XID        DLC_XID      XIDFRAME         DLC_XID          XID  <--------   <-----------   <-----------    <-----------    <--------    XIDs         DLC_XIDs      XIDFRAMEs        DLC_XIDs         XIDs<---------->  <---------->   <------------>  <------------>  <--------->SABME         DLC_CONTACTED   CONTACT         DLC_CONTACT     SABME----------->  ----------->     ----------->    ----------->    -------->              connect_pending                 contact_pending          UA     DLC_CONTACT     CONTACTED    DLC_CONTACTED          UA  <---------   <-----------  <-----------    <-----------    <--------                  connected                      connectedIFRAMEs       DLC_INFOs        IFRAMEs        DLC_INFOs       IFRAMEs<---------->  <----------->  <------------>  <------------>  <-------->Bryant & Brittain            Informational                     [Page 18]

RFC 2166              APPN Implementer's Workshop             June 19978.5 UDP Reliability   It is important to note, that UDP (unicast and multicast)transport   services do not provide a reliable means of delivery.  ExistingRFC1795 protocols guarantee the delivery (or failure notification) of   CANUREACH_ex and ICANREACH_ex messages.  UDP will not provide the   same level of reliability.  It is, therefore, possible that these   messages may be lost in the network and (CANUREACH_ex) retries will   be necessary.8.5.1 Retries   Test Frames are generally initiated by end stations every few   seconds.  Many existingRFC 1795 DLSw implementations take advantage   of the reliable SSP TCP connections and filter out end station Test   frame retries when a CANUREACH_ex is outstanding.  Given the   unreliable nature of UDP transport for these messages, however, this   filtering technique may not be advisable.  NeitherRFC 1795 nor this   paper address this issue specifically.  It is simply noted that the   UDP transport mechanism is unreliable and implementations should take   this into account when determining a scheme for Test frame filtering   and explorer retries.  Accordingly, the �Retry� section in the table   above only serves as an indicator of situations where retries may be   desirable and/or necessary, but does not imply any requirement to   implement retries. Also note, that retry logic only applies to non-   response type packets.  It is not appropriate to retry response type   SSP packets (i.e., ICANREACH_ex) as there is no way of knowing if the   original response was ever received (and whether retry is necessary).   So in the case of SNA, CANUREACH_ex messages may need retry logic and   ICANREACH_ex messages do not.Bryant & Brittain            Informational                     [Page 19]

RFC 2166              APPN Implementer's Workshop             June 19979. NetBIOS   With the introduction of DLSw Multicast transport, all multicast   NetBIOS UI frames are carried outside the TCP connections between   DLSw peers (i.e., via UDP datagrams).  The following table defines   the various NetBIOS UI frames and how they are transported via UDP   between multicast capable DLSw peers:                                              TransportMessage Event            Action               Mechanism           Retry---------------------------------------------------------------------------ADD_GROUP_NAME_QUERY     SEND DATAFRAME       Multicast            YesADD_NAME_QUERY           SEND NETBIOS_ANQ     Multicast            YesADD_NAME_RESPONSE        SEND NETBIOS_ANR     Unicast1             NoNAME_IN_CONFLICT         SEND DATAFRAME       Multicast            NoSTATUS_QUERY             SEND DATAFRAME       Unicast/Multicast(2) YesSTATUS_RESPONSE          SEND DATAFRAME       Multicast(5)         NoTERMINATE_TRACE (x'07')  SEND DATAFRAME       Multicast            NoTERMINATE_TRACE (X'13')  SEND DATAFRAME       Multicast            NoDATAGRAM                 SEND DATAFRAME(3)    Unicast/Multicast(2) NoDATAGRAM_BROADCAST       SEND DATAFRAME       Multicast            NoNAME_QUERY               SEND NETBIOS_NQ_ex   Unicast/Multicast(2) YesNAME_RECOGNIZED          SEND NETBIOS_NR_ex   Unicast(4)           No   Note 1:   Upon receipt of an ADD_NAME_RESPONSE frame, a NETBIOS_ANR SSP message   is returned via unicast UDP to the originator of the NETBIOS_ANQ   message.   Note 2:   These frames may be sent either Unicast or Multicast UDP.  If the   implementation has sufficient cached information to resolve the   NetBIOS datagram destination to a single DLSw peer, then the SSP   message can and should be sent via unicast.  If the cache does not   contain such information then the resultant SSP message must be sent   via multicast UDP.   Note 3:   Note that this frame is sent as either a DATAFRAME or DGRMFRAME   according to the rules as specified inRFC 1795.   Note 4:   Upon receipt of a NAME_RECOGNIZED frame, a NETBIOS_NR_ex SSP message   is returned via unicast UDP to the originator of the NETBIOS_NQ_ex   frame.  Notice that although the NAME_RECOGNIZED frame is sent as an   All Routes Explorer (source routing LANs only) frame, the resultant   NETBIOS_NR_ex is sent as a unicast UDP directed response to the DLSw   originating the NETBIOS_NQ_ex.  This is because there is no value inBryant & Brittain            Informational                     [Page 20]

RFC 2166              APPN Implementer's Workshop             June 1997   sending NETBIOS_NR_ex as a multicast packet in the transport network.   The use of ARE transmission in the LAN environment is to accomplish   some form of load sharing in the source routed LAN environment.   Since no analogous capability exists in the (TCP) transport network,   it is not necessary to emulate this function there.  It is important   to note, however, that when converting a received NETBIOS_NR_ex to a   NAME_RECOGNIZED frame, the DLSw sends the NAME_RECOGNIZED frame onto   the LAN as an ARE (source routing LANs only) frame.  This preserves   the source route load sharing in the LAN environments on either side   of the DLSw transport network.   Note 5:   AlthoughRFC 1795 does not attempt to optimize STATUS_RESPONSE   processing, it is possible to send a STATUS_RESPONSE as a unicast UDP   response.  To do this, DLSws receiving an incoming SSP DATAFRAME   containing a STATUS_QUERY must remember the originating DLSw's   address and STATUS_QUERY correlator.  Then upon receipt of the   corresponding STATUS_RESPONSE, the DLSw responds via unicast UDP to   the originating DLSw(using the remembered originating DLSw address).   Note, however, that in order to determine whether a frame is a   STATUS_QUERY, all multicast capable DLSw implementations will need to   parse the contents of frames that would normally be sent as DATAFRAME   SSP messages.   All other multicast frames are sent into the transport network using   the appropriate multicast group address.9.1 Address Resolution   Typical NetBIOS circuit setup using multicast services is essentially   the same as specified inRFC 1795.  The only significant difference   is that NETBIOS_NQ_ex messages are sent via UDP to the appropriate   unicast/multicast IP address and the NETBIOS_NR_ex is sent via   unicast UDP to the DLSw originating the NETBIOS_NQ_ex.9.2 Explorer Frames   Address resolution messages may be sent over a TCP connection to a   multicast capable partner if such a connection already exists in   order that they take advantage of the guaranteed delivery of TCP.   This is particularly recommended for NETBIOS_NR_ex frames.9.3 Circuit Setup   Following successful address resolution, a NetBIOS end station   typically sends a SABME frame to initiate a formal LLC2 connection.   Receipt of this message results in normal circuit setup as described   inRFC 1795 (and the SNA case described above).  That is to say thatBryant & Brittain            Informational                     [Page 21]

RFC 2166              APPN Implementer's Workshop             June 1997   the CANUREACH_cs messages etc. are sent on a TCP connection to the   appropriate DLSw peer.  If no such TCP connection exists, one is   brought up.9.4 Example NetBIOS SSP Message Sequence   The following diagram provides an example sequence of flows   associated with a NetBIOS circuit setup.  All flows and states   described below correspond precisely with those defined inRFC 1795.   The only exception is the addition of a TCP connection setup and DLSw   capabilities exchange that occurs when the origin DLSw must send a   CANUREACH_cs and no TCP connection yet exists to the target DLSw   peer.Bryant & Brittain            Informational                     [Page 22]

RFC 2166              APPN Implementer's Workshop             June 1997 ======                            ___                           ====== |    |        ---------        __/   \__       ---------        |    | |    |      __|  _|_  |__     /   IP    \    __|  _|_  |__      |    | ======        |   |   |      <  Network  >     |   |   |        ======/______\       ---------       \__     __/      ---------       /______\ Origin       Origin DLSw         \___/        Target DLSw      Target Station        partner                          partner        Station              disconnected                     disconnectedNAME_QUERY    DLC_DGRM        NETBIOS_NQ_ex   DLC_DGRM       NAME_QUERY----------->  ----------->    ----------->    ----------->   --------->  NAME_RECOG    DLC_DGRM      NETBIOS_NR_ex     DLC_DGRM    NAME_RECOG<-----------  <------------   <-----------    <-----------  <---------SABME         DLC_CONTACTED----------->  ----------->               circuit_start                            TCP Connection Setup                              <------------->                            Capabilities Exch.                              <------------->                              CANUREACH_cs    DLC_START_DL                              ----------->    ----------->                                             resolve_pending                              ICANREACH_cs    DLC_DL_STARTED                              <-----------    <-----------            circuit_established                circuit_pending                              REACH_ACK                              ----------->   circuit_established                              CONTACT         DLC_CONTACT     SABME                              ----------->    ----------->    --------->             connect_pending                   contact_pending          UA   DLC_CONTACT       CONTACTED    DLC_CONTACTED           UA  <---------   <-----------   <-----------    <-----------    <---------                connected                        connected   IFRAMEs       DLC_INFOs       IFRAMEs        DLC_INFOs       IFRAMEs<------------> <------------> <------------>  <------------>  <-------->Bryant & Brittain            Informational                     [Page 23]

RFC 2166              APPN Implementer's Workshop             June 19979.5 Multicast Reliability and Retries   In the case of NetBIOS, many more packets are being sent via UDP than   in the SNA case.  Therefore, the exposure to the unreliability of   these services is greater than that of SNA. For address resolution   frames, such as NAME_QUERY, etc., successful message delivery is an   issue.  In addition, the retry interval for these types of frames is   considerably shorter than SNA with the defaults being: retry interval   = 0.5 seconds and retry count = 6.  Once again, neitherRFC 1795 nor   this paper attempt to address the issue of LAN frame filtering   optimizations. This issue is outside the scope of this paper.  But it   is important for implementers to recognize the inherent unreliable   nature of UDP transport services for frames of this type and to   implement retry schemes that are appropriate to successful operation.   Again, it is only appropriate to consider retry of non-response type   packets.  Specific NetBIOS messages where successful message delivery   is considered important (and retries possibly necessary) are   indicated in the table above with an �Yes� in the �Retry� column.10. Sequencing   It is important to note that UDP transport services do not provide   guaranteed packet sequencing like TCP does forRFC 1795.  In a steady   state network, in order packet delivery can be generally assumed.   But in the presence of network outages and topology changes, packets   may take alternate routes to the destination and arrive out of   sequence with respect to their original transmission order.  For SNA   address resolution this should not be a problem given that there is   no inherent significance to the order of packets being transmitted   via UDP.   In the case of NetBIOS, in order delivery is not guaranteed in the   normal case (e.g., LANs).  This is because LAN broadcasting   mechanisms suffer the same problems of packet sequencing as do WAN   multicast mechanisms.  But one might argue the greater likelihood of   topology related changes in the WAN environment and thus a greater   level of concern.  The vast majority of NetBIOS UI frames (being   handled via UDP and Multicast) have correlator values and do not rely   upon packet sequencing.Bryant & Brittain            Informational                     [Page 24]

RFC 2166              APPN Implementer's Workshop             June 1997   The only NetBIOS frames of special note would be: DATAGRAM,   DATAGRAM_BROADCAST, and STATUS_RESPONSE.  In the case of DATAGRAM and   DATAGRAM_BROADCAST it is generally assumed that datagrams do not   provide any guarantee of in order packet delivery.  Thus applications   utilizing this NetBIOS service are assumed to have no dependency on   in order packet delivery.  STATUS_RESPONSE can actually be sent as a   sequence of STATUS_RESPONSE messages.  In cases where this occurs,   the STATUS_RESPONSE will be exposed to potential out of sequence   delivery.11. Frame Formats11.1 Multicast Capabilities Control Vector   This control vector is carried in the Capabilities Exchange Request.   When present, it must be accompanied by a TCP Connections Control   Vector indicating support for 1 TCP/IP connection and a DLSw version   CV indicating support for version 2 release 0.  Like all control   vectors in this SSP message, it is an LT structure.  LT structures   consist of a 1 byte length field followed by a 1 byte type field.   The length field includes itself as well as the type and data fields.   Byte Bit    Description   0   0-7    Length, in binary, of the Multicast Capabilities control   vector (inclusive of this byte, always 3)   1   0-7    Type:  x'8C'   2   0-7    Multicast Version Number:               A binary numerical representation of the level of               multicast services provided.  The protocols as identified               in this document constitute version one.   Accordingly,               x'01' is encoded in this field.  Any subsequent version               must provide the services of all previous versions.   The intended use of this CV for Multicast support is to detect when   the multicast CANUREACH_ex flows will suffice between partners.  If   this CV is present in a CAPEX from a partner, that partner is also   multicast capable and therefore does not need to receive CANUREACH_ex   messages over the TCP link that exists between them (and there must   be one or else the CAPEX would not have flowed) because it will   receive the multicast copies.   A DLSw includes this control vector on a peer-wise basis.  That is to   say, that a DLSw implementation may support multicast services but   choose not to indicate this in its capabilities exchange to all   partners. Therefore, a DLSw may include this capabilities CV with   some DLSw peers and not with others.  Not including this vector canBryant & Brittain            Informational                     [Page 25]

RFC 2166              APPN Implementer's Workshop             June 1997   be used to force TCP connections with other multicast capable nodes   and degrade to normalRFC 1795 operations.  This capability is   allowed to provide greater network design flexibility.   When sending this capabilities exchange control vector, the following   rules apply:         Required                       Allowed @    ID   @ Startup  Length  Repeatable* Runtime  Order  Content   ====  =========  ======  ==========  =======  =====  ===============   0x8C     Y        0x03        N         N       5+    Multicast                                                         Capabilities*Note: "Repeatable" means a Control Vector is repeatable within a single   message.11.1.1 DLSw Capabilities Negative Response   DLSws that implement these enhancements must provide support for both   multicast version 1 and single TCP connections.  This means that the   capabilities exchange request must contain a DLSw Version ID control   vector (x'82') indicating support for version 2 release 0, a   Multicast Capabilities control vector, and the TCP Connections   control vector indicating support for 1 TCP connection within a given   capabilities exchange. If a multicast capable DLSw receives a   capabilities exchange with a Multicast Capabilities, but either a   missing or inappropriate TCP Connections CV (i.e., connections not   equal to one)or DLSw Version control vector, then the inbound   capabilities exchange should be rejected with a DLSw capabilities   exchange negative response (seeRFC 1795) using the following new   reason code:   x'000D'Inconsistent DLSw Version,  Multicast Capabilities, and TCP   Connections CV received on the inbound Capabilities exchange11.2 UDP Packets   SSP frame formats are defined inRFC 1795.  Multicast protocol   enhancements do not change these formats in any way.  The multicast   protocol enhancements, however, do introduce the notion of SSP packet   transport via UDP.  In this case, standard UDP services and headers   are used to transport SSP packets.Bryant & Brittain            Informational                     [Page 26]

RFC 2166              APPN Implementer's Workshop             June 1997   The following section describes the proper UDP header for DLSw SSP   packets.   Byte       Description   0-1        Source Port address               In DLSw multicast protocols, this particular field is not               relevant.  It may be set to any value.   2-3        Destination Port address               Always set to 2067   4-5        Length   6-7        Checksum               The standard UDP checksum value.  Use of the UDP checksum               function is optional.11.3 Vendor Specific UDP Packets   In order to accommodate the addition of vendor specific functions   over UDP transport, a new SSP packet header has been defined. As   described above, it is possible to receive these packets over both   UDP and TCP (when a TCP connection already exists).   It is important to note that the first 4 bytes of this packet match   the format of existingRFC 1795 SSP packets.  This is done so that   implementations in the future can expect that the DLSw �Version   Number� is found in byte one and that the following bytes describe   the packet header and message length.   Furthermore, to assist DLSws in detecting 'out-of-sync' conditions   whereby packet or parsing errors lead to improper length   interpretations in the TCP datastream, valid DLSw version numbers   will be restricted to the range of x'31' through x'3F' inclusive.   DLSw multicast Vendor Specific frame format differs from existingRFC1795 packets in the following ways:   1) The �Version Number� field is set to x'32' (ASCII '2') and now   represents a packet type more than a DLSw version number.  More   precisely, it is permitted and expected that DLSw may send packets of   both types (x'31' and x'32').   2) The message length field is followed by a new 3 byte field that   contains the specific vendor's IEEE Organizationally Unique   Identifier (OUI).Bryant & Brittain            Informational                     [Page 27]

RFC 2166              APPN Implementer's Workshop             June 1997   3) All fields following the new OUI field are arbitrary and defined   by implementers.   The following section defines this new packet format:   Byte       Description   0          DLSw packet type, Always set to x'32'   1          Header Length               Always 7 or higher   2-3        Message Length               Number of bytes within the data field following the               header.   4-6        Vendor specific OUI               The IEEE Organizationally Unique Identifier (OUI)               associated with the vendor specific function in               question.   7-n        Defined by the OUI owner12. Compliance Statement   All DLSw v2.0 implementations must support   - Halt reason codes   - the Multicast Capabilities control vector in the DLSw     capabilities exchanges messages.   The presence of the Multicast Capabilities control vector in a   capabilities exchange message implies that the DLSw that issued the   message supports all the scalability enhancements defined in this   document.  These are:   - use of multicast IP (if it is available in the underlying network)   - use of 2067 as the destination port for UDP and TCP connections   - single tunnel bring-up of TCP connections to DLSw peers   - peer-on-demand   - quiet ignore of all unrecognized vendor-specific UDP/TCP packets.Bryant & Brittain            Informational                     [Page 28]

RFC 2166              APPN Implementer's Workshop             June 199713. Security Considerations   This document addresses only scalability problems inRFC 1795.  No   attempt is made to define any additional security mechanisms.  Note   that, as inRFC 1795, a given implementation may still choose to   refuse TCP connections from DLSw peers that have not been configured   by the user.  The mechanism by which the user configures this   behavior is not specified in this document.14. Acknowledgements   This specification was developed in the DLSw Related Interest Group   (RIG) of the APPN Implementers Workshop.  This RIG is chaired by   Louise Herndon- Wells (lhwells@cup.portal.com) and edited by Paul   Brittain (pjb@datcon.co.uk).   Much of the work on the scalability enhancements for v2.0 was   developed by Dave Bryant (3COM).   Other significant contributors to this document include:   Frank Bordonaro (Cisco)   Jon Houghton (IBM)   Steve Klein (IBM)   Ravi Periasamy (Cisco)   Mike Redden (Proteon)   Doug Wolff (3COM)   Many thanks also to all those who participated in the DLSw RIG   sessions and mail exploder discussions.   If you would like to participate in future DLSw discussions, please   subscribe to the DLSw RIG mailing lists by sending a mail to   majordomo@raleigh.ibm.com specifying 'subscribe aiw-dlsw' as the body   of the message.   If you would like further information on the activities of the AIW,   please refer to the AIW web site athttp://www.raleigh.ibm.com/app/aiwhome.htm.Bryant & Brittain            Informational                     [Page 29]

RFC 2166              APPN Implementer's Workshop             June 199715. Authors' Addresses   The editor of this document is:         Paul Brittain         Data Connection Ltd         Windsor House         Pepper Street         Chester         CH1 1DF         UK         tel:   +44 1244 313440         email: pjb@datcon.co.uk   Much of the work on this document was created by:         David Bryant         3Com Corporation         5400 Bayfront Plaza MS 2418         Santa Clara, CA 95052         tel:   (408) 764-5272         email: David_Bryant@3mail.3com.comBryant & Brittain            Informational                     [Page 30]

RFC 2166              APPN Implementer's Workshop             June 199716. Appendix - Clarifications toRFC 1795   This appendix attempts to clarify the areas ofRFC 1795 that have   proven to be ambiguous or hard to understand in the implementation   experience to- date.  These clarifications should be read in   conjunction withRFC 1795 as this document does not reproduce the   complete text of that RFC.   The clarifications are ordered by the section number inRFC 1795 to   which they apply.  Where one point applies to more than one place inRFC 1795, it is listed below by the first relevant section.   If any implementers encounter further difficulties in understandingRFC 1795 or these clarifications, they are encouraged to query the   DLSw mail exploder (seesection 1.1) for assistance.   3. Send Port   It is not permitted for a DLSw implementation to check that the send   port used by a partner is 2067.  All implementations must accept   connections from partners that do not use this port.   3   TCP Tunnel bringup   The paragraph below the figure should read as follows:      Each Data Link Switch will maintain a list of DLSw capable routers      and their status (active/inactive). Before Data Link Switching can      occur between two routers, they must establish two TCP connections      between them. These connections are treated as half duplex data      pipes. A Data Link Switch will listen for incoming connections on      its Read Port (2065), and initiate outgoing connections on its      Write Port (2067).  Each Switch is responsible for initiating one      of the two TCP connections.  After the TCP connections are      established, SSP messages are exchanged to establish the      capabilities of the two Data Link Switches.  Once the exchange is      complete, the DLSw will employ SSP control messages to establish      end-to-end circuits over the transport connection.  Within the      transport connection, DLSw SSP messages are exchanged.  The      message formats and types for these SSP messages are documented in      the following sections.Bryant & Brittain            Informational                     [Page 31]

RFC 2166              APPN Implementer's Workshop             June 1997   3.2 RII bit in SSP header MAC addresses   The RII bit in MAC addresses received from the LAN must be set to   zero before forwarding in the source or destination address field in   a SSP message header.  This requirement aims to avoid ambiguity of   circuit IDs.  It is also recommended that all implementations ignore   this bit in received SSP message headers.   3.3 Transport IDs   All implementations must allow for the DLSw peer varying the   Transport ID up to and including when the ICR_cs message flows, and   at all times reflect the most recent TID received from the partner in   any SSP messages sent.  The TID cannot vary once the ICR_cs message   has flowed.   3.4 LF bits   LF-bits should be propagated from LAN to SSP to LAN (and back) as per   a bridge (i.e. they can only be revised downwards at each step if   required).   3.5 KEEPALIVE messages   The SSP KEEPALIVE message (x1D) uses the short ("infoframe") version   of the SSP header.  All DLSw implementation must support receipt and   quiet ignore of this message, but there is not requirement to send   it.  There is no response to a KEEPALIVE message.   3.5 MAC header for Netbios SSP frames   The MAC header is included in forwarded SSP Netbios frames in the   format described below:        -    addresses are always in non-canonical format        -    src/dest addresses are as per the LLC frame        -    AC/FC bits may be reset and must be ignored        -    SSAP, DSAP and command fields are included        -    RII bit in src address is copied from the LLC frame        -    the RIF length is not extended to include padding        -    all RIFs are padded to 18 bytes so that the data is             in a consistent place.   3.5.7 Unrecognized control vectors   All implementations should quietly ignore unrecognized control   vectors in any SSP messages.  In particular, unrecognized SSP frames   or unrecognized fields in a CAPEX message should be quietly ignored   without dropping the TCP connection.Bryant & Brittain            Informational                     [Page 32]

RFC 2166              APPN Implementer's Workshop             June 1997   5.4 Use of CUR-cs/CUR-ex   The SSAP and DSAP numbers in CUR_ex messages should reflect those   actually used in the TEST (or equivalent) frame that caused the   CUR_ex message to flow.  This would mean that the SAP numbers in a   'typical' CUR_ex frame for SNA traffic switched from a LAN will be a   source SAP of x04 and a destination SAP of x00.   The CUR_cs frame should only be sent when the DSAP is known.   Specifically, CUR_ex should be used when a NULL XID is received that   is targeted at DSAP zero, and CUR_cs when a XID specifying the (non-   zero) DSAP is received.   Note that this does not mean that an implementation can assume that   the DSAP on a CUR_ex will always be zero.  The ICR_ex must always   reflect the SSAP and DSAP values sent on the CUR_ex.  This is still   true even if an implementation always sends a TEST with DSAP = x00 on   its local LAN(s) in response to a CUR_ex to any SAP.   An example of a situation where the CUR_ex may flow with a non-zero   DSAP is when there is an APPN stack local to the DLSw node.  The APPN   stack may then issue a connection request specifying the DSAP as a   non-zero value.  This would then be passed on the CUR_ex message.   7.6.1 Vendor IDs   The Vendor ID field in a CAPEX may be zero.  However, a zero Vendor   Context ID is not permitted, which implies that an implementation   that uses a zero ID cannot send any vendor-specific CVs (other than   those specified by other vendors that do have a non-zero ID)   7.6.3 Initial Pacing Window   The initial pacing window may be 1.  There is no requirement on an   implementation to use any minimum value for the initial pacing   window.   7.6.7 TCP Tunnel bringup   The third paragraph should read:      If TCP Connections CV values agree and the number of connections      is one, then the DLSw with the higher IP address must tear down      the TCP connections on its local port 2065. This connection is      torn down after a CAPEX response has been both sent and received.      After this point, the remaining TCP connection is used to exchange      data in both directions.Bryant & Brittain            Informational                     [Page 33]

RFC 2166              APPN Implementer's Workshop             June 1997   7.7 CAPEX negative responses   If a DLSw does not support any of the options specified on a CAPEX   received from a partner, or if it thinks the CAPEX is malformed, it   must send a CAPEX negative response to the partner.  The receiver of   a CAPEX negative response is then responsible for dropping the   connection.  It is not permitted to drop the link instead of sending   a CAPEX negative response.   8.2 Flow Control ACKs   The first flow-control ack (FCACK) does not have to be returned on   the REACH_ACK even if the ICR_cs carried the FCIND bit.  However it   should be returned on the first SSP frame flowing for that circuit   after the REACH_ACK.Bryant & Brittain            Informational                     [Page 34]

[8]ページ先頭

©2009-2025 Movatter.jp