This article includes a list of general references, but it lacks sufficient corresponding inline citations. (April 2009) |
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
El Protocolo de Tunelización GPRS ( GTP ) es un grupo de protocolos de comunicaciones basados en IP que se utilizan para transportar el servicio de radio por paquetes general (GPRS) dentro de las redes de radio GSM , UMTS , LTE y 5G NR . En las arquitecturas 3GPP, las interfaces basadas en GTP y Proxy Mobile IPv6 se especifican en varios puntos de interfaz.
GTP se puede descomponer en protocolos separados, GTP-C, GTP-U y GTP' .
GTP-C se utiliza dentro de la red central GPRS para la señalización entre los nodos de soporte GPRS de puerta de enlace (GGSN) y los nodos de soporte GPRS de servicio (SGSN). Esto permite que el SGSN active una sesión en nombre de un usuario ( activación de contexto PDP ), desactive la misma sesión, ajuste los parámetros de calidad del servicio o actualice una sesión para un suscriptor que acaba de llegar de otro SGSN.
GTP-U se utiliza para transportar datos de usuario dentro de la red principal GPRS y entre la red de acceso por radio y la red principal. Los datos de usuario transportados pueden ser paquetes en cualquiera de los formatos IPv4 , IPv6 o PPP .
GTP' ( GTP prime ) utiliza la misma estructura de mensajes que GTP-C y GTP-U, pero tiene una función independiente. Puede utilizarse para transportar datos de tarificación desde la función de datos de tarificación (CDF) de la red GSM o UMTS hasta la función de pasarela de tarificación (CGF). En la mayoría de los casos, esto debería significar desde muchos elementos de red individuales, como los GGSN, hasta una computadora centralizada que entrega los datos de tarificación de manera más conveniente al centro de facturación del operador de red.
Los RNC, SGSN, GGSN y CGF implementan distintas variantes de GTP en las redes 3GPP. Las estaciones móviles (MS) GPRS se conectan a un SGSN sin tener conocimiento de GTP.
GTP se puede utilizar con UDP o TCP . UDP es recomendado u obligatorio, excepto para la tunelización X.25 en la versión 0. La versión 1 de GTP se utiliza solo en UDP.
Todas las variantes de GTP tienen ciertas características en común. La estructura de los mensajes es la misma, con un encabezado GTP a continuación del encabezado UDP/TCP.
Los encabezados GTPv1 contienen los siguientes campos: [1]
+ | 0-2 | 3 | 4 | 5 | 6 | 7 | 8-15 | 16-23 | 24-31 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Versión | Tipo de protocolo | Reservado | Bandera de encabezado de extensión | Bandera de número de secuencia | Indicador de número de N-PDU | Tipo de mensaje | Longitud del mensaje | ||||||||||||||||||||||||
32 | Identificación | |||||||||||||||||||||||||||||||
64 | Número de secuencia | Número de N-PDU | Próximo tipo de encabezado de extensión |
Los siguientes encabezados de extensión son los siguientes:
+ | Bits 0-7 | 8-23 | 24-31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Longitud de extensión | Contenido | ||||||||||||||||||||||||||||||
... | ... | |||||||||||||||||||||||||||||||
... | Contenido | Próximo encabezado de extensión |
También se conoce como GTP evolucionado o eGTP. Los encabezados GTPv2-C contienen los siguientes campos: [2]
+ | Bit 0-2 | 3 | 4 | 5-7 | 8-15 | 16-23 | 24-31 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Versión | Bandera piggybacking (P) | Bandera TEID (T) | Repuesto | Tipo de mensaje | Longitud del mensaje | ||||||||||||||||||||||||||
32 | TEID (solo presente si T=1) | |||||||||||||||||||||||||||||||
64 (32 si no está presente el TEID) | Número de secuencia | Repuesto |
No existe el protocolo GTPv2-U, GTP-U en LTE también usa GTPv1-U.
Además de la estructura de mensajes común, también existe un mecanismo común para verificar la conectividad de un GSN a otro. Este mecanismo utiliza dos mensajes.
Cada 60 segundos, un GSN puede enviar una solicitud de eco a todos los demás GSN con los que tiene una conexión activa. Si el otro extremo no responde, se puede considerar que está inactivo y se eliminarán las conexiones activas con él.
Aparte de los dos mensajes mencionados anteriormente, no hay otros mensajes comunes a todas las variantes de GTP [3], lo que significa que, en su mayor parte, forman efectivamente tres protocolos completamente separados.
El protocolo GTP-C es la sección de control del estándar GTP. Cuando un suscriptor solicita un contexto PDP , el SGSN enviará un mensaje GTP-C de solicitud de creación de contexto PDP al GGSN con detalles de la solicitud del suscriptor. El GGSN responderá entonces con un mensaje GTP-C de respuesta de creación de contexto PDP que proporcionará detalles del contexto PDP realmente activado o indicará un fallo y dará una razón para ese fallo. Este es un mensaje UDP en el puerto 2123.
El protocolo eGTP-C (o GTPv2-C) es responsable de crear, mantener y eliminar túneles en múltiples interfaces Sx. Se utiliza para la gestión de rutas del plano de control, la gestión de túneles y la gestión de movilidad. También controla el reenvío de mensajes de reubicación, el contexto SRNS y la creación de túneles de reenvío durante las transferencias entre LTE.
GTP-U es, en efecto, un protocolo de tunelización basado en IP relativamente simple que permite muchos túneles entre cada conjunto de puntos finales. Cuando se utiliza en UMTS, cada abonado tendrá uno o más túneles, uno para cada contexto PDP que tenga activo, así como posiblemente túneles separados para conexiones específicas con diferentes requisitos de calidad de servicio.
Los túneles separados se identifican mediante un TEID (Tunnel Endpoint Identifier) en los mensajes GTP-U, que debe ser un número aleatorio asignado dinámicamente. Si este número aleatorio es de calidad criptográfica , entonces proporcionará una medida de seguridad contra ciertos ataques. Aun así, el requisito del estándar 3GPP es que todo el tráfico GTP, incluidos los datos de usuario, se envíe dentro de redes privadas seguras, no conectadas directamente a Internet. Esto sucede en el puerto UDP 2152.
El protocolo GTPv1-U se utiliza para intercambiar datos de usuario a través de túneles GTP a través de las interfaces Sx. Un paquete IP para un UE (punto final del usuario) se encapsula en un paquete GTPv1-U y se tuneliza entre el P-GW y el eNodeB para su transmisión con respecto a un UE a través de las interfaces S1-U y S5/S8.
El protocolo GTP se utiliza para transferir datos de carga a la función de puerta de enlace de carga. GTP utiliza el puerto TCP/UDP 3386.
GTP es el protocolo principal utilizado en la red central GPRS. Es el protocolo que permite a los usuarios finales de una red GSM o UMTS desplazarse de un lugar a otro mientras continúan conectados a Internet como si estuvieran en una ubicación en el GGSN. Esto se logra transportando los datos del abonado desde el SGSN actual del abonado al GGSN que gestiona la sesión del abonado. La red central GPRS utiliza tres formas de GTP.
Los GGSN y SGSN (conocidos colectivamente como GSN) escuchan mensajes GTP-C en el puerto UDP 2123 y mensajes GTP-U en el puerto 2152. Esta comunicación ocurre dentro de una sola red o puede, en el caso de roaming internacional, ocurrir internacionalmente, probablemente a través de un intercambio de roaming GPRS (GRX).
La función de pasarela de carga (CGF) escucha los mensajes de GTP enviados desde los GSN en el puerto TCP/UDP 3386. La red central envía información de carga a la CGF, que normalmente incluye los tiempos de activación del contexto PDP y la cantidad de datos que el usuario final ha transferido. Sin embargo, esta comunicación que se produce dentro de una red está menos estandarizada y puede, según el proveedor y las opciones de configuración, utilizar una codificación propietaria o incluso un sistema completamente propietario.
GTP-U se utiliza en el IuPS entre la red central GPRS y la RAN, pero no se utiliza el protocolo GTP-C. En este caso, se utiliza RANAP como protocolo de control y se establecen túneles GTP-U entre el SGSN y el controlador de red de radio (RNC).
Protocolos de aplicación |
IP (usuario) |
GTP |
Unión Democrática |
Propiedad intelectual |
Capa 2 (por ejemplo, WAN o Ethernet) |
Pila de protocolos GTP-U |
GTP se puede utilizar con UDP o TCP . La versión 1 de GTP se utiliza únicamente en UDP.
A partir de 2018, [update]se han definido tres versiones: 0, 1 y 2. La versión 0 y la versión 1 difieren considerablemente en su estructura. En la versión 0, el protocolo de señalización (el protocolo que establece los túneles activando el contexto PDP) se combina con el protocolo de tunelización en un puerto. Las versiones 1 y 2 son, en efecto, dos protocolos, uno para el control (llamado GTP-C) y otro para la tunelización de datos de usuario (llamado GTP-U). La versión 2 de GTP es diferente a la versión 1 solo en GTP-C. Esto se debe a que 3GPP define mejoras en GTP-C para EPS en la versión 2 para mejorar el manejo de portadoras.
GTP-U también se utiliza para transportar datos de usuario desde el RNC al SGSN en redes UMTS. Sin embargo, en este caso la señalización se realiza mediante RANAP en lugar de GTP-C.
La versión original de GTP (versión 0) tenía diferencias considerables con las versiones actuales (versiones 1,2):
El TEID no aleatorio de la versión 0 representaba un problema de seguridad si un atacante tenía acceso a la red de cualquier socio de roaming o podía encontrar otra forma de enviar paquetes de forma remota a la red troncal GPRS. La versión 0 está en desuso y está siendo reemplazada por la versión 1 en casi todas las redes. Afortunadamente, sin embargo, el uso de diferentes números de puerto permite bloquear fácilmente la versión 0 a través de simples listas de acceso IP.
GTP fue estandarizado originalmente dentro de ETSI (estándar GSM 09.60 [4] ). Con la creación de los estándares UMTS, esto se trasladó al 3GPP que, a partir de 2005, [update]lo mantiene como estándar 3GPP 29.060. [5] GTP utiliza el mismo formato de mensaje, pero sus usos especiales están cubiertos en el estándar 32.295 junto con los formatos estandarizados para los datos de cobro que transfiere.
Las versiones posteriores de TS 29.060 desaprueban la interoperabilidad GTPv1/v0 [6], de modo que no hay respaldo en caso de que el GSN no admita la versión superior.
GTPv2 (para servicios de paquetes evolucionados) se presentó como borrador a principios de 2008 y se publicó en diciembre de ese año. GTPv2 ofrece respaldo a GTPv1 a través del mecanismo anterior "Versión no compatible", pero explícitamente no ofrece respaldo para respaldo a GTPv0.