Annotation of 43BSDReno/contrib/isode-beta/doc/rfcs/rfc1086.txt, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: 
                      5: 
                      6: 
                      7: Network Working Group                                          J. Onions
                      8: Request for Comments: 1086                                    Nottingham
                      9:                                                                  M. Rose
                     10:                                                                      TWG
                     11:                                                            December 1988
                     12: 
                     13:                   ISO-TP0 bridge between TCP and X.25
                     14: 
                     15: 
                     16: 
                     17: Status of this Memo
                     18: 
                     19:    This memo proposes a standard for the Internet community.  Hosts on
                     20:    the Internet that choose to implement ISO TP0 transport connectivity
                     21:    between TCP and X.25 based hosts are expected to experiment with this
                     22:    proposal.  TCP port 146 is reserved for this proposal.  Distribution
                     23:    of this memo is unlimited and comments are highly encouraged.
                     24: 
                     25: Introduction
                     26: 
                     27:    This memo specifies a protocol that is used to bridge ISO TP0 packets
                     28:    between X.25 and TCP networks.  This technique is useful when
                     29:    interconnecting a DDN IP internet to an X.25 subnetwork.  This is not
                     30:    a "magic bullet" solution to the DDN/ISO interoperability problem.
                     31:    Rather, if one is running higher-layer ISO protocols in both networks
                     32:    (namely ISO TP0), then a TP0 bridge can be used to achieve
                     33:    connectivity.
                     34: 
                     35:    The protocol itself is fairly simple as the method of operation for
                     36:    running TP0 over the TCP and X.25 protocols have previously been
                     37:    defined.  A bridge offering ISO-TP0 gateway services simply applies
                     38:    both methods as appropriate.  The protocol works by TP0/TCP hosts
                     39:    "registering" an X.25 subaddress (and corresponding TCP port/IP
                     40:    address) with the bridge.  TP0/X.25 hosts use the standard method or
                     41:    establishing, maintaining, and releasing connections.  When a TCP
                     42:    connection and simply shuffles TP0 packets between the two.  When a
                     43:    TP0/TCP host initiates a connection, it establishes a TCP connection
                     44:    to the bridge using port number 146 and communicates the desired X.25
                     45:    address.  The bridge establishes a connection to the native X.25 host
                     46:    and simply shuffles TP0 packets between the two.
                     47: 
                     48: 1.  Introduction and Motivation
                     49: 
                     50:    The migratory protocol described in [RFC1006] makes possible the
                     51:    transmission of TP0 packets between hosts on TCP/IP internets.  With
                     52:    the addition of a small protocol converter, a TCP/IP host can be made
                     53:    to appear in the X.25 addressing space and be able to accept and make
                     54:    connections using the TP0 protocol.
                     55: 
                     56: 
                     57: 
                     58: Onions & Rose                                                   [Page 1]
                     59: 
                     60: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                     61: 
                     62: 
                     63:    This procedure is particularly useful in the following cases:
                     64: 
                     65:       1.  A host on an IP based internet can communicate with hosts on
                     66:       X.25 based networks providing the hosts are running ISO protocols.
                     67:       This also assumes a friendly gateway willing to run the actual TP0
                     68:       bridge and make available to the IP host part of its X.25 address
                     69:       space.
                     70: 
                     71:       2.  A site having sparse connections to an X.25 network and using
                     72:       a TCP/IP based local area network for local communications.  In
                     73:       this case all hosts on the LAN can have access to hosts on the
                     74:       X.25 network running ISO TP0.
                     75: 
                     76: 
                     77:    Pictorially, this memo describes interoperation in the following
                     78:    environment:
                     79: 
                     80:           +---------------------------------+
                     81:           |                                 |
                     82:           |                   +-----------------------------------+
                     83:           |  +----+           |     +----+  |           +----+    |
                     84:           |  |    |           |     |    |  |           |    |    |
                     85:           |  |    +-----------|-----+    +--------------+    |    |
                     86:           |  |    |     TP0   |     |    |  |  TP0      |    |    |
                     87:           |  +----+           |     +----+  |           +----+    |
                     88:           | TCP Host          |  Bridge Host|         X.25 Host   |
                     89:           |                   |             |                     |
                     90:           |                   |             |                     |
                     91:           |                   |             |                     |
                     92:           +-------------------|-------------+                     |
                     93:             TCP/IP Network    |                                   |
                     94:                               |                                   |
                     95:                               +-----------------------------------+
                     96:                                            X.25 Network
                     97: 
                     98: 2.  Definitions and Philosophy
                     99: 
                    100:    Some modest terminology and philosophy is introduced to aid
                    101:    readability and stir interest.
                    102: 
                    103:    The ISO Transport Service (TS) provides a reliable, packet-stream to
                    104:    its users [ISO8072].  The ISO Transport Protocol (TP) implements this
                    105:    service [ISO8073].  There are five classes of this protocol.  The
                    106:    class is selected on the basis of the services offered by the
                    107:    underlying network service.  Transport class 0 (TP0) is used when the
                    108:    network service offered is connection-oriented and error-detecting.
                    109:    As should be expected, TP0 is a rather simple protocol, since the
                    110:    underlying network service actually provides most of the qualities
                    111: 
                    112: 
                    113: 
                    114: Onions & Rose                                                   [Page 2]
                    115: 
                    116: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    117: 
                    118: 
                    119:    offered by the transport service.
                    120: 
                    121:    CCITT Recommendation X.25 [ISO8208,X.25] offers such a network
                    122:    service.  It is beyond the scope of this memo to describe X.25 in any
                    123:    detail, but two observations are pertinent:  First, X.25 is offered
                    124:    as a wide-area network service by many commercial and (non-U.S.)
                    125:    government carriers.  Second, the TP0/X.25 combination is very
                    126:    popular in Europe and other communities with a strong PTT-oriented
                    127:    market.
                    128: 
                    129:    It has been argued that the DoD Transmission Control Protocol (TCP)
                    130:    [MIL1778, RFC793] can also be seen as providing a connection-oriented
                    131:    and error-detecting network service.  This remark is controversial in
                    132:    the sense that the TCP is actually an end-to-end transport protocol
                    133:    and not a network protocol; the DoD Internet Protocol (IP) [MIL1777,
                    134:    RFC791] is the network protocol in the DoD Protocol Suite.  However,
                    135:    one of the advantages of layering is that, when properly architected,
                    136:    it enhances flexibility.  This notion led to the development of
                    137:    [RFC983] and its successor [RFC1006], which described how to provide
                    138:    the ISO transport service on top of TCP/IP internetworks.
                    139: 
                    140: 3.  The Model
                    141: 
                    142:    The model is simple.  The method for transmitting TP0 packets using
                    143:    TCP is defined in [RFC1006].  The method for transmitting TP0 packets
                    144:    using X.25 is defined in [ISO8878].  The TP0 bridge merely has to
                    145:    convert between the two forms.  As with most protocols, there are
                    146:    three well-defined phases of interaction:  connection establishment,
                    147:    data transfer, and connection release.  The method of operation for
                    148:    the data transfer and connection release phases are quite similar
                    149:    when using TP0 over either network service.  Hence the resulting
                    150:    protocol mapping functions are quite simple.
                    151: 
                    152:    The difficult part is in managing connection establishment.  A small
                    153:    "registration" protocol is used to aid the protocol mapping function
                    154:    for the connection establishment phase.  The protocol performs one of
                    155:    two operations: an X.25 address is specified for an outgoing call, or
                    156:    an X.25 address is specified to accept incoming calls.
                    157: 
                    158:    This memo ignores the problems of authentication and authorization.
                    159:    These areas are presumed to be a local matter.  It is worth pointing
                    160:    out that running such a TP0 bridge with unrestricted access allows
                    161:    any TCP/IP host to lay claim to part of the TP0 bridge host's X.25
                    162:    address space.  This address space is limited and will not support
                    163:    many foreign hosts registering listening addresses.
                    164: 
                    165:    The protocol makes no attempt to report errors other than those
                    166:    transmitted by the TP0 protocol.  To attempt such additions would
                    167: 
                    168: 
                    169: 
                    170: Onions & Rose                                                   [Page 3]
                    171: 
                    172: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    173: 
                    174: 
                    175:    require other mechanism such as a new protocol layer or equivalent.
                    176:    The chosen model is kept as simple as possible with network errors
                    177:    being ignored if recoverable, and resulting in disconnection
                    178:    otherwise.  This actually enhances the transparency of the gateway,
                    179:    in that the only gateway specific functions are collected together in
                    180:    the connection phase.  The resultant circuit, once established, is
                    181:    indistinguishable from an [RFC1006] implementation.
                    182: 
                    183: 4.  The Protocol
                    184: 
                    185:    The protocol is quite simple.  A successful connection establishment
                    186:    phase results in two network connections being established.  TP0 is
                    187:    used over each network connection, though one network connection is
                    188:    provided by X.25 and the other by the TCP.
                    189: 
                    190:    During the data transfer phase, the TP0 bridge reads TPDUs (transport
                    191:    protocol data units) from one network connection and writes them to
                    192:    the other network connection.  During the connection release phase,
                    193:    when one network indicates a disconnect, the bridge disconnects the
                    194:    other network connection; or in the case of simultaneous network
                    195:    disconnects, no action is taken by the bridge.
                    196: 
                    197:    As expected, the method of operation for the connection establishment
                    198:    phase is more complex.  Connection establishment is driven by a
                    199:    registration procedure which is initiated by a TCP/IP host initiating
                    200:    a connection with the TP0 bridge.  This procedure takes on one of two
                    201:    "flavors" depending on whether the initiating host wishes to
                    202:    establish a connection to a particular X.25 address or listen for
                    203:    connections on a particular X.25 address.
                    204: 
                    205:    The initiating host initiates the registration procedure by
                    206:    establishing a connection to TCP port 146 on the TP0 bridge.  It then
                    207:    sends one octet which indicates the flavor the registration procedure
                    208:    will take:
                    209: 
                    210:           0 1 2 3 4 5 6 7
                    211:          +-+-+-+-+-+-+-+-+
                    212:          |   function    |
                    213:          +-+-+-+-+-+-+-+-+
                    214: 
                    215:    The value of this octet is a binary-encoded value:
                    216: 
                    217:            value   meaning
                    218:            -----   -------
                    219:              0     illegal
                    220:              1     connect to a particular X.25 host
                    221:              2     listen for incoming X.25 connections
                    222:            3-255   reserved
                    223: 
                    224: 
                    225: 
                    226: Onions & Rose                                                   [Page 4]
                    227: 
                    228: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    229: 
                    230: 
                    231:    The method of operation for the registration procedure now diverges,
                    232:    based on the function chosen.
                    233: 
                    234:    FUNCTION 1: CONNECTION THROUGH THE TP0 BRIDGE
                    235: 
                    236:       The X.25 address to call is now sent by the initiating host to the
                    237:       TP0 bridge.  The format of an X.25 address is described in Section
                    238:       5 of this memo.
                    239: 
                    240:       The TP0 bridge now attempts to call the specified address.  If
                    241:       this succeeds, the connection establishment phase has succeeded
                    242:       and the data transfer phase is begun.  If the call fails, then the
                    243:       TP0 bridge closes the TCP connection.
                    244: 
                    245:    FUNCTION 2: ESTABLISHING A LISTENING ADDRESS
                    246: 
                    247:       The X.25 address, which should be a subaddress of the TP0 bridge's
                    248:       X.25 address, on which to listen for incoming X.25 connections is
                    249:       now sent by the initiating host to the TP0 bridge.
                    250: 
                    251:       Next, the initiating host sends an IP address and TCP port number
                    252:       which will service incoming calls for the indicated X.25 address.
                    253:       The format of a TCP/IP address is described in Section 6 of this
                    254:       memo.
                    255: 
                    256:       The TP0 bridge now listens, on behalf of the initiating host, on
                    257:       the indicated X.25 address.
                    258: 
                    259:       If an incoming call is received, a TCP connection is established
                    260:       to the corresponding TCP/IP address.  If this connection is
                    261:       successful, then the connection establishment phase has succeeded
                    262:       and the data transfer phase is begun.  If the connection fails,
                    263:       the incoming call is refused.
                    264: 
                    265:       The TCP/IP connection between the initiating host and the TP0
                    266:       bridge is a "heartbeat" connection for the registration function.
                    267:       If this connection closes, the TP0 bridge assumes hat the
                    268:       listening function has been terminated by the initiating host, and
                    269:       consequently, the TP0 bridge no longer listens for incoming calls
                    270:       on the indicated X.25 address.  If such a facility were not
                    271:       present, then the indicated X.25 address could not be recovered
                    272:       for reuse.
                    273: 
                    274: 5.  Format of X.25 Addresses
                    275: 
                    276:    A standardized octet-encoding of X.25 addresses is used by the
                    277:    protocol described in this memo.  The encoding has a fixed-length of
                    278:    68 octets and contains 10 fields:
                    279: 
                    280: 
                    281: 
                    282: Onions & Rose                                                   [Page 5]
                    283: 
                    284: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    285: 
                    286: 
                    287:     0                   1                   2                   3
                    288:     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                    289:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    290:    |        address  type          | X.121 address        ...      |
                    291:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    292:    |      ...      |      ...      |      ...      |      ...      |
                    293:    |      ...      |      ...      |      ...      |      ...      |
                    294:    |      ...      |      ...      |      ...      |      ...      |
                    295:    |      ...      |      ...      | X.121 length  | Protocol ID   |
                    296:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    297:    |      ...      |      ...      |      ...      | PID length    |
                    298:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    299:    | Call User Data field          |      ...      |      ...      |
                    300:    |      ...      |      ...      |      ...      |      ...      |
                    301:    |      ...      |      ...      |      ...      |      ...      |
                    302:    |      ...      |      ...      |      ...      |      ...      |
                    303:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    304:    | CUDF length   |  X.25 Facilities     ...      |      ...      |
                    305:    |      ...      |      ...      |      ...      |Facility Length|
                    306:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    307: 
                    308:    The fields are:
                    309: 
                    310:    address type (2 octets) - a binary-encoded value in network order
                    311:    indicating the address type. The value 3 is used for X.25 addressing
                    312:    of this format.
                    313: 
                    314:    X.121 address (16 octets) - the ascii-encoded value of the X.121
                    315:    address.
                    316: 
                    317:    address length (1 octet) - a binary-encoded value in network order
                    318:    indicating how many octets of the X.121 address are meaningful.
                    319: 
                    320:    Protocol ID (4 octets) - meaningful at the remote system.
                    321: 
                    322:    Protocol ID length (1 octet) - a binary-encoded value indicating the
                    323:    number of protocol ID octets are meaningful.
                    324: 
                    325:    User Data (16 octets) - meaningful at the remote system.
                    326: 
                    327:    User Data Length (1 octet) - a binary-encoded value indicating the
                    328:    number of User Data octets are meaningful.
                    329: 
                    330:    X.25 Facilities (6 octets) - meaningful at the remote system.
                    331: 
                    332:    X.25 Facilities length (1 octet) - a binary-encoded value indicating
                    333:    the number of Facility octets are meaningful.
                    334: 
                    335: 
                    336: 
                    337: 
                    338: Onions & Rose                                                   [Page 6]
                    339: 
                    340: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    341: 
                    342: 
                    343: 6.  Format of TCP/IP Addresses
                    344: 
                    345:    A standardized octet-encoding of TCP/IP addresses is used by the
                    346:    protocol described in this memo.  The encoding has a fixed-length of
                    347:    16 octets and contains 4 fields:
                    348: 
                    349: 
                    350:     0                   1                   2                   3
                    351:     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                    352:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    353:    |         address  type         |           TCP  port           |
                    354:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    355:    |                           IP address                          |
                    356:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    357:    |    reserved   |      ...      |      ...      |      ...      |
                    358:    |      ...      |      ...      |      ...      |      ...      |
                    359:    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    360: 
                    361:    The fields are:
                    362: 
                    363:    address type (2 octets) - a binary-encoded value in network order.
                    364:    The value 2 is used.
                    365: 
                    366:    TCP port (2 octets) - a binary-encoded value in network order.
                    367: 
                    368:    IP address (4 octets) - a binary-encoded value in network order.
                    369: 
                    370:    reserved (16 octets) - null-value padding.
                    371: 
                    372: Comments
                    373: 
                    374:    At present, the structure of the X.25 address and the internet
                    375:    address are rather ad-hoc and specific to the UNIX operating system.
                    376:    These structures may change in the future as experience is gained in
                    377:    the use of the TP0 bridge.
                    378: 
                    379: References
                    380: 
                    381:      [ISO8072]  Information processing systems -- Open systems
                    382:                 interconnection, "Transport Service Definition",
                    383:                 International Standard, June, 1985.
                    384: 
                    385:      [ISO8073]  Information processing systems -- Open systems
                    386:                 interconnection, "Transport Protocol Specification",
                    387:                 International Standard, July, 1986.
                    388: 
                    389:      [ISO8208]  Information processing systems, "X.25 package level
                    390:                 protocol for data terminal equipment", Draft
                    391: 
                    392: 
                    393: 
                    394: Onions & Rose                                                   [Page 7]
                    395: 
                    396: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    397: 
                    398: 
                    399:                 International Standard, July, 1985.
                    400: 
                    401:      [ISO8878]  Information processing systems -- Data communications,
                    402:                 Use of X.25 to provide the OSI connection-mode network
                    403:                 service", Draft International Standard, January, 1987.
                    404: 
                    405:      [MIL1777]  Military Standard 1777, "Internet Protocol".
                    406: 
                    407:      [MIL1778]  Military Standard 1778, "Transmission Control Protocol".
                    408: 
                    409:      [RFC791]  Postel, J., "Internet Protocol - DARPA Internet Program
                    410:                Protocol Specification", RFC 791, USC/ISI,
                    411:                September 1981.
                    412: 
                    413:      [RFC793]  Postel, J., "Transmission Control Protocol - DARPA
                    414:                Internet Program Protocol Specification", RFC 793,
                    415:                USC/ISI, September 1981.
                    416: 
                    417:      [RFC983]  Cass, D., and M. Rose, "ISO Transport Services on Top
                    418:                of the TCP", RFC 983, NTRC, April 1986.
                    419: 
                    420:      [RFC1006]  Rose, M., and D. Cass, "ISO Transport Service on Top
                    421:                 of the TCP Version: 3", NTRC, May 1987.
                    422: 
                    423:      [X.25]  CCITT Recommendation X.25, "Interface Between Data
                    424:              Terminal Equipment (DTE) and Data Circuit Terminating
                    425:              Equipment (DCE) for Terminals Operating in the Packet
                    426:              Mode on Public Data Networks," International Telegraph
                    427:              and Telephone Consultative Committee Yellow book, Vol.
                    428:              VIII.2, Geneva, 1981.
                    429: 
                    430: 
                    431: 
                    432: 
                    433: 
                    434: 
                    435: 
                    436: 
                    437: 
                    438: 
                    439: 
                    440: 
                    441: 
                    442: 
                    443: 
                    444: 
                    445: 
                    446: 
                    447: 
                    448: 
                    449: 
                    450: Onions & Rose                                                   [Page 8]
                    451: 
                    452: RFC 1086          ISO-TP0 bridge between TCP and X.25      December 1988
                    453: 
                    454: 
                    455: Authors' Addresses:
                    456: 
                    457:    Julian P. Onions
                    458:    Computer Science Department
                    459:    Nottingham University
                    460:    University Park
                    461:    Nottingham, NG7 2RD
                    462:    United Kingdom
                    463: 
                    464:    EMail: [email protected]
                    465: 
                    466:    Marshall Rose
                    467:    The Wollongong Group
                    468:    1129 San Antonio Road
                    469:    Palo Alto, CA 94303
                    470: 
                    471:    Phone: (415) 962-7100
                    472: 
                    473:    EMail: [email protected]
                    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: Onions & Rose                                                   [Page 9]
                    507: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.