參考3GPP TS 29.060
GTP的頭部是可變的,GTP-C(control)和GTP-U(user)共同使用一個頭部。
GTP Header頭部:
-Version 用來標識GTP協議的版本,在這里應該設置為1。
-Protocol Type(PT)。這一位用來標識是GTP(PT為1)還是GTP'(PT為0)。GTP'在3GPP TS 32.295中定義,並且它的頭部的含義和GTP頭部的含義是不一樣的。
-(*) 空閑比特,發送端置為0,接收端忽略這一位。
-Extension Header flag (E)。這一bit用來說明Next Extension Header域是否有意義。當這一位為0的時候,Next Extension Header要么不存在,要么存在但是也不被使用。當這一位為1的時候,Next Extension Header域要被解釋和使用。
-Sequence number flag (S)。這一bit用來說明Sequence number 域是否有意義。當這一位為0的時候,Sequence number 要么不存在,要么存在但是也不被使用。當這一位為1的時候,Sequence number 域要被解釋和使用。
-N-PDU Number flag (PN)。這一bit用來說明N-PDU Number域是否有意義。當這一位為0的時候,N-PDU Number 要么不存在,要么存在但是也不被使用。當這一位為1的時候,N-PDU Number 域要被解釋和使用。
-Message Type。這個域定義了GTP的消息類型,包括GTP-C和GTP-U。
-Length。載荷的長度,以字節為單位。
-Tunnel Endpoint Identifier (TEID)。TEID唯一的在接收GTP-U或GTP-C協議的實體上定義了一個隧道端點。GTP隧道接收方在本地定義了一個TEID,這個TEID供發送端使用。TEID通過GTP-C消息進行交換。
可選的字段
-Sequence Number 。G-PDUs(GTP頭+傳輸數據)的可選字段。當信令數據從發送的數據返回一個數據的時候,它可以是傳輸的標志,直接從發送數據的頭部當中取出復制出來該字段,然后填充到發送字段。
-N-PDU。這個字段用在內部SGSN路由區域,和內部的一些系統交換區域。
-Next Extension Header。這個字段定義了Extension Header的類型。
Extension Header的格式:
-長度字段,定義了Extension Header長度,單位是4字節。
-type。定義了Extension Header的類型。當全部為0的時候,表示下面沒有擴展了。