AX.25 (Amateur X.25) is a data link layer protocol originally derived from layer 2 of the X.25 protocol suite and designed for use by amateur radio operators. It is used extensively on amateur packet radio networks.

AX.25 v2.0 and later occupies the data link layer, the second layer of the OSI model. It is responsible for establishing link-layer connections, transferring data encapsulated in frames between nodes, and detecting errors introduced by the communications channel. As AX.25 is a pre-OSI-model protocol, the original specification was not written to cleanly separate into OSI layers. This was rectified with version 2.0 (1984), which assumes compliance with OSI level 2.

AX.25

AX.25 v2.2 (1998) added improvements to improve efficiency, especially at higher data rates. Stations can automatically negotiate payload sizes larger than the previous limitation of 256 bytes. Extended sequence numbers (7 vs. 3 bits) allow a larger window size, the number of frames that can be sent before waiting for acknowledgement. "Selective Reject" allows only the missing frames to be resent, rather than having to wastefully resend frames that have already been received successfully. Despite all these advantages, few implementations have been updated to include these improvements published more than 20 years ago. The only known complete implementation of v2.2, at this time (2020), is the Dire Wolf software TNC.

AX.25

AX.25 is commonly used as the data link layer for network layer such as IPv4, with TCP used on top of that. AX.25 supports a limited form of source routing. Although it is possible to build AX.25 switches similar to the way Ethernet switches work, this has not yet been accomplished.

AX.25

Specification

AX.25 does not define a physical layer implementation. In practice 1200 baud Bell 202 tones and 9600 baud G3RUH DFSK are almost exclusively used on VHF and UHF. On HF the standard transmission mode is 300 baud Bell 103 tones. At the physical layer, AX.25 defines only a "physical layer state machine" and some timers related to transmitter and receiver switching delays.

At the link layer, AX.25 uses HDLC frame syntax and procedures. (ISO 3309) frames are transmitted with NRZI encoding. HDLC specifies the syntax, but not the semantics, of the variable-length address field of the frame. AX.25 specifies that this field is subdivided into multiple addresses: a source address, zero or more repeater addresses, and a destination address, with embedded control fields for use by the repeaters. To simplify compliance with amateur radio rules, these addresses derive from the station call signs of the source, destination and repeater stations.

Media access control follows the Carrier sense multiple access approach with collision recovery (CSMA/CR).

AX.25 supports both virtual-circuit connected and datagram-style connectionless modes of operation. The latter is used to great effect by the Automatic Packet Reporting System (APRS).

A simple source routing mechanism using digipeaters is available at the datalink level. Digipeaters act as simplex repeaters, receiving, decoding and retransmitting packets from local stations. They allow multi-hop connections to be established between two stations unable to communicate directly. The digipeaters use and modify the information in the frame's address field to perform this function.

The AX.25 specification defines a complete, albeit point to point only network layer protocol, but this has seen little use outside of keyboard-to-keyboard or keyboard-to-BBS connections. NET/ROM, ROSE, and TexNet exist to provide routing between nodes. In principle, a variety of layer 3 protocols can be used with AX.25, including the ubiquitous Internet Protocol (IP). This approach is used by AMPRNet, which is an amateur radio TCP/IP network using AX.25 UI-frames at the datalink layer.

Implementations

Traditionally, amateur radio operators have connected to AX.25 networks through the use of a terminal node controller, which contains a microprocessor and an implementation of the protocol in firmware. These devices allow network resources to be accessed using only a dumb terminal and a transceiver.