Annotation of 43BSDReno/contrib/isode-beta/doc/rfcs/rfc1086.txt, revision 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.