X.25 was developed in the ITU-T (formerly CCITT) Study Group VII based upon a number of emerging data network projects. Various updates and additions were worked into the standard, eventually recorded in the ITU series of technical books describing the telecom systems. These books were published every fourth year with different colored covers. The X.25 specification is only part of the larger set of X-Series specifications on public data networks.
The Public data network was the common name given to the international collection of X.25 providers, typically the various national telephone companies. Their combined network had large global coverage during the 1980s and into the 1990s.
X.25 remains in use for certain applications and for some marginal transmission media performance conditions.
The X.25 specification defines only the interface between a subscriber (DTE) and an X.25 network (DCE). X.75, a very similar protocol to X.25, defines the interface between two X.25 networks to allow connections to traverse two or more networks. X.25 does not specify how the network operates internally—many X.25 network implementations used something very similar to X.25 or X.75 internally, but others used quite different protocols internally. The ISO equivalent protocol to X.25, ISO 8208, is the same as X.25, but additionally includes provision for two X.25 DTEs to be directly connected to each other with no network in between.
The X.25 model was based on the traditional telephony concept of establishing reliable circuits through a shared network, but using software to create "virtual calls" through the network. These calls interconnect "data terminal equipment" (DTE) providing endpoints to users, which looked like point-to-point connections. Each endpoint can establish many separate virtual calls to different endpoints.
For a brief period, the specification also included a connectionless datagram service, but this was dropped in the next revision. The "fast select with restricted response facility" is intermediate between full call establishment and connectionless communication. It is widely used in query-response transaction applications involving a single request and response limited to 128 bytes of data carried each way. The data is carried in an extended call request packet and the response is carried in an extended field of the call reject packet, with a connection never being fully established.
Closely related to the X.25 protocol are the protocols to connect asynchronous devices (such as dumb terminals and printers) to an X.25 network: X.3, X.28 and X.29. This functionality was performed using a Packet Assembler/Disassembler or PAD (also known as a Triple-X device, referring to the three protocols used).
X.25 was developed in the era of dumb terminals connecting to host computers, although it also can be used for communications between computers. Instead of dialing directly “into” the host computer — which would require the host to have its own pool of modems and phone lines, and require non-local callers to make long-distance calls — the host could have an X.25 connection to a network service provider. Now dumb-terminal users could dial into the network's local “PAD” (Packet Assembly/Disassembly facility), a gateway device connecting modems and serial lines to the X.25 link as defined by the ITU-T X.29 and X.3 standards.
Having connected to the PAD, the dumb-terminal user tells the PAD which host to connect to, by giving a phone-number-like address in the X.121 address format (or by giving a host name, if the service provider allows for names that map to X.121 addresses). The PAD then places an X.25 call to the host, establishing a virtual circuit. Note that X.25 provides for virtual circuits, so appears to be a circuit switched network, even though in fact the data itself is packet switched internally, similar to the way TCP provides virtual circuits even though the underlying data is packet switched. Two X.25 hosts could, of course, call one another directly; no PAD is involved in this case. In theory, it doesn't matter whether the X.25 caller and X.25 destination are both connected to the same carrier, but in practice it was not always possible to make calls from one carrier to another.
For the purpose of flow-control, a sliding window protocol is used with the default window size of 2. The acknowledgements may have either local or end to end significance. A D bit (Data Delivery bit) in each data packet indicates if the sender requires end to end acknowledgement. When D=1, it means that the acknowledgement has end to end significance and must take place only after the remote DTE has acknowledged receipt of the data. When D=0, the network is permitted (but not required) to acknowledge before the remote DTE has acknowledged or even received the data.
While the PAD function defined by X.28 and X.29 specifically supported asynchronous character terminals, PAD equivalents were developed to support a wide range of proprietary intelligent communications devices, such as those for IBM System Network Architecture (SNA).
X.25 supports two types of virtual circuits, Virtual Calls (VC) which are established as and when required through a call establishment and clearing procedure, and Permanent Virtual Circuits (PVC) which are preconfigured into the network. It should be noted that Virtual Calls were also commonly referred to as Switched Virtual Circuits (SVC).
VC may be established using X.121 addresses. The X.121 address consists of a three-digit Data Country Code (DCC) plus a network digit, together forming the four-digit Data Network Identification Code (DNIC), followed by the National Terminal Number (NTN) of at most ten digits. Note the use of a single network digit, seemingly allowing for only 10 network carriers per country, but some countries are assigned more than one DCC to avoid this limitation. Networks often used fewer than the full NTN digits for routing, and made the spare digits available to the subscriber (sometimes called the sub-address) where they could be used to identify applications or for further routing on the subscribers networks.
NSAP addressing facility was added in the X.25(1984) revision of the specification, and this enabled X.25 to better meet the requirements of OSI Connection Oriented Network Service (CONS). Public X.25 networks were not required to make use of NSAP addressing, but, to support OSI CONS, were required to carry the NSAP addresses and other ITU-T specified DTE facilities transparently from DTE to DTE. Later revisions allowed multiple addresses in addition to X.121 addresses to be carried on the same DTE-DCE interface: Telex addressing (F.69), PSTN addressing (E.163), ISDN addressing (E.164), Internet Protocol addresses (IANA ICP), and local IEEE 802.2 MAC addresses. These were never used though.
PVCs are permanently established in the network and therefore do not require the use of addresses for call setup. PVCs are identified at the subscriber interface by their logical channel identifier (see below). However, in practice not many of the national X.25 networks supported PVCs.
One DTE-DCE interface to an X.25 network has a maximum of 4095 logical channels on which it is allowed to establish virtual calls and permanent virtual circuits, although networks are not expected to support a full 4095 virtual circuits. For identifying the channel to which a packet is associated, each packet contains a 12 bit logical channel identifier made up of an 8-bit Logical Channel Number and a 4-bit Logical Channel Group Number. Logical channel identifiers remain assigned to a virtual circuit for the duration of the connection. Logical channel identifiers identify a specific logical channel between the DTE (subscriber appliance) and the DCE (network), and only has local significance on the link between the subscriber and the network. The other end of the connection at the remote DTE is likely to have assigned a different logical channel identifier. The range of possible logical channels is split into 4 groups: channels assigned to permanent virtual circuits, assigned to incoming virtual calls, two-way (incoming or outgoing) virtual calls, and outgoing virtual calls. (Directions refer to the direction of virtual call initiation as viewed by the DTE -- they all carry data in both directions.) The ranges allowed a subscriber to be configured to handle significantly differing numbers of calls in each direction while reserving some channels for calls in one direction. The extent to which networks implemented these varied considerably, and some networks only offered the two-way logical channel range, that being the simplest. All International networks are required to implement support for permanent virtual circuits, two-way logical channels and one-way logical channels outgoing; one-way logical channels incoming is an additional optional facility. DTE-DCE interfaces are not required to support more than one logical channel. Logical channel identifier zero will not be assigned to a permanent virtual circuit or virtual call. The logical channel identifier of zero is used for packets which don't relate to a specific virtual circuit (e.g. packet layer restart, registration, and diagnostic packets).
With the widespread introduction of "perfect" quality digital phone services and error correction in modems, the overhead of X.25 was no longer worthwhile. The result was called Frame relay, essentially the X.25 protocol with the error correction systems removed, and somewhat better throughput as a result. The concept of virtual circuits is still used within ATM to allow for traffic engineering and network multiplexing.
The X.25 protocol processing within packet switches is more complex (hence more costly and/or slower) than the equivalent router function within the Internet Protocol network layer. Internet Protocol places more responsibility on the protocol stacks in the end systems to ensure reliable data transfer across the network, and with reducing cost and increasing processing power of end-systems, combined with the prospects of cheaper network infrastructure, the economic viability of X.25 declined.
|Packet Type||DCE -> DTE||DTE -> DCE||Service||VC||PVC|
|Call setup and Clearing||Incoming Call||Call Request||X|
|Call Connected||Call Accepted||X|
|Clear Indication||Clear Request||X|
|Clear Confirmation||Clear Confirmation||X|
|Data and Interrupt||Data||Data||X||X|
|Interrupt Confirmation||Interrupt Confirmation||X||X|
|Flow Control and Reset||RR||RR||X||X|
|Reset Indication||Reset Request||X||X|
|Reset Confirmation||Reset Confirmation||X||X|
|Restart||Restart Indication||Restart Request||X|
|Restart Confirmation||Restart Confirmation||X|
|Registration||Registration Confirmation||Registration Request||X|
X.25 provides a set of user facilities defined and described in ITU-T Recommendation X.2 The X.2 user facilities fall into five categories:
X.25 also provides X.25 and ITU-T specified DTE optional user facilities defined and described in ITU-T Recommendation X.7 The X.7 optional user facilities fall into four categories of user facilities that require:
The CCITT/ITU-T versions of the protocol specifications are for Public Data Networks (PDN). The ISO/IEC versions address additional features for private networks (e.g. Local Area Networks (LAN) use) while maintaining compatibility with the CCITT/ITU-T specifications.
The user facilities and other features supported by each version of X.25 and ISO/IEC 8208 have varied from edition to edition. Several major protocol versions of X.25 exist:
The X.25 Recommendation allows many options for each network to choose when deciding which features to support and how certain operations are performed. This means each network needs to publish its own document giving the specification of its X.25 implementation, and most networks required DTE appliance manufacturers to undertake protocol conformance testing, which included testing for strict adherence and enforcement of their network specific options. (Network operators were particularly concerned about the possibility of a badly behaving or misconfigured DTE appliance taking out parts of the network and affecting other subscribers.) Therefore, subscriber's DTE appliances have to be configured to match the specification of the particular network they are connecting to. Most of these were sufficiently different to prevent interworking if the subscriber didn't configure their appliance correctly or the appliance manufacturer didn't include specific support for that network. In spite of protocol conformance testing, this often lead to interworking problems when initially attaching an appliance to a network. This is in stark contrast to the Robustness Principle employed in the Internet Protocol family.
Public networks were adopters of the earlier protocol versions, but reluctant to upgrade fearing subscriber compatibility issues and struggling to justify the expense. Most public networks ended up running something roughly on a parity with X.25 (1980) with some parts of X.25 (1984). Private networks started using X.25 later and were more likely to take upgrades, and many of those operated something nearer to X.25 (1984) with a few X.25 (1988) features. By about 1990, X.25 development by all the major network switch vendors had ceased, and there were no significant implementations of the 1993 and 1996 protocol versions.
In addition to the CCITT/ITU-T versions of the protocol, four editions of ISO/IEC 8208 exist: