맨위로가기

GPRS 터널링 프로토콜

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

GPRS 터널링 프로토콜(GTP)은 GPRS 코어 네트워크에서 사용되는 프로토콜로, GSM 또는 UMTS 네트워크 사용자가 장소를 이동하면서도 인터넷 연결을 유지할 수 있도록 한다. GTP는 UDP 또는 TCP 위에서 동작하며, GTP-U, GTP-C, GTP' 세 가지 형태로 나뉜다. GTP-U는 사용자 데이터 전송에, GTP-C는 제어 신호에, GTP'는 과금 데이터 전송에 사용된다. 현재는 GTPv1과 GTPv2가 사용되며, 과거 버전인 GTPv0는 보안 문제로 인해 사용이 중단되었다. GTP는 3GPP 표준 29.060으로 표준화되었으며, IuPS 인터페이스에서는 GTP-U가 사용되고 RANAP가 제어 프로토콜로 사용된다.

더 읽어볼만한 페이지

  • 터널링 프로토콜 - IPsec
    IPsec은 IP 네트워크에서 보안 통신을 제공하기 위한 프로토콜 스위트로서, 전송 모드와 터널 모드를 지원하며, AH, ESP 등의 프로토콜을 사용하여 데이터 무결성, 인증, 기밀성을 제공하고, IKE 프로토콜을 통해 보안 연결을 설정 및 키를 교환하는 개방형 표준이다.
  • 터널링 프로토콜 - PPPoE
    PPPoE는 이더넷을 통해 PPP 연결을 설정하는 네트워크 프로토콜로, DSL과 같은 광대역 환경에서 클라이언트-서버 모델로 동작하며, 사용자의 컴퓨터를 ISP에 연결하는 데 사용되고, 디스커버리 및 PPP 세션 단계를 거쳐 연결을 설정하며 전 세계에서 널리 쓰인다.
  • GSM 표준 - GSM 협회
    GSM 협회는 GSM 표준 사용 이동통신 사업자를 지원하고 모바일 산업을 대표하며, 모바일 월드 콩그레스(MWC 바르셀로나)를 주관하고 국제 이동 장비 식별 번호(IMEI)의 유형 할당 코드(TAC)를 관리한다.
  • GSM 표준 - EDGE
    EDGE는 2.5G GSM/GPRS 네트워크 성능 향상 기술로, GSM 통신 사업자가 기지국 서브 시스템 업그레이드를 통해 비교적 쉽게 구축할 수 있으며, Evolved EDGE는 데이터 속도를 향상시키는 개선된 확장 기능이지만, 3G 및 4G 기술로 인해 네트워크 구축은 제한적이었다.
  • 3GPP 표준 - 고속 패킷 접속
    고속 패킷 접속(HSPA)은 3세대 이동통신(3G)의 데이터 전송 속도를 높이는 기술 집합체로, 고속 하향/상향 패킷 접속(HSDPA/HSUPA)을 통해 속도를 개선하고 다중 안테나, 고차 변조, 다중 주파수 대역 활용 등의 기술로 진화했으나, LTE 및 5G 기술 발전으로 현재는 상용 서비스가 중단되었다.
  • 3GPP 표준 - UMTS
    UMTS는 GSM에서 발전한 3세대 이동 통신 기술의 국제 표준 중 하나로, W-CDMA 등의 무선 인터페이스를 통해 다양한 데이터 전송 속도를 지원하며 HSPA 기술로 성능을 향상시킨다.
GPRS 터널링 프로토콜
GPRS 터널링 프로토콜
GTPv1 아키텍처
GTPv1 아키텍처
약칭GTP
종류터널링 프로토콜
OSI 계층응용 계층
전송 계층
포트2123 (GTP-C)
2152 (GTP-U)
RFCRFC 2760
RFC 6917
RFC 9157
상세 정보
설명GPRS(General Packet Radio Service) 코어 네트워크에서 사용되는 IP 기반 통신 프로토콜 모음이다.
사용 목적3G, 4G, 5G 네트워크에서 이동 통신 사업자가 사용자 데이터 트래픽을 전송하고 이동성 관리를 수행할 수 있도록 한다.
구성 요소GTP-U (GTP-User Plane): 사용자 데이터 전송
GTP-C (GTP-Control Plane): 제어 및 시그널링
GTP' (GTP Prime): 과금 데이터 전송
GTP 버전GTPv0
GTPv1
GTPv2
보안
보안 고려 사항GTP 프로토콜은 보안 취약점을 가질 수 있으며, 적절한 보안 메커니즘을 통해 보호되어야 한다.

2. GTP의 일반적인 기능

모든 GTP 변형은 공통된 특징을 갖는다. 메시지 구조는 UDP/TCP 헤더 다음에 GTP 헤더가 오는 방식이다.[7][8]

2. 1. GTP 헤더

GTP 헤더는 GTP 프로토콜에서 사용되는 데이터 구조로, 네트워크 장비 간에 데이터를 주고받을 때 필요한 정보를 담고 있다. GTP 버전별로 헤더의 구조와 내용이 다르다.

2. 1. 1. GTP 버전 1 (GTPv1)

GTPv1 헤더에는 다음 필드가 포함되어 있다.[7]

+0-2345678-1516-2324-31
0버전프로토콜 유형리저브드확장 헤더 플래그시퀀스 번호 플래그N-PDU 번호 플래그메시지 유형메시지 길이
32TEID
64시퀀스 번호N-PDU 번호다음 확장 헤더 유형


  • 버전: 3비트 필드이다. GTPv1의 경우 값은 1이다.
  • 프로토콜 유형 (PT): GTP (값 1)와 GTP' (값 0)를 구별하는 1비트 값이다.
  • 리저브드: 1비트 예약 필드 (0이어야 함)이다.
  • 확장 헤더 플래그 (E): 확장 헤더 선택 필드가 있는지 여부를 나타내는 1비트 값이다.
  • 시퀀스 번호 플래그 (S): 시퀀스 번호 옵션 필드가 있는지 여부를 나타내는 1비트 값이다.
  • N-PDU 번호 플래그 (PN): N-PDU 번호 옵션 필드가 있는지 여부를 나타내는 1비트 값이다.
  • 메시지 유형: GTP 메시지 유형을 나타내는 8비트 필드이다. 다양한 유형의 메시지가 3GPP TS 29.060 섹션 7.1에 정의되어 있다.
  • 메시지 길이: 페이로드의 길이를 바이트 단위로 나타내는 16비트 필드이다 (필수 8바이트 GTP 헤더 다음의 패킷 나머지). 선택적 필드를 포함한다.
  • TEID (터널 엔드 포인트 식별자): 동일한 GTP 터널에서 다른 연결을 다중화하는 데 사용되는 32비트 (4 옥텟) 필드이다.
  • 시퀀스 번호: (선택적) 16비트 필드. E, S 또는 PN 비트 중 하나가 켜져있는 경우에 존재한다. S 비트가 켜져있는 경우에만 필드를 해석해야한다.
  • N-PDU 번호: (선택적) 8비트 필드. E, S 또는 PN 비트 중 하나가 켜져있는 경우에 존재한다. PN 비트가 켜져있는 경우에만 필드를 해석해야한다.
  • 다음 확장 헤더 유형: (선택적) 8비트 필드. E, S 또는 PN 비트 중 하나가 켜져있는 경우에 존재한다. E 비트가 켜져있는 경우에만 필드를 해석해야 한다.


다음 확장 헤더는 다음과 같다.

+비트 0-78-2324-31
0확장 길이내용
......
...내용다음 확장 헤더


  • 확장 길이: 8비트 필드. 길이, 내용 및 다음 확장 헤더 필드를 포함하여 이 확장 헤더의 길이를 4 옥텟 단위로 나타내므로 확장 길이는 항상 4의 배수여야한다.
  • 내용: 확장 헤더 내용.
  • 다음 확장 헤더: 8비트 필드. 다음 확장의 유형을 나타내거나 다음 확장이 없으면 0을 나타낸다. 이를 통해 여러 개의 다음 확장 헤더를 연결할 수 있다.

2. 1. 2. GTP 버전 2 (GTPv2)

GTPv2는 eGTP 또는 진화된(evolved) GTP라고도 한다. GTPv2-C 헤더는 다음과 같은 필드를 포함한다.[8]

+비트 0-2345-78-1516-2324-31
0버전피기백 플래그 (P)TEID 플래그 (T)스패어메시지 유형메시지 길이
32TEID (T = 1 인 경우에만 존재)
64 (TEID가 없는 경우 32)시퀀스 번호스패어


  • 버전: 3 비트 필드이다. GTPv2의 경우 값은 2이다.
  • 피기백 플래그: 이 비트가 1로 설정되면, 자신의 헤더를 가진 또 다른 GTP-C 메시지가 현재 메시지의 끝에 존재한다. 최상위 GTP-C 메시지에 따라 피기백 할 수 있는 메시지 유형에 대한 제한 사항이 있다.
  • TEID 플래그: 이 비트가 1로 설정되면 TEID 필드는 메시지 길이와 시퀀스 번호 사이에 있다. 에코 및 에코 응답을 제외한 모든 메시지에는 TEID가 있어야 한다.
  • 메시지 길이: 이 필드는 GTP-C 헤더 (처음 4 옥텟)의 의무 사항을 제외한 메시지 길이를 옥텟으로 표시해야 한다. TEID (있는 경우)와 시퀀스 번호는 길이 카운트에 포함된다.


GTPv2-U 프로토콜은 없으며 LTE의 GTP-U는 GTPv1-U를 사용한다.

2. 2. 연결 메커니즘

GSN (GGSN, SGSN) 간 연결 확인을 위해 에코 요청(Echo Request) 및 에코 응답(Echo Response) 메시지를 사용한다.[9]

GSN은 활성 연결을 가진 모든 다른 GSN에 대해 최대 60초마다 에코 요청을 보낼 수 있다. 상대방이 응답하지 않으면 다운된 것으로 간주하고 해당 GSN에 대한 활성 연결이 삭제된다.[3]

3. GTP-C (GTP Control)

GTP-C는 GTP 표준의 제어 부분이다. 가입자가 PDP 컨텍스트를 요청하면, SGSN은 가입자 요청의 세부 사항을 담은 'PDP 컨텍스트 생성 요청' GTP-C 메시지를 GGSN에 보낸다.[9] GGSN은 'PDP 컨텍스트 생성 응답' GTP-C 메시지로 응답하는데, 이 메시지는 실제로 활성화된 PDP 컨텍스트의 세부 정보를 제공하거나 실패와 그 이유를 알려준다.[9] 이는 포트 2123에서 UDP 메시지로 이루어진다.[9]

eGTP-C (GTPv2-C)는 여러 Sx 인터페이스에서 터널을 생성, 유지, 삭제하는 역할을 한다. 제어 플레인 경로 관리, 터널 관리, 이동성 관리에 사용되며, 재배치 메시지 전달, LTE 간 핸드오버 시 SRNS 컨텍스트 및 순방향 터널 생성을 제어한다.

4. GTP-U (GTP User Data Tunneling)

GTP-U는 각 엔드포인트 집합 사이에 많은 터널을 허용하는 비교적 간단한 IP 기반 터널링 프로토콜이다. UMTS에서 사용될 때, 각 가입자는 활성화된 각 PDP 컨텍스트마다 하나 이상의 터널을 가지며, 서로 다른 서비스 품질 요구 사항을 가진 특정 연결에 대한 별도의 터널을 가질 수도 있다.

별도의 터널은 GTP-U 메시지에서 TEID (Tunnel Endpoint Identifier, 터널 종단점 식별자)로 식별되며, 동적으로 할당된 난수여야 한다. 이 임의의 숫자가 암호화 품질을 갖는다면 특정 공격에 대한 보안 수준을 제공한다. 그럼에도 불구하고 3GPP 표준의 요구 사항은 사용자 데이터를 포함한 모든 GTP 트래픽이 인터넷에 직접 연결되지 않고 보안된 사설 네트워크 내에서 전송되어야 한다는 것이다. 이는 UDP 포트 2152에서 발생한다.

'''GTPv1-U''' 프로토콜은 Sx 인터페이스에서 GTP 터널을 통해 사용자 데이터를 교환하는 데 사용된다. UE (User Equipment, 사용자 장비)에 대한 IP 패킷은 GTPv1-U 패킷에 캡슐화되고 S1-U 및 S5/S8 인터페이스를 통해 UE로 전송하기 위해 P-GW와 eNodeB 사이에서 터널링된다.

5. GTP' (Charging Transfer)

GTP' 프로토콜은 과금 데이터를 과금 게이트웨이 기능(Charging Gateway Function)으로 전송하는 데 사용된다. GTP'는 TCP/UDP 포트 3386을 사용한다.[1]

6. GPRS 코어 네트워크 내에서의 GTP

GPRS 코어 네트워크에서 GTP는 기본 프로토콜이다. 이 프로토콜은 GSM 또는 UMTS 네트워크의 최종 사용자가 GGSN의 한 위치에서 인터넷에 연결된 것처럼 장소를 이동하면서도 계속 인터넷에 연결할 수 있도록 한다. 이는 가입자의 데이터를 가입자의 현재 SGSN에서 가입자의 세션을 처리하는 GGSN으로 전달함으로써 수행된다. GPRS 코어 네트워크에서는 다음 세 가지 형태의 GTP를 사용한다.


  • 각 PDP 컨텍스트에 대해 별도의 터널에서 사용자 데이터 전송을 위한 GTP-U
  • 다음을 포함한 제어 이유에 대한 GTP-C:
  • * PDP 컨텍스트 설정 및 삭제
  • * GSN 도달 가능성 확인
  • * 업데이트; 예를 들어, 가입자가 한 SGSN에서 다른 SGSN으로 이동할 때.
  • 과금 데이터를 GSN에서 과금 기능으로 전송하기위한 GTP'.[1]


GGSN 및 SGSN (통칭하여 GSN이라고 함)은 UDP 포트 2123에서 GTP-C 메시지와 포트 2152에서 GTP-U 메시지를 수신한다. 이 통신은 단일 네트워크 내에서 발생하거나 국제 로밍의 경우 GPRS 로밍 교환(GRX)에서 국제적으로 발생할 수 있다.[1]

과금 게이트웨이 기능 (CGF)은 TCP/UDP 포트 3386의 GSN에서 전송된 GTP' 메시지를 수신한다. 코어 네트워크는 일반적으로 PDP 컨텍스트 활성화 시간 및 최종 사용자가 전송한 데이터 양을 포함하여 과금 정보를 CGF에 전송한다. 그러나 한 네트워크 내에서 발생하는 이 통신은 표준화가 덜 되어 있으며, 공급 업체 및 구성 옵션에 따라 독점 인코딩 또는 독점 시스템을 사용할 수 있다.[1]

7. IuPS 인터페이스에서의 GTP

IuPS 인터페이스에서는 GTP-U가 사용되지만, GTP-C 프로토콜은 사용되지 않는다. 이 경우 RANAP가 제어 프로토콜로 사용되며, SGSN과 무선망 제어기(RNC) 간의 GTP-U 터널을 설정한다.[1]

8. 프로토콜 스택

GTP는 UDP 또는 TCP 상위에서 동작하며, GTPv1은 주로 UDP를 사용한다. GTP-U는 사용자 IP 패킷을 캡슐화하여 전송한다.

GTP-U 프로토콜 스택
응용 프로토콜
IP (사용자)
GTP
UDP
IP
계층 2 (예: WAN 또는 이더넷)


9. 과거 GTP 버전 (GTPv0)

GTP의 초기 버전(버전 0)은 현재 버전(버전 1, 2)과 상당한 차이점이 있었다.


  • 터널 식별자가 무작위가 아니었다.
  • X.25 전송을 위한 옵션이 제공되었다.
  • 모든 기능에 대해 고정된 포트 번호 3386이 사용되었다(GTPv1과 같이 과금에만 사용되지 않음).
  • TCP가 UDP 대신 전송 옵션으로 허용되었지만 이에 대한 지원은 선택 사항이었다.
  • 서비스 품질과 같은 가입 관련 필드가 더 제한적이었다.


버전 0의 무작위가 아닌 TEID는 공격자가 로밍 파트너의 네트워크에 접근하거나, 다른 방식으로 GPRS 백본에 원격으로 패킷을 보낼 수 있는 경우 보안 문제를 나타냈다. 버전 0은 사용이 중단되고 있으며 거의 모든 네트워크에서 버전 1으로 대체되고 있다. 다행히도, 다른 포트 번호를 사용하면 간단한 IP 접근 목록을 통해 버전 0을 쉽게 차단할 수 있다.

10. GTP 표준화

GTP는 원래 ETSI에서 GSM 표준 09.60으로 표준화되었다.[4] UMTS 표준이 만들어지면서 3GPP로 이전되어 3GPP 표준 29.060으로 유지된다.[5] GTP'는 동일한 메시지 형식을 사용하지만, 특수한 용도는 표준 32.295 및 전송하는 과금 데이터에 대한 표준화된 형식과 함께 다룬다.

TS 29.060의 후속 버전은 GTPv1/v0 상호 작용을 폐지하여,[6] GSN이 더 높은 버전을 지원하지 않는 경우 대체가 불가능하다.

GTPv2(진화된 패킷 서비스를 위해)는 2008년 초에 초안으로 작성되었으며 그해 12월에 출시되었다. GTPv2는 이전의 "버전 지원 안 됨" 메커니즘을 통해 GTPv1로의 대체 기능을 제공하지만 GTPv0으로의 대체 기능은 명시적으로 지원하지 않는다.

참조

[1] 웹사이트 3GPP TS 29.060 section 6 http://www.3gpp.org/[...]
[2] 웹사이트 3GPP TS 29.274 section 5 http://www.3gpp.org/[...]
[3] 웹사이트 3GPP TS 29.060 section 7 http://www.3gpp.org/[...]
[4] 웹사이트 3GPP TS 09.60 version 7.10.0 Release 1998 https://www.etsi.org[...]
[5] 웹사이트 3GPP TS 29.060 v16.0.0 https://www.etsi.org[...]
[6] 웹사이트 3GPP TS 29.060 v16.0.0 Section 4.2 https://www.etsi.org[...]
[7] 웹사이트 3GPP TS 29.060 section 6 http://www.3gpp.org/[...]
[8] 웹사이트 3GPP TS 29.274 section 5 http://www.3gpp.org/[...]
[9] 웹사이트 3GPP TS 29.060 section 7 http://www.3gpp.org/[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com