X.25 Logical Channels

An X.25 link is split into a number of Logical Channels - each Logical Channel can carry a separate Virtual Circuit.

Each Logical Channel is identified by its Logical Channel Number (LCN), also known as a Logical Channel Identifier (LCI).

The LCN occupies 12 bits within the header of the X.25 packet - there are thus 4096 different potential LCNs available per X.25 link - 0 to 4095. On the majority of X.25 Networks, LCN 0 is reserved for Link Control traffic, and is not available for Virtual Circuits, thus only 4095 simultaneous Virtual Circuits are possible. Some networks, however, do support Virtual Circuits on LCN 0, allowing 4096 Virtual Circuits to be supported - this is also supported by the FarSync X.25 software.

The Logical Channel Number is purely a local matter to each X.25 link between the DTE and the Network - a virtual circuit will usually be carried on a completely different LCN on the local link to the LCN used on the remote link between the remote network node and the DTE on the far side of the network - the network ensures that the packets get routed to the correct LCN.

The number of Logical Channels available to be used depends on the number assigned by the Network Operator - on a public network, it normally costs extra to have a large number, and some links may be supplied with as few as 2 LCNs.

The range of numbers assigned is also determined by the Network Operator - the configuration of the channel assignments is critically important to the successful operation of the X.25 link: the configuration of the DTE must correspond with the configuration of the DCE.

This does unfortunately make X.25 more difficult to configure than TCP/IP - X.25 simply will not work properly if the channel assignments are misconfigured.

For this reason, the FarSync X.25 software on Windows contains a utility - x25ChanProbe.exe - to determine the channel assignments automatically. It does this by by transmitting a Call Request packet on every possible LCN, and checking the results - typically a Call Request on an unassigned channel is ignored, so it can take some time to gather the results.