Perhaps the most important service provided by X.25 is multiplexing. A DTE is allowed to establish up to 4095 simultaneous virtual circuits with other DTEs over a single DTE-DCE link. The DTE can internally assign these circuits in anyway it pleases. Individually virtual circuits could correspond to applications, process, or terminals for example. The DTE-DCE link provides full duplex multiplexing, i.e., at anytime, a packet associated with a given virtual circuit can be transmitted in either direction.
To sort out which packets belong to which virtual circuits, each packet contains a 12-bit virtual circuit number. The assignment of virtual circuit numbers follows the convention depicted in the figure. Number zero is always reserved for diagnostic packets common to all virtual circuits. Then contiguous ranges of numbers are allocated for four categories of virtual circuits. Permanent virtual circuits are assigned numbers beginning with 1. The next category is one way, incoming virtual calla. This means that only incoming calls from the network can be assigned these numbers; the virtual circuit however, is two-way (full duplex). When a call request comes in, the DCE selects an unused number from this category.
One-way outgoing calls are those initiated by the DTE. In this case, the DTE selects an unused number from among those allocated for these calls. This separation of categories is intended to avoid the simultaneous selection of the same number for two different virtual circuits by the DTE and DCE.
The two-way virtual-call category provides an overflow for allocation shared by DTE and DCE, allowing for peak differences in traffic flow.