Role of UDP in RADIUS Authentication Protocol
The Remote Authentication Dial-In User Service (RADIUS) protocol relies on the User Datagram Protocol (UDP) at the transport layer to facilitate centralized Authentication, Authorization, and Accounting (AAA) management. This article examines how and why RADIUS uses UDP, covering the standard port assignments, the performance advantages of a connectionless transport mechanism, the built-in application-layer mechanisms used to ensure reliability, and how UDP facilitates efficient server failover.
Why RADIUS Operates Over UDP
RADIUS was designed as a lightweight, transactional protocol intended to handle high volumes of authentication requests with minimal overhead. UDP is utilized instead of connection-oriented protocols like TCP for several primary reasons:
- Lower Overhead: UDP does not require the multi-step handshake process (SYN, SYN-ACK, ACK) associated with establishing a TCP connection. This reduces round-trip times and bandwidth usage.
- Stateless and Asynchronous Handling: Network Access Servers (NAS) often handle thousands of concurrent dial-in, VPN, or 802.1X wireless users. UDP allows RADIUS servers to process independent authentication queries concurrently without maintaining active transport-level connection states for every client.
- Simplified Implementation: In early network environments, embedded devices acting as access points or switches had limited memory and processing power. UDP’s lightweight header (8 bytes compared to TCP’s 20+ bytes) made it ideal for resource-constrained systems.
Standard UDP Ports for RADIUS
RADIUS operates across specific, standardized UDP ports:
- UDP Port 1812: RADIUS Authentication and Authorization (IETF standard RFC 2865).
- UDP Port 1813: RADIUS Accounting (IETF standard RFC 2866).
- UDP Ports 1645 and 1646: Legacy ports originally used for authentication and accounting before official IANA standardization. Many modern devices still provide backward compatibility for these ports.
Application-Layer Reliability
Because UDP provides best-effort delivery without built-in guarantees, the RADIUS protocol implements reliability controls directly within its application layer:
- Packet Identification: Every RADIUS packet includes
an 8-bit Identifier field in its header. The RADIUS
client matches this identifier between outgoing requests (such as
Access-Request) and incoming responses (such asAccess-AcceptorAccess-Reject) to detect lost or out-of-order packets. - Timers and Retransmissions: The RADIUS client maintains its own retransmission timers. If a response is not received within a configured timeout window, the client automatically retransmits the request using the same identifier.
- Response Authenticator: To ensure data integrity and authenticity without transport-layer verification, RADIUS uses a 16-byte Authenticator field combined with a pre-shared secret. The client validates this cryptographic hash to confirm the packet arrived unmodified from a trusted server.
Dynamic Failover and Redundancy
The connectionless design of UDP improves high-availability deployments. When an authentication server becomes unresponsive, the RADIUS client does not need to wait for long TCP connection resets or timeouts. Instead, the client can immediately redirect timed-out requests to a secondary or tertiary RADIUS server without tearing down or establishing new network connections.