Protocollo di tunneling GPRS - GPRS Tunnelling Protocol

GPRS Tunneling Protocol ( GTP ) è un gruppo di protocolli di comunicazione basati su IP utilizzati per trasportare il servizio radio a pacchetto generale (GPRS) all'interno di reti GSM , UMTS e LTE . Nelle architetture 3GPP, le interfacce basate su GTP e Proxy Mobile IPv6 sono specificate su vari punti di interfaccia.

GTP può essere scomposto in protocolli separati, GTP-C, GTP-U e GTP ' .

GTP-C viene utilizzato all'interno della rete principale GPRS per la segnalazione tra i nodi di supporto GPRS gateway (GGSN) e i nodi di supporto GPRS (SGSN). Ciò consente all'SGSN di attivare una sessione per conto di un utente ( attivazione del contesto PDP ), di disattivare la stessa sessione, di regolare la qualità dei parametri di servizio o di aggiornare una sessione per un abbonato appena arrivato da un altro SGSN.

GTP-U viene utilizzato per trasportare i dati dell'utente all'interno della rete principale GPRS e tra la rete di accesso radio e la rete centrale. I dati utente trasportati possono essere pacchetti in qualsiasi formato IPv4 , IPv6 o PPP .

GTP ' ( GTP prime ) utilizza la stessa struttura dei messaggi di GTP-C e GTP-U, ma ha una funzione indipendente. Può essere utilizzato per trasferire i dati di ricarica dalla funzione dati di ricarica (CDF) della rete GSM o UMTS alla funzione gateway di ricarica (CGF). Nella maggior parte dei casi, ciò dovrebbe significare da molti singoli elementi di rete come i GGSN a un computer centralizzato che fornisce i dati di ricarica in modo più conveniente al centro di fatturazione dell'operatore di rete.

Diverse varianti GTP sono implementate da RNC, SGSN, GGSN e CGF all'interno delle reti 3GPP. Le stazioni mobili (MS) GPRS sono collegate a un SGSN senza essere a conoscenza di GTP.

GTP può essere utilizzato con UDP o TCP . UDP è consigliato o obbligatorio, ad eccezione del tunneling X.25 nella versione 0. GTP versione 1 viene utilizzata solo su UDP.

Caratteristiche generali

Tutte le varianti di GTP hanno alcune caratteristiche in comune. La struttura dei messaggi è la stessa, con un'intestazione GTP che segue l'intestazione UDP / TCP.

Intestazione

GTP versione 1

Le intestazioni GTPv1 contengono i seguenti campi:

+ 0-2 3 4 5 6 7 8-15 16-23 24-31
0 Versione Tipo di protocollo Riservato Flag di intestazione di estensione Flag del numero di sequenza Flag del numero N-PDU Tipo di messaggio Lunghezza del messaggio
32 TEID
64 Sequenza di numeri Numero N-PDU Tipo di intestazione dell'estensione successiva
Versione
È un campo a 3 bit. Per GTPv1, questo ha un valore di 1.
Tipo di protocollo (PT)
un valore a 1 bit che differenzia GTP (valore 1) da GTP '(valore 0).
Riservato
un campo riservato a 1 bit (deve essere 0).
Flag intestazione estensione (E)
un valore a 1 bit che indica se è presente un campo opzionale di intestazione di estensione.
Flag numero di sequenza (S)
un valore a 1 bit che indica se è presente un campo opzionale Numero sequenza.
Flag numero N-PDU (PN)
un valore a 1 bit che indica se è presente un campo facoltativo numero N-PDU.
Tipo di messaggio
un campo a 8 bit che indica il tipo di messaggio GTP. Diversi tipi di messaggi sono definiti nella sezione 7.1 di 3GPP TS 29.060
Lunghezza messaggio
un campo a 16 bit che indica la lunghezza del payload in byte (il resto del pacchetto segue l'intestazione GTP obbligatoria a 8 byte). Include i campi facoltativi.
Identificatore dell'endpoint del tunnel (TEID)
Un campo a 32 bit (4 ottetti) utilizzato per multiplexare connessioni diverse nello stesso tunnel GTP.
Sequenza di numeri
un campo a 16 bit (opzionale). Questo campo esiste se uno qualsiasi dei bit E, S o PN è attivo. Il campo deve essere interpretato solo se il bit S è attivo.
Numero N-PDU
un campo a 8 bit (opzionale). Questo campo esiste se uno qualsiasi dei bit E, S o PN è attivo. Il campo deve essere interpretato solo se il bit PN è attivo.
Tipo di intestazione dell'estensione successiva
un campo a 8 bit (opzionale). Questo campo esiste se uno qualsiasi dei bit E, S o PN è attivo. Il campo deve essere interpretato solo se il bit E è acceso.

Le intestazioni di estensione successive sono le seguenti:

+ Bit 0-7 8-23 24-31
0 Lunghezza estensione Contenuti
... ...
... Contenuti Intestazione dell'estensione successiva
Lunghezza estensione
un campo a 8 bit. Questo campo indica la lunghezza dell'intestazione dell'estensione, inclusa la lunghezza, il contenuto e il campo dell'intestazione dell'estensione successiva, in unità di 4 ottetti, quindi la lunghezza dell'estensione deve sempre essere un multiplo di 4.
Contenuti
contenuto dell'intestazione dell'estensione.
Intestazione dell'estensione successiva
un campo a 8 bit. Indica il tipo di estensione successiva o 0 se non esiste alcuna estensione successiva. Ciò consente di concatenare diverse intestazioni di estensione successive.

GTP versione 2

È anche noto come evolved-GTP o eGTP. Le intestazioni GTPv2-C contengono i seguenti campi:

+ Bit 0-2 3 4 5-7 8-15 16-23 24-31
0 Versione Bandiera Piggybacking (P) Bandiera TEID (T) Ricambio Tipo di messaggio Lunghezza del messaggio
32 TEID (presente solo se T = 1)
64 (32 se TEID non presente) Sequenza di numeri Ricambio

Non esiste un protocollo GTPv2-U, GTP-U in LTE utilizza anche GTPv1-U.

Versione
È un campo a 3 bit. Per GTPv2, questo ha un valore di 2.
Bandiera Piggybacking
Se questo bit è impostato a 1, un altro messaggio GTP-C con la propria intestazione deve essere presente alla fine del messaggio corrente. Ci sono delle restrizioni sul tipo di messaggio che può essere caricato a seconda di quale sia il messaggio GTP-C di primo livello.
Bandiera TEID
Se questo bit è impostato a 1, il campo TEID sarà presente tra la lunghezza del messaggio e il numero di sequenza. Tutti i messaggi eccetto Echo e Echo reply richiedono la presenza di TEID.
Lunghezza del messaggio
Questo campo indica la lunghezza del messaggio in ottetti escluso l'obbligatorietà dell'intestazione GTP-C (i primi 4 ottetti). Il TEID (se presente) e il numero di sequenza devono essere inclusi nel conteggio della lunghezza.

Meccanismi di connettività

Oltre alla struttura del messaggio comune, esiste anche un meccanismo comune per verificare la connettività da un GSN a un altro GSN. Questo utilizza due messaggi.

  • richiesta di eco
  • risposta di eco

Ogni 60 secondi, un GSN può inviare una richiesta di eco a ogni altro GSN con cui ha una connessione attiva. Se l'altra estremità non risponde, può essere considerata inattiva e le connessioni attive ad essa verranno eliminate.

A parte i due messaggi menzionati in precedenza, non ci sono altri messaggi comuni a tutte le varianti GTP, il che significa che, per la maggior parte, formano effettivamente tre protocolli completamente separati.

GTP-C: controllo GTP

Il protocollo GTP-C è la sezione di controllo dello standard GTP. Quando un abbonato richiede un contesto PDP , l'SGSN invierà un messaggio GTP-C di richiesta contesto PDP di creazione al GGSN fornendo i dettagli della richiesta dell'abbonato. Il GGSN risponderà quindi con un messaggio GTP-C di risposta del contesto PDP di creazione che fornirà i dettagli del contesto PDP effettivamente attivato o indicherà un errore e fornirà una ragione per tale errore. Questo è un messaggio UDP sulla porta 2123.

Il protocollo eGTP-C (o GTPv2-C) è responsabile della creazione, manutenzione ed eliminazione di tunnel su più interfacce Sx. Viene utilizzato per la gestione del percorso del piano di controllo, la gestione dei tunnel e la gestione della mobilità. Controlla anche l'inoltro dei messaggi di trasferimento; Contesto SRNS e creazione di tunnel in avanti durante il passaggio di consegne tra LTE.

GTP-U - Tunneling dati utente GTP

GTP-U è, in effetti, un protocollo di tunneling basato su IP relativamente semplice che consente molti tunnel tra ogni insieme di punti finali. Quando viene utilizzato nell'UMTS, ogni abbonato avrà uno o più tunnel, uno per ogni contesto PDP che ha attivo, oltre ad avere eventualmente tunnel separati per connessioni specifiche con differenti requisiti di qualità del servizio.

I tunnel separati sono identificati da un TEID (Tunnel Endpoint Identifier) ​​nei messaggi GTP-U, che dovrebbe essere un numero casuale allocato dinamicamente. Se questo numero casuale è di qualità crittografica , fornirà una misura di sicurezza contro determinati attacchi. Anche così, il requisito dello standard 3GPP è che tutto il traffico GTP, inclusi i dati degli utenti, deve essere inviato all'interno di reti private sicure, non direttamente connesso a Internet. Ciò accade sulla porta UDP 2152.

Il protocollo GTPv1-U viene utilizzato per scambiare i dati degli utenti sui tunnel GTP attraverso le interfacce Sx. Un pacchetto IP per una UE (endpoint utente) è incapsulato in un pacchetto GTPv1-U e tunnellizzato tra il P-GW e l'eNodoB per la trasmissione rispetto a una UE sulle interfacce S1-U e S5 / S8.

GTP '- trasferimento di addebito

Il protocollo GTP viene utilizzato per trasferire i dati di ricarica alla funzione di gateway di ricarica. GTP 'utilizza la porta TCP / UDP 3386.

All'interno della rete principale GPRS

GTP è il protocollo principale utilizzato nella rete principale GPRS. È il protocollo che consente agli utenti finali di una rete GSM o UMTS di spostarsi da un luogo all'altro pur continuando a connettersi a Internet come se provenissero da una posizione presso il GGSN. Lo fa trasferendo i dati dell'abbonato dall'attuale SGSN dell'abbonato al GGSN che gestisce la sessione dell'abbonato. Tre forme di GTP vengono utilizzate dalla rete principale GPRS.

  • GTP-U per il trasferimento dei dati utente in tunnel separati per ogni contesto PDP
  • GTP-C per motivi di controllo, tra cui:
    • configurazione e cancellazione di contesti PDP
    • verifica della raggiungibilità GSN
    • aggiornamenti; ad esempio, quando gli abbonati si spostano da un SGSN a un altro.
  • GTP 'per il trasferimento dei dati di ricarica dai GSN alla funzione di ricarica.

GGSN e SGSN (noti collettivamente come GSN) ascoltano i messaggi GTP-C sulla porta UDP 2123 e i messaggi GTP-U sulla porta 2152. Questa comunicazione avviene all'interno di una singola rete o può, nel caso del roaming internazionale, avvenire a livello internazionale, probabilmente attraverso un GPRS roaming exchange (GRX).

La funzione Charging Gateway (CGF) ascolta i messaggi GTP inviati dai GSN sulla porta TCP / UDP 3386. La rete principale invia le informazioni di addebito al CGF, tipicamente inclusi i tempi di attivazione del contesto PDP e la quantità di dati che l'utente finale ha trasferito . Tuttavia, questa comunicazione che avviene all'interno di una rete è meno standardizzata e può, a seconda del fornitore e delle opzioni di configurazione, utilizzare codifiche proprietarie o anche un sistema interamente proprietario.

Utilizzare sull'interfaccia IuPS

GTP-U viene utilizzato sull'IuPS tra la rete principale GPRS e la RAN, tuttavia il protocollo GTP-C non viene utilizzato. In questo caso, RANAP viene utilizzato come protocollo di controllo e stabilisce tunnel GTP-U tra l'SGSN e il controller di rete radio (RNC).

Stack di protocollo

Protocolli applicativi
IP (utente)
GTP
UDP
IP
Livello 2 (ad esempio, WAN o Ethernet)

Stack di protocollo GTP-U

GTP può essere utilizzato con UDP o TCP . La versione 1 di GTP viene utilizzata solo su UDP.

A partire dal 2018 ci sono tre versioni definite, le versioni 0, 1 e 2. La versione 0 e la versione 1 differiscono notevolmente nella struttura. Nella versione 0, il protocollo di segnalazione (il protocollo che imposta i tunnel attivando il contesto PDP) è combinato con il protocollo di tunneling su una porta. Le versioni 1 e 2 sono ciascuna effettivamente due protocolli, uno per il controllo (chiamato GTP-C) e uno per il tunneling dei dati utente (chiamato GTP-U). La versione 2 di GTP è diversa dalla versione 1 solo in GTP-C. Ciò è dovuto ai miglioramenti che definiscono 3GPP a GTP-C per EPS nella versione 2 per migliorare la gestione della portante.

GTP-U viene utilizzato anche per trasportare i dati dell'utente dall'RNC all'SGSN nelle reti UMTS. Tuttavia, in questo caso la segnalazione viene eseguita utilizzando RANAP invece di GTP-C.

Versioni storiche di GTP

La versione originale di GTP (versione 0) presentava notevoli differenze rispetto alle versioni attuali (versioni 1,2):

  • l'identificazione del tunnel è stata non casuale;
  • sono state fornite opzioni per il trasporto di X.25 ;
  • il numero di porta fisso 3386 è stato utilizzato per tutte le funzioni (non solo per la ricarica come in GTPv1);
  • TCP era consentito come opzione di trasporto invece di UDP, ma il supporto per questo era facoltativo;
  • i campi relativi all'abbonamento come la qualità del servizio erano più limitati.

Il TEID non casuale nella versione 0 rappresentava un problema di sicurezza se un utente malintenzionato aveva accesso alla rete di un partner in roaming o poteva trovare un altro modo per inviare pacchetti in remoto al backbone GPRS. La versione 0 non verrà più utilizzata e verrà sostituita dalla versione 1 in quasi tutte le reti. Fortunatamente, tuttavia, l'uso di diversi numeri di porta consente un facile blocco della versione 0 tramite semplici elenchi di accesso IP.

Standardizzazione GTP

GTP era originariamente standardizzato all'interno di ETSI (GSM standard 09.60). Con la creazione degli standard UMTS questo è stato trasferito al 3GPP che, dal 2005, lo mantiene come standard 3GPP 29.060. GTP 'utilizza lo stesso formato di messaggio, ma i suoi usi speciali sono coperti dallo standard 32.295 insieme ai formati standardizzati per i dati di addebito che trasferisce.

Le versioni successive di TS 29.060 deprecano l'interoperabilità di GTPv1 / v0 in modo tale che non vi sia alcun fallback nel caso in cui GSN non supporti la versione successiva.

GTPv2 (per servizi a pacchetto evoluti) è entrato in bozza all'inizio del 2008 ed è stato rilasciato nel dicembre dello stesso anno. GTPv2 offre il fallback a GTPv1 tramite il meccanismo precedente "Versione non supportata" ma non offre esplicitamente alcun supporto per il fallback a GTPv0.

Guarda anche

Appunti

Riferimenti

  • Standard GSM 09.60, ETSI, 1996–98, questo standard copre la versione originale 0 di GTP.
  • 3GPP TS 29.060 V6.9.0 (2005-06) , progetto di partenariato di terza generazione, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2005-06. Questo è lo standard principale che definisce tutte le varianti GTP per la versione 1 di GTP.
  • 3GPP TS 32.295 V6.1.0 (2005-06) , progetto di partenariato di terza generazione, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2005-06. Questo standard copre l'utilizzo di GTP per la ricarica.
  • 3GPP TS 29.274 V8.1.0 (2009-03) , progetto di partenariato di terza generazione, 650 Route des Lucioles - Sophia Antipolis, Valbonne - FRANCIA, 2009-03. GTPv2 per GPRS evoluto.

link esterno