GPRS Tunnelling Protocol (GTP) is a group of
IP-based communications
protocols
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
used to carry
general packet radio service
General Packet Radio Service (GPRS) is a packet oriented mobile data standard on the 2G and 3G cellular communication network's global system for mobile communications (GSM). GPRS was established by European Telecommunications Standards Inst ...
(GPRS) within
GSM
The Global System for Mobile Communications (GSM) is a standard developed by the European Telecommunications Standards Institute (ETSI) to describe the protocols for second-generation ( 2G) digital cellular networks used by mobile devices such as ...
,
UMTS
The Universal Mobile Telecommunications System (UMTS) is a third generation mobile cellular system for networks based on the GSM standard. Developed and maintained by the 3GPP (3rd Generation Partnership Project), UMTS is a component of the Inte ...
,
LTE and
5G NR
5G NR (New Radio) is a new radio access technology (RAT) developed by 3GPP for the 5G (fifth generation) mobile network. It was designed to be the global standard for the air interface of 5G networks. As with 4G (LTE), it is based on OFDM.
The ...
radio networks. In 3GPP architectures, GTP and
Proxy Mobile IPv6
Proxy Mobile IPv6 (or PMIPv6, or PMIP) is a network-based mobility management protocol standardized by IETF and is specified in RFC 5213. It is a protocol for building a common and access technology independent of mobile core networks, accommodati ...
based interfaces are specified on various interface points.
GTP can be decomposed into separate protocols, GTP-C, GTP-U and
GTP'
GTP' (GTP prime) is an IP based protocol used within GSM and UMTS networks. It can be used with UDP or TCP. GTP' uses the same message structure as GTP (GTP-C, GTP-U), but it is largely a separate protocol. GTP' uses registered UDP/TCP port ...
.
GTP-C is used within the
GPRS core network
The GPRS core network is the central part of the general packet radio service (GPRS) which allows 2G, 3G and WCDMA mobile networks to transmit IP packets to external networks such as the Internet. The GPRS system is an integrated part of the G ...
for signaling between
gateway GPRS support nodes (GGSN) and
serving GPRS support node
The GPRS core network is the central part of the general packet radio service (GPRS) which allows 2G, 3G and WCDMA mobile networks to transmit IP packets to external networks such as the Internet. The GPRS system is an integrated part of the G ...
s (SGSN). This allows the SGSN to activate a session on a user's behalf (
PDP context
The GPRS core network is the central part of the general packet radio service (GPRS) which allows 2G, 3G and WCDMA mobile telephony, mobile networks to transmit Internet Protocol, IP packets to external networks such as the Internet. The GPRS syst ...
activation), to deactivate the same session, to adjust
quality of service
Quality of service (QoS) is the description or measurement of the overall performance of a service, such as a telephony or computer network, or a cloud computing service, particularly the performance seen by the users of the network. To quantitat ...
parameters, or to update a session for a subscriber who has just arrived from another SGSN.
GTP-U is used for carrying user data within the GPRS core network and between the
radio access network
A radio access network (RAN) is part of a mobile telecommunication system. It implements a radio access technology. Conceptually, it resides between a device such as a mobile phone, a computer, or any remotely controlled machine and provides con ...
and the core network. The user data transported can be packets in any of
IPv4
Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. IPv4 was the first version de ...
,
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
, or
PPP formats.
GTP'
GTP' (GTP prime) is an IP based protocol used within GSM and UMTS networks. It can be used with UDP or TCP. GTP' uses the same message structure as GTP (GTP-C, GTP-U), but it is largely a separate protocol. GTP' uses registered UDP/TCP port ...
(''GTP prime'') uses the same message structure as GTP-C and GTP-U, but has an independent function. It can be used for carrying charging data from the charging data function (CDF) of the GSM or UMTS network to the charging gateway function (CGF). In most cases, this should mean from many individual network elements such as the GGSNs to a centralized computer that delivers the charging data more conveniently to the network operator's billing center.
Different GTP variants are implemented by RNCs, SGSNs, GGSNs and CGFs within 3GPP networks. GPRS mobile stations (MSs) are connected to a SGSN without being aware of GTP.
GTP can be used with
UDP or
TCP. UDP is either recommended or mandatory, except for tunnelling
X.25
X.25 is an ITU-T standard protocol suite for packet-switched data communication in wide area networks (WAN). It was originally defined by the International Telegraph and Telephone Consultative Committee (CCITT, now ITU-T) in a series of drafts ...
in version 0. GTP version 1 is used only on UDP.
General features
All variants of GTP have certain features in common. The structure of the messages is the same, with a GTP header following the UDP/TCP header.
Header
GTP version 1
GTPv1 headers contain the following fields:
; Version : It is a 3-bit field. For GTPv1, this has a value of 1.
; Protocol Type (PT) : a 1-bit value that differentiates GTP (value 1) from GTP' (value 0).
; Reserved: a 1-bit reserved field (must be 0).
; Extension header flag (E): a 1-bit value that states whether there is an extension header optional field.
; Sequence number flag (S): a 1-bit value that states whether there is a Sequence Number optional field.
; N-PDU number flag (PN): a 1-bit value that states whether there is a N-PDU number optional field.
; Message Type: an 8-bit field that indicates the type of GTP message. Different types of messages are defined in 3GPP TS 29.060 section 7.1
; Message Length: a 16-bit field that indicates the length of the payload in bytes (rest of the packet following the mandatory 8-byte GTP header). Includes the optional fields.
; Tunnel endpoint identifier (TEID): A 32-bit(4-octet) field used to multiplex different connections in the same GTP tunnel.
; Sequence number: an (optional) 16-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted only if the S bit is on.
; N-PDU number: an (optional) 8-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted only if the PN bit is on.
; Next extension header type: an (optional) 8-bit field. This field exists if any of the E, S, or PN bits are on. The field must be interpreted only if the E bit is on.
Next Extension Headers are as follows:
; Extension length: an 8-bit field. This field states the length of this extension header, including the length, the contents, and the next extension header field, in 4-octet units, so the length of the extension must always be a multiple of 4.
; Contents: extension header contents.
; Next extension header: an 8-bit field. It states the type of the next extension, or 0 if no next extension exists. This permits chaining several next extension headers.
GTP version 2
It is also known as evolved-GTP or eGTP. GTPv2-C headers contain the following fields:
There is no GTPv2-U protocol, GTP-U in LTE also uses GTPv1-U.
; Version : It is a 3-bit field. For GTPv2, this has a value of 2.
; Piggybacking flag: If this bit is set to 1 then another GTP-C message with its own header shall be present at the end of the current message. There are restrictions as to what type of message can be piggybacked depending on what the toplevel GTP-C message is.
; TEID flag: If this bit is set to 1 then the TEID field will be present between the message length and the sequence number. All messages except Echo and Echo reply require TEID to be present.
; Message length: This field shall indicate the length of the message in octets excluding the mandatory of the GTP-C header (the first 4 octets). The TEID (if present) and the Sequence Number shall be included in the length count.
Connectivity mechanisms
Apart from the common message structure, there is also a common mechanism for verifying connectivity from one GSN to another GSN. This uses two messages.
* echo request
* echo response
As often as every 60 seconds, a GSN can send an echo request to every other GSN with which it has an active connection. If the other end does not respond it can be treated as down and the active connections to it will be deleted.
Apart from the two messages previously mentioned, there are no other messages common across all GTP variants meaning that, for the most part, they effectively form three completely separate protocols.
GTP-C - GTP control
The GTP-C protocol is the control section of the GTP standard. When a subscriber requests a
PDP context
The GPRS core network is the central part of the general packet radio service (GPRS) which allows 2G, 3G and WCDMA mobile telephony, mobile networks to transmit Internet Protocol, IP packets to external networks such as the Internet. The GPRS syst ...
, the SGSN will send a ''create PDP context request'' GTP-C message to the GGSN giving details of the subscriber's request. The GGSN will then respond with a ''create PDP context response'' GTP-C message which will either give details of the PDP context actually activated or will indicate a failure and give a reason for that failure. This is a UDP message on port 2123.
The eGTP-C (or, GTPv2-C) protocol is responsible for creating, maintaining and deleting tunnels on multiple Sx interfaces. It is used for the control plane path management, tunnel management and mobility management. It also controls forwarding relocation messages; SRNS context and creating forward tunnels during inter LTE handovers.
GTP-U - GTP user data tunneling
GTP-U is, in effect a relatively simple IP based tunnelling protocol which permits many tunnels between each set of end points. When used in the UMTS, each subscriber will have one or more tunnel, one for each PDP context that they have active, as well as possibly having separate tunnels for specific connections with different quality of service requirements.
The separate tunnels are identified by a TEID (Tunnel Endpoint Identifier) in the GTP-U messages, which should be a dynamically allocated random number. If this random number is of
cryptographic
Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or '' -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adve ...
quality, then it will provide a measure of security against certain attacks. Even so, the requirement of the 3GPP standard is that all GTP traffic, including user data should be sent within secure private networks, not directly connected to the Internet. This happens on UDP port 2152.
The GTPv1-U protocol is used to exchange user data over GTP tunnels across the Sx interfaces. An IP packet for a UE (user endpoint) is encapsulated in an GTPv1-U packet and tunnelled between the P-GW and the eNodeB for transmission with respect to a UE over S1-U and S5/S8 interfaces.
GTP' - charging transfer
The
GTP'
GTP' (GTP prime) is an IP based protocol used within GSM and UMTS networks. It can be used with UDP or TCP. GTP' uses the same message structure as GTP (GTP-C, GTP-U), but it is largely a separate protocol. GTP' uses registered UDP/TCP port ...
protocol is used to transfer charging data to the Charging Gateway Function. GTP' uses TCP/UDP port 3386.
Within the GPRS core network
GTP is the primary protocol used in the GPRS core network. It is the protocol which allows end users of a GSM or UMTS network to move from place to place whilst continuing to connect to the Internet as if from one location at the GGSN. It does this by carrying the subscriber's data from the subscriber's current SGSN to the GGSN which is handling the subscriber's session. Three forms of GTP are used by the GPRS core network.
* GTP-U for transfer of user data in separated tunnels for each PDP context
* GTP-C for control reasons including:
** setup and deletion of PDP contexts
** verification of GSN reachability
** updates; e.g., as subscribers move from one SGSN to another.
* GTP' for transfer of charging data from GSNs to the charging function.
GGSNs and SGSNs (collectively known as GSNs) listen for GTP-C messages on UDP port 2123 and for GTP-U messages on port 2152. This communication happens within a single network or may, in the case of international roaming, happen internationally, probably across a
GPRS roaming exchange (GRX).
The ''Charging Gateway Function'' (CGF) listens to
GTP'
GTP' (GTP prime) is an IP based protocol used within GSM and UMTS networks. It can be used with UDP or TCP. GTP' uses the same message structure as GTP (GTP-C, GTP-U), but it is largely a separate protocol. GTP' uses registered UDP/TCP port ...
messages sent from the GSNs on TCP/UDP port 3386. The core network sends charging information to the CGF, typically including PDP context activation times and the quantity of data which the end user has transferred. However, this communication which occurs within one network is less standardized and may, depending on the vendor and configuration options, use proprietary encoding or even an entirely proprietary system.
Use on the IuPS interface
GTP-U is used on the IuPS between the GPRS core network and the RAN, however the GTP-C protocol is not used. In this case,
RANAP
In telecommunications networks, RANAP (Radio Access Network Application Part) is a protocol specified by 3GPP in TS 25.413
and used in UMTS for signaling between the Core Network, which can be a MSC or SGSN, and the UTRAN. RANAP is carried over I ...
is used as a control protocol and establishes GTP-U tunnels between the SGSN and the
radio network controller
The Radio Network Controller (RNC) is a governing element in the UMTS radio access network (UTRAN) and is responsible for controlling the Node Bs that are connected to it. The RNC carries out radio resource management, some of the mobility managem ...
(RNC).
Protocol Stack
GTP can be used with
UDP or
TCP. GTP version 1 is used only on UDP.
there are three versions defined, versions 0, 1 and 2. Version 0 and version 1 differ considerably in structure. In version 0, the signalling protocol (the protocol which sets up the tunnels by activating the PDP context) is combined with the tunnelling protocol on one port. Versions 1 and 2 are each effectively two protocols, one for ''control'' (called GTP-C) and one for ''user'' data tunneling (called GTP-U). GTP version 2 is different to version 1 only in GTP-C. This is due to 3GPP defining enhancements to GTP-C for EPS in version 2 to improve bearer handling.
GTP-U is also used to transport user data from the RNC to the SGSN in UMTS networks. However, in this case signalling is done using RANAP instead of GTP-C.
Historical GTP versions
The original version of GTP (version 0) had considerable differences from the current versions (versions 1,2):
* the tunnel identification was non-random;
* options were provided for transporting
X.25
X.25 is an ITU-T standard protocol suite for packet-switched data communication in wide area networks (WAN). It was originally defined by the International Telegraph and Telephone Consultative Committee (CCITT, now ITU-T) in a series of drafts ...
;
* the fixed port number 3386 was used for all functions (not just charging as in GTPv1);
* TCP was allowed as a transport option instead of UDP, but support for this was optional;
* subscription-related fields such as quality of service were more limited.
The non-random TEID in version 0 represented a security problem if an attacker had access to any roaming partner's network, or could find some other way to remotely send packets to the GPRS backbone. Version 0 is going out of use and being replaced by version 1 in almost all networks. Fortunately, however the use of different port numbers allows easy blocking of version 0 through simple IP access lists.
GTP standardization
GTP was originally standardized within
ETSI
The European Telecommunications Standards Institute (ETSI) is an independent, not-for-profit, standardization organization in the field of information and communications. ETSI supports the development and testing of global technical standard ...
(GSM standard 09.60 ). With the creation of the UMTS standards this was moved over to the
3GPP which, maintains it as 3GPP standard 29.060. GTP' uses the same message format, but its special uses are covered in standard 32.295 along with the standardized formats for the charging data it transfers.
Later versions of TS 29.060 deprecate GTPv1/v0 interworking
such that there is no fallback in the event that the GSN does not support the higher version.
GTPv2 (for evolved packet services) went into draft in early 2008 and was released in December of that year. GTPv2 offers fallback to GTPv1 via the earlier "Version Not Supported" mechanism but explicitly offers no support for fallback to GTPv0.
See also
*
Proxy Mobile IPv6
Proxy Mobile IPv6 (or PMIPv6, or PMIP) is a network-based mobility management protocol standardized by IETF and is specified in RFC 5213. It is a protocol for building a common and access technology independent of mobile core networks, accommodati ...
*
Mobile IP
Mobile IP (or MIP) is an Internet Engineering Task Force (IETF) standard communications protocol that is designed to allow mobile device users to move from one network to another while maintaining a permanent IP address. Mobile IP for IPv4 is descr ...
*
PFCP
Packet Forwarding Control Protocol (PFCP) is a 3GPP protocol used on the Sx/N4 interface between the control plane and the user plane function, specified in TS 29.244. It is one of the main protocols introduced in the 5G Next Generation Mobile Co ...
*
RANAP
In telecommunications networks, RANAP (Radio Access Network Application Part) is a protocol specified by 3GPP in TS 25.413
and used in UMTS for signaling between the Core Network, which can be a MSC or SGSN, and the UTRAN. RANAP is carried over I ...
Notes
{{reflist
References
* GSM standard 09.60, ETSI, 1996–98, this standard covers the original version 0 of GTP.
* ''3GPP TS 29.060 V6.9.0 (2005-06)'', 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCE, 2005–06. This is the primary standard defining all of the GTP variants for GTP version 1.
* ''3GPP TS 32.295 V6.1.0 (2005-06)'', 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCE, 2005–06. This standard covers using GTP for charging.
* ''3GPP TS 29.274 V8.1.0 (2009-03)'', 3rd Generation Partnership Project, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCE, 2009–03. GTPv2 for evolved GPRS.
External links
The 3GPP web site, home of the GTP standardFree and open source implementation of GPRS Tunnelling Protocol version 2 (GTPv2) or Evolved GTP (eGTP)
Network protocols
Mobile telecommunications standards
GSM standard
3GPP standards
Tunneling protocols