AX.25

From OnnoWiki
Jump to navigation Jump to search

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

AX.25 occupies the first, second, and often the third layers of the OSI networking model, and is responsible for transferring data (encapsulated in packets) between nodes and detecting errors introduced by the communications channel. It is thus comparable to the combination of Ethernet and TCP in the services it provides. However, as AX.25 is a pre-OSI-model protocol, the specification was not written to cleanly separate into OSI layers. In practice, it is not uncommon to find an AX.25 data link layer as the transport for some other network layer, such as IPv4, with TCP used on top of that. Note that, like Ethernet, AX.25 frames are not engineered to support switching. For this reason, AX.25 supports a somewhat limited form of source routing. Although possible to build AX.25 switches in a manner not unlike how Ethernet switches work, this has not yet been accomplished.

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.

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.

More recently, AX.25 implementations have appeared for personal computers. For example, the Linux kernel includes native support for AX.25 networking.

Technically, AX.25 does not completely define a physical layer implementation, although it does define a physical-layer state machine. In practice AX.25 is almost exclusively used with 300 baud Bell 103 tones on HF and 1200 and 9600 baud Bell 202 tones on VHF, although the NRZI encoding differs from the telephone modem standards (it uses NRZS, not NRZM). These combinations are so ubiquitous that most users do not differentiate between the AX.25 data layer and the underlying physical layer, a situation that is exacerbated by the fact that the designers of the AX.25 protocol did not use consistent terminology and did not themselves clearly differentiate between tasks belonging to the various layers. The more recent AX.25 publications attempts to better delineate physical and data link layers.

KISS-mode framing

AX.25 is often used with a TNC that implements the KISS framing as a low-cost alternative to using expensive and uncommon HDLC controller cards.

The KISS framing is not part of the AX.25 protocol itself nor is it sent over the air. It merely serves to encapsulate the protocol frames in a way that can successfully pass over a serial link to the TNC. The KISS framing is derived from SLIP, and makes many of the same assumptions, such as there only being two "endpoints" involved in the conversation. With SLIP, these were the two SLIP-connected hosts; with KISS, it is assumed that the KISS framing link is over serial with only the host computer and the PC involved. Among other things, this makes it awkward to address multiple TNCs without having multiple (serial) data channels.

Alternatives to KISS do exist that address these limitations, such as 6PACK

Applications

AX.25 has most frequently been used to establish direct, point-to-point links between packet radio stations, without any additional network layers. This is sufficient for keyboard-to-keyboard contacts between stations and for accessing local bulletin board systems and DX clusters.

A simple source routing mechanism using digipeaters is available at this level of operation. Digipeaters act as simplex repeaters, receiving and retransmitting packets from local stations. They allow multi-hop connections to be established between two stations unable to communicate directly.

The AX.25 specification does 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, any layer 3 protocol can be used with AX.25, including the ubiquitous Internet protocol.

In recent years, the Automatic Packet Reporting System has become a popular application.

For tunneling of AX.25 packets over IP, AXIP and AXUDP are used to encapsulate AX.25 into IP or UDP packets.

Limitations

At the speeds commonly used to transmit packet radio data (rarely higher than 9,600 bit/s, and typically 1,200 bit/s), the use of additional network layers with AX.25 is impractical due to the data overhead involved. This is not a limitation of AX.25 per se, but places constraints on the sophistication of applications designed to use it.

The AX.25 protocol identifies each message by sender and destination station call-sign plus SSID value in range 0 through 15. At ITU WARC2003 meeting earlier radio amateur station call-sign specification was amended so that earlier maximum length of 6 character was raised to 7 characters. However AX.25 has a built in hard limit of 6 characters, which means a 7 character call-sign cannot be used in an AX.25 network.

AX.25 lacks an explicit port (or SAP); the SSID often assumes this role. Thus there can be only one service per AX.25 station SSID address, which is often kludged around with varying degrees of success.

Some amateurs, notably Phil Karn, have argued that AX.25 is not well-suited to operation over noisy, limited-bandwidth radio links, citing its lack of forward error correction (FEC) and automatic data compression. However, a viable widely-adopted successor to AX.25 has yet to emerge. Likely reasons may include:

  • a large existing deployment of recycled narrowband FM radios and especially existing APRS applications,
  • easy availability of cheap, low-power FM transmitters, especially for the 430 MHz UHF band, to match existing legacy radio gear,
  • new radio level modulations would need different radio gear than what is currently in use and the resulting system would be incompatible with the existing one - thus requiring a large initial investment in new radio gear,
  • adoption of newer line codings potentially including forward error correction takes more effort than the 1,200 bit/s AFSK of Bell 202. Previously sufficient small 8 bit microprocessors with 128 bytes of RAM would not be enough, and new ones might cost USD 30 instead of USD 3. Phil Karn did demo decoding of this new modulation of his by running it on a Pentium II machine - some 10 years later, mid-level embedded microprocessors are capable enough to do the same with under USD 50 system cost.
  • a general decline in the use of Amateur Radio (particularly packet radio) would make adoption marginal and impractical.

Small gadget transmitters do not need to know what is being transmitted. There is only a need to monitor channel occupation by radio receiver RSSI (Received Signal Strength Indication) to know when not to send. Transmitting interleaved Reed-Solomon FEC signal in some smart modulation needs a lot fewer resources than reception of the same signal, thus a sufficient microprocessor might cost just USD 5 instead of USD 3 and a system cost might stay below USD 50, transmitter included. However, in recent years, the ability to receive as well as send using cheap microcontrollers (such as the Atmel AVR or the Motorola 68HC08 families) have been demonstrated.

It seems, however, that any new system that is not compatible with the current Bell 202 modulation is unlikely to be widely adopted. The current modulation seems to fulfill sufficient need that little motivation exists to move to a superior design, especially if the new design requires significant hardware purchases. However, as existing Bell 202 modem chips become obsolete without replacement, this consideration becomes less overwhelming.

See also

Further reading

  • AMPRNet – a project to construct a global, radio-based network using TCP/IP over AX.25 links
  • Linux-AX25.org – Site dedicated to packet radio on Linux
  • AX.25 Layer 2 – This web site has been established to be a concise repository for AX.25 layer 2 design activities.
  • APRS - Bob Bruninga's official APRS website.

Pranala Menarik