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; 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 (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 Mobile IP PFCP RANAP Notes References