A UE sends an IP packet with its destination IP address set to e.g. 74.125.71.104 (IP address of www.google.com) to an eNB through a radio link. The original packet sent by the UE will look something like this:
2. eNB to S-GW
Upon receiving the IP packet from the UE, the eNB adds a GTP tunnel header, consisting of three individual headers – a GTP header, UDP header, and IP header for GTP tunneling - in front of the IP packet. Then, the IP packet (sent by the eNB to an S-GW) will be as follows:
So, if only an IP routing network exists between the eNB and the S-GW, the routing network performs routing based on the destination IP address of the packet (i.e. the IP address of the S-GW, the destination IP address shown in the outer IP header), and then delivers the IP packet to the S-GW accordingly.
3. S-GW to PGW
The S-GW, upon receiving the IP packet from the eNB, modifies its GTP header and IP header (outer IP header) as follow:
4. P-GW to PDN (www.google.com)
Then, the packet is delivered to the P-GW accordingly. The P-GW then removes all three headers (Outer IP header/UDP header/GTP header) from the packet and delivers the original packet sent by the UE to the Internet.
In the Figure, the routes from the eNB to the S-GW, and from the S-GW to the P-GW were named as “S1 GTP tunnel” and “S5 GTP tunnel, respectively. That was just because the interface between an eNB and an S-GW and one between S-GW and P-GW were named as “S1” and “S5” respectively in the LTE network reference model in 3GPP specification. Practically there is no difference in the format of the packets used in two GTP tunnels.
Also, a letter “U” at the end of “GTP-U” stands for “user plane” and was added to indicate that it is user data that travels through the tunnel. Likewise, a letter “C” was added at the end of “GTP-C” to indicate that control (signaling) packets, not user (UE) data, are delivered through the tunnel.
very useful information
Why do we need a UDP header outside of GTP header?
What is its role?
GTP is an application level protocol defined by 3GPP for signaling and data delivery between 3GPP nodes
and not a OSI layer 4 protocol for IP. So 3GPP use UDP header in front of GTP header (maybe ^^)
GTP (GTP-U) is used for providing tunnel of UE’s traffic between 3GPP nodes (eNB, SGW, PGW, SGSN, GGSN, …)
- traditional IP tunneling (L2TP, SSL/IPsec VPN) : static configuration between VPN gateway
- GTP tunnel : dynamic configuration between 3GPP node using signaling
-> tunnel endpoint is changed to another eNB/RNC/SGSN/SGW when UE moves
without re-allocation of UE’s IP
-> It is handover
Overall GTP (GTP-U) packet format is : (outer IP) ~ (UDP) ~ (GTP) ~ (Inner IP) ~ (Inner Protocol/Data)
- (outer IP) : IP address of 3GPP nodes
- (Inner IP) + (Inner Protocol/Data) : IP address and payload of UE
When UE moves to another eNB/RNC, (outer IP) is also changed to another eNB/RNC/…
and for this operation (changing tunnel endpoint dynamically) 3GPP nodes handshake signals between nodes
If two services having same PDP address, will their GTP tunnel ID be same or different?
Why GTPU is used? Why UDP IP alone cannot be used?
@Manjunath, LTE node (eNB, SGW, PGW) identifies EPS bearer based on TEID (tunnel ID) in the GTP header. TEID is unique per PGW to distinugish the user + bearer.
Well written article !! Thanks !!
If a user has a Bearer for Internet Access and has another 2 for VOLTE (SIgnalling and Voice traffic), how many GTP U tunnels and GTP C tunnels will be formed? WIll it be 3 GTPU and 1 GTPC or 3 GTPU and 3 GTPC tunnels?
sir thanks great concept..god bless you