GTP là một nhóm giao thức truyền thông dựa trên nền công nghệ IP. GTP được sử dụng để truyền tải gói tin GPRS trong mạng GSM và UMTS.
GTP có thể được phân tách thành các giao thức riêng biệt: GTP-C, GTP-U và các giao thức GTP cơ bản. Trong đó, GTP-C được sử dụng để báo hiệu giữa GGSN (cổng hỗ trợ GPRS) và SGSN (nút dịch vụ GPRS) trong mạng lõi GPRS. GTP-C cho phép SGSN thiết lập một phiên làm việc cho người sử dụng dịch vụ. GTP-C cũng cho phép tắt phiên làm việc, điều chỉnh các tham số chật lượng dịch vụ hoặc cập nhật một phiên làm việc cho một thuê bao đến từ một nút dịch vụ GPRS khác.
GTP-U được sử dụng cho việc truyền tải dữ liệu (của người sử dụng) trong mạng lõi GPRS cũng như giữa mạng truy cập vô tuyến (RAN) và mạng lõi. Dữ liệu cần truyền được đóng gói (packaged) theo một trong các định dạng: IPv4, IPv6 hoặc PPP.
Giao thức cơ bản của GTP: Sử dụng cấu trúc bản tin tương tự GTP-C và GTP-U, nhưng có chức năng độc lập. Nó có thể truyền dữ liệu thanh toán (nạp tiền) từ CDF (Charging Data Function)của mạng GSM hoặc UMTS tới CGF (Charging Gateway Function). Trong đa số trường hợp, chức năng này đồng nghĩa với việc: Từ nhiều phần tử mạng, ví dụ như các GGSN, dữ liệu thanh toán được tập trung về một máy tính trung tâm, giúp cho việc điều hành của trung tâm tính cước trở nên thuận tiện hơn.
Các phiên bant GTP khác nhau được thự thi bởi RNCs, SGSNs, GGSNs và CGFs trong mạng 3GPP. GTP hoàn toàn trong suốt đối với người sử dụng thuê bao di động sử dụng GPRS khi thiết bị này kết nối tới SGSN.
GTP có thể hoạt động trên cả hai giao thức TCP và UDP (xem thêm mô hình TCP/IP). GTP phiên bản một (GTPv1) chỉ hoạt động trên nền giao thức UDP.
Tất cả các phiên bản của GTP đều có chung cấu trúc bản tin. Đó là phần header và cơ chế kết nối
Header của GTPv1 bao gồm các trường:
Trong đó
Là trường có độ dài 3 bit. Với GTPv1, trường này nhận giá trị bằng 1.
Có độ dài là 1 bit, với GTP cơ bản, trường này có giá trị là 0. Các phiên bản còn lại, nó nhận giá trị bằng 1.
Trường dự trữ, độ dài là 1 bit (giá trị phải bằng 0).
Biến trạng thái (độ dài 1 bit), thể hiện việc có hay không có phần header mở rông.
Biến trạng thái (độ dài 1 bit), thể hiện việc có hay không có trường Sequence Number.
Biến trạng thái (độ dài 1 bit), thể hiện việc có hay không có trường N-PDU number.
Có độ dà ;i 8 bits, biểu thị loại bản tin GTP.
Có độ dài 16 bits, thể hiện kích thước gói tin cần chuyển.
Kích thước 32 bits, được sử dụng để tổ hợp nhiều kết nói khác nhau vào một "đường hầm" GTP.
Trường không bắt buộc, có độ dài 16 bits. Trường này tồn tại nếu một trong các biến E, S hoặc PN được thiết lập bằng 1. Trường này phải được biểu diễn nếu biến S được thiết lập bằng 1.
Trường không bắt buộc, kích thước 8 bits. Trường này tồn tại nếu một trong các biến E, S hoặc PN được thiết lập bằng 1. Trường này phải được biểu diễn nếu biến PN được thiết lập bằng 1.
Trường không bắt buộc, kích thước 8 bits. Trường này tồn tại nếu một trong các biến E, S hoặc PN được thiết lập bằng 1. Trường này phải được biểu diễn nếu biến E được thiết lập bằng 1.
Phần header mở rộng có cấu trúc như sau:
Độ dài 8 bit, thể hiện trạng việc phân bổ độ dài của phần header mở rộng, bao gồm độ dài, nội dung và trường header mở rộng tiếp theo (trong 4 đơn vị octet, tương đương 32 bit). Độ dài của phần header mở rộng phải là bội số của 4.
Chứa nội dung của phần header mở rộng
Độ dài 8 bit.Thể hiện loại mở rộng tiếp theo. Nó bằng 0 nếu không có phần mở rộng tiếp theo. Tham số mở này cho phép có nhiều trường header mở rộng.
Cơ chế kết nối là đặc tính chung thứ hai trong cấu trúc bản tin. Đây là cơ chế kiểm tra sự liên kết từ một GSN tới một GSN khác. Có hai bản tin được sử dụng:
Thông thường, cứ sau mỗi 60 giây, một GSN nguồn có thể gửi một bản tin echo request tới tất cả các GSN đích mà nó đang kết nối. Nếu GNS đích nào không phản hồi, GSN nguồn sẽ hiểu rằng đích đó đã "chết", và kết nối đến đích đó sẽ bị hủy bỏ.
Ngoài hai bản tin chung kể trên, các phiên bản GTP khác nhau không còn bản tin chung nào khác. Điều đó đồng nghĩa với việc, các phiên bản GTP khác nhau tạo nên các giao thức hoàn toàn phân biệt.