하향(DL): PDN(Internet)에서 UE 방향
1) 인터넷에서 P-GW로 패킷(Source IP=www.google.com, Destination IP=UE)이 수신됩니다.
2) P-GW는 수신한 패킷의 5-tuple (Source IP, Destination IP, Protocol ID, Source Port, Destination Port)을 자신이 가지고 있는 DL TFT과 비교하여(5-tuple 기반의 classification 수행) 어떤 EPS Bearer(GTP tunnel)에 본 패킷을 실어야 할 지 결정합니다. 이 말은, 각 UE별로 서로 구별되는 GTP tunnel이 있다는 말입니다. (정확히는 UE내에 응용별로 여러개의 GTP tunnel이 있을 수도 있음)
3) 어떤 EPS Bearer에 실어야 할지 알면 어떤 S-GW로, 어떤 "S5 TEID(DL)" 값을 적어서 보내야 할 지도 알게 됩니다. 그래서 P-GW는 S-GW로 (1) Outer IP header의 SIP=P-GW, DIP=S-GW로 하고, (2) GTP header에 S5 TEID(DL) 값을 실어서 GTP tunneling 패킷을 보냅니다.
S5 TEID(DL) 값은 UE가 망에 접속(Attach)시에 S-GW에서 생성하여 P-GW로 전달해 줍니다.
4) S-GW는 수신한 패킷의 "S5 TEID(DL)" 값을 참조하여 어떤 eNB로 보내야 할지와, 어떤 "S1 TEID(DL)" 값을 적어야 할지 알게 됩니다. 그래서 S-GW는 eNB로 (1) Outer IP header의 SIP=S-GW, DIP=eNB로 하고, (2) GTP header에 S1 TEID(DL) 값을 실어서 GTP tunneling 패킷을 보냅니다.
S1 TEID(DL) 값은 UE가 망에 접속(Attach)시에 eNB에서 생성하여 S-GW로 전달해 줍니다.
5) eNB는 수신한 패킷의 "S1 TEID(DL)" 값을 참조하여 어떤 UE로 보내야 할지와, 어떤 "DRB ID(DL)" 값을 적어야 할지 알게 됩니다. 그래서 eNB는 GTP tunnel header를 제거하고 UE에게 DRB ID(DL)을 적어서 패킷을 전달합니다.
상향(UL): UE에서 PDN(Internet) 방향
1) UE의 웹브라우저(응용프로그램)에서 www.google.com에 접속하려 합니다.
2) UE는 UL TFT를 통해서(UL TFT 값은 UE가 LTE 망에 접속하면서 망으로 부터 받습니다) 본 패킷을 어떤 EPS Bearer를 통해 보낼지 결정합니다(UL TFT 역시 5-tuple 기반으로 패킷을 분류하여 EPS Bearer를 결정)
3) 어떤 EPS Bearer에 실어야 할지 알면 어떤 eNB로, 어떤 "DRB ID(UL)" 값을 실어서 보내야 할지 알게 됩니다. eNB로 DRB ID를 추가하여 패킷을 보냅니다.
4) eNB는 수신한 패킷의 "DRB ID(UL)" 값을 참조하여 어떤 S-GW로, 어떤 "S1 TEID(UL)" 값을 적어서 보내야 할지 알게 됩니다. 그래서 eNB는 S-GW로 (1) Outer IP header의 SIP=eNB, DIP=S-GW로 하고, (2) GTP header에 S1 TEID(UL) 값을 실어서 GTP tunneling 패킷을 보냅니다.
S1 TEID(UL) 값은 UE가 망에 접속(Attach)시에 S-GW에서 생성하여 eNB로 전달해 줍니다.
5) S-GW는 수신한 패킷의 "S1 TEID(UL)" 값을 참조하여 어떤 P-GW로, 어떤 "S5 TEID(UL)" 값을 적어서 보내야 할지 알게 됩니다. 그래서 S-GW는 P-GW로 (1) Outer IP header의 SIP=S-GW, DIP=P-GW로 하고, (2) GTP header에 S5 TEID(UL) 값을 실어서 GTP tunneling 패킷을 보냅니다.
S5 TEID(UL) 값은 UE가 망에 접속(Attach)시에 P-GW에서 생성하여 S-GW로 전달해 줍니다.
6) P-GW는 수신한 패킷의 "S5 TEID(UL)" 값을 참조하여 어떤 UE가 보낸 패킷인지 압니다. 이후 GTP tunnel header를 제거하고 인터넷으로 패킷을 보냅니다.
수정하였습니다. 앞으로도 많은 관심 부탁드릴께요~*
1. IPinIP (IETF RFC 2003), http://en.wikipedia.org/wiki/IP_in_IP
2. GRE (IETF RFC 1702), http://en.wikipedia.org/wiki/Generic_Routing_Encapsulation
3. GTP (3GPP TS 29.060/274), http://en.wikipedia.org/wiki/GPRS_Tunnelling_Protocol
그냥 단순하게 생각하셔도 될 듯 한데요.
3GPP에서 필요한 터널링 파라미터(GTP 헤더에 들어가는 필드들)를 기존 IPinIP나 GRE로는 수용이 불가하고 이를 확장/보안하여 하위 호환성을 유지하는 것 보다는 새로 정의하는게 훨씬 수월하였을 것입니다.
어디까지나 제 생각입니다 ^^*
상향(UL): UD에서 PDN(Internet) 방향 를
상향(UL): UE에서 PDN(Internet) 방향 으로 변경 해주세요 ^_^
수정했어요~*