GPRS Tunneling Protocol (GTP) est un groupe de protocoles basés sur IP qui est utilisé pour le transport des paquets GPRS dans les réseaux de téléphonie mobile GSM, EDGE, UMTS et LTE.
GTP qui peut être décomposé en protocoles distincts, GTP-C, GTP-U et GTP'. GTP-C est utilisé dans le cœur d'un réseau GPRS pour la signalisation entre les nœuds "Gateway GPRS Support Node" (GGSN) et le "Serving GPRS Support Node" (SGSN). Cela permet au SGSN d'activer une session au nom d'un utilisateur (activation de contexte PDP), de désactiver la même session, de régler les paramètres de qualité de service, ou de mettre à jour une session pour un abonné qui vient d'arriver d'un autre SGSN (handover).
GTP-U est utilisé pour transporter des données d'utilisateur dans le cœur des réseaux GPRS et entre le Radio Access Network et le cœur de réseau. Les données de l'utilisateur peuvent être transportées dans des paquets de type IPv4, IPv6, ou PPP.
GTP' (GTP prime) utilise la même structure de message que GTP-C et le GTP-U, mais a une fonction indépendante. Il peut être utilisé pour transporter des données utilisées pour la facturation.
Différentes variantes de GTP sont mises en œuvre par les RNC, SGSN, GGSN, et CGF (Charging Gateway Function) au sein des réseaux 3GPP. Les stations GPRS mobiles (MS) sont connectés à un SGSN sans avoir à être conscientes de l'utilisation du protocole GTP.
GTP peut être utilisé avec UDP ou TCP. UDP est soit recommandé soit obligatoire, sauf pour les tunnels X.25 utilisés dans la version 0. GTP versions 1 ou ultérieures est utilisé uniquement avec UDP et RTCP.