Menu
Latest
12 meetings · Prague, Jeju · 12–16 Oct
Reports
RAN1#126-bis · SA2#177

Glossary term · Core Network

ALG

Application Level Gateway

Core Network →

ALG is an application-specific functional entity that enables communication between disparate address realms or IP versions by translating network addresses embedded in application payloads.

Introduced
Rel-5
Where
Core Network › Evolved Packet Core
Specifications
6 specs
Also in
Services
ALG Description Purpose What changed Neighbours Specifications

Description

The Application Level Gateway (ALG) is a critical functional entity in 3GPP networks that facilitates communication between nodes operating in different IP address realms or IP versions (e.g., IPv4 and IPv6). Unlike basic Network Address Translation (NAT) or NAT with Protocol Translation (NAT-PT), which are application-unaware, an ALG is application-specific and capable of inspecting and translating network addresses embedded within application-layer payloads. This is essential for protocols like SIP/SDP, where IP addresses and port numbers are carried in the message body and must be translated to maintain end-to-end connectivity.

The ALG operates at the application layer, often integrated with a NAT-PT or NAT device. When a packet traverses the ALG, it not only translates the IP header addresses but also parses the application payload to identify and replace embedded IP addresses and port numbers. For example, in a SIP INVITE message, the SDP body contains the IP address and port where the caller expects to receive media. Without ALG, the recipient in a different address realm would attempt to send media to an unreachable address. The ALG rewrites these fields to reflect the translated address, ensuring that the media path is correctly established.

In 3GPP networks, ALGs are particularly relevant for interworking between IPv6-only and IPv4-only domains, a scenario common during the transition to IPv6. The ALG may reside in the IMS core, at the boundary between the packet core and external networks, or in the UE itself. 3GPP specifications such as TS 23.228 (IMS), TS 23.417, and TS 29.079 define the requirements and procedures for ALG functionality in various contexts, including IMS and interworking with external networks.

The ALG must be aware of the specific application protocols it supports. For SIP/SDP, it must handle not only the IP addresses in the SDP but also any SIP headers that contain addresses (e.g., Via, Contact, Record-Route). It must also manage the state of sessions to correctly translate addresses in subsequent messages. This stateful operation introduces complexity and potential performance bottlenecks, but it is necessary for seamless interworking.

Security considerations are paramount: the ALG must not introduce vulnerabilities such as address spoofing or denial of service. It must also handle fragmentation and other IP-level issues. Despite its benefits, ALGs can be challenging to deploy due to the need to keep pace with application protocol evolution. Nevertheless, they remain a vital component for ensuring interoperability in mixed IP-version environments, as reflected in their continuous presence from Rel-5 through Rel-19.

Purpose & Motivation

The ALG exists to solve the problem of communication between nodes in different IP address realms or IP versions when application protocols carry network addresses in their payloads. Basic NAT and NAT-PT only translate IP headers, leaving embedded addresses untouched, which breaks protocols like SIP/SDP. The ALG was introduced to perform application-specific translation, enabling seamless interworking without requiring changes to end hosts or applications.

Historically, as networks began transitioning from IPv4 to IPv6, the need arose to allow IPv6-only devices to communicate with IPv4-only devices. Early solutions like NAT-PT were application-unaware and failed for protocols that embed addresses. The ALG concept, standardized in IETF RFC 2663 and adopted by 3GPP, provided a framework for application-aware translation. This allowed operators to deploy IPv6 in their core networks while still supporting legacy IPv4 services and roaming partners.

The ALG also addresses scenarios where private and public address realms must interwork, such as when a UE in a private IP network accesses services in a public network. By translating embedded addresses, the ALG ensures that sessions are established correctly and media flows as expected. Without ALGs, many real-time services (VoIP, video) would fail across address realm boundaries.

What changed in its specifications

The latest release-to-release comparison of specifications that define ALG. Each summary describes the whole specification, not only this term.

TS 23.228Rel-18 → Rel-19

Rel-19 TS 23.228 adds SBI service operations for IMS data channels, event subscription, and user information, plus HSS lookup of the serving IMS AS. It adds PS Data Off handling for IMS Data Channel services and Multimedia Priority Service for Messaging.

Full comparison in TS 23.228 →
TS 29.079Rel-11 → Rel-12

Rel-12 added an iotl SIP URI parameter (RFC 7549) to Route, Request-URI, and Feature-Caps entries in message flows for NNI Routeing scenario indication.

Full comparison in TS 29.079 →

Release Timeline

Evolution Across Releases

An overview written from the defining specifications, not a verified change history. For the exact text, open the specifications listed below.

Rel-5 Initial

Initial definition: ALG is an application-specific functional entity that allows an IPv6 node to communicate with an IPv4 node and vice versa when applications carry network addresses in payloads like SIP/SDP. NA(P)T-PT is application-unaware whereas ALGs are application-specific translation entities. See Reference [14].

Definition unchanged except reference number updated to [34]. The core concept remained the same.

Reference updated to IETF RFC 2663 [34], aligning with the IETF specification. Definition text otherwise unchanged.

Definition expanded to include communication between disparate address realms or IP versions, not just IPv6/IPv4. NA(P)T-PT or NA(P)T is application-unaware. This broadened the scope to cover private/public address realm interworking.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Definition carried over unchanged from Rel-8.

Defining Specifications

3GPP specifications that define or reference ALG, with the latest known release. Sourced from the 3GPP document catalog — see methodology.

SpecificationTitleRelease
TS 23.228 vk10 IP Multimedia Core Network Subsystem Rel-20 read
TS 23.417 v700 IMS Core Component for NGN Architecture Rel-7 read
TS 23.517 v800 IMS Core Architecture for TISPAN NGN Rel-8 read
TR 23.981 vj00 IPv4 IMS Interworking and Migration Study Rel-19 read
TS 29.079 vj00 Optimal Media Routeing (OMR) Procedures Rel-19 read
TS 29.235 vj00 SIP-I CS Core Network Interworking Rel-19 read