I. GIỚI THIỆUNgày nay, sự phát triển nhanh chóng của Internet phát sinh một vấn đề là làm sao đảm bảo được hiệu suất về thời gian tới đích của các gói tin trong hệ thống mạng, tránh tắc nghẽn? Thực tế đã chứng minh, với một số lượng gói tin đi vào bộ định tuyến (router) vô cùng lớn, thì các giải pháp nâng cao tốc độ, hiệu quả định tuyến chính là chìa khóa để giải quyết những khó khăn trên. Để đáp ứng được các đòi hỏi ngày càng cao về chất lượng mạng và nâng cao hiệu quả định tuyến, các nhà phát triển không ngừng nâng cao chất lượng phần cứng của thiết bị mạng, đã cho ra đời các thiết bị mạng có công suất cao, tăng tốc độ chip xử lý, cải thiện và mở rộng băng thông, cải tiến công nghệ cho các thiết bị....Trong điều kiện hướng nghiên cứu phát triển các công nghệ phần cứng đang dần tiến tới các giới hạn, thì hướng nghiên cứu về các cấu trúc dữ liệu mới và thuật toán xử lý thông tin định tuyến vẫn đang đem lại nhiều kết quả tích cực. Ngày nay, các giải thuật phân loại gói tin hầu hết dựa trên nền tảng phần mềm do ưu thế về tính linh hoạt, mềm dẻo, dễ cài đặt, triển khai cũng như tính kinh tế so với các giải pháp phần cứng. Trong đó, các nghiên cứu tập trung đi sâu vào việc nghiên cứu các cấu trúc dữ liệu (CTDL) sử dụng trong xây dựng bảng định tuyến động của router nhằm mục đích tối ưu hiệu suất về bộ nhớ cũng như về thời gian trong xây dựng, tìm kiếm và cập nhật thông tin cho bảng định tuyến, nghiên cứu đề xuất các CTDL mới để làm bảng định tuyến động (BĐTĐ), các nhà khoa học đã đề xuất các cấu trúc như: Multi-bit Trie [4,5,6,7], 9] Trong CTDL này, mỗi nút có thể lưu giữ nhiều hơn một tiền tố, qua đó làm giảm số lần truy cập bộ nhớ cần thiết cho các thao tác bảng định tuyến. Nội dung tiếp theo của bài báo gồm: phân tích đặc điểm cấu trúc, các thao tác trên CTDL MPT và tính hiệu quả của nó và từ đó chúng tôi đề xuất một số kỹ thuật cải tiến cây MPT.
A. Cây đa tiền tố [2]Cấu trúc dữ liệu k-stride Multiprefix Trie (viết tắt là k-MPT, gọi là cây đa tiền tố có bước nhảy k), với k là số nguyên dương, là một cấu trúc dữ liệu dạng cây, chứa hai loại nút: nút chính: primary node (ký hiệu là p-node) và 1 nút phụ: secondary node (ký hiệu là s-node), với các tính chất sau:P1 . Mỗi nút chính p-node v chứa các trường sau:b. t tiền tố, ký hiệu lần lượt là p 1 (v), p 2 (v), … p t (v), được lưu trữ theo 1 thứ tự không tăng của độ dài s_pointer(v), là 1 con trỏ trỏ đến 1 cây tiền tố PT chứa các nút phụ s-node, trong đó các nút s-node này chứa các tiền tố có chiều dài ≥ k . level (v), nhưng ≤ k . (level(v) (v), s_pointer(v)).P2 . Bước nhảy k là một số bit sử dụng để phân nhánh trong 1 p-node. Một p-node có số bước là k sẽ có 2 k nút con. Để dễ hình dung, ta gọi child 0 (v), child 1 (v), … child 2 k-1 (v) là ký hiệu để biểu diễn cho 2 k con tương ứng với 2 k giá trị có thể có từ chuỗi nhị phân có độ dài k bít: