stringtranslate.com

Protocolo de tunelización GPRS

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 recomendable u obligatorio, excepto para la tunelización X.25 en la versión 0. La versión 1 de GTP se utiliza solo con 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 a continuación del encabezado UDP/TCP.

Encabezamiento

Versión 1 de GTP

Los encabezados GTPv1 contienen los siguientes campos: [1]

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 de 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 N-PDU.
Tipo de mensaje
Un campo de 8 bits que indica el tipo de mensaje GTP. Los distintos tipos de mensajes se definen en la sección 7.1 de 3GPP TS 29.060
Longitud del mensaje
un campo de 16 bits que indica la longitud de la carga útil en bytes (el resto del paquete sigue al encabezado GTP obligatorio de 8 bytes). Incluye los campos opcionales.
Identificador del punto final del túnel (TEID)
Un campo de 32 bits (4 octetos) utilizado para multiplexar diferentes conexiones en el mismo túnel GTP.
Número de secuencia
Un campo de 16 bits (opcional). Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse únicamente si el bit S está activado.
Número de N-PDU
Un campo de 8 bits (opcional). Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse únicamente si el bit PN está activado.
Próximo tipo de encabezado de extensión
Un campo de 8 bits (opcional). Este campo existe si alguno de los bits E, S o PN está activado. El campo debe interpretarse únicamente si el bit E está activado.

Los siguientes encabezados de extensión son los siguientes:

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.
Próximo encabezado de extensión
un campo de 8 bits. Indica el tipo de la siguiente extensión o 0 si no existe ninguna extensión siguiente. Esto permite encadenar varios encabezados de siguiente extensión.

Versión 2 de GTP

También se conoce como GTP evolucionado o eGTP. Los encabezados GTPv2-C contienen los siguientes campos: [2]

No existe el 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 piggybacking
Si este bit se establece en 1, entonces deberá aparecer otro mensaje GTP-C con su propio encabezado al final del mensaje actual. Existen restricciones en cuanto al tipo de mensaje que se puede incluir en el paquete, según 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 Echo y Echo reply, requieren que el TEID esté presente.
Longitud del mensaje
Este campo indicará la longitud del mensaje en octetos, excluyendo el encabezado GTP-C obligatorio (los primeros 4 octetos). El TEID (si está presente) y el número de secuencia se incluirán en el recuento de longitud.

Mecanismos de conectividad

Además de la estructura de mensajes común, también existe un mecanismo común para verificar la conectividad de una red GSN a otra. 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.

GTP-C - Control de 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 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 - 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 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.

GTP' - transferencia de carga

El protocolo GTP se utiliza para transferir datos de carga a la función de pasarela de carga. GTP utiliza el puerto TCP/UDP 3386.

Dentro de la red central GPRS

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.

Uso en la interfaz IuPS

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).

Pila de protocolos

GTP se puede utilizar con UDP o TCP . La versión 1 de GTP se utiliza únicamente en UDP.

A partir de 2018, 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.

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):

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.

Estandarización GTP

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, 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.

Véase también

Notas

  1. ^ 3GPP TS 29.060 sección 6
  2. ^ 3GPP TS 29.274 sección 5
  3. ^ 3GPP TS 29.060 sección 7
  4. ^ "3GPP TS 09.60 versión 7.10.0 lanzamiento 1998" (PDF) . etsi.org .
  5. ^ "3GPP TS 29.060 v16.0.0" (PDF) . etsi.org .
  6. ^ "3GPP TS 29.060 v16.0.0 Sección 4.2" (PDF) . etsi.org .

Referencias

Enlaces externos