GTP là một trong hai giao thức quan trọng nhất trong tổ chức hoạt động của mạng lõi di động LTE, GTP được dùng trong các thực thể eNodeB, MME, SGW, PGW. Đây là một giao thức phức tạp và khi thực hiện trong các thực thể LTE đòi hỏi hiệu năng cao. Làm chủ được chồng giao thức này sẽ giúp chủ động trong công tác nghiên cứu, quản tị đo kiểm tối ưu mạng lõi LTE. Viện Công nghệ Thông tin và Truyền thông - CDiT, Học viện Bưu chính Viễn thông chủ trì đề tài KC01-09/11-15 "Nghiên cứu chế tạo Serving Gateway (SGW) cho mạng di động 4G LTE" qua đề tài này nhóm thực hiện đã xây dựng được sản phẩm trung gian là GTP-stack có các đặc tính tốt và khả năng thương mại hóa. Bài báo này chỉ tập trung vào việc phân tích thiết kế GTP Stack, thử nghiệm và đánh giá ở khía cạnh hiệu năng của module phần mềm.
THIẾT KẾ CHẾ TẠO GTP STACK
Tổng quan về GTP stack
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 trong các mạng lõi di động GPRS, UMTS và LTE.
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 các phần tử trong mạng lõi di động. GTP-C cho phép thiết lập/thay đổi/giải phóng một phiên làm việc cho người sử dụng dịch vụ. GTP-C cũng cho phép điều chỉnh các tham số chất lượng dịch vụ cho các phiên. GTP hiện có 3 phiên bản được chuẩn hóa bởi 3GPP là 0, 1 và 2.
-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 di động cũng như giữa mạng truy cập vô tuyến 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. GTP-U có 2 phiên bản 0 và 1.
-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 CDR từ CDF (Charging Data Function) tới CGF (Charging Gateway Function).
GTP được sử dụng phổ biến trong mạng di động nhất là mạng 4G LTE vì:
-GTP cung cấp khả năng di động. Khi thuê bao di động, địa chỉ IP của thuê bao được cấp trước đó không thay đổi và các gói dữ liệu vẫn được chuyển phát vì một đường hầm (tunnel) đã được thiết lập giữa eNodeB và PGW qua SGW.
-Một UE có thể thiết lập nhiều (tối đa 16) tunnel (bearer) với các mức chất lượng dịch vụ QoS khác nhau.
-Địa chỉ IP của bản thân các thiết bị mạng lõi LTE như eNodeB, MME, SGW, PGW được ẩn đi đối với miền IP của thuê bao hay Internet nên có khả năng bảo mật cho hạ tầng cung cấp.
Vị trí, vai trò của GTP stack trên mạng 4G LTE
Trong một mạng LTE đơn giản, giao thức GTP-C được sử dụng trên các giao diện S10, S11, S5/S8; giao thức GTP-U được dùng trên các giao diện S1-U, S5/ S8U, X2-U. Trong kết nối liên mạng LTE với các mạng tiền 4G như các mạng 2.5G/3G, giao thức GTP được sử dụng trên các giao diện S3, S4, S12 (Hình 1). Trong LTE, GTP-C là phiên bản 2 và GTP-C là phiên bản 1.
Các bản tin trao đổi trong GTP-C chia làm 2 nhóm chính là (1) Nhóm bản tin quản lý tuyến (Path management messages) và (2) Nhóm bản tin quản lý "đường hầm" (Tunnel management messages). Nhóm bản tin quản lý tuyến gồm các bản tin ECHO (request/response) được sử dụng để giám sát trạng thái kết nối GTP cũng như thực hiện thủ tục khởi tạo lại (restart) tại các kết cuối GTP. Nhóm bản tin quản lý đường hầm được sử dụng để khởi tạo/thay đổi và giải phóng các phiên (session) kết nối cũng như các đường hầm truyền dữ liệu (data tunnel), nhóm này gồm các bản tin chính như: Create Session Request/ Response, Create Bearer Request/Response, Modify Bearer Request/Response, Update Bearer Request/ Response, Delete Session Request/Response, Delete Bearer Request/Response...
Các bản tin trao đổi trong GTP-U cũng gồm 2 nhóm (1) Nhóm bản tin quản lý tuyến và (2) Nhóm bản tin truyền dữ liệu. Trong mạng LTE, mỗi thuê bao khi được kích hoạt sẽ được cấp một hoặc nhiều "đường hầm" dữ liệu, mỗi tình huống Giao thức dữ liệu gói PDP (Packet Data Protocol) được kích hoạt (ví dụ khởi tạo dịch vụ ứng dụng mới) sẽ có một "đường hầm" tương ứng. "Đường hầm" có thể được tạo một cách riêng biệt cho các kết nối cụ thể với các yêu cầu chất lượng dịch vụ khác nhau. Các "đường hầm" riêng biệt được xác định bởi tham số TEID (Tunnel Endpoint Identifier - tham số xác định điểm cuối "đường hầm") trong bản tin GTP-U.
Yêu câu kỹ thuật của GTP stack
Với mục tiêu phẳng hóa tối đa, chồng Giao thức GTP được sử dụng như giao thức duy nhất thiết lập các tunnel truyền tải cũng như truyền tải mọi lưu lượng của mạng LTE.
Do các thực thể trong mạng LTE sử dụng GTP (eNB, MME, SGW, PGW) có chức năng khác nhau và không đối xứng nhưng lại dùng chung chồng giao thức nên giao thức có sự phức tạp cao do phải mang các thông tin báo hiệu khác nhau cho từng chặng kết nối. Phần mềm chồng giao thức do vậy cũng sẽ phải rất linh hoạt cho phép định nghĩa chế độ hoạt động của thực thể ứng dụng qua việc cho phép định nghĩa luồng bản tin qua thực thể đó.
Do GTP-U sử dụng cho truyền tải lưu lượng băng rộng tốc độ dữ liệu cao nên việc xử lý tại các nút mạng trong mạng lõi LTE phải nhanh để giảm trễ chung trong cả miền LTE (thường phải nhỏ hơn 10ms xét trong cả miền LTE).
Hơn nữa, do các thực thể mạng lõi LTE thường kết nối với nhiều phần tử khác trong cùng mạng, liên mạng hay liên nhà khai thác nên phần mềm chồng giao thức cần hỗ trợ nhiều tuyến kết nối GTP.
Phần mềm chồng giao thức cũng phải hỗ trợ các cơ chế giám sát, kiểm soát QoS cho từng tunnel cũng như có khả năng ánh xạ (mirror) các luồng lưu lượng này phục vụ cho nghe xen hợp pháp (lawful intercept).
Ngoài ra, phần mềm chổng giao thức cần hoạt động ổn định, hiệu năng cao, các giao diện lập trình ứng dụng (API) phải rõ ràng để tích hợp ứng dụng và dễ dàng nâng cấp và mở rộng.
Phân tích, thiết kế GTP stack
Vấn đề đặt ra trong thiết kế phần mềm chồng giao thức này đòi hỏi giảm sự phức tạp trong bóc tách giao thức GTP, tăng khối lượng xử lý các gói tin tại các nút mạng LTE để giảm thiểu trễ xử lý các gói dữ liệu qua nút.
Giao thức GTP-C phức tạp trong việc xử lý các bản tin điều khiển, việc xử lý này yêu cầu chính xác cao với một lượng tham số tùy chọn trong bản tin lớn. Điểm khó trong xử lý GTP-C là phải xây dựng được các FSM (Finish State Machine) cho từng UE cũng như từng bearer cho UE một cách chặt chẽ và chính xác.
Giao thức GTP-U đơn giản hơn về cấu trúc bản tin nhưng lại có yêu cầu cao về năng lực xử lý tại nút mạng nhằm giảm tối đa thời gian trễ tại nút.
Trong phạm vi đề tài KC01-09, yêu cầu đối với năng lực của nút SGW là có khả năng xử lý 2.000 giao dịch đổng thời và trên nền phần cứng và hệ điều hành phổ dụng (IBM server/ Linux OS).
Phần mềm chồng giao thức GTP của đề tài cho phép tạo kết nối tối đa theo 32 hướng logic khác nhau. Đối với stack GTP-U, đây là kiểu ma trận NxN. Mỗi đầu vào/ra của ma trận có 1 hàng đợi có ưu tiên để đáp ứng việc đối xử với các gói có QCI (QoS class Identifier) khác nhau.
Phát triển GTP stack
Hình 3 trình bày về kiến trúc phần mềm GTP Stack:
-Timer là thư viện quản lý các timer dùng chung cho GTP stack.
-Mngt: Quản lý cấu hình cũng như giám sát các bản tin từ GTP stack.
-LLP interface: Lớp giao tiếp của satck với tầng giao thức UDP để gửi/nhận bản tin GTP.
-ULP interfce: Lớp giao tiếp của stack với phần GTP-Context.
-GTP Context: xử lý phần ngữ cảnh của giảo thức GTP (data/control).
-GTP listener: lắng nghe tại cổng của GTP (2123 cho GTP-C và 2152 cho GTP-U) để đón các bản tin GTP từ các thực thể khác tới.
-GTP message encoder/decoder thực hiện chức năng mã hóa và giải mã bản tin GTP.
-Keep-alive: thực hiện chức năng giám sát định thời cho các bản tin GTP được gửi đi.
-GTP FSM thực hiện chức năng điều khiển các phiên GTP theo chu trình Finish State Machine.
ThS. Hoàng Mạnh Thắng
(còn tiếp)