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