LTE và LTE-Advanced
3.3.17. Xử lý các gói dữ liệu ở eNodeB
Ngoài những công việc đặc trưng cho tài nguyên vô tuyến, eNodeB còn chịu trách nhiệm về vài công việc liên quan đến chính các gói dữ liệu trước khi chúng được truyền qua giao tiếp vô tuyến. Để phòng chống những cuộc tấn công sửa đổi dữ liệu, còn được gọi là tấn công man-in-
the-middle, một mã tổng kiểm tra (checksum) tính toàn vẹn được tính toán cho mỗi gói dữ liệu
rồi cho thêm vào gói đó trước khi nó được gửi qua giao tiếp vô tuyến. Dữ liệu nhập cho giải thuật sinh mã tổng kiểm tra tính toàn vẹn không phải chỉ có nội dung của gói, mà còn có một khóa kiểm tra tính toàn vẹn nữa, vốn được tính toán từ một khóa bí mật độc nhất và được chia sẻ dùng chung giữa các eNodeB và mỗi thiết bị di động. Nếu một thông điệp nào đó bị sửa đổi một cách gian lận trên giao tiếp vô tuyến, thì kẻ gian cũng không thể cho thêm vào gói đó một một mã checksum hợp lệ bởi vì thiếu khóa bí mật này, và thế là thông điệp đó không thể được bên nhận tiếp nhận. Việc kiểm tra tính toàn vẹn áp dụng cho các gói IP, cho các thông điệp kiểm soát tài nguyên vô tuyến được trao đổi với eNodeB, và cho cả các thông điệp quản lý phiên và quản lý tính di động được trao đổi với MME nữa.
Ngoài việc kiểm tra tính toàn vẹn, các gói dữ liệu còn được mã hóa trước khi được truyền qua giao tiếp vô tuyến. Ở đây cũng có một khóa bí mật dùng chung cá nhân của thuê bao lưu trên thẻ SIM và HSS, được dùng để tính ra một chìa khóa mã hóa (ciphering key) ở cả hai phía của
đường truyền. Vì vậy, những dữ liệu bị chặn lại trên giao tiếp vô tuyến có thể không giải mã được bởi vì kẻ tấn công không biết ciphering key. Việc mã hóa (ciphering) áp dụng cho các gói IP, cho các thông điệp điều khiển tài nguyên vô tuyến, và cho cả các thông điệp quản lý phiên và kiểm soát tính di động, hai thứ sau không dựa trên IP.
Một tác vụ mà chỉ được eNodeB thực hiện trên các gói IP dữ liệu người dùng trước khi chúng được truyền qua giao tiếp vô tuyến là nén phần mào đầu (header compression). Đối với các
mạng LTE, tính năng này rất quan trọng, đặc biệt là đối với những ứng dụng thời gian thực như VoIP chẳng hạn. Bởi vì VoIP rất nhạy cảm với độ trễ, nên thông thường mỗi gói IP chỉ chứa 20 ms dữ liệu thoại. Với một tốc độ truyền dữ liệu khoảng chứng 12 Kbit/s sinh ra bởi những bộ mã
hóa/giải mã (codec) giọng nói tinh vi, chẳng hạn như codec AMR (Adaptive Multi-Rate) với
chất lượng tiếng tốt, thì mỗi gói IP mang chừng 32 Byte dữ liệu. Ngoài ra, có một phụ phí là 40 Bytes cho header IPv4, header UDP và header RTP. Với IPv6 thì phụ phí thậm chí còn lớn hơn do việc sử dụng các địa chỉ IP 128 bit và do có thêm những trường mào đầu khác nữa. Như vậy là phụ phí mào đầu trên mỗi gói nhiều hơn là dữ liệu thoại. Điều này làm tăng yêu cầu về tốc độ truyền dữ liệu, và vì vậy, làm giảm đáng kể số lượng cuộc gọi đồng thời khả dĩ trên mỗi trạm cơ sở. Bởi vì gọi thoại nhiều khả năng sẽ là một tính năng quan trọng cho các mạng LTE, cho nên cần phải nén các header của gói IP trước khi truyền. Đối với LTE, người ta đã chọn kỹ thuật nén ROHC (Robust Header Compression). Những ưu điểm của nó là:
Một tỷ số nén tốt. Phần phụ phí mào đầu 40 Bytes của những giao thức bao bọc khác nhau thường được giảm còn 6 Bytes.
Có sẵn một cơ chế hồi báo để phát hiện những sai lạc trong quá trình nén vốn là hậu quả của những lỗi truyền trong giao tiếp vô tuyến. Điều này cho phép eNodeB lập tức khởi động lại mạch nén thay vì để cho lỗi đó lây lan vào quá trình nén của những gói sau đó như trường hợp của các giải thuật nén header đã được dùng trước đó.
Kỹ thuật ROHC không chỉ nén header IP mà còn phân tích gói IP và nén những header của những giao thức bao bọc khác chẳng hạn như header UDP và header RTP (Real-time Transfer Protocol) khi gói dữ liệu chứa thông tin về âm thanh.
Để tập trung vào chỉ các gói VoIP thôi, ROHC có khả năng phát hiện những kiểu header khác nhau trong một gói và chọn ra một giải thuật nén tổng thể thích hợp cho mỗi gói. Những giải thuật nén khác nhau này được gọi là các profile (tạm dịch: cấu hình nén). Đối với các gói VoIP thì profile RTP được sử dụng, nó nén các phần header IP, header UDP và header RTP của gói. Những profile khác là profile UDP, vốn nén các phần header IP và UDP (như các thông điệp báo hiệu SIP chẳng hạn), và profile ESP (Encapsulated Security Payload), vốn được dùng để nén các phần header của các gói IPsec mã hóa.
Kiểm tra tính toàn vẹn, mã hóa và nén đều là các thành phần của giao thức PDCP (Packet Data Convergence Protocol), vốn nằm bên dưới tầng IP và vì thế chịu trách nhiệm bao bọc các gói IP. Tuy nhiên, kích thước gói khi qua PDCP thường không tăng thêm, bởi vì phụ phí phần mào đầu của PDCP không nhiều hơn phụ phí nén được.