Field Guide · protocol

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.

flag address control PID information FCS flag
AX.25 is the amateur packet link layer: an HDLC frame delimited by 0x7E flags, with callsign addresses, payload, and a 16-bit FCS.

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

  1. AX.25 — Wikipedia, for the amateur packet data-link protocol, its HDLC-derived framing, callsign/SSID addressing, frame types, and FCS. 

  2. AX.25 Link Access Protocol v2.2 — TAPR/ARRL, the specification defining AX.25 frame formats, addressing, and procedures.  2

See also