Fact-checked by Grok 2 weeks ago

GPRS Tunnelling Protocol

The GPRS Tunnelling Protocol (GTP) is a protocol suite specified by the 3rd Generation Partnership Project (3GPP) for tunneling end-user packet data between radio access and core networks across generations including GPRS, UMTS, EPS, and 5GS (via GTP-U), and for control-plane signaling messages between support nodes in the core network of pre-5G mobile packet-switched systems (GPRS, UMTS, EPS). It operates primarily over UDP/IP and uses tunnel endpoint identifiers (TEIDs) to multiplex and route traffic between nodes such as Serving GPRS Support Nodes (SGSNs), Gateway GPRS Support Nodes (GGSNs), Mobility Management Entities (MMEs), Serving Gateways (SGWs), and Packet Data Network Gateways (PGWs). In 5GS, GTP is primarily used for user-plane tunneling, with core control signaling handled by protocols like PFCP and HTTP/2. GTP has evolved through multiple versions to support advancing mobile network architectures. GTPv0, the initial version from GSM 09.60, was used for early GPRS deployments but is now deprecated. GTPv1, defined in 3GPP TS 29.060 and TS 29.281, provides control-plane (GTP-C) and user-plane (GTP-U) functionalities for / networks, handling mobility events like attach and as well as session procedures for Packet Data Protocol (PDP) contexts. GTPv2, introduced in 3GPP TS 29.274 for the Evolved Packet System () in , extends these capabilities with enhanced control-plane signaling (GTPv2-C) for bearer management and inter-system mobility, while retaining GTP-U for user data in later releases. At its core, GTP separates control and user planes to optimize network efficiency. The (GTP-C or GTPv2-C) manages signaling for procedures such as session creation, modification, and deletion, as well as context transfers across interfaces like Gn (intra-PLMN), Gp (inter-PLMN), S11 (MME-SGW), and S5/S8 (SGW-PGW). The user plane (GTP-U or GTPv2-U) encapsulates and forwards actual user traffic, supporting interfaces including Iu ( RNC-SGSN), S1-U (eNodeB-SGW), and N3 ( gNB-UPF), with extensions for (QoS) and flow-based charging. Key functionalities of GTP include enabling seamless user equipment (UE) mobility through procedures like routing area updates, inter-node handovers, and serving radio network subsystem (SRNS) relocations in 3G, while in 4G/5G it supports evolved packet system (EPS) bearer activation and path switching for low-latency data transfer. It also incorporates features like echo requests for tunnel health monitoring, overload control to manage , and information elements (IEs) encoded in type-length-value (TLV) format for extensibility and . Overall, GTP remains a foundational element in 3GPP-defined packet cores, ensuring reliable tunneling from 2G-era GPRS to modern 5G standalone deployments.

Overview

Definition and Purpose

The GPRS Tunnelling Protocol (GTP) is an IP-based protocol developed for use in General Packet Radio Service (GPRS) and Universal Mobile Telecommunications System (UMTS) networks to carry user data and control signaling between core network elements, such as the Serving GPRS Support Node (SGSN) and Gateway GPRS Support Node (GGSN). It serves as a tunneling mechanism to support the packet-switched domain, enabling efficient communication across the Gn interface (within a Public Land Mobile Network, PLMN) and the Gp interface (between PLMNs). GTP encompasses variants for the control plane (GTP-C) and user plane (GTP-U), which together facilitate session establishment and data transfer. The primary purpose of GTP is to enable , session control, and data tunneling in the packet-switched domains of and networks, with extensions to (, EPS) and environments. It allows the SGSN to provide packet data network access for mobile stations by managing procedures such as GPRS Attach, Routing Area Update, and Packet Data Protocol (PDP) Context Activation. By abstracting the user plane from the , GTP ensures seamless handling of user traffic while maintaining network efficiency and scalability in mobile environments. At its core, GTP employs a tunneling mechanism that encapsulates context information and user packets within GTP headers, transported over / for reliable delivery between endpoints. This encapsulation uses Tunnel Endpoint Identifiers (TEIDs) to multiplex and demultiplex traffic, allowing multi-protocol packets to traverse the /GPRS backbone without modification. GTP further supports and inter-operator by transferring session parameters during inter-SGSN updates and enabling tunneling across PLMN boundaries, thus ensuring continuity of service for users. Its design has been iteratively enhanced across releases to accommodate evolving network architectures, maintaining relevance in modern packet core implementations.

Key Features

The GPRS Tunnelling Protocol (GTP) supports both and as transport protocols, with being mandatory for most tunneling operations to minimize in mobile core networks. operates on registered ports such as 2123 for messages and 2152 for user plane tunneling, ensuring efficient packet delivery in high-throughput environments. A core feature is the 32-bit Tunnel Endpoint Identifier (TEID), which uniquely identifies and enables of multiple user sessions over a single connection between elements like SGSNs and GGSNs. The TEID is assigned by the receiving and exchanged via messages, allowing precise and of for individual mobile subscribers without requiring separate connections. GTP incorporates path management mechanisms for and reliability, including periodic request and response messages that serve as keep-alives to detect path failures or peer unavailability. These es are transmitted at intervals of no less than 60 seconds per path, with timers and retry mechanisms ensuring robust connectivity monitoring across the backbone. Security in GTP lacks built-in or at the protocol level, instead relying on external mechanisms as defined for protection in backhaul. This dependency exposes vulnerabilities, such as GTP-in-GTP attacks where malicious packets are encapsulated within legitimate GTP tunnels to evade firewalls and inject unauthorized traffic or hijack sessions. GTP is designed for scalability in handling high volumes of mobile data sessions, supporting many-to-many relationships between core network nodes and enabling load sharing across multiple tunnels and contexts per connection. Features like dual-stack addressing and efficient context redistribution allow it to manage thousands of concurrent sessions in dense urban deployments without performance degradation.

Protocol Versions

GTP Version 1

GTP Version 1 (GTPv1) was introduced in Release 97 to support the General Packet Radio Service (GPRS) in networks, enabling the tunneling of user data and control signaling between GPRS Support Nodes (GSNs) across the Gn and Gp interfaces. The core specification is detailed in TS 29.060, which defines the protocol's structure, procedures, and interfaces for GPRS and later networks. This version laid the foundation for packet-switched data services in mobile networks by providing a mechanism for and data encapsulation without requiring modifications to the underlying IP transport. GTPv1 employs several key signaling messages to manage Packet Data Protocol (PDP) contexts, which represent user sessions. The Create PDP Context Request and Response messages initiate the activation of a PDP context, establishing a tunnel for data transfer between the Serving GPRS Support Node (SGSN) and Gateway GPRS Support Node (GGSN). For session teardown, the Delete PDP Context Request and Response messages are used to deactivate and release resources associated with an existing PDP context. Mobility is handled through the Update PDP Context Request and Response, which modify parameters such as the Tunnel Endpoint Identifier (TEID) to support handovers without interrupting the session. These messages operate primarily over UDP and are essential for maintaining connectivity in circuit-switched environments transitioning to packet data. The protocol includes three main variants tailored to different functions. GTP-C (Control plane) manages signaling for tunnel setup, modification, and deletion, using UDP port 2123. GTP-U (User plane) handles the encapsulation and tunneling of actual user packets, assigned to UDP port 2152, with its normative details specified in 3GPP TS 29.281 since Release 8. GTP' supports charging and billing by transferring charging records, operating over UDP port 3386 as defined in 3GPP TS 32.295. Despite its foundational role, GTPv1 has notable limitations that constrain its applicability in modern networks. It lacks support for bearer-level (QoS) differentiation, treating all traffic within a PDP context uniformly without granular control over multiple bearers. Additionally, the protocol uses a fixed 8-byte header without extension mechanisms, limiting adaptability to new features like enhanced security or integration beyond basic support. GTPv1 remains in use for legacy 2G and 3G networks but is being phased out in favor of GTP Version 2 for 4G and beyond, particularly in Evolved Packet Core (EPC) deployments where enhanced control and indirect tunneling are required. As of Release 16, it continues to be maintained for backward compatibility in GPRS/UMTS systems, though interworking with even older GTPv0 was removed in Release 8.

GTP Version 2

GTP Version 2 (GTPv2) was defined in Release 8 through TS 29.274 to support the , enabling enhanced , session control, and bearer handling across core network interfaces such as S5/S8, S11, and S10. It introduces capabilities for direct and indirect data forwarding to minimize during handovers, particularly in environments, by establishing temporary tunnels between serving and target gateways. This version builds on GTPv1 by shifting from PDP context-based operations to bearer-level granularity, aligning with the architecture's emphasis on dedicated bearers for different QoS profiles. Key new messages in GTPv2 include the Create Indirect Data Forwarding Request and Response, which optimize handovers in by allocating resources for indirect forwarding paths when the serving gateway changes, ensuring seamless user plane continuity. These messages use Fully Qualified Identifier (F-TEID) information elements to specify endpoints, with the Identifier (TEID) set to zero if the serving gateway differs from the anchor point. For direct forwarding, the Modify Bearer Request incorporates forwarding F-TEIDs to route downlink and uplink data directly between eNodeBs during intra- or inter-RAT handovers. GTPv2 provides significant improvements through bearer-level binding with EPS bearers, utilizing information elements like EPS Bearer ID (Type 73) and Bearer QoS (Type 80) to associate traffic flows with specific quality-of-service parameters, enabling precise resource allocation and modification. It integrates with Proxy Mobile IP (PMIP) on S5/S8 interfaces, indicated by protocol type flags in messages like Create Session Request, allowing TEID or GRE key fields to be set to zero for PMIP-based while maintaining IP address continuity during access changes. Error handling is extended with comprehensive cause values (e.g., over 100 types in Table 8.103-0), including message-level and IE-level failures, to support robust recovery in scenarios like bearer establishment rejection or overload conditions. The GTPv2 header evolves from previous versions with a version field (bits 6-8 of octet 1) set to '010' (decimal 2), followed by flags for (P), TEID presence (T), and message type, ensuring compatibility and extensibility. Variable-length information elements (IEs) are encoded in Type-Length-Value (TLV) or Type-Length-Instance-Value (TLIV) formats, with types ranging from 1 (IMSI) to over 200 (private extensions), allowing flexible addition of parameters like sequence numbers and lengths without fixed positioning. In contemporary deployments, GTPv2 serves as the primary protocol for EPS interfaces and remains relevant in systems through interworking mechanisms, particularly on the N26 interface between EPC and 5GC for mobility between and . Updates in Releases 15 and later incorporate 5G-specific features, such as support for network slicing via Network Slice Selection Assistance Information (S-NSSAI) in Protocol Configuration Options (PCO), enabling PDN-to-PDU session transitions and handling slice mismatches during handovers. These enhancements, including 5GS Interworking Indication flags and cause values for EPS-to-5GS mobility, facilitate hybrid / networks while supporting Ethernet and unstructured PDU sessions.

Protocol Components

GTP-C (Control Plane)

The GPRS Tunnelling Protocol Control plane (GTP-C) serves as the signaling protocol for managing sessions and tunnels in GPRS, , and evolved packet core networks, enabling communication between control nodes such as Serving GPRS Support Nodes (SGSNs), Mobility Management Entities (MMEs), Serving Gateways (SGWs), and Packet Data Network Gateways (PGWs). It operates over / and is defined in two primary versions: GTPv1-C for / networks per TS 29.060 and GTPv2-C for networks per TS 29.274, with GTPv2-C extending support to non-standalone deployments. GTP-C facilitates the establishment, modification, and release of tunnels identified by Tunnel Endpoint Identifiers (TEIDs), IP addresses, and UDP ports, ensuring logical separation from user plane data flows. In GTPv1-C, this is achieved through messages such as the Create PDP Context Request and Update PDP Context Request, which activate Packet Data Protocol (PDP) contexts between SGSNs and GGSNs. For GTPv2-C, the Create Session Request initiates Evolved Packet System (EPS) bearer sessions during initial attach or handover, including Information Elements (IEs) like IMSI, Access Point Name (APN), and Bearer Contexts, while Modify Bearer Request handles updates. Delete Session Request or Delete PDP Context Request messages terminate these sessions, releasing associated resources. Tunnels are maintained via periodic Echo Request/Response messages to detect path failures. GTP-C signaling uses UDP port 2123 as the registered destination port for both versions, with source ports dynamically assigned or copied from triggering messages. Key procedures supported by GTP-C include location management, authentication relay, and Quality of Service (QoS) negotiation between control nodes. For location management, GTP-C conveys User Location Information (ULI) IEs, such as Cell Global Identity (CGI) or Tracking Area Identity (TAI), and supports change reporting actions during Tracking Area Updates (TAU) or Routing Area Updates (RAU), as seen in messages like Create Session Request between MME and SGW. Authentication relay involves transporting security parameters, such as authentication triplets in GTPv1-C or Mobility Management (MM) Context IEs with keys like Kc or CK/IK in GTPv2-C, between nodes like SGSN to GGSN or MME to SGW. QoS negotiation employs QoS Profile IEs in GTPv1-C or Bearer QoS and Allocation/Retention Priority IEs in GTPv2-C to agree on parameters like bit rates and priorities during session creation or modification, for instance, between SGW and PGW in 4G networks. Error handling in GTP-C relies on Cause IEs in response messages to indicate outcomes, with values such as "Request Accepted" (16) for success, "System Failure" (17), "Context Not Found" (64), or "Mandatory IE Missing" (70) for failures, often triggering TEID reset to zero. These causes map to Non-Access Stratum (NAS) signaling errors for UE notification, ensuring coordinated failure recovery. GTP-C integrates with signaling to enable end-to-end session control, relaying messages in containers like Protocol Configuration Options (PCO) or Fully Qualified Container (F-Container) IEs during procedures such as attach or . This coordination supports across radio access technologies, distinct from user data encapsulation managed by GTP-U.

GTP-U (User Plane)

GTP-U, or the GPRS Tunnelling Protocol User Plane, serves as the data transport mechanism within mobile core networks, encapsulating user data packets such as or payloads into GTP tunnels for forwarding between network elements. This encapsulation adds a GTP-U header to the original , which is then carried over and an outer , enabling secure and efficient transport of subscriber traffic without altering the inner packet content. GTP-U operates on interfaces like and in 3G GPRS/ networks, S5 and S8 in Evolved Packet Core, and N3 and N9 in core networks, supporting seamless data mobility across radio access and core domains. GTP-U messages are transmitted using UDP port 2152 as the default, allowing for lightweight, connectionless delivery suitable for high-volume user traffic. Demultiplexing of multiple bearers or tunnels per user is achieved via the Tunnel Endpoint Identifier (TEID) field in the GTP-U header, which uniquely identifies each tunnel endpoint and enables the receiving node to route packets to the correct user context or QoS flow. Tunnels are established through prior signaling, ensuring that user plane forwarding aligns with session parameters. This TEID-based approach supports concurrent handling of diverse traffic types, such as voice, video, or web browsing, within a single user session. To manage disruptions during mobility events like handovers, GTP-U includes End Marker packets, which signal the conclusion of data transmission on an old and the initiation of forwarding on a new one. These special messages, identified by a specific message type, are inserted at the end of the payload stream to prevent and ensure continuity, particularly in inter-RAT or intra-system handovers. End Markers are optional but recommended for scenarios requiring precise sequencing, such as in PMIPv6-based on S5/S8 interfaces. While GTP-U itself does not perform fragmentation, the encapsulating outer IP layer handles it if the total packet size exceeds the path MTU, with the receiver reassembling fragments before extracting the inner T-PDU. The minimal GTP-U header consists of 8 bytes, providing low protocol overhead that is critical for maintaining efficiency in bandwidth-constrained or high-throughput environments, such as enhanced (eMBB) scenarios where data rates can reach gigabits per second. This design minimizes and maximizes payload throughput, making GTP-U suitable for real-time applications in modern networks.

GTP' (Charging Support)

GTP' (also known as GTP prime) is a specialized variant of the GPRS Tunnelling Protocol designed specifically for the transfer of charging data records (CDRs) in support of offline charging mechanisms. It is derived from the core GTP protocol defined in TS 29.060 but includes enhancements for reliability in transporting billing-related data, rather than user traffic or session control. GTP' operates between the Charging Data Function (CDF), typically implemented in the Serving GPRS Support Node (SGSN) or Gateway GPRS Support Node (GGSN), and the Charging Gateway Function (CGF) over the Ga reference point. The protocol utilizes or on port 3386 to facilitate the near real-time, transaction-based transfer of , ensuring that charging information generated during packet data sessions is reliably conveyed for post-processing and billing. Key messages include the Request and Echo Response, which are used to verify path and liveness, and the Data Record Transfer Request and Response, which encapsulate the actual CDR payloads within GTP' packets. Additional messages such as Node Alive and Redirection support operational redundancy and traffic rerouting, but the primary focus remains on secure and ordered CDR delivery without establishing persistent sessions. In the context of GPRS and core networks, GTP' is employed exclusively for billing and purposes, enabling network operators to collect usage data for revenue assurance without handling subscriber . It relies on periodic or event-triggered transfers initiated by the CDF, lacking the session management features found in other GTP variants like GTP-C. This protocol has been largely superseded in and environments by Diameter-based interfaces, such as the Rf for offline charging, which provide more robust and scalable alternatives for both scenarios. Regarding security, GTP' inherits the same inherent vulnerabilities as the broader GTP , including a lack of built-in , protection, and , which can expose CDR data to , injection, or denial-of-service attacks. To mitigate these risks, operators are advised to deploy GTP-aware firewalls that filter traffic on port 3386, enforce validation, and monitor for anomalies in charging-related exchanges.

Network Usage

In GPRS and UMTS Core Networks

In GPRS and core networks, the GPRS Tunnelling Protocol (GTP) serves as the primary mechanism for tunneling Packet Data Protocol () contexts and user data between the Serving GPRS Support Node (SGSN) and the Gateway GPRS Support Node (GGSN) over the Gn interface, which connects elements within the same (PLMN). GTP-C handles signaling to establish, modify, and delete these tunnels, using messages such as Create PDP Context Request and Response to negotiate (QoS) parameters and assign Tunnel Endpoint Identifiers (TEIDs). Meanwhile, GTP-U encapsulates and transports user plane data packets, such as G-PDUs, between the nodes to enable end-to-end for mobile subscribers accessing packet-switched services. On the Gp interface, GTP extends this functionality for inter-PLMN roaming, allowing seamless tunneling between an SGSN in the visited network and a GGSN in the . Here, GTP-C manages signaling for PDP context activation across PLMN boundaries, while GTP-U forwards user data, ensuring continuity for users without requiring changes to the underlying transport. This setup supports secure and efficient data exchange, with TEIDs and addresses uniquely identifying tunnels to multiplex multiple user sessions over shared paths. A typical flow for PDP context activation begins when a mobile station () sends an Activate PDP Context Request to the SGSN, prompting the SGSN to forward a GTP-C Create PDP Context Request to the appropriate GGSN. The GGSN allocates resources, assigns TEIDs for both control and user planes, and responds via GTP-C, establishing the tunnel; subsequent user data from the is then encapsulated in GTP-U packets and tunneled to the GGSN for routing to external networks like the internet. GTP integrates with the BSS GPRS Protocol (BSSGP) to facilitate radio-to-core handover, where BSSGP relays LLC PDUs from the Base Station Subsystem () to the SGSN over the Gb interface, and the SGSN uses GTP to forward buffered data to the GGSN or a new SGSN during inter-SGSN routing area updates, maintaining session continuity. In high-mobility scenarios, such as frequent handovers in dense urban environments, legacy GPRS and networks face overload challenges from rapid tunnel creations and updates, potentially leading to resource exhaustion at GSNs. These are addressed through GTP path management features, including Echo Request/Response messages sent at intervals (minimum ) to monitor path liveness and detect failures via timers like T3-RESPONSE and retry counts (N3-REQUESTS). Additionally, recovery information elements in signaling messages handle node restarts by marking affected contexts as inactive, while cause values such as "No resources available" signal overload conditions to trigger appropriate rejection or queuing of requests.

On IuPS Interface

The Iu-PS interface in connects the Radio Network Controller (RNC) in the UTRAN to the Serving GPRS Support Node (SGSN) in the core network, enabling the transport of packet-switched user data. On this interface, the GPRS Tunnelling Protocol User Plane (GTP-U) serves as the primary mechanism for tunneling Iu data units—comprising Protocol Data Units (PDUs) from lower layers such as PDCP, RLC, and —from the RNC to the SGSN. These data units are encapsulated within GTP-U headers and transmitted over /, utilizing UDP port 2152 for GTP-U traffic, which ensures reliable delivery across the IP-based transport network while maintaining end-to-end packet integrity. Radio Access Bearer (RAB) management on the Iu-PS interface involves mapping each established to a dedicated GTP-U to preserve (QoS) characteristics negotiated during session setup. This mapping occurs during RAB assignment procedures, where the RANAP protocol signals the creation of a GTP-U endpoint identifier (TEID) for the specific , associating the 's QoS profile— including parameters like traffic class, maximum bitrate, and delay—directly with the tunnel. QoS preservation is further supported by Code Point (DSCP) markings in the IP headers, derived from the 's QoS attributes, ensuring that the transport network prioritizes traffic accordingly without altering the original service levels from the . Dynamic bearer setup on the Iu-PS interface is coordinated through RANAP signaling rather than separate Access Link Control Application Part (ALCAP) procedures, as ALCAP is not required for the packet-switched domain over IP transport. RANAP messages, such as RAB Assignment Request and Response, trigger the establishment, modification, or release of GTP-U tunnels, aligning the transport bearers with RAB requirements in . This integration allows for efficient during mobility events like handovers within the UTRAN. In contrast to the interface, which facilitates tunneling between core network nodes like SGSN and GGSN for inter-GSN routing and longer backbone paths, the -PS employs GTP-U for shorter, access-focused paths emphasizing within the , such as intra-RNC handovers. This design optimizes latency and resource use for edge-to-core traffic. As a 3G-specific feature, the interface enforces separation, with GTP-U handling only packet-switched () traffic on Iu-PS, while circuit-switched (CS) services on Iu-CS rely on distinct protocols like AAL2 for real-time media, preventing cross-domain interference.

In Evolved Packet Core and 5G Networks

In the Evolved Packet Core (EPC) architecture of 4G LTE networks, the GPRS Tunnelling Protocol (GTP) facilitates tunneling for both control and user plane functions across key interfaces. Specifically, GTP version 2 for the control plane (GTPv2-C) operates on the S11 interface between the Mobility Management Entity (MME) and the Serving Gateway (SGW), enabling signaling for session management and mobility procedures. GTP for the user plane (GTP-U) is employed on the S1-U interface connecting the eNodeB to the SGW, as well as on the S5/S8 interfaces between the SGW and Packet Data Network Gateway (PGW), to encapsulate and transport bearer traffic efficiently in the all-IP EPC environment. In New Radio (NR) core networks, GTP-U remains the standard protocol for user plane tunneling, supporting the flat architecture of the System (5GS). It is used on the N3 interface between the next-generation NodeB (gNB) and the User Plane (UPF) to forward user data packets, and on the N9 interface for inter-UPF connectivity, allowing flexible data path routing and scalability for high-throughput services. The on the N2 interface between the gNB and and (AMF) relies on the NG Application Protocol (NGAP) over (SCTP), but GTPv2-C supports Control and User Plane Separation (CUPS) in EPC interworking scenarios with , enhancing deployment flexibility by decoupling and user plane processing. Key enhancements to GTP in include integration with network slicing capabilities through the QoS Flow Identifier (QFI) field added to GTPv2 and GTP-U headers starting in Release 15. This allows the mapping of QoS flows to specific slices, enabling differentiated treatment of traffic for diverse services like enhanced (eMBB) and Ultra-Reliable Low-Latency Communications (URLLC) without altering the core tunneling mechanism. Security considerations for GTP in 5G networks emphasize the deployment of GTP firewalls to address persistent vulnerabilities, such as unauthorized tunnel creation and data redirection attacks, which can exploit the protocol's role in user plane forwarding. The recommends implementing filters for message validation, , and on interfaces like N3 and N9 to mitigate these risks, as GTP continues to serve as a potential in the 5GS despite architectural evolutions. Looking ahead, GTP maintains its role in 5G-Advanced as defined in Release 18 (frozen December 2024), supporting enhanced features like integrated sensing and communication (ISAC) while ensuring with 4G . Emerging 6G research explores alternative tunneling protocols for even greater efficiency, such as SRv6, but GTP's established deployment ensures its persistence in hybrid 5G-6G transition phases.

Protocol Details

Header Structure

The GPRS Tunnelling Protocol (GTP) uses header structures that vary between versions and between control-plane (GTP-C) and user-plane (GTP-U) variants to encapsulate packets for tunneling in mobile packet core networks. GTPv1 and GTPv2 have distinct formats, with GTPv1 featuring an 8-octet mandatory header and specific flags, while GTPv2 has a different layout starting with a 4-octet base. The design ensures efficiency, with fields aligned to octet boundaries for parsing in network elements like Serving GPRS Support Nodes (SGSNs) and Gateway GPRS Support Nodes (GGSNs). Below, the structures are described separately for clarity.

GTPv1 Header

The GTPv1 header consists of a mandatory 8-octet providing for routing and processing, followed by optional fields and . GTPv1-C does not support extension headers, while GTPv1-U does via the E flag. The core 8-octet header includes the following fields:
FieldSize (bits)Position (Octet/Bits)Description
31 (bits 8-6)Specifies the GTP version: 001 ( 1) for GTPv1. This field enables protocol differentiation.
Protocol Type (PT)11 (bit 5)Set to 1 for standard GTP and 0 for charging variant GTP'; distinguishes GTP from GTP'.
Reserved/Spare11 (bit 4)Reserved bit, always set to 0 and ignored by receivers for future extensions.
Extension Header Flag (E)11 (bit 3)Indicates presence of extension headers (for GTP-U only): 0 or 1; not used in GTPv1-C.
Sequence Number Flag (S)11 (bit 2)Set to 1 if a 16-bit sequence number follows the header; mandatory for GTPv1-C messages, optional for GTP-U.
N-PDU Number Flag (PN)11 (bit 1)Set to 1 if an 8-bit N-PDU number follows (for GTP-U in scenarios); not used in GTPv1-C.
Message Type82Defines the message purpose: e.g., 16 for Create Context Request; 255 indicates a tunneled user plane PDU in GTP-U.
Total Length163-4Specifies the length in octets of the following the mandatory 8-octet header (includes optional fields like sequence number if present).
Tunnel Endpoint Identifier (TEID)325-832-bit value uniquely identifying the endpoint; set to 0 for messages without an established tunnel.
If the S flag is set, a 16-bit Sequence Number (2 octets) follows the TEID for transaction matching in control messages or ordering in user data. If the PN flag is set, an 8-bit N-PDU Number (1 octet) appends for tracking during handovers (GTP-U only). If E=1 (GTP-U), extension headers follow for features like PDCP PDU numbering. The payload varies by variant. In GTP-U, it carries the encapsulated user . For GTP-C, the payload consists of Type-Length-Value (TLV) encoded Information Elements (IEs) for parameters like (APN) or (IMSI).

GTPv2 Header

GTPv2 introduces a revised header format, primarily for the (GTPv2-C), with a mandatory base of 4 octets plus optional TEID and always-present sequence number. Extension headers are supported in GTPv2-U but not via an E in the control header. The format is:
  • Octet 1: (bits 8-6: 010 for v2), flag P (bit 5: 0 or 1 for multiple messages), TEID flag T (bit 4: 1 if TEID present), Spare (bits 3-1: 0).
  • Octet 2: Message Type (8 bits, e.g., 32 for Create Session Response).
  • Octets 3-4: Total Length (16 bits: length of message excluding the first 4 octets).
  • Octets 5-8: TEID (32 bits, if T=1).
  • Octets 9-10: Sequence Number (16 bits, always present in GTPv2-C for ordering and retransmission).
  • Octet 11: Spare (8 bits).
  • Octet 12: Spare or Message (if applicable).
There is no PT, E, S, or PN flag in GTPv2; the sequence number is mandatory without a flag, and N-PDU sequencing is handled in GTPv2-U extensions. The payload for GTPv2-C uses an enhanced TLV or Type-Length-Instance-Value (TLIV) format for IEs like Fully Qualified Tunnel Endpoint Identifier (F-TEID) or Protocol Configuration Options (PCO), allowing flexible and grouped elements for bearer contexts. As an illustrative example, a GTPv2 Create Session Response message (Message Type 32) establishes a bearer session in the Evolved Packet Core. The header specifies Version 2, includes the sequence number, and a TEID if applicable. The payload chains mandatory IEs such as Cause, F-TEID (for the serving gateway's endpoint), and PDN Address Allocation, followed by optional grouped IEs like Bearer Contexts with EPS Bearer ID, QoS profiles, and user plane F-TEIDs.

Connectivity Mechanisms

The GPRS Tunnelling Protocol (GTP) establishes tunnels between network elements, such as GPRS Support Nodes (GSNs) in GTPv1 or Evolved Packet Core (EPC) entities like the Serving Gateway (SGW) and Packet Data Network Gateway (PGW) in GTPv2, primarily through control plane messages that negotiate and assign key identifiers and endpoints. In GTPv1, tunnel creation is initiated via messages like the Create PDP Context Request sent from the Serving GPRS Support Node (SGSN) to the Gateway GPRS Support Node (GGSN), which includes the SGSN's Tunnel Endpoint Identifier (TEID) for the downlink direction and IP address; the GGSN responds with the Create PDP Context Response, assigning its own TEID for the uplink direction and confirming the IP endpoints for user plane traffic over UDP/IP. Similarly, in GTPv2, the Create Session Request (message type 32) from the Mobility Management Entity (MME) or SGSN to the SGW, and subsequently to the PGW, establishes bearer contexts with Fully Qualified TEIDs (F-TEIDs) that encapsulate the TEID value, IPv4/IPv6 addresses, UDP ports, and interface types, enabling end-to-end tunnel setup across interfaces like S11, S5/S8, and S2a/S2b. These assignments ensure unidirectional tunnels for user data, with the receiving endpoint locally allocating the TEID to uniquely identify incoming packets within the protocol's 32-bit namespace. Path selection and maintenance in GTP rely on mechanisms to detect and switch between available routes, incorporating primary and backup s through periodic liveness checks. Both GTPv1 and GTPv2 employ Echo Request (message type 1) and Echo Response (message type 2) messages to verify and path viability, with the TEID set to in these messages; these are sent periodically, with a minimum interval of 60 seconds as recommended in some implementations to avoid network overload, though exact timing is configuration-dependent per TS 23.007 guidelines. Upon path failure detection via missed responses (governed by timers like T3-RESPONSE and retransmission counters N3-REQUESTS), nodes can to backup IP s pre-configured or dynamically signaled during setup, ensuring continuity without disrupting active sessions. Recovery from such failures or node restarts is further supported by the Information Element (IE), which includes a Restart Counter to inform peers of a fresh state, triggering re-establishment of s. Interoperability between GTP versions is managed through recovery indicators, particularly the Version Not Supported Indication (message type 3 in GTPv2, cause value 66), which is returned when a node receives messages from an incompatible , such as GTPv1 attempting to communicate with a GTPv2 , prompting fallback or error handling to maintain basic . This mechanism, combined with version fields in the GTP header (e.g., version 1 or 2), allows graceful degradation during mixed deployments, as seen in transitional networks supporting both and architectures. For roaming scenarios, GTP facilitates secure inter-operator tunnels, notably via the Gp interface in GTPv1, where SGSNs in different Public Land Mobile Networks (PLMNs) messages with PLMN identifiers, Area (), and security parameters aligned with TS 33.210 to authenticate and encrypt cross-border traffic. In GTPv2, extends to the S8 interface between home and visited networks, using F-TEIDs with Serving Network IEs and User Location (ULI) containing PLMN IDs to route packets securely, supporting features like indirect forwarding during handovers while adhering to agreements for shared networks. GTPv2 introduces advanced overload to manage , employing Flow Control Information Elements (IE type 180) within messages to signal throttling directives, such as reduction metrics (ranging from 0-100%) and validity periods, allowing nodes to limit message rates on interfaces like S11/S4 and S5/S8 during high load; for instance, a PGW might instruct an SGW to reduce session creation requests by 10% for up to 10 specific Access Point Names (APNs), preventing cascade failures while preserving critical traffic. This node- or APN-level enhances in dense, high-mobility environments like networks.

Protocol Stack

The GPRS Tunnelling Protocol (GTP) operates within the mobile network at layers 3 and 4 of the OSI , serving as a tunneling mechanism over or , which is in turn encapsulated within (supporting both IPv4 and ). This positioning enables efficient transport of control and user plane data across core network interfaces in GPRS, , and evolved systems. For the user plane, GTP-U primarily utilizes port 2152, while the control plane employs GTP-C over port 2123 for version 2 implementations, with as an optional alternative for control signaling to handle reliable delivery in certain scenarios. Beneath the GTP layer, the protocol encapsulates distinct payloads depending on the plane: in the user plane (GTP-U), it carries inner packets as the core payload, representing end-user data traffic tunneled between network elements like SGSNs and GGSNs; in the (GTP-C), it transports higher-level signaling messages, such as Non-Access Stratum () protocols for mobility and session management. This encapsulation ensures separation of user data from control functions while maintaining lightweight overhead suitable for high-volume mobile traffic. Above GTP, the stack integrates with (RAN) layers for delivery to the , interfacing with protocols like (RLC) and (MAC) to handle framing and error correction in the air interface. In the core network, GTP connects to upper-layer mechanisms, including for , , and accounting (AAA) processes that manage subscriber sessions and billing. This layered integration supports seamless and data across the network. In networks, the GTP-U variant specifically employs the for tunneling user plane data between the NG-RAN (e.g., gNB) and the User Plane Function (UPF), layered over / with Ethernet as the underlying link-layer framing, particularly in fronthaul and backhaul transport segments to accommodate high-speed, low-latency requirements. This configuration leverages the established port 2152 and supports /IPv6 dual-stack operation, ensuring compatibility with legacy systems while optimizing for 5G's enhanced throughput. The overall design of the GTP stack emphasizes minimalism to promote efficiency in packet-switched mobile cores, avoiding the heavier negotiation and overhead associated with (PPP) stacks in older dial-up-based mobile data services, thereby enabling faster session establishment and reduced latency for GPRS and beyond.

History and Standardization

Historical Development

The GPRS Tunnelling Protocol (GTP) originated in the late as a key component of the Release 97 specifications, finalized in 1998, to enable packet-switched data services within (GSM) networks through the General Packet Radio Service (GPRS). Developed to tunnel user data and signaling between GPRS Support Nodes (GSNs) across the and Gp interfaces, GTP addressed the need for IP-based mobility management in enhancements, marking a shift from circuit-switched paradigms. With the advent of Universal Mobile Telecommunications System (UMTS) in 3GPP Release 99, completed in 2000, GTP was expanded to support the 3G packet-switched domain, integrating with the Iu-PS interface for enhanced data transport in the UMTS Terrestrial Radio Access Network (UTRAN). This adaptation facilitated higher-speed mobile internet access, building on GPRS foundations while accommodating the architectural changes in 3G core networks. The first commercial GPRS deployments, leveraging GTP, occurred in 2001, with AT&T and Motorola launching services in Seattle, USA. In the transition to , GTP version 2 (GTPv2) was introduced in Release 8, frozen in 2008, to align with (SAE) and the Evolved Packet Core (EPC), replacing certain GTP version 1 elements for more efficient bearer management in Long-Term Evolution () networks. The first commercial networks, utilizing GTPv2, went live in 2009, led by TeliaSonera in the region. GTP's role continued into with its retention in Release 15, completed in 2018, particularly for the Standalone () deployment option and Non-Standalone (NSA) mode relying on EPC tunneling via GTP-U on the N3 . Enhancements in Releases 16 (2020), 17 (2022), and 18 (initiated in 2022 and completed in 2024) support -Advanced features, including improved user plane efficiency and integration with new radio capabilities for diverse services, such as further enhancements for Reduced Capability () devices, which were introduced in Release 17. Commercial NSA deployments using GTP began in 2019, with operators like and in the United States pioneering widespread access.

Standardization Specifications

The GPRS Tunnelling Protocol (GTP) is standardized primarily by the 3rd Generation Partnership Project (3GPP), an international collaboration of telecommunications standards organizations that develops specifications for mobile networks, with publications also available through the European Telecommunications Standards Institute (ETSI). For GTP version 1 (GTPv1), the control plane protocol (GTPv1-C) is defined in 3GPP Technical Specification (TS) 29.060, which specifies the protocol for tunneling across the Gn and Gp interfaces in GPRS and UMTS core networks. This specification has been iteratively updated across multiple 3GPP releases, with the latest version (18.0.0 as of 2024) aligned to Release 18 incorporating enhancements for compatibility and interworking. The charging variant, GTP', which supports the transfer of Charging Data Records (CDRs) from the Charging Data Function (CDF) to the Charging Gateway Function (CGF), is detailed in 3GPP TS 32.295 as part of the charging management framework. GTP version 2 (GTPv2), introduced for the Evolved Packet Core (EPC), is governed by 3GPP TS 29.274, which defines the control plane (GTPv2-C) for interfaces including S11 (between Serving Gateway and Mobility Management Entity) and S10 (between Mobility Management Entities). For the user plane, GTP-U extensions applicable to 5G are specified in 3GPP TS 29.281, covering tunneling on interfaces such as N3 (between Access and Mobility Management Function and User Plane Function) and N9 (between User Plane Functions). Related specifications provide procedural and complementary context for GTP deployment. 3GPP TS 23.060 outlines the stage 2 service description and procedures for GPRS, including mobility and session management that rely on GTP tunneling. In 5G architectures with Control and User Plane Separation (CUPS), the Packet Forwarding Control Protocol (PFCP) in TS 29.244 complements GTP by enabling control plane instructions for user plane forwarding on the N4 interface. The GTP specifications evolve through annual 3GPP release cycles, with updates addressing new features and interworking requirements. For instance, Release 18 (initiated in 2022 and completed in 2024) introduces 5G-Advanced enhancements, such as support for further Reduced Capability () device integrations while maintaining . Unlike protocols like , GTP standardization remains exclusively under auspices, with no substantive contributions from bodies such as the (IETF).

References

  1. [1]
    [PDF] ETSI TS 129 060 V18.0.0 (2024-05)
    ETSI TS 129 060 V18.0.0 (2024-05). 20. 3GPP TS 29.060 version 18.0.0 Release 18. Bits. Octets. 8. 7. 6. 5. 4. 3. 2. 1. 1. 1. 2. PDCP PDU number. 3. PDCP PDU ...
  2. [2]
    [PDF] ETSI TS 129 281 V17.2.0 (2022-05)
    The present document may refer to technical specifications or reports using their 3GPP identities. These shall be interpreted as being references to the ...
  3. [3]
    None
    Below is a merged summary of GTPv2-C based on all provided segments from ETSI TS 129 274 V17.7.0 and 3GPP TS 29.274 V17.7.0. To retain all information in a dense and organized manner, I will use a combination of narrative text and tables in CSV format where appropriate (e.g., for key interfaces and functionalities). The response consolidates overlapping details, eliminates redundancies, and ensures comprehensive coverage.
  4. [4]
    [PDF] ETSI TS 129 274 V16.5.0 (2020-11)
    This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP). The present document may refer to technical ...
  5. [5]
    [PDF] ETSI TS 129 060 V17.2.0 (2022-05)
    Jul 7, 2022 · This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP). The present document may refer to ...
  6. [6]
    Attacks on 5G Infrastructure From Users' Devices | Trend Micro (US)
    Sep 20, 2023 · A GTP-U-in-GTP-U attack can also be used to leak sensitive information such as the IP addresses of infrastructure nodes. GTP-U peers should ...Missing: 3GPP | Show results with:3GPP
  7. [7]
    The 3GPP's System of Parallel Releases
    3GPP uses a system of parallel "Releases" which provide developers with a stable platform for the implementation of features at a given point.Missing: GTP | Show results with:GTP
  8. [8]
    Specification # 29.060 - 3GPP
    Jan 22, 2015 · Specification 29.060 is about General Packet Radio Service (GPRS) and GPRS Tunnelling Protocol (GTP) across the Gn and Gp interface. It is a ...
  9. [9]
    [PDF] ETSI TS 129 060 V16.1.0 (2022-07)
    Jul 7, 2022 · 3GPP TS 29.060 version 16.1.0 Release 16. 1. Scope. The present document defines the second version of GTP used on: - the Gn and Gp interfaces ...
  10. [10]
    Specification # 29.281 - 3GPP
    General Packet Radio System (GPRS) Tunnelling Protocol User Plane (GTPv1-U). Status: Under change control. Type: Technical specification (TS). Initial planned ...
  11. [11]
    [PDF] ETSI TS 129 274 V18.6.0 (2024-05)
    This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP). The present document may refer to technical ...Missing: structure | Show results with:structure
  12. [12]
    5G System Overview - 3GPP
    Aug 8, 2022 · GPRS Tunnelling Protocol for the user plane (GTP U): This protocol supports tunnelling user data over N3 (i.e. between the 5G-AN node and the ...
  13. [13]
  14. [14]
    [PDF] ETSI TS 132 295 V17.0.0 (2022-05)
    This technical specification covers digital cellular telecommunications (GSM, UMTS, LTE), telecommunication management, charging management, and CDR transfer.
  15. [15]
    [PDF] ETSI TS 132 299 V14.3.0 (2017-04)
    The present document specifies in detail the Diameter based offline and online charging applications for 3GPP networks. It includes all charging parameters, ...
  16. [16]
    FS.20 GPRS Tunnelling Protocol (GTP) Security - GSMA
    Oct 14, 2019 · This document provides a technical background on how the GPRS Tunnelling Protocol (GTP) is used. It outlines potential attacks and exploitation possibilities.Missing: port 3386
  17. [17]
    [PDF] 3GPP TS 29.060 V9.7.0 (2011-06)
    This document is a 3GPP technical specification for GPRS Tunnelling Protocol (GTP) across the Gn and Gp interface, for future development work.
  18. [18]
    [PDF] ETSI TS 123 060 V7.8.0 (2008-10)
    3GPP TS 29.060: "General Packet Radio Service (GPRS); GPRS Tunnelling Protocol (GTP) ... change from a release 99 to a release 97 or 98 system, only one ...
  19. [19]
    [PDF] ETSI TS 129 281 V16.1.0 (2020-11)
    ETSI TS 129 281 V16.1.0 is a technical specification for UMTS, LTE, 5G, and GPRS Tunnelling Protocol User Plane (GTPv1-U).Missing: IuPS | Show results with:IuPS
  20. [20]
    [PDF] ETSI TS 125 413 V18.0.0 (2024-04)
    ... PS coordination required", then the RNC shall perform CS/PS coordination based on the received Permanent NAS UE Identity IE and the Additional CS/PS ...
  21. [21]
    [PDF] ETSI TS 125 414 V17.0.0 (2022-04)
    ALCAP is not required over the Iu interface towards the packet switched domain. 7. Broadcast Domain. 7.1. Transport network user plane. 7.1.1 General.
  22. [22]
    [PDF] ETSI TS 125 410 V17.0.0 (2022-04)
    The present document is an introduction to the 3GPP TS 25.41x series of Technical Specifications that define the Iu interface for the interconnection of Radio ...
  23. [23]
    [PDF] TS 129 060 - V13.3.0 - ETSI
    Jul 7, 2018 · From release 8 onwards, the normative specification of the user plane of GTP version 1 is 3GPP TS 29.281 [41]. All provisions about GTPv1 ...
  24. [24]
    [PDF] ETSI TS 129 274 V18.8.0 (2025-01)
    The present document may refer to technical specifications or reports using their 3GPP identities. These shall be interpreted as being references to the ...
  25. [25]
    [PDF] ETSI TS 129 281 V17.4.0 (2022-10)
    The GTP-U protocol entity provides packet transmission and reception services to user plane entities in the RNC,. SGSN, GGSN, eNodeB, SGW, ePDG, PGW, TWAN, MME, ...
  26. [26]
    Control and User Plane Separation of EPC nodes (CUPS) - 3GPP
    Jul 26, 2017 · The CP function terminates the Control Plane protocols: GTP-C, Diameter (Gx, Gy, Gz). A CP function can interface multiple UP functions, and ...
  27. [27]
    Release 18 - 3GPP
    Release 18 specifies further improvements of the 5G-Avanced system. These improvements consist both in enhancements of concepts/Features introduced in the ...
  28. [28]
    [PDF] 3GPP TSG WG SA5 –Security SA3#15 S3-000632 12-14 ...
    Sep 14, 2000 · The UDP Destination Port number shall be 2152. It is the registered port number for GTP-U. The UDP Source Port is a locally allocated port ...<|control11|><|separator|>
  29. [29]
    [PDF] 3GPP TS 29.060 V3.19.0 (2004-03)
    May 7, 2012 · GTP allows multi-protocol packets to be tunnelled through the UMTS/GPRS Backbone between GSNs and between. SGSN and UTRAN. In the control plane, ...
  30. [30]
    Enhanced GTP: an efficient packet tunneling protocol for General ...
    A Point-to-Point (PPP) network interface is used to connect gNB to the cloud through a wired connection [12]. The GPRS [18] tunneling protocol (GTP) is used to ...
  31. [31]
    Specification # 09.60 - 3GPP
    General Packet Radio Service (GPRS); GPRS Tunnelling Protocol GPT) across the Gn and Gp Interface ... Release 1997(Spec is UCC for this Release), Latest ...Missing: 97 | Show results with:97
  32. [32]
    [PDF] ETSI TS 101 347 V6.9.0 (2000-09)
    (3GPP TS 09.60 version 6.9.0 Release 1997) ... The present document defines the GPRS Tunnelling Protocol (GTP), i.e. the protocol between GSN nodes in the GPRS.
  33. [33]
    Motorola, AT&T begin GPRS services in Seattle - July 19, 2001 - CNN
    Jul 19, 2001 · (IDG) -- The first commercial U.S. roll out of high-speed data services for phones using the GPRS (General Packet Radio Service) protocol ...
  34. [34]
    Release 8 - 3GPP
    3GPP Release 8 is available on-line, giving a high-level view of the features that are included in the Release.Missing: GTPv2 introduction
  35. [35]
    Who will be first with LTE? - Ericsson
    The first to place an order with Ericsson for LTE was TeliaSonera, on January 15, 2009, for the initial rollout of a network in Stockholm. An hour later ...
  36. [36]
    Release 15 - 3GPP
    Apr 26, 2019 · Release 15 is the first full set of 5G standards, including standalone 5G, a new radio system, and a next-generation core network.
  37. [37]
    [PDF] The 5G Evolution:3GPP Releases 16-17
    Jan 16, 2020 · 3GPP Release 16 includes several LTE-related features developed within six different work items: enhancements for LTE-MTC, NB-IoT, DL MIMO ...
  38. [38]
    5G: World's first commercial services promise 'great leap' - BBC
    Apr 4, 2019 · South Korea and the US have this week launched the world's first commercial 5G services, promising a new wave of capabilities for smartphone ...Missing: NSA GTP
  39. [39]
    Specification # 32.295 - 3GPP
    Apr 14, 2016 · Specification 32.295 is about telecommunication management, charging management, and Charging Data Record (CDR) transfer. It is a technical ...Missing: GTP' protocol
  40. [40]
    Specification # 29.274 - 3GPP
    Feb 5, 2018 · 3GPP Evolved Packet System (EPS); Evolved General ... (GTPv2-C); Stage 3. Status: Under change control. Type: Technical specification (TS).
  41. [41]
    Specification # 23.060 - 3GPP
    Reference: 23.060. Title: General Packet Radio Service (GPRS); Service description; Stage 2. Status: Under change control. Type: Technical specification (TS).
  42. [42]
    [PDF] ETSI TS 123 060 V16.0.0 (2020-11)
    ETSI TS 123 060 is a technical specification for digital cellular telecommunications systems, including GSM, UMTS, and GPRS, produced by 3GPP.
  43. [43]
    Specification # 29.244 - 3GPP
    Sep 19, 2016 · 29.244. Title: Interface between the Control Plane and the User Plane nodes. Status: Under change control. Type: Technical specification (TS).
  44. [44]
    [PDF] ETSI TS 129 244 V17.5.0 (2022-07)
    This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP). The present document may refer to technical ...