summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1538.txt
blob: b23486678f729cf19df4572a15a3ff54ed5943d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
Network Working Group                                            W. Behl
Request for Comments: 1538                            McDATA Corporation
Category: Informational                                      B. Sterling
                                                      McDATA Corporation
                                                               W. Teskey
                                                            I/O Concepts
                                                            October 1993


           Advanced SNA/IP : A Simple SNA Transport Protocol

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard.  Distribution of this memo is
   unlimited.

Abstract

   This RFC provides information for the Internet community about a
   method for establishing and maintaining SNA sessions over an IP
   internet.  While the issues discussed may not be directly relevant to
   the research problems of the Internet, they may be interesting to a
   number of researchers and implementors.  Any questions or comments
   relative to the contents of this RFC may be sent to the following
   Internet address: 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



Behl, Sterling & Teskey                                         [Page 1]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


1.  Introduction

   Advanced SNA/IP suggests a method for the transmission of SNA session
   data over an IP network.  This memo documents the SNA/IP protocol as
   implemented in the McDATA LinkMaster(R) 6200 Network Gateway, McDATA
   LinkMaster(R) 7100 Network Controller, and I/O Concepts X-Direct
   TN3270 Server.

   Advanced SNA/IP differs from other protocols designed to enable
   routing of SNA session traffic over an IP network.  SNA/IP was
   originally designed for implementation in peripheral network nodes
   like SNA gateways and downstream nodes (DSNs).  It is the authors'
   view, however, that SNA/IP could also be implemented in intermediate
   network nodes like routers as the base for an LLC to IP subnet
   gateway or data link switch function.

2.  Motivation and Rationale

   The token-ring media access control (MAC) protocol 802.5 and logical
   link control (LLC) protocol 802.2 were the first set of LAN protocols
   used to provide a reliable and connection-oriented data link service
   for SNA sessions in a LAN environment.

   McDATA's experience with transporting SNA over 802.5 networks led to
   an 802.3/802.2 (Ethernet) based variation.  As prospective customers
   were introduced to these Ethernet products, the question of
   routability arose.  Network administrators, accustomed to working
   with Ethernet networks and the IP-based protocols, required an IP
   routable solution.  McDATA's "SNA over Ethernet" products were
   bridgeable, but were not routable.

   SNA sessions require a reliable and connection-oriented data link.
   TCP running over IP provides a reliable and connection-oriented
   transport service and has the added benefit of being routable.  It
   seemed the UDP and TCP protocols could be used in place of 802.2 Type
   I and Type II levels of service used in traditional SNA token-ring
   implementations.  Advanced SNA/IP was created as a result of these
   observations.













Behl, Sterling & Teskey                                         [Page 2]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


3.  SNA/IP Protocol Specification

3.1.  Glossary

   Data Link Switching (DLSw) - This is best described as a routing
   protocol used for the conversion of LLC-based SNA sessions to an IP
   form.  The initial 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 connected to the SNA network via a LAN (802.5, 802.3, etc.) as
   opposed to an SDLC, X.25, or channel connection.

   SNA Gateway - A device that provides a data link control (DLC)
   conversion function 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 that performs local termination
   of the LLC connections, a mapping function of source address to
   destination IP address, and a conversion (switching) function of LLC
   to IP.

3.2.  Conventions and Assumptions

   Frame formats are shown starting with the IP header.  Other headers
   will, of course, appear in the actual frames sent, but these headers,
   and the numbers of them, will vary across MAC types.

   It is assumed the reader is familiar with both the standard SNA
   protocol (to the extent it applies to SNA Gateway and DSN functions)
   and the base set of TCP/IP protocols.  Where practical, the reader is
   asked to refer to appropriate SNA and TCP/IP documentation.

3.3.  The Protocol

   Conceptually, there are 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 involves the exchange of logical XID packets
   between the connecting end nodes and culminates in the establishment
   of a TCP connection.  This process is similar to the IBM-specified
   Test, XID, SABME and UA exchange used to establish a Type II 802.2
   connection for SNA traffic [2].  In place of the 802.2 Type I
   messages, SNA/IP defines the following set of UDP datagrams:



Behl, Sterling & Teskey                                         [Page 3]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


  Logical Null XID

     Use: Sent by an initiating node (such as a DSN) when the
          connection to another SNA node is desired.

          The Logical Null XID communicates the sending node's
          desire to negotiate connection parameters.  Once those
          parameters are established, the Logical Null XID
          communicates the sender's TCP port to which a connection
          is to be made.

     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: Sent in response to a Logical Null XID and requests 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 follow,
        logically, from those provided in the Logical Null XID
        datagram.

        The format of the XID Request and Logical Null XID are the
        same.  The two types are distinguished by the roles assumed by
        the two nodes.  In current implementations, the DSN initiates
        the XID exchange by sending the Logical Null XID.  The SNA
        Gateway responds with the XID request.




Behl, Sterling & Teskey                                         [Page 4]
^L
RFC 1538                    Advanced SNA/IP                 October 1993



  Logical SNA XID

     Use: Sent in response to an XID Request and in the context of
          SNA XID negotiation.

     Format:

        ----------------------------------------------------
        | IP Header  |  UDP Header  | 0xBF | SNA XID data  |
        ----------------------------------------------------

        For PU 2.0 nodes, the SNA XID data consists of a Format 0 XID
        [3].
        For PU 2.1 nodes, the SNA XID data consists of a Format 3 XID
        [3].


   A typical Connection Establishment data flow appears below.


     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 is received 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 established, SNA Request Units (RUs) may
   be exchanged between the two end nodes.  The SNA session data appears
   as TCP segment data.  The only added SNA/IP requirement is that each
   SNA message consisting of a Transmission Header (TH),
   Request/Response Header (RH) and an optional Request/Response Request
   Unit (RU) be preceded by a two octet length field.  Examples of Data



Behl, Sterling & Teskey                                         [Page 5]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


   Transfer frames are shown 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 are 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

   Either SNA node may, at any time, terminate the logical SNA
   connection by issuing a TCP-level FIN segment.  Dictates of the TCP
   protocol apply to this termination process [5,6].

   A connection is also terminated, though not as cleanly, if a TCP
   Reset segment is sent by either SNA node.

   Once a connection is terminated, a new connection may be established
   by the process outlined in the Connection Establishment section.  For
   reconnections made to the LinkMaster 6200 gateway, the same UDP
   source port must be used by the initiating node.  This implies that
   the same TCP port is used. This requirement stems from the fact the
   gateway may not always be aware that a TCP connection has been
   terminated.  This would happen if the DSN became disabled prior to
   sending a FIN or Reset segment.  Under these circumstances, SNA host
   resources remain allocated and a reconnection from a DSN, which the
   host believes to already be in session, is not allowed.  By requiring
   the DSN to use the same port when reestablishing a connection, the
   LinkMaster 6200 is able to recognize when a reset of the host
   connection is required.








Behl, Sterling & Teskey                                         [Page 6]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


3.3.4.  Complete Session Data Flow

      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)
             .
             .
             .
             .




Behl, Sterling & Teskey                                         [Page 7]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


3.3.5.  State Transition Table for the Initiating Node

                             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.   |               |              |


   A gateway state transition table is not provided here because the
   state transitions are dependent on the nature of the SNA host
   interface (3172 Channel Protocol, 3174 Channel Protocol, SDLC, etc.).

4.  LLC to SNA/IP Conversion

   The use of Advanced SNA/IP to convert conventional token ring- based
   SNA traffic to a routable form is both conceivable and practical.
   While interesting, a discussion of this application falls outside the
   context of this RFC.  Very briefly, it can be said that an SNA/IP-
   based "subnet SNA gateway" application could do many of the things
   being discussed in the context of the DLSw specification [1].

5.  Performance

   The performance of SNA sessions running over an SNA/IP connection
   will be affected by the bandwidth available on the network and by how
   much traffic is on the network.  SNA/IP is poised to take full
   advantage of the prioritization and class of service enhancements
   promised in the next generation of IP.  Today, SNA/IP can take



Behl, Sterling & Teskey                                         [Page 8]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


   advantage of router packet prioritization schemes based on port
   number.  SNA/IP also leaves intact the standard SNA class of service
   prioritization protocol.

   Performance measures taken at McDATA comparing the throughput of
   SNA/IP and LLC across a single token-ring segment showed
   approximately a 15 percent decrease in the maximum transactions per
   hour (1500 bytes to the DSN, 50 bytes out to the host) for SNA/IP.
   This decrease is well within the expected levels given the added
   processing requirements of TCP/IP over LLC in the LinkMaster 6200 and
   LinkMaster 7100 operating environments.

6.  VTAM Definition

   The host VTAM definition of SNA/IP downstream nodes is dependent on
   the gateway implementation.  Downstream nodes may appear as switched
   major nodes connected to an XCA or as downstream nodes connected to a
   PU 2.0 controller [4].

7.  Acknowledgments

   The authors wish to acknowledge that the definition of SNA/IP was a
   collaborative effort involving many individuals ranging from
   customers to sales and marketing personnel to engineers. Particular
   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 the development and testing of this
   protocol and also in the editing of 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.



Behl, Sterling & Teskey                                         [Page 9]
^L
RFC 1538                    Advanced SNA/IP                 October 1993


9.  Security Considerations

   This RFC does not address issues of security.  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

   McDATA, the McDATA logo, and LinkMaster are registered trademarks of
   McDATA Corporation. All other product names and identifications are
   trademarks of their respective manufacturers, who are not affiliated
   with McDATA Corporation.










Behl, Sterling & Teskey                                        [Page 10]
^L