Protocolo de Tunelamento GPRS - GPRS Tunnelling Protocol

O GPRS Tunneling Protocol ( GTP ) é um grupo de protocolos de comunicação baseados em IP usados ​​para transportar o serviço de rádio de pacote geral (GPRS) em redes GSM , UMTS e LTE . Em arquiteturas 3GPP, interfaces baseadas em GTP e Proxy Mobile IPv6 são especificadas em vários pontos de interface.

O GTP pode ser decomposto em protocolos separados, GTP-C, GTP-U e GTP ' .

O GTP-C é usado na rede central GPRS para sinalizar entre os nós de suporte GPRS do gateway (GGSN) e os nós de suporte GPRS (SGSN). Isso permite que o SGSN ative uma sessão em nome de um usuário ( ativação do contexto PDP ), desative a mesma sessão, ajuste os parâmetros de qualidade de serviço ou atualize uma sessão para um assinante que acabou de chegar de outro SGSN.

O GTP-U é usado para transportar dados do usuário dentro da rede central GPRS e entre a rede de acesso de rádio e a rede central. Os dados do usuário transportados podem ser pacotes em qualquer um dos formatos IPv4 , IPv6 ou PPP .

GTP ' ( GTP prime ) usa a mesma estrutura de mensagem que GTP-C e GTP-U, mas tem uma função independente. Ele pode ser usado para transportar dados de carregamento da função de dados de carregamento (CDF) da rede GSM ou UMTS para a função de gateway de carregamento (CGF). Na maioria dos casos, isso deve significar de muitos elementos de rede individuais, como os GGSNs, para um computador centralizado que entrega os dados de cobrança mais convenientemente ao centro de cobrança da operadora de rede.

Diferentes variantes de GTP são implementadas por RNCs, SGSNs, GGSNs e CGFs em redes 3GPP. As estações móveis GPRS (MSs) são conectadas a um SGSN sem estar ciente do GTP.

O GTP pode ser usado com UDP ou TCP . UDP é recomendado ou obrigatório, exceto para tunelamento X.25 na versão 0. GTP versão 1 é usado somente em UDP.

Características gerais

Todas as variantes do GTP têm certos recursos em comum. A estrutura das mensagens é a mesma, com um cabeçalho GTP seguindo o cabeçalho UDP / TCP.

Cabeçalho

GTP versão 1

Os cabeçalhos GTPv1 contêm os seguintes campos:

+ 0-2 3 4 5 6 7 8-15 16-23 24-31
0 Versão Tipo de protocolo Reservado Bandeira de cabeçalho de extensão Sinalizador de número de sequência Sinalizador de número N-PDU Tipo de mensagem Comprimento da mensagem
32 TEID
64 Número sequencial Número N-PDU Próximo tipo de cabeçalho de extensão
Versão
É um campo de 3 bits. Para GTPv1, o valor é 1.
Tipo de protocolo (PT)
um valor de 1 bit que diferencia GTP (valor 1) de GTP '(valor 0).
Reservado
um campo reservado de 1 bit (deve ser 0).
Sinalizador de cabeçalho de extensão (E)
um valor de 1 bit que indica se há um campo opcional de cabeçalho de extensão.
Sinalizador de número de sequência (S)
um valor de 1 bit que indica se há um campo opcional Número de sequência.
Sinalizador de número N-PDU (PN)
um valor de 1 bit que indica se há um campo opcional de número N-PDU.
Tipo de mensagem
um campo de 8 bits que indica o tipo de mensagem GTP. Diferentes tipos de mensagens são definidos no 3GPP TS 29.060 seção 7.1
Comprimento da Mensagem
um campo de 16 bits que indica o comprimento da carga útil em bytes (o restante do pacote seguindo o cabeçalho GTP obrigatório de 8 bytes). Inclui os campos opcionais.
Identificador de endpoint do túnel (TEID)
Um campo de 32 bits (4 octetos) usado para multiplexar diferentes conexões no mesmo túnel GTP.
Número sequencial
um campo (opcional) de 16 bits. Este campo existe se qualquer um dos bits E, S ou PN estiver ativado. O campo deve ser interpretado apenas se o bit S estiver ativado.
Número N-PDU
um campo (opcional) de 8 bits. Este campo existe se qualquer um dos bits E, S ou PN estiver ativado. O campo deve ser interpretado apenas se o bit PN estiver ativado.
Próximo tipo de cabeçalho de extensão
um campo (opcional) de 8 bits. Este campo existe se qualquer um dos bits E, S ou PN estiver ativado. O campo deve ser interpretado apenas se o bit E estiver ativado.

Os próximos cabeçalhos de extensão são os seguintes:

+ Bits 0-7 23/08 24-31
0 Comprimento da extensão Conteúdo
... ...
... Conteúdo Próximo cabeçalho de extensão
Comprimento da extensão
um campo de 8 bits. Este campo indica o comprimento deste cabeçalho de extensão, incluindo o comprimento, o conteúdo e o próximo campo de cabeçalho de extensão, em unidades de 4 octetos, portanto, o comprimento da extensão deve ser sempre um múltiplo de 4.
Conteúdo
conteúdo do cabeçalho da extensão.
Próximo cabeçalho de extensão
um campo de 8 bits. Afirma o tipo da próxima extensão ou 0 se não existir nenhuma extensão seguinte. Isso permite encadear vários próximos cabeçalhos de extensão.

GTP versão 2

É também conhecido como Evolved-GTP ou eGTP. Os cabeçalhos GTPv2-C contêm os seguintes campos:

+ Bit 0-2 3 4 5-7 8-15 16-23 24-31
0 Versão Sinalizador de carona (P) Bandeira TEID (T) Poupar Tipo de mensagem Comprimento da mensagem
32 TEID (apenas presente se T = 1)
64 (32 se TEID não estiver presente) Número sequencial Poupar

Não há protocolo GTPv2-U, GTP-U em LTE também usa GTPv1-U.

Versão
É um campo de 3 bits. Para GTPv2, o valor é 2.
Bandeira carona
Se este bit for definido como 1, outra mensagem GTP-C com seu próprio cabeçalho deve estar presente no final da mensagem atual. Existem restrições quanto ao tipo de mensagem que pode ser adicionada, dependendo de qual é a mensagem GTP-C de nível superior.
Bandeira TEID
Se este bit for definido como 1, o campo TEID estará presente entre o comprimento da mensagem e o número da sequência. Todas as mensagens, exceto o eco e a resposta do eco, exigem que o TEID esteja presente.
Comprimento da mensagem
Este campo deve indicar o comprimento da mensagem em octetos, excluindo o obrigatório do cabeçalho GTP-C (os primeiros 4 octetos). O TEID (se presente) e o número de sequência devem ser incluídos na contagem de comprimento.

Mecanismos de conectividade

Além da estrutura de mensagem comum, há também um mecanismo comum para verificar a conectividade de um GSN para outro GSN. Isso usa duas mensagens.

  • pedido de eco
  • resposta de eco

Freqüentemente, a cada 60 segundos, um GSN pode enviar uma solicitação de eco a todos os outros GSN com os quais ele tem uma conexão ativa. Se a outra extremidade não responder, ela pode ser tratada como inativa e as conexões ativas com ela serão excluídas.

Além das duas mensagens mencionadas anteriormente, não há outras mensagens comuns a todas as variantes do GTP, o que significa que, na maior parte, elas formam três protocolos completamente separados.

GTP-C - controle GTP

O protocolo GTP-C é a seção de controle do padrão GTP. Quando um assinante solicita um contexto PDP , o SGSN enviará uma mensagem GTP-C de solicitação de contexto PDP de criação para o GGSN dando detalhes da solicitação do assinante. O GGSN então responderá com uma mensagem GTP-C de resposta de contexto PDP de criação que fornecerá detalhes do contexto PDP realmente ativado ou indicará uma falha e dará uma razão para essa falha. Esta é uma mensagem UDP na porta 2123.

O protocolo eGTP-C (ou GTPv2-C) é responsável pela criação, manutenção e exclusão de túneis em várias interfaces Sx. É usado para o gerenciamento do caminho do plano de controle, gerenciamento do túnel e gerenciamento da mobilidade. Ele também controla o encaminhamento de mensagens de realocação; Contexto SRNS e criação de túneis diretos durante handovers entre LTE.

GTP-U - Tunelamento de dados do usuário GTP

O GTP-U é, na verdade, um protocolo de túnel baseado em IP relativamente simples que permite muitos túneis entre cada conjunto de pontos finais. Quando usado no UMTS, cada assinante terá um ou mais túneis, um para cada contexto PDP que eles tenham ativo, além de possivelmente ter túneis separados para conexões específicas com diferentes requisitos de qualidade de serviço.

Os túneis separados são identificados por um TEID (Tunnel Endpoint Identifier) ​​nas mensagens GTP-U, que deve ser um número aleatório alocado dinamicamente. Se esse número aleatório tiver qualidade criptográfica , ele fornecerá uma medida de segurança contra certos ataques. Mesmo assim, o requisito do padrão 3GPP é que todo o tráfego GTP, incluindo os dados do usuário, seja enviado em redes privadas seguras, não diretamente conectadas à Internet. Isso acontece na porta UDP 2152.

O protocolo GTPv1-U é usado para trocar dados do usuário em túneis GTP nas interfaces Sx. Um pacote IP para um UE (ponto final do usuário) é encapsulado em um pacote GTPv1-U e tunelado entre o P-GW e o eNodeB para transmissão em relação a um UE nas interfaces S1-U e S5 / S8.

GTP '- transferência de carga

O protocolo GTP é usado para transferir dados de carregamento para a função de gateway de carregamento. GTP 'usa a porta TCP / UDP 3386.

Dentro da rede principal GPRS

GTP é o protocolo principal usado na rede principal GPRS. É o protocolo que permite que os usuários finais de uma rede GSM ou UMTS se movam de um lugar para outro enquanto continuam a se conectar à Internet como se estivessem em um local no GGSN. Ele faz isso transportando os dados do assinante do SGSN atual do assinante para o GGSN que está lidando com a sessão do assinante. Três formas de GTP são usadas pela rede principal GPRS.

  • GTP-U para transferência de dados do usuário em túneis separados para cada contexto PDP
  • GTP-C por motivos de controle, incluindo:
    • configuração e exclusão de contextos PDP
    • verificação da acessibilidade GSN
    • atualizações; por exemplo, conforme os assinantes mudam de um SGSN para outro.
  • GTP 'para transferência de dados de cobrança de GSNs para a função de carregamento.

GGSNs e SGSNs (conhecidos coletivamente como GSNs) escutam mensagens GTP-C na porta UDP 2123 e mensagens GTP-U na porta 2152. Essa comunicação ocorre dentro de uma única rede ou pode, no caso de roaming internacional, acontecer internacionalmente, provavelmente através de uma central de roaming GPRS (GRX).

A função de gateway de carga (CGF) escuta as mensagens GTP enviadas dos GSNs na porta TCP / UDP 3386. A rede central envia informações de cobrança para o CGF, geralmente incluindo os tempos de ativação do contexto PDP e a quantidade de dados que o usuário final transferiu . No entanto, essa comunicação que ocorre dentro de uma rede é menos padronizada e pode, dependendo do fornecedor e das opções de configuração, usar codificação proprietária ou até mesmo um sistema totalmente proprietário.

Use na interface IuPS

O GTP-U é usado no IuPS entre a rede central GPRS e a RAN, porém o protocolo GTP-C não é usado. Neste caso, o RANAP é usado como um protocolo de controle e estabelece túneis GTP-U entre o SGSN e o controlador de rede de rádio (RNC).

Pilha de protocolos

Protocolos de aplicativos
IP (usuário)
GTP
UDP
IP
Camada 2 (por exemplo, WAN ou Ethernet)

Pilha de protocolo GTP-U

O GTP pode ser usado com UDP ou TCP . GTP versão 1 é usado apenas em UDP.

Em 2018, havia três versões definidas, versões 0, 1 e 2. A versão 0 e a versão 1 diferem consideravelmente na estrutura. Na versão 0, o protocolo de sinalização (o protocolo que configura os túneis ativando o contexto PDP) é combinado com o protocolo de túnel em uma porta. As versões 1 e 2 são, cada uma, efetivamente dois protocolos, um para controle (denominado GTP-C) e um para tunelamento de dados do usuário (denominado GTP-U). O GTP versão 2 é diferente da versão 1 apenas no GTP-C. Isso se deve aos aprimoramentos de definição de 3GPP para GTP-C para EPS na versão 2 para melhorar o manuseio do portador.

O GTP-U também é usado para transportar dados do usuário do RNC para o SGSN em redes UMTS. No entanto, neste caso, a sinalização é feita usando RANAP em vez de GTP-C.

Versões históricas de GTP

A versão original do GTP (versão 0) tinha diferenças consideráveis ​​das versões atuais (versões 1,2):

  • a identificação do túnel não foi aleatória;
  • opções foram fornecidas para transportar X.25 ;
  • o número de porta fixa 3386 foi usado para todas as funções (não apenas cobrando como no GTPv1);
  • O TCP foi permitido como uma opção de transporte em vez de UDP, mas o suporte para isso era opcional;
  • campos relacionados à assinatura, como qualidade de serviço, eram mais limitados.

O TEID não aleatório na versão 0 representava um problema de segurança se um invasor tivesse acesso à rede de qualquer parceiro de roaming ou pudesse encontrar outra maneira de enviar remotamente pacotes para o backbone GPRS. A versão 0 está saindo de uso e sendo substituída pela versão 1 em quase todas as redes. Felizmente, no entanto, o uso de diferentes números de porta permite o bloqueio fácil da versão 0 por meio de listas de acesso de IP simples.

Padronização GTP

O GTP foi originalmente padronizado no ETSI (padrão GSM 09.60). Com a criação dos padrões UMTS, este foi transferido para o 3GPP que, a partir de 2005, o mantém como padrão 3GPP 29.060. O GTP 'usa o mesmo formato de mensagem, mas seus usos especiais são cobertos no padrão 32.295 junto com os formatos padronizados para os dados de cobrança que ele transfere.

Versões posteriores do TS 29.060 desaprovam a interoperação GTPv1 / v0 de forma que não haja fallback no caso de o GSN não suportar a versão superior.

O GTPv2 (para serviços de pacote evoluídos) entrou em rascunho no início de 2008 e foi lançado em dezembro daquele ano. GTPv2 oferece fallback para GTPv1 por meio do mecanismo anterior de "Versão não suportada", mas explicitamente não oferece suporte para fallback para GTPv0.

Veja também

Notas

Referências

  • Padrão GSM 09.60, ETSI, 1996–98, esse padrão cobre a versão 0 original do GTP.
  • 3GPP TS 29.060 V6.9.0 (2005-06) , Projeto de Parceria de 3ª Geração, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANÇA, 2005-06. Este é o padrão principal que define todas as variantes do GTP para a versão 1 do GTP.
  • 3GPP TS 32.295 V6.1.0 (2005-06) , Projeto de Parceria de 3ª Geração, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANÇA, 2005-06. Este padrão cobre o uso de GTP para carregamento.
  • 3GPP TS 29.274 V8.1.0 (2009-03) , Projeto de Parceria de 3ª Geração, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANÇA, 2009-03. GTPv2 para GPRS evoluído.

links externos