|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.