Also known as: AX.25, AX25
AX.25 is the data-link-layer protocol used in amateur packet radio. It adapts the telecom HDLC frame format with amateur callsign addressing, and is the link layer beneath APRS and traditional packet-radio networks.12 Sitting at OSI layer 2, AX.25 defines how bits are framed, addressed, and error-checked on the air — it does not itself say what the payload means, which is why the same link layer carries both connectionless APRS beacons and connected bulletin-board sessions.
Overview
An AX.25 frame is bracketed by flag bytes (the bit pattern 01111110, 0x7E) that
mark its start and end. Between the flags come an address field (destination and
source callsigns, each with a 4-bit SSID substation identifier, plus an optional
list of digipeater callsigns forming a relay path), a control field that sets
the frame type, an optional PID (protocol identifier) naming the higher-layer
protocol, the information payload, and finally a 16-bit FCS frame-check
sequence. Three frame families exist: I (information, numbered, for connected data),
S (supervisory, for flow control and acknowledgements), and U (unnumbered).
APRS uses one specific U frame — the connectionless UI
(unnumbered information) frame — because it needs one-shot broadcasts, not sessions.
Technical characteristics
| Property | Value |
|---|---|
| Frame format | HDLC-derived, flag-delimited (0x7E) |
| Addressing | Callsign + SSID (dest, source, up to ~8 digipeaters) |
| Frame types | I (info), S (supervisory), U (unnumbered incl. UI) |
| Error check | 16-bit FCS (CRC-CCITT) |
| Transparency | Zero-bit stuffing after five consecutive 1s |
| Line coding | NRZI over AFSK/FSK |
| Current version | AX.25 v2.2 |
How it works
Two mechanisms make an arbitrary payload safe to carry between flag bytes. First, bit stuffing: because the flag is six 1-bits in a row, the transmitter inserts a 0 after any five consecutive 1s in the data so a payload can never accidentally imitate a flag; the receiver removes those stuffed zeros. Second, NRZI line coding: the data is sent as transitions rather than absolute levels — a 0 is encoded as a change of state and a 1 as no change — which frees the demodulator from needing to know the absolute polarity of the AFSK tones. The FCS is a CRC-CCITT computed over the frame; a receiver recomputes it and discards any frame that fails, which is the sole integrity check on a connectionless UI frame. On the host side, a TNC usually hands framed packets to software over the simple KISS protocol; software TNCs like Direwolf implement the whole AFSK-plus-AX.25 stack in code.
History
AX.25 was developed by the amateur community in the early 1980s (notably through TAPR and the ARRL) as a radio adaptation of the CCITT X.25 / ISO HDLC standards for amateur packet networks and bulletin-board systems.2 The widely referenced version 2.0 and later 2.2 revisions standardised the frame types and addressing still in use. Its longevity owes much to APRS, which kept the link layer in daily use long after connected packet BBS activity faded.
Deployment
AX.25 underlies amateur packet radio in all its forms: APRS position and messaging, store-and-forward BBS and mailbox systems, keyboard-to-keyboard chat, and links into networks such as NET/ROM. It runs over 1200 bps AFSK on VHF most commonly, and over 9600 bps direct FSK or HF modes as well.
Decoding it with GopherTrunk
GopherTrunk recovers AX.25 frames as the link layer of its APRS pipeline: after demodulating the AFSK and reversing NRZI and bit stuffing, it locates flag boundaries, validates the FCS, and extracts the address and information fields. There is nothing proprietary in the link layer, so decode is complete for the framing; what a given payload means is a matter for the higher-layer parser (APRS, or raw packet text). See the APRS / AX.25 page.
Sources
-
AX.25 — Wikipedia, for the amateur packet data-link protocol, its HDLC-derived framing, callsign/SSID addressing, frame types, and FCS. ↩
-
AX.25 Link Access Protocol v2.2 — TAPR/ARRL, the specification defining AX.25 frame formats, addressing, and procedures. ↩ ↩2