El protocolo de túnel 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 GSM , UMTS y LTE . 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 de GPRS para la señalización entre los nodos de soporte de GPRS de la puerta de enlace (GGSN) y los nodos de soporte de GPRS de servicio (SGSN). Esto permite al SGSN activar una sesión en nombre de un usuario ( activación de contexto PDP ), desactivar la misma sesión, ajustar los parámetros de calidad de servicio o actualizar 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 central GPRS y entre la red de acceso por radio y la red central. 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. Se puede utilizar para transportar datos de carga desde la función de datos de carga (CDF) de la red GSM o UMTS a la función de pasarela de carga (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 carga de manera más conveniente al centro de facturación del operador de red.
Los RNC, SGSN, GGSN y CGF implementan diferentes variantes de GTP dentro de las redes 3GPP. Las estaciones móviles (MS) GPRS están conectadas 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 de X.25 en la versión 0. La versión 1 de GTP se usa solo en UDP.
Características generales
Todas las variantes de GTP tienen ciertas características en común. La estructura de los mensajes es la misma, con un encabezado GTP después del encabezado UDP / TCP.
Encabezamiento
GTP versión 1
Los encabezados de 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 | TEID | |||||||||||||||||||||||||||||||
64 | Secuencia de números | Número de N-PDU | Siguiente tipo de encabezado de extensión |
- Versión
- Es un campo de 3 bits. Para GTPv1, tiene un valor de 1.
- Tipo de protocolo (PT)
- un valor de 1 bit que diferencia GTP (valor 1) de GTP '(valor 0).
- Reservado
- un campo reservado de 1 bit (debe ser 0).
- Bandera de encabezado de extensión (E)
- un valor de 1 bit que indica si hay un campo opcional de encabezado de extensión.
- Bandera de número de secuencia (S)
- un valor de 1 bit que indica si hay un campo opcional Número de secuencia.
- Indicador de número de N-PDU (PN)
- un valor de 1 bit que indica si hay un campo opcional de número de N-PDU.
- Tipo de mensaje
- un campo de 8 bits que indica el tipo de mensaje GTP. Los diferentes tipos de mensajes se definen en 3GPP TS 29.060 sección 7.1
- Longitud del mensaje
- un campo de 16 bits que indica la longitud de la carga útil en bytes (el resto del paquete que sigue al encabezado GTP obligatorio de 8 bytes). Incluye los campos opcionales.
- Identificador de punto final de túnel (TEID)
- Un campo de 32 bits (4 octetos) que se utiliza para multiplexar diferentes conexiones en el mismo túnel GTP.
- Secuencia de números
- un campo (opcional) de 16 bits. Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse solo si el bit S está activado.
- Número de N-PDU
- un campo (opcional) de 8 bits. Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse solo si el bit PN está activado.
- Siguiente tipo de encabezado de extensión
- un campo (opcional) de 8 bits. Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse solo si el bit E está activado.
Los siguientes encabezados de extensión son los siguientes:
+ | Bits 0-7 | 8-23 | 24-31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Longitud de extensión | Contenido | ||||||||||||||||||||||||||||||
... | ... | |||||||||||||||||||||||||||||||
... | Contenido | Siguiente encabezado de extensión |
- Longitud de extensión
- un campo de 8 bits. Este campo indica la longitud de este encabezado de extensión, incluida la longitud, el contenido y el siguiente campo de encabezado de extensión, en unidades de 4 octetos, por lo que la longitud de la extensión siempre debe ser un múltiplo de 4.
- Contenido
- contenido del encabezado de extensión.
- Siguiente encabezado de extensión
- un campo de 8 bits. Indica el tipo de la siguiente extensión, o 0 si no existe la siguiente extensión. Esto permite encadenar varios encabezados de extensión siguientes.
GTP versión 2
También se conoce como evolucionado-GTP o eGTP. Los encabezados de GTPv2-C contienen los siguientes campos: [2]
+ | Bit 0-2 | 3 | 4 | 5-7 | 8-15 | 16-23 | 24-31 | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Versión | Bandera a cuestas (P) | Bandera TEID (T) | Repuesto | Tipo de mensaje | Longitud del mensaje | ||||||||||||||||||||||||||
32 | TEID (solo presente si T = 1) | |||||||||||||||||||||||||||||||
64 (32 si TEID no está presente) | Secuencia de números | Repuesto |
No hay protocolo GTPv2-U, GTP-U en LTE también usa GTPv1-U.
- Versión
- Es un campo de 3 bits. Para GTPv2, tiene un valor de 2.
- Bandera a cuestas
- Si este bit se pone a 1, al final del mensaje actual estará presente otro mensaje GTP-C con su propio encabezado. Existen restricciones en cuanto al tipo de mensaje que se puede llevar a cuestas dependiendo de cuál sea el mensaje GTP-C de nivel superior.
- Bandera TEID
- Si este bit se establece en 1, el campo TEID estará presente entre la longitud del mensaje y el número de secuencia. Todos los mensajes, excepto el eco y la respuesta de eco, requieren que esté presente el TEID.
- Longitud del mensaje
- Este campo indicará la longitud del mensaje en octetos excluyendo el obligatorio del encabezamiento GTP-C (los primeros 4 octetos). El TEID (si está presente) y el número de secuencia se incluirán en el recuento de longitudes.
Mecanismos de conectividad
Aparte de la estructura de mensaje común, también existe un mecanismo común para verificar la conectividad de un GSN a otro GSN. Esto usa dos mensajes.
- solicitud de eco
- respuesta de eco
Cada 60 segundos, un GSN puede enviar una solicitud de eco a todos los demás GSN con los que tenga una conexión activa. Si el otro extremo no responde, puede tratarse como inactivo y se eliminarán las conexiones activas.
Aparte de los dos mensajes mencionados anteriormente, no hay otros mensajes comunes en todas las variantes de GTP [3], lo que significa que, en su mayor parte, forman efectivamente tres protocolos completamente separados.
GTP-C - control GTP
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 contexto PDP para crear al GGSN dando detalles de la solicitud del suscriptor. El GGSN responderá entonces con un mensaje GTP-C de respuesta de contexto PDP de creación que dará detalles del contexto PDP realmente activado o indicará una falla y dará una razón para esa falla. 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 la movilidad. También controla el reenvío de mensajes de reubicación; Contexto SRNS y creación de túneles de avance durante los traspasos entre LTE.
GTP-U: tunelización de datos de usuario GTP
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 el UMTS, cada abonado tendrá uno o más túneles, uno para cada contexto de PDP que tenga activo, además de posiblemente tener túneles separados para conexiones específicas con diferentes requisitos de calidad de servicio.
Los túneles separados se identifican mediante un TEID (Identificador de punto final de túnel) 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 , 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 del usuario, se envíe dentro de redes privadas seguras, no directamente conectado 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 de usuario) se encapsula en un paquete GTPv1-U y se tuneliza entre el P-GW y el eNodoB para su transmisión con respecto a un UE a través de interfaces S1-U y S5 / S8.
GTP '- transferencia de carga
El protocolo GTP se utiliza para transferir datos de carga a la función de puerta de enlace de carga. GTP 'usa el puerto TCP / UDP 3386.
Dentro de la red central de GPRS
GTP es el protocolo principal utilizado en la red central de GPRS. Es el protocolo que permite a los usuarios finales de una red GSM o UMTS moverse de un lugar a otro mientras continúan conectándose a Internet como desde una ubicación en el GGSN. Lo hace transportando los datos del suscriptor desde el SGSN actual del suscriptor al GGSN que está manejando la sesión del suscriptor. La red central de GPRS utiliza tres formas de GTP.
- GTP-U para la transferencia de datos de usuario en túneles separados para cada contexto de PDP
- GTP-C por razones de control que incluyen:
- configuración y eliminación de contextos PDP
- verificación de la accesibilidad de GSN
- actualizaciones; por ejemplo, cuando los suscriptores se mueven de un SGSN a otro.
- GTP 'para la transferencia de datos de carga de GSN a la función de carga.
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 del roaming internacional, ocurrir internacionalmente, probablemente a través de un intercambio de itinerancia GPRS (GRX).
La función de puerta de enlace 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 al CGF, que generalmente incluye los tiempos de activación del contexto de PDP y la cantidad de datos que el usuario final ha transferido. . Sin embargo, esta comunicación que ocurre dentro de una red está menos estandarizada y puede, dependiendo del proveedor y las opciones de configuración, usar codificación propietaria o incluso un sistema completamente propietario.
Usar en la interfaz IuPS
GTP-U se usa en el IuPS entre la red central GPRS y la RAN, sin embargo, no se usa el protocolo GTP-C. En este caso, RANAP se utiliza como protocolo de control y establece túneles GTP-U entre el SGSN y el controlador de red de radio (RNC).
Pila de protocolos
Protocolos de aplicación |
IP (usuario) |
GTP |
UDP |
IP |
Capa 2 (p. Ej., WAN o Ethernet) |
Pila de protocolos GTP-U |
GTP se puede utilizar con UDP o TCP . La versión 1 de GTP se usa solo en UDP.
A partir de 2018[actualizar]hay tres versiones definidas, versiones 0, 1 y 2. La versión 0 y la versión 1 difieren considerablemente en estructura. En la versión 0, el protocolo de señalización (el protocolo que configura los túneles activando el contexto PDP) se combina con el protocolo de túnel en un puerto. Las versiones 1 y 2 son efectivamente dos protocolos, uno para control (llamado GTP-C) y otro para 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 las mejoras que definen 3GPP en GTP-C para EPS en la versión 2 para mejorar el manejo de portadores.
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.
Versiones históricas de GTP
La versión original de GTP (versión 0) tenía diferencias considerables con las versiones actuales (versiones 1,2):
- la identificación del túnel no fue aleatoria;
- se proporcionaron opciones para transportar X.25 ;
- el número de puerto fijo 3386 se utilizó para todas las funciones (no solo para la carga como en GTPv1);
- Se permitió TCP como una opción de transporte en lugar de UDP, pero el soporte para esto era opcional;
- Los campos relacionados con la suscripción, como la calidad del servicio, eran más limitados.
El TEID no aleatorio en 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 alguna 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 un fácil bloqueo de la versión 0 a través de simples listas de acceso IP.
Estandarización de GTP
GTP se estandarizó originalmente dentro de ETSI (estándar GSM 09.60). Con la creación de los estándares UMTS, esto se trasladó al 3GPP que, a partir de 2005[actualizar]lo mantiene como estándar 3GPP 29.060. GTP 'usa 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 carga que transfiere.
Las versiones posteriores de TS 29.060 desaprueban el interfuncionamiento de GTPv1 / v0, de modo que no hay respaldo en caso de que GSN no admita la versión superior.
GTPv2 (para servicios de paquetes evolucionados) entró en borrador a principios de 2008 y fue lanzado en diciembre de ese año. GTPv2 ofrece respaldo a GTPv1 a través del mecanismo anterior "Versión no admitida", pero explícitamente no ofrece respaldo para GTPv0.
Ver también
Notas
Referencias
- Estándar GSM 09.60, ETSI, 1996–98, este estándar cubre la versión 0 original de GTP.
- 3GPP TS 29.060 V6.9.0 (2005-06) , Proyecto de asociación de tercera generación, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2005-06. Este es el estándar principal que define todas las variantes de GTP para la versión 1 de GTP.
- 3GPP TS 32.295 V6.1.0 (2005-06) , Proyecto de asociación de tercera generación, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2005-06. Este estándar cubre el uso de GTP para cargar.
- 3GPP TS 29.274 V8.1.0 (2009-03) , Proyecto de asociación de tercera generación, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2009-03. GTPv2 para GPRS evolucionado.
enlaces externos
- El sitio web 3GPP, hogar del estándar GTP
- Implementación gratuita y de código abierto del Protocolo de túnel GPRS versión 2 (GTPv2) o GTP evolucionado (eGTP)