Il GPRS Tunnelling Protocol o GTP è un gruppo di protocolli di comunicazione basati su IP adibiti al trasporto di General Packet Radio Service all'interno di reti GSM, UMTS e LTE. Nelle architetture 3GPP, il GTP e le interfacce basate su proxy Mobile IPv6 sono specificati su vari punti di interfaccia.
GTP può essere scomposto in protocolli distinti, GTP-C, GTP-U e GTP prime (o GTP').
- GTP-C Il protocollo GTP-C è utilizzato all'interno delle reti di trasporto GPRS per le funzionalità di segnalazione tra GGSN e SGSN. Questo permette al sistema SGSN di attivare una sessione per conto di un utente (attivazione PDP context), oppure di disattivare la stessa sessione, per regolare i parametri di qualità del servizio, oppure per aggiornare una sessione per un utente la cui connessione proviene da un altro SGSN.
- GTP-U Il protocollo GTP-U è utilizzato per trasportare i dati dell'utente all'interno della rete di trasporto GPRS ed inoltre tra la rete di accesso radio e la rete di trasporto. I dati dell'utente trasportati possono essere incapsulati in qualsiasi formato: IPv4, IPv6, o PPP.
- GTP prime o GTP' Il protocollo 'GTP prime' utilizza la stessa struttura di messaggi di GTP-C e GTP-U, ma ha una funzione indipendente. Esso può essere utilizzato per trasportare dati di tariffazione dalla funzione di caricamento dati (CDF) della rete GSM o UMTS alla funzione del gateway di addebito (CGF). Nella maggior parte dei casi, questo significa che da molti elementi di rete singoli, come i GGSN, i dati di traffico elaborati sono inviati ad un computer centralizzato che fornisce in modo più conveniente ed organizzato i dati al centro di fatturazione del gestore della rete.
Diverse varianti di GTP sono implementate da RNC, SGSN, GGSN e CGFS all'interno di reti 3GPP.
Le stazioni mobili GPRS (SM) sono collegate ad un SGSN senza essere consapevoli dell'utilizzo del GTP. GTP può essere utilizzato sia tramite UDP che TCP. UDP è o raccomandata o obbligatoria, ad eccezione del tunneling X.25 in versione 0. GTP versione 1 viene utilizzato solo tramite UDP.
Caratteristiche generali
[modifica | modifica wikitesto]Tutte le varianti di GTP hanno in comune alcune funzionalità. La struttura dei messaggi è la medesima, con l'intestazione GTP seguita dall'intestazione UDP o TCP.
Header
[modifica | modifica wikitesto]GTP versione 1
[modifica | modifica wikitesto]Le intestazioni del protocollo GTP versione 1 contengono i seguenti campi: [1]
+ | 0 | 1 | 2 | 3 | 4 | 5-7 | 8-15 | 16-23 | 24-31 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | N-PDU Number Flag | Sequence Number Flag | Extension Header Flag | Reserved | Protocol type | Version | Message Type | Total length | ||||||||||||||||||||||||
32 | TEID | |||||||||||||||||||||||||||||||
64 | Sequence number | N-PDU number | Next extension header type |
- Version
- Versione, è un campo di 3 bit. Nel GTP versione 1, viene valorizzato a 1.
- Protocol Type (PT)
- Tipo di protocollo, è un campo ad 1 bit che distingue il GTP (se valorizzato a 1) dal GTP prime (se valorizzato a 0).
- Reserved
- Riservato, è un campo a 1-bit riservato (deve essere 0).
- Extension header flag(E)
- è un campo ad 1 bit che indica se è presente il campo facoltativo Intestazione di estensione.
- Sequence number flag(S)
- è un campo ad 1 bit che indica se è presente il campo facoltativo Numero di sequenza.
- N-PDU number flag(PN)
- è un campo ad 1 bit che indica se è presente il campo facoltativo Numero di N-PDU.
- Message Type
- Tipo di messaggio, è un campo ad 8 bit che il tipo di messaggio GTP. I diversi tipi di messaggi sono definiti nello standard 3GPP TS 29.060 sezione 7.1.
- Length
- Lunghezza: è un campo di 16 bit che indica la lunghezza del payload in byte (il resto del pacchetto successivo rimane obbligatoriamente agli 8 byte dell'intestazione GTP). Include i campi opzionali.
- Tunnel endpoint identifier (TEID)
- è un campo a 32 bit (4 ottetti) utilizzato per identificare il tunnel GTP interessato.
- Sequence number
- è un campo a 16 bit (opzionale). Esiste questo campo se uno dei campi E, S, o PN è attivo. Il campo deve essere interpretato solo se il bit S è attivo.
- N-PDU number
- è un campo di 8 bit (opzionale). Esiste questo campo se uno dei campi E, S, o PN è attivo. Il campo deve essere interpretato solo se il bit PN è attivo.
- Next extension header type
- è un campo di 8 bit (opzionale). Esiste questo campo se uno dei campi E, S, o PN è attivo. Il campo deve essere interpretato solo se il bit E è attivo.
Le intestazioni della successiva estensione sono le seguenti:
+ | Bits 0-7 | 8-23 | 24-31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Total length | Contents | ||||||||||||||||||||||||||||||
... | ... | |||||||||||||||||||||||||||||||
... | Contents | Next extension header |
Note
[modifica | modifica wikitesto]Bibliografia
[modifica | modifica wikitesto]- Gennaro Columpsi, Marco Leonardi, Alessio Ricci, UMTS. Tecniche e architetture per le reti di comunicazioni mobili multimediali, Hoepli, 2005, ISBN 9788820335915
- Onelio Bertazioli, Lorenzo Favalli, Onelio Bertazioli, GSM-GPRS. Tecniche, architetture, procedure, Hoepli, 2002, ISBN 9788820330439