Downlink (DL): From PDN (Internet) to UE
1. A packet (Source IP=www.google.com, Destination IP=UE) is sent from the Internet to the P-GW.
2. The P-GW compares the five tuples of the received packet (i.e. Source IP, Destination IP, Protocol ID, Source Port, and Destination Port) with its DL TFT (by performing classification based on five tuples) and determines on which EPS bearer to place the packet (or through which GTP tunnel to send the packet. This means that each UE has its own GTP tunnel (to be accurate, there can be more than one GTP tunnel depending on how many applications are being used).
3. Once it figures out on which EPS bearer to place the packet, the P-GW can decide to which S-GW and with which "S5 TEID (DL)" value to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=P-GW, DIP=S-GW" and (2) a GTP header set as "S5 TEID (DL)" to the S-GW.
Here, the value of S5 TEID (DL) is allocated by the S-GW and forwarded to the P-GW when the UE attaches the network.
4. The S-GW, based on the value "S5 TEID (DL)" in the received packet, figures out to which eNB and with what "S1 TEID (DL)" to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=S-GW, DIP=eNB" and (2) a GTP header set as "S1 TEID (DL)" to the eNB.
Here, the value of S1 TEID (DL) is allocated by the eNB and forwarded to the P-GW when the UE attaches the network.
5. Same thing here. The eNB, based on the value "S1 TEID (DL)" in the received packet, figures out to which UE and through which "DRB" to send the packet. Then, it stripes off the GTP tunnel header in the outer IP packet and adds "DRB ID (DL)" to the inner IP packet and forwards it to the UE.
Uplink (UL): From UE to PDN (Internet)
1. A UE attempts to access www.google.com from a web browser (application) in the UE.
2. The UE determines through which EPS bearer it should send the packet based on the UL TFT, which was given by the network when the UE connected to the network. UL TFT also performs classification of the packets based on five tuples and the UE determines on which EPS bearer to place the packet.
3. Once it figures out on which EPS bearer to place the packet, the UE can decide to which eNB and through which "DRB" to send. Then, it adds a DRB ID to the packet and sends it to the eNB.
4. The eNB, based on the value "DRB ID (UL)" in the received packet, figures out to which S-GW and with what "S1 TEID (UL)" to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=eNB, DIP=S-GW" and (2) a GTP header set as "S1 TEID (UL)" to the S-GW.
Here, the value of S1 TEID (UL) is allocated by the S-GW and forwarded to the eNB when the UE attaches the network.
5. The S-GW, based on the value "S1 TEID (UL)" in the received packet, figures out to which P-GW and with what "S5 TEID (UL)" to send the packet. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=S-GW, DIP=P-GW" and (2) a GTP header set as "S5 TEID (UL)" to the P-GW.
Here, the value of S5 TEID (UL) is allocated by the P-GW and forwarded to the S-GW when the UE attaches the network.
6. The P-GW, based on the value "S5 TEID (DL)" in the received packet, figures out from which UE the packet was sent. Then, it stripes off the GTP tunnel header in the outer IP packet and forwards the original IP packet to the Internet.