AX.25
AX.25 (Amateur X.25) is a data link layer protocol derived from the X.25 protocol suite and designed for use by amateur radio operators.[1] 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 mainly responsible for establishing connections and 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.
In practice, it is common 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 it is possible to build AX.25 switches similar to the way Ethernet switches work, this has not yet been accomplished.
Specification
AX.25 does not define a physical layer implementation. In practice 1200 baud Bell 202 tones and 9600 baud G3RUH DFSK[2] are almost exclusively used on VHF and UHF. On HF the standard transmission mode is 300 baud Bell 103 tones, although very little use of AX.25 on HF exists today. 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 datalink level, AX.25 specifies HDLC (ISO 3309)[3] frames transmitted with NRZI encoding. 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.
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 AX.25 specification does define 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. 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.
More recently, AX.25 implementations have appeared for personal computers. For example, the Linux kernel includes native support for AX.25 networking.[4]
KISS-mode framing
- See full article at KISS (TNC)
AX.25 is often used with a TNC that implements the KISS[5] 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.[6]
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.
In recent years, the Automatic Packet Reporting System (APRS) 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),[7] 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 the radio amateur station callsign specification was amended so that the earlier maximum length of six characters was raised to seven characters. However AX.25 has a built-in hard limit of six characters, which means a seven-character callsign 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 KA9Q, 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.[8]
Despite these limitations, an extension to the AX.25 protocol, supporting forward error correction, has been created by the TAPR. This extension is called FX.25.
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 30 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
References
- ↑ "AX.25 Link Access Protocol for Amateur Packet Radio" (PDF). Tucson Amateur Packet Radio. 1997. Retrieved 2014-01-15.
- ↑ James Miller G3RUH (1995). "9600 Baud Packet Radio Modem Design". Retrieved 2012-02-03.
- ↑ ISO/IEC 3309: "Information technology. Telecommunications and information exchange between systems. High-level Data Link Control (HDLC) procedures. Frame structure" (1984).
- ↑ John Ackermann (2002). "Linux AX.25 Configuration". febo.com. Archived from the original on 11 March 2008. Retrieved 2008-03-05.
- ↑ Mike Chepponis; Phil Karn. "The KISS TNC: A simple Host-to-TNC communications protocol". Archived from the original on 25 July 2008. Retrieved 2008-08-18.
- ↑ "6PACK a "real time" PC to TNC protocol". Retrieved 2009-05-28.
- ↑ Jeff Tranter (1997). "Packet Radio Under Linux". Linux Journal. Archived from the original on 22 November 2008. Retrieved 2009-01-01.
- ↑ "Bugblat Cortino". Retrieved 2009-12-01.
Further reading
- Terry L. Fox, WB4JFI (1984). AX.25 Amateur Packet-Radio Link-Layer Protocol, Version 2.0 (PDF). Newington, CT: ARRL. p. 18. ISBN 0-87259-011-9.
- Rich Roznoy, K1OF, ed. (1997). Packet: Speed, More Speed and Applications (2nd Edition). Newington, CT: American Radio Relay League, Inc. ISBN 0-87259-605-2.
- 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.