GPRS Tunnelling Protocol

**GPRS Tunnelling Protocol**, GSM ve UMTS (Universal Mobile Telecommunications System) ağları içerisindeki GPRS(General Packet Radio Service) verilerinin taşınmasında kullanılan IP tabanlı bir haberleşme protokolüdür. Yönlendirme bilgisi ekleyerek protokol veri ünitelerini IP omurgası içinde tüneller. UMTS' deki merkezi ağın paket anahtarlamalı bölümü iki tip GPRS destek düğümünden oluşmuştur. GPRS Destek Düğümü Sunucusu (Serving GPRS Support Node) (SGSN) ve GPRS Geçit Destek Düğümü (Gateway GPRS Support Node) (GGSN).

GTP, GTP-C, GTP-U ve GTP diye alt protokollere ayrıştırılabilir.
GTP-C GPRS çekirdek ağı içerisinde GGSN ve SGSN arasında sinyal alıp verme işlemleri için kullanılır. Bu, SGSN'nin kullanıcı adına olan oturumun aktif edilmesi, aynı oturumun kapatılması, servis parametrelerinin miktarının ayarlanması veya başka bir SGSN den erişen üyeler için oturumun güncellenmesi gibi işlemleri yapmasına izin verir.

GTP-U, GPRS çekirdek ağı içerisindeki kullanıcı verileri, radio erişim ağı ve çekirdek ağı arasındaki kullanıcı verilerinin taşınmasında kullanılır. Taşınan kullanıcı verileri ipv4, ipv6 ya da ppp formatlarına sahip paketler olabilir.

GTP, GTP-C ve GTP-U da olduğu gibi aynı mesaj yapısını kullanır, ancak bağımsız bir işlevi vardır. GSM veya UMTS ağının veri yükleme işlevinden veri çıkış işlevine veri yüklemek için kullanılabilir.
Birçok durumda, bu GGNs'den merkezi bilgisayara ağ operatörünün hesap merkezine veri gönderen bireysel ağ elemanları anlamına gelebilir.

GTP UDP veya TCP ile kullanılabilir. GTP birinci sürümü sadece UDP üzerinde kullanılır.

## Genel özellikler
GTP'nin tüm çeşitleri belli ortak özelliklere sahiptir.Bir GTP başlığı ile UDP/TCP başlığı mesaj yapıları aynıdır.

## Başlık

GTPv1 başlığı şu alanları içerir.

* **VERSIYON** = 3 bitlik bir alana sahiptir.GTPv1 için bu değer 1 dir.
* **PROTOKOL TİPİ(PT)** = 1 bitlik değerdedir ve farklı değerler alabilir. GTP(değeri 1) GTP'(değeri 0)
* **TAHSİS EDİLEN** = 1 Bitlik alan tahsis edilmiştir. (değeri 0 olmak zorundadır)
* **DÂHİLİ BAŞLIK BAYRAĞI(E)** = 1 bit lik değerdedir. İsteğe bağlı başlıklar içindir.
* **SIRA NUMARASI BAYRAGI(S)** = 1 bitlik değerdedir. Ardışık numara kullanıldığında bu alan kullanılır.
* **N-PDU NUMARA BAYRAGI** = 1 bitlik değerindedir. Bir N-PDU numarası kullanıldığında bu alan kullanılır.
* **MESAJ TİPİ** = Bu 8 bitlik alan GTP mesaj tipini gösterir.
* **UZUNLUK** = 16 bitlik alan GTP başlık içeriğinin isteğe bağlı alanlarından geri kalan başlığı belirtir.
* **TÜNEL UÇ NOKTA TANIMLAYICISI (TEID)**= 32 bitlik bir alanda çoklu, farklı bağlantıları aynı GTP tünelinde kullanır.
* **SIRA NUMARASI** = 16 bitlik bir alana sahiptir. Bu alan E, S veya PN bitlerinden biri olması dâhilinde oluşur. Eğer S biti var ise bu alan yorumlanmak zorundadır.
* **N-PDU NUMARASI** = 8 bitlik bir alana sahiptir. Bu alan E, S veya PN bitlerinden biri olması dâhilinde oluşur. Eğer PN biti var ise bu alan yorumlanmak zorundadır.
* **SIRADAKİ İLAVE BAŞLIK TİPİ** = 8 bitlik bir alana sahiptir. Bu alan E, S veya PN bitlerinden biri olması dâhilinde oluşur. Eğer E biti var ise bu alan yorumlanmak zorundadır.

** SIRADAKİ BAŞLIK TİPİ** şu şekildedir.

----

* **UZUNLUK**= 8 bitlik bir alandır. Bu alan 4 oktet birimi içerisinde ek başlık uzunluğu, uzunluğun içeriği, içerik ve bir sonraki ek başlık alanı belirtir.
* **İÇERİK**=Ek başlık içeriği
* **SIRADAKİ İLAVE BAŞLIK** =8 bitlik bir alandır.Eğer ki sırada bir ilave yoksa bu sıradaki ilave tipini belirtir ya da 0 dır.