RFC 1538
Advanced SNA/IP : A Simple SNA Transport Protocol
Okay bestie, this is RFC 1538 ๐ Part 1 of 2 ๐ Written by W. Behl and B. Sterling (both from McDATA Corporation) and W. Teskey (from I/O Concepts) in the Network Working Group, dated October 1993. It's an Informational doc, and its title block doesn't list any RFCs it obsoletes or updates โจ. The title is Advanced SNA/IP : A Simple SNA Transport Protocol ๐ฆ
Status of this Memo ๐
This memo is giving info for the Internet community ๐. It does not specify an Internet standard, and distribution of it is unlimited ๐.
Abstract ๐ซถ
This RFC shares info for the Internet community about a way to set up and keep SNA sessions running over an IP internet ๐. The issues in it might not be directly relevant to the Internet's research problems, but a bunch of researchers and implementors could still find them interesting ๐ค. For questions or comments about this RFC, email snaip@mcdata.com ๐.
Table of Contents ๐บ
1. Introduction.................................................. 2
2. Motivation and Rationale...................................... 2
3. SNA/IP Protocol Specification................................. 3
3.1 Glossary..................................................... 3
3.2 Conventions and Assumptions.................................. 3
3.3 The Protocol................................................. 3
3.3.1 Connection Establishment................................... 3
3.3.2 Data Transfer.............................................. 5
3.3.3 Connection Termination and Loss............................ 6
3.3.4 Session Data Flow.......................................... 7
3.3.5 State Transition Table for the Initiating Node............. 8
4. LLC to SNA/IP Conversion...................................... 8
5. Performance................................................... 8
6. VTAM Definition............................................... 9
7. Acknowledgments............................................... 9
8. References.................................................... 9
9. Security Considerations....................................... 10
10. Authors' Addresses........................................... 10
11. Disclaimer................................................... 10
1. Introduction โจ
So Advanced SNA/IP is a way to send SNA session data across an IP network ๐. This doc describes the SNA/IP protocol as it's implemented in the McDATA LinkMaster(R) 6200 Network Gateway, the McDATA LinkMaster(R) 7100 Network Controller, and the I/O Concepts X-Direct TN3270 Server ๐.
Advanced SNA/IP is different from other protocols that route SNA session traffic over an IP network ๐ . SNA/IP was originally designed for peripheral network nodes like SNA gateways and downstream nodes (DSNs) ๐ง. The authors feel, though, that SNA/IP could also be built into intermediate network nodes like routers, as the base for an LLC to IP subnet gateway or a data link switch function ๐ฅ.
2. Motivation and Rationale ๐ญ
First up, the token-ring media access control (MAC) protocol 802.5 and the logical link control (LLC) protocol 802.2 were the OG LAN protocols for giving SNA sessions a reliable, connection-oriented data link in a LAN environment ๐.
McDATA's experience moving SNA over 802.5 networks led to an 802.3/802.2 (Ethernet) based version ๐. Once prospective customers started looking at these Ethernet products, people asked whether they could be routed ๐. Network admins who were used to Ethernet and IP-based protocols needed an IP routable solution, and McDATA's "SNA over Ethernet" products were bridgeable but not routable ๐ญ.
SNA sessions need a reliable, connection-oriented data link ๐. TCP running over IP gives you a reliable, connection-oriented transport service, and it's routable too, which is a huge bonus โจ. So it seemed like UDP and TCP could stand in for the 802.2 Type I and Type II levels of service used in traditional SNA token-ring implementations ๐ฆ. That's basically how Advanced SNA/IP came to be ๐.
3. SNA/IP Protocol Specification ๐งฉ
3.1. Glossary ๐
- Data Link Switching (DLSw) - This is best described as a routing protocol used to convert LLC-based SNA sessions to an IP form ๐. The first version of the DLSw protocol is documented in the informational RFC 1434 [1] ๐.
- Downstream Node (DSN) - An SNA Physical Unit (PU) type 2.0 or 2.1 device that connects to the SNA network over a LAN (802.5, 802.3, etc.), instead of over an SDLC, X.25, or channel connection ๐ธ.
- SNA Gateway - A device that does the data link control (DLC) conversion for SNA PU type 5 (host) devices and LAN-attached DSNs ๐.
- Subnet SNA Gateway - A device connected to both a traditional SNA token-ring segment and an IP network. It locally terminates the LLC connections, maps source addresses to destination IP addresses, and converts (switches) LLC to IP ๐ง.
3.2. Conventions and Assumptions ๐
Frame formats are shown starting with the IP header ๐ . Other headers will, of course, show up in the actual frames sent, but those headers, and how many of them there are, will vary across MAC types ๐ฅ.
The reader is expected to know both standard SNA (as far as it applies to SNA Gateway and DSN functions) and the base set of TCP/IP protocols ๐ค. Where it's practical, the reader is pointed to the right SNA and TCP/IP docs ๐.
3.3. The Protocol ๐ซ
There are conceptually three phases to the Advanced SNA/IP protocol: the Connection Establishment phase, the Data Transfer phase, and the Connection Termination phase โจ.
3.3.1. Connection Establishment ๐ค
Connection Establishment is the exchange of logical XID packets between the connecting end nodes, and it ends with a TCP connection being set up ๐. It's kind of like the IBM-specified Test, XID, SABME and UA exchange used to set up a Type II 802.2 connection for SNA traffic [2] ๐ฆ. Instead of the 802.2 Type I messages, SNA/IP defines the following set of UDP datagrams ๐:
Logical Null XID
Use: This gets sent by an initiating node (such as a DSN) when it wants a connection to another SNA node ๐.
The Logical Null XID tells the other node that the sender wants to negotiate connection parameters ๐ง . Once those parameters are set, the Logical Null XID also tells the other side which TCP port the sender wants the connection made to ๐ฏ.
Format:
------------------------------------
| IP Header | UDP Header | 0xBF |
------------------------------------
Source IP address:The IP address of the initiating node ๐ .Destination IP address:The IP address of the partner SNA node ๐ฎ.Source UDP Port:Must match the TCP port number to be used in the eventual TCP connection ๐.Destination UDP Port:A known port on the partner node that expects SNA/IP datagrams ๐ช.
XID Request
Use: This gets sent in response to a Logical Null XID, asking the receiving node to send a Logical SNA XID datagram ๐โโ๏ธ.
Format:
------------------------------------
| IP Header | UDP Header | 0xBF |
------------------------------------
The source and destination IP and UDP port numbers logically follow from the ones in the Logical Null XID datagram ๐ช.
The XID Request and the Logical Null XID have the same format ๐ฏ. The two types are told apart by the roles the two nodes play ๐ญ. In current implementations, the DSN starts the XID exchange by sending the Logical Null XID, and the SNA Gateway responds with the XID Request ๐ฅ.
Logical SNA XID
Use: This gets sent in response to an XID Request, as part of SNA XID negotiation ๐ค.
Format:
----------------------------------------------------
| IP Header | UDP Header | 0xBF | SNA XID data |
----------------------------------------------------
For PU 2.0 nodes, the SNA XID data is a Format 0 XID [3] ๐ธ. For PU 2.1 nodes, the SNA XID data is a Format 3 XID [3] ๐.
Here's what a typical Connection Establishment data flow looks like ๐:
Node 1 Node 2
Logical Null XID ------------------------->
<------------------------ XID Request
Logical SNA XID -------------------------->
<------------------------ TCP SYN
TCP SYN ACK ----------------------------->
<------------------------ TCP ACK
Note: The source UDP port of the Logical Null XID equals the destination TCP port of the TCP SYN segment. ๐ฏ
Retries of the Logical Null XID by the initiating node should occur periodically until an XID Request comes back in reply ๐. The frequency of the retries is left up to the implementor ๐ . The lower bound on the retry timer should be more than the expected round trip time for a packet on the network โฑ.
3.3.2. Data Transfer ๐ฆ
There are no special packets defined for the Data Transfer phase ๐. Once the TCP connection is up, SNA Request Units (RUs) may be exchanged between the two end nodes ๐. The SNA session data shows up as TCP segment data ๐จ. The only SNA/IP requirement that gets added is that each SNA message, made up of a Transmission Header (TH), a Request/Response Header (RH), and an optional Request/Response Request Unit (RU), be preceded by a two octet length field ๐. Examples of Data Transfer frames are below ๐.
-------------------------------------------------------
| IP Header | TCP Header | SNA Msg 1 len | SNA Msg 1 |
-------------------------------------------------------
----------------------------------------------
| IP Header | TCP Header | SNA Msg 1 cont'd ->
----------------------------------------------
--------------------------------
| SNA Msg 2 len | SNA Msg 2 |
--------------------------------
The length field is passed in big endian format ๐ง. 0 is a valid length value ๐.
The format of the SNA Message pieces is as defined by SNA [3] ๐.
Reliable and sequential delivery of data is provided by the TCP protocol [5,6] ๐ฆ.
3.3.3. Connection Termination and Loss โจ
okay so either SNA node can end the logical SNA connection whenever it wants ๐ by sending a TCP-level FIN segment. the TCP rules are the boss of this whole process [5,6] ๐ซถ
a connection can also end, but way less gracefully ๐ญ, if either SNA node sends a TCP Reset segment. ngl that's the chaotic exit ๐
once a connection is terminated, a new one can be set up using the steps in the Connection Establishment section ๐ฆ. here's the big one ๐จ: for reconnections to the LinkMaster 6200 gateway, the initiating node must use the same UDP source port. that also means the same TCP port gets used. why? the gateway may not always know a TCP connection was terminated. that happens if the DSN gets disabled before it sends a FIN or Reset segment. in that situation the SNA host is still holding its resources, and it won't allow a reconnection from a DSN it thinks is already in session ๐ . by making the DSN reuse the same port when it reconnects, the LinkMaster 6200 can tell when it needs to reset the host connection ๐ง โจ
3.3.4. Complete Session Data Flow ๐
here's the whole session flow start to finish, bestie ๐ง
Node 1 Node 2
Logical Null XID ------------------------->
(UDP Datagram)
Logical Null XID ------------------------->
(UDP Datagram)
<------------------------ XID Request
(UDP Datagram)
Logical SNA XID -------------------------->
(UDP Datagram)
<------------------------ TCP SYN
(TCP Message)
TCP SYN ACK ----------------------------->
(TCP Message)
<------------------------ TCP SYN
(TCP Message)
****************** Connection Established *******************
<------------------------ SNA ACTPU
(TCP Message)
SNA ACTPU Response --------------------->
(TCP Message)
<------------------------ SNA ACTLU
(TCP Message)
SNA ACTLU Response --------------------->
(TCP Message)
.
.
.
<------------------------ TCP FIN
(TCP Message)
TCP FIN ACK ------------------------>
(TCP Message)
<------------------------ TCP ACK
(TCP Message)
******************** Connection Closed *********************
Logical Null XID ----------------------->
(UDP Datagram)
.
.
.
.
3.3.5. State Transition Table for the Initiating Node ๐
this table is the initiating node's glow-up arc ๐
Transition State
Given State | No Conn | Null XID Sent | SNA XID Sent | Conn Estb
------------+---------+---------------+--------------+-----------
No | | Internal Act. | |
Connection | | Stimulus | |
| | ---> Sends | |
| | 1st Null XID | |
------------+---------+---------------+--------------+-----------
Null XID | | Internal | XID Request |
Sent | | Timer Event | Received |
| | ----> Resend | ----> Sends |
| | Null XID | SNA XID |
------------+---------+---------------+--------------+-----------
SNA XID | | Internal | SNA XID | Indication
Sent | | Timer Event | Received | that TCP
| | ----> Resend | ----> Send | connection
| | Null XID | SNA XID | is estb.
| | | |
------------+---------+---------------+--------------+-----------
Connection | Indica- | | | SNA
Established | tion | | | Session
| that | | | Data
| TCP conn| | |
| term. | | |
no gateway state transition table here, babe ๐. it depends on the nature of the SNA host interface (3172 Channel Protocol, 3174 Channel Protocol, SDLC, etc.), so the transitions change from setup to setup ๐ธ
4. LLC to SNA/IP Conversion โจ
okay so using Advanced SNA/IP to turn regular token ring-based SNA traffic into something routable is both conceivable and practical ๐. it's super interesting, but digging into it is outside the scope of this RFC ๐ . quick taste though: an SNA/IP-based "subnet SNA gateway" application could do a lot of the stuff being discussed for the DLSw specification [1] ๐ธ
5. Performance ๐
how well SNA sessions run over an SNA/IP connection depends on how much bandwidth the network has and how much traffic is on it ๐ฆ. SNA/IP is set up to fully take advantage of the prioritization and class of service upgrades promised in the next generation of IP ๐. right now it can use router packet prioritization based on port number, and it leaves the standard SNA class of service prioritization protocol intact ๐
McDATA ran performance measures comparing SNA/IP and LLC throughput across a single token-ring segment. SNA/IP came in at approximately a 15 percent decrease in maximum transactions per hour (1500 bytes to the DSN, 50 bytes out to the host) ๐. that's totally within the expected levels, given the extra processing TCP/IP over LLC needs in the LinkMaster 6200 and LinkMaster 7100 operating environments ๐
6. VTAM Definition ๐ง
how the host VTAM defines SNA/IP downstream nodes depends on the gateway implementation ๐ . they might show up as switched major nodes connected to an XCA, or as downstream nodes connected to a PU 2.0 controller [4] ๐ฅ
7. Acknowledgments ๐ซถ
the authors want to give a huge shoutout to everyone who helped make SNA/IP happen ๐. it was a total team effort involving customers, sales and marketing people, and engineers ๐. special thanks go to David Beal, Steve Cartwright, Tracey Floming, Audrey McEwen, Mark Platte, Paul Schroeder, Chuck Weil, and Marty Wright ๐, who all played key roles in developing and testing the protocol and also in editing this RFC ๐
8. References ๐
[1] Dixon, R., and D. Kushi, "Data Link Switching: Switch-to-Switch Protocol", RFC 1434, IBM, March 1993.
[2] "Token-Ring Network Architecture Reference", IBM document #SC30-3374-02.
[3] "Systems Network Architecture Formats", IBM document #GA27-3136-12.
[4] "VTAM Resource Definition Reference", IBM document #SC31-6438-1.
[5] Comer, D., "Internetworking with TCP/IP Volume I", Prentice Hall 1991.
[6] Postel, J., "Transmission Control Protocol - DARPA Internet Program Protocol Specification", STD 7, RFC 793, USC/Information Sciences Institute, September 1981.
9. Security Considerations ๐
okay this is the part where I get dramatic ๐ฑ
this RFC does not address issues of security. full stop ๐ SNA level security procedures and protocols apply when SNA/IP is used as the transport ๐
10. Authors' Addresses ๐
Wilfred Behl 310 Interlocken Parkway Broomfield, Colorado 80021
Phone: 303-460-4142 Email: wil@mcdata.com
Barbara Sterling 310 Interlocken Parkway Broomfield, Colorado 80021
Phone: 303-460-4211 Email: bjs@mcdata.com
William Teskey 2125 112th Ave. North East Suite 303 Bellevue, WA 98004
Phone: 206-450-0650 Email: wct@ioc-sea.com
Note: Any questions or comments relative to the contents of this RFC should be sent to snaip@mcdata.com. This address will be used to coordinate the handling of responses.
11. Disclaimer โญ
legal bit, but still iconic ๐ McDATA, the McDATA logo, and LinkMaster are registered trademarks of McDATA Corporation. every other product name and identification is a trademark of its own manufacturer, and those manufacturers are not affiliated with McDATA Corporation ๐ซถ
๐ฆ where this page comes from
- ietf: rfc1538 1993-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms