Tải bản đầy đủ (.pdf) (15 trang)

JA trie phân loại gói tin dựa trên entropy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (465.14 KB, 15 trang )

JA-trie: Entropy-Based Packet Classification
Tóm tắt-Bất kỳ sự cải tiến trong hiệu suất phân loại gói tin là rất quan trọng để đảm
bảo chức năng của Internet tiếp tục theo dõi các năng lực liên kết ngày càng tăng.
Phân loại gói tin là nền tảng của nhiều chức năng Internet: từ quy tắc chuyển tiếp
gói tin đến các tính năng tiên tiến như thực thi chất lượng của việc dịch vụ (Quality
of Service), chức năng giám sát và bảo mật. Công việc này đề xuất một thuật toán
phân loại dựa trên Trie mới, tên là Jump-Ahead Trie (JA-Trie), sử dụng một giai
đoạn tiền xử lý dựa trên entropy và một phương pháp mới để so khớp với ký tự đại
diện. Qua kiểm tra thử nghiệm rộng rãi, chúng tôi chứng minh rằng thuật toán đề
xuất của chúng tôi có thể làm tốt hơn một loạt các thuật toán phân loại tiên tiến
nhất.
I. INTRODUCTION
Internet đã được đặc trưng bởi sự tăng trưởng không ngừng và sự đa dạng
trong lưu lượng mạng, người sử dụng và tổng các máy chủ, và sự đa dạng kinh
ngạc của các ứng dụng. Ngoài ra, sự xuất hiện của các ứng dụng mạng mới đã giới
thiệu những thách thức đáng kể trong chất lượng dịch vụ (QoS) hỗ trợ mạng tốc độ
cao. Phân loại gói tin nắm giữ một vai trò quan trọng trong mạng lưới thông tin
liên lạc hiện đại, không chỉ để chuyển tiếp các gói tin trong các router mà còn để
cung cấp bảo mật và QoS. Mặc dù nhiều giải pháp đã được đề xuất trong những
năm qua, mỗi phương pháp đều có những hạn chế. Điều này đã cho phép một dòng
liên tục của các phương pháp được thực hiện, cải thiện hiệu suất và chú trọng
những hạn chế trong quá khứ. Mỗi một phương pháp thường tìm kiếm tối ưu (ví
dụ, bộ nhớ foot-print, thời gian chờ của tra cứu, và độ phức tạp thuật toán) cho
phép một loạt các phương pháp tiếp cận cùng tồn tại – sự thực thi chính xác của
chúng và hành vi ra điều kiện các miền sử dụng.
Trong công việc này, chúng tôi đề xuất một thuật toán phân loại dựa trên
Trie mới, tên Jump-Ahead Trie (JA-Trie). Cách tiếp cận của chúng tôi có hai ý
chính: một bước tiền xử lý dựa trên entropy được áp dụng cho tập luật phân loại và
một cơ chế mới được sử dụng để kết hợp đầu vào các ký tự đại diện. Entropy có
liên quan chặt chẽ đến số lượng các nút được tạo ra trong một cấu trúc dữ liệu dựa
trên cây thực sự. Sử dụng đặc điểm đó, chúng tôi thấy rằng có thể giảm yêu cầu bộ


nhớ của các cấu trúc dữ liệu tra cứu. Phần III trình bày tỉ mỉ các thuật toán phân


loại đề xuất, ban đầu tập trung vào việc xây dựng các cấu trúc dữ liệu JA-Trie và
sau đó thảo luận về giai đoạn tiền xử lý dựa trên entropy.
Chúng tôi trình bày các kết quả đánh giá thử nghiệm được tiến hành trên một
loạt tập quy tắc phân loại. Những kết quả này minh họa cho tính hiệu quả của
phương pháp của chúng tôi và các dịch vụ để làm nổi bật hiệu suất của chúng tôi
cho cả độ sâu của cây và bộ nhớ footprint. Cùng với một bản tóm tắt của các thí
nghiệm, mục IV trình bày kết quả cho thuật toán của chúng tôi và so sánh với các
thuật toán hiện đại khác.
II. RELATED WORK
Phân loại gói tin đã được nghiên cứu rộng rãi trong thập kỷ qua. Nhiều loại
khác nhau của phương pháp đã được áp dụng cho vấn đề này nhằm đáp ứng nhu
cầu ngày càng tăng của các thiết bị mạng mới. Để cung cấp bối cảnh cho phương
pháp tiếp cận của chúng tôi, chúng tôi phác thảo một tập đại diện của các thuật
toán hiện hành từ mỗi lớp phân loại CAM-based, Trie-based và hash-based.
Phân loại phần cứng truyền thống sử dụng kỹ thuật dựa trên bộ nhớ có thể
đánh địa chỉ nội dung (Content Addressable Memory - CAM) để cung cấp tra cứu
bảng dựa trên khóa. Cho một khóa đầu vào, một CAM so sánh nó với tất cả đầu
vào bảng một cách song song; do đó, một tra cứu hiệu quả đòi hỏi chỉ có một vòng
thời gian. Trong khi CAMs nhị phân thực hiện tốt cho các thao tác so khớp chính
xác, việc sử dụng rộng rãi của CIDR (Classless Inter-Domain Routing) yêu cầu lưu
trữ và tìm kiếm đầu vào với độ dài tiền tố tùy ý. Do đó, CAM bậc ba đã trở thành
một phương pháp tiếp cận phần cứng thông thường. Với khả năng lưu trữ thêm
không quan tâm trạng thái, điều này cho phép chúng cung cấp một chu kỳ thời gian
đơn tra cứu cho độ dài tiền tố tùy ý. Mức độ cao song song này đi kèm với chi phí
của mật độ lưu trữ và tiêu thụ điện năng. Do đó, các giải pháp như: [1], [2] gặp
phải vấn đề tương tự.
Để khắc phục những vấn đề này, nhiều giải pháp Trie-based, và hash-based

đã được đề xuất. Một số giải pháp cố gắng tận dụng tiền tố dài nhất phù hợp với
thuật toán dựa trên Trie (mà đã được hình thành cho các ứng dụng tra cứu) để phù
hợp với hai chiều liên quan đến nhiều lĩnh vực. Giải pháp như vậy [3] thường được
sử dụng khi các quy tắc được xác định chỉ có trên địa chỉ IP nguồn và đích. Các
giải pháp khác tận dụng một hình thức hoá hình học của vấn đề phân loại [4]: như


là mỗi quy tắc phân loại có thể được coi như một phạm vi trong không gian đa
chiều, phân loại một gói tin có nghĩa là tìm ra được phạm vi trong đó điểm tương
ứng thuộc về. To this end, các kết quả đã biết từ các lĩnh vực hình học tính toán có
thể được sử dụng. Cohen & Lund [5] đề xuất để tối ưu hóa cây quyết định bằng
cách giới thiệu việc tối ưu hóa các nhánh chung (common branches). Những nhánh
chung này là các quy tắc mà, nhờ các kí hiệu đặc biệt, được gán cho cả hai con của
một nút quyết định; xử lý riêng biệt làm giảm kích thước trường hợp xấu nhất. Một
sự tăng tốc được đề xuất bởi [6] bằng cách sử dụng một bộ đệm nhỏ dùng một tập
quy tắc phát triển, bảo toàn ngữ nghĩa phân loại. Cuối cùng, [7] đạt được nhiều tiến
bằng cách phân vùng các quy tắc thành các tập, gần với tập khác trong không gian
tuple. Qua đó tận dụng thông tin từ tra cứu đơn trường để loại bỏ các tập con và
hạn chế không gian tìm kiếm. Ngoài ra, Một lớp các thuật toán tận dụng cây quyết
định: mặc dù, chính thức, mô hình thuật toán tương tự với cách tiếp cận Triebased, nó cho phép sự linh hoạt lớn hơn. Thay vì có tất cả các trường có liên quan
theo cách tuần tự, mỗi nút có thể thực hiện một kiểm tra tùy ý. Đặc biệt, Hicuts [8],
thực hiện kiểm tra phạm vi trên một trường cụ thể, trong khi [9] kiểm tra các bít
đơn. Hypercuts [10] tiếp tục cải thiện hiệu suất bằng cách kiểm tra đa trường tại
từng bước. Cuối cùng, Efficuts [11] loại bỏ sự chồng chéo giữa các quy tắc nhỏ và
lớn và đạt được ít truy cập trên mỗi node hơn.
Đối với cách tiếp cận hash-based, thuật toán Tuple Space Search (TSS) hiện
hành [12] vẫn còn được chú ý rộng rãi. Lược đồ được thúc đẩy bằng việc quan sát
rằng trong khi cơ sở dữ liệu lọc có chứa nhiều tiền tố hoặc phạm vi khác nhau, số
lượng các độ dài tiền tố riêng biệt có xu hướng nhỏ. Như vậy, số các kết hợp khác
nhau của độ dài tiền tố cũng nhỏ.

Rõ ràng là những cơ hội để cải tiến hiệu suất đáng kể
III. AN ENTROPY–BASED PACKET CLASSIFICATION SCHEME
Tăng trưởng là một dấu hiệu của mạng Internet tạo ra một áp lực cụ thể với
các thiết bị mạng; thiết bị phải theo kịp yêu cầu này. Điều này đã dẫn đến các thuật
toán ngày càng được tối ưu hóa và chuyên môn hóa, kết quả là vấn đề phân loại gói
tin vẫn là một vấn đề mở và đang tiến hành. Các phương pháp phổ biến để phân
loại gói tin là để tạo ra một cấu trúc dữ liệu dựa trên cây bắt đầu từ một tập quy tắc
cho trước. Mỗi khi một gói tin mới đến, 5-tuple (tức là địa chỉ IP nguồn /đích, giao


thức, và các cổng tầng 4) được trích xuất và quá trình tra cứu trên các cấu trúc dữ
liệu bắt đầu. Đẩy nhanh 1 tiến trình như vậy có thể được thực hiện hoặc bằng cách
nén các cấu trúc dữ liệu (do đó cho phép sử dụng bộ nhớ nhỏ hơn và nhanh hơn)
hoặc bằng cách giảm số lần truy cập bộ nhớ.
Cuối cùng, chúng tôi đã phát triển một cấu trúc phân loại mới: Jump Ahead
Trie (JA-Trie), cùng với tối ưu hóa dữ liệu dựa trên entropy (mô tả trong phần IIIB), có khả năng giảm kích thước bộ nhớ trong khi duy trì một chiều sâu cây rất
nhỏ, dẫn đến thời gian tra cứu khóa nhanh.
Phần còn lại của phần này phác thảo cây phân loại (phần III-A), bao gồm
các quy trình thuật toán để hình thành cơ cấu Trie (phần III-A1) và cơ chế để thực
hiện tra cứu trong JA-Trie (phần III-A2). Giai đoạn tiền xử lý dựa trên Entropy
được nêu trong mục con cuối cùng (Phần III-B)
A. JA-Trie: Jump-ahead Trie data structure
Một cây tiền tố (tức là, Trie) là một cấu trúc dữ liệu cây có thứ tự được sử
dụng để lưu trữ một tập động hoặc mảng kết hợp trong đó các khóa thường là các
chuỗi. Tất cả các “con cháu” của một nút chia sẻ một tiền tố chung của chuỗi liên
kết với nút đó, với gốc cây liên kết với chuỗi rỗng. Các giá trị thông thường
không kết hợp với nút nào của cây, chỉ liên kết với những nút lá và một số các nút
bên trong tương ứng với khóa cần quan tâm.
Trong khi Trie đơn bít được duyệt sử dụng 1 bít tại một thời điểm,(một
phương pháp cung cấp hiệu năng sử dụng bộ nhớ tuyệt vời, nhưng các chi phí tìm

kiếm bộ nhớ khủng khiếp; tương ứng với tìm kiếm theo chiều sâu), các Trie đa-bit
được duyệt sử dụng b-bit (ví dụ, một stride-khoảng bước) tại một thời điểm. Điều
này làm giảm yêu cầu truy cập bộ nhớ của mỗi tra cứu, nhưng chi phí lưu vết trong
bộ nhớ tăng. Vì lý do này, chúng tôi đề xuất một cây Trie đa-bit cải tiến, dựa trên
một phần của cây Trie 8 bít "cổ điển" .[13] [Phần 11.5 Multibit Tries].
Đề xuất của chúng tôi khác nhau đáng kể từ multibit-Trie 8-bit "cổ điển"
trong kết hợp của chúng ta về đầu vào ký tự đại diện. Thật vậy, rất dễ hiểu rằng các
kí tự đại diện có tác động hiệu suất đáng kể trên một cấu trúc dữ liệu dựa trên cây
vì nó thúc đẩy quá trình tạo ra một nút khác nhau cho mỗi giá trị có thể có của các
ký tự đại diện. Điều này, lần lượt, làm tăng đáng kể các yêu cầu bộ nhớ khi kết hợp


các wildcard vào multibit-Trie 8-bit "cổ điển". Hơn nữa, các wildcard không hữu
ích để phân biệt các luật khác nhau dẫn đến sự gia tăng chiều sâu cây nên quá trình
tra cứu chậm hơn. Những nhược điểm của việc kết hợp các kí hiệu thành multibitTrie 8-bit "cổ điển" cung cấp động lực cho cách tiếp cận của chúng tôi. Jump
Ahead Trie, không giống như multibit-Trie 8-bit "cổ điển", không trực tiếp kết hợp
các bước ký tự đại diện (wildcard strides). Thay vào đó, tra cứu nhảy từ một stride
cố định tới stride tiếp theo.
Chúng tôi phân tích chi tiết cách đã đạt được. Trước hết, chúng ta hãy xem
xét hai bitmap khác nhau được chèn vào để kích hoạt tính năng “jump-ahead”:
- Transition bitmap: mỗi transition có một bitmap k bit kết hợp, trong đó k là số
bước tiến tạo ra các chuỗi để so khớp. Bít thứ j của bitmap được xác nhận nếu sự
chuyển tiếp (transition) đại diện cho bước tiến thứ j của chuỗi để so khớp. Điều
quan trọng cần lưu ý là một sự chuyển tiếp có thể đại diện cho hơn một stride cùng
một lúc.
- Rule bitmap: mọi luật được lưu trữ trong một nút cũng có một bitmap k-bit, trong
đó bit thứ j được xác nhận nếu các luật xem là đoạn dữ liệu (chunk) thứ j của bộ dữ
liệu (tuple).
Trong các phần tiếp theo chúng tôi sẽ mô tả cả việc xây dựng và quy trình
tra cứu Trie để hiểu rõ hơn các tính chất JA-Trie

1) Xây dựng Trie: Thuật toán 1 là giả mã cho quá trình xây dựng Trie. Thứ nhất,
chúng tôi lưu ý rằng việc quá trình xây dựng đòi hỏi những stride (bước dài) để tạo
được hoặc các giá trị cố định hoặc các kí hiệu wildcards (mở rộng quy tắc trên
stride là cần thiết khi thuộc tính đó không được bảo đảm trong tập luật thực sự).
Trong quá trình xây dựng Trie, chỉ có những stride với các giá trị cố định tạo
ra một nút mới trong cấu trúc dữ liệu, trong khi đó stride lại là những wildcard (kí
hiệu) không tạo ra bất kỳ nút mới nào, vì chúng được trộn với các nút đã tồn tại
bằng phương pháp Transition bitmap. Việc giảm số lượng transition và các nút
trong, mà kết quả từ wildcard-transition, dẫn đến giảm lưu vết bộ nhớ tổng thể của
cấu trúc dữ liệu.


Để minh họa cho khái niệm này, chúng ta xem các tập luật được đề xuất
trong Bảng I, trong đó các wildcards được ghi bằng ký hiệu *, Và kết quả JA-Trie
được thể hiện trong hình 1. Như có thể dễ dàng nhìn thấy, nút gốc chỉ có một nút
con, tương ứng với transition rõ ràng cho các luật R2, R3, và R4, trong khi nó
không có bất kỳ transition nào đối với luật R1, nơi có một ký tự đại diện trong
stride đầu tiên. Điều này ngụ ý rằng trong quá trình tìm kiếm, chúng ta chuyển từ
nút gốc đến nút con, khi xem xét R2, R3, hoặc R4, trong khi chúng tôi không có
bất kỳ transition nào khi xét R1.


Bây giờ, chúng ta hãy xem xét quá trình chuyển đổi tạo ra bởi stride thứ hai.
Trong trường hợp của chúng tôi R1 sẽ tạo ra một sự chuyển đổi đã có sẵn trong cấu
trúc dữ liệu, R2 và R4 không tạo ra bất kỳ chuyển đổi nào (vì chúng có một ký tự
đại diện trong stride tương ứng), và R3 tạo thành một transition tới một nút con,
tương ứng với giá trị 2. Rõ ràng là theo cách này, cùng một nút có thể tham chiếu
tới những stride khác nhau của những luật khác nhau. Xét ví dụ hiện tại, quá trình
chuyển đổi từ nút gốc về nút con duy nhất có thể tham chiếu đến hoặc stride đầu
tiên của các luật R2, R3, và R4, hoặc stride thứ hai của R1. Để giải quyết sự nhập

nhằng đó mỗi nút con phải duy trì một bitmap, transition bitmap được minh họa
trong hình 1 cùng với mỗi transition trong hình. Điều này được sử dụng trong quá
trình tra cứu để xác định những stride phải được xét.
Trong ví dụ của chúng tôi, các bitmap chuyển tiếp kết hợp với các nút con
"đầu tiên" sẽ có tập bit đầu tiên và thứ hai, để chỉ ra rằng quá trình chuyển đổi có
thể liên quan hoặc là stride đầu tiên hoặc thứ hai.
Cách tiếp cận này giới thiệu một số dương tính giả; nhiều hơn một stride có
thể được biểu diễn bởi cùng một nút, do đó nhập nhằng xảy ra khi chúng ta đi đến


một lá cây tương ứng với một hoặc nhiều luật. Chúng tôi không thể biết được quá
trình chuyển đổi nào chúng tôi đã thực sự thực hiện.
Vì lý do này, mỗi luật có một bitmap liên quan. Rule bitmap kết hợp với mỗi
luật được minh họa trong hình 1 là một bảng trong mỗi transition (sự chuyển tiếp).
Điểm nổi bật của Bitmap mà stride được sử dụng để có được kết quả như vậy; quá
trình tra cứu sẽ xem xét các luật bitmap để xem nếu nó so khớp với transition đi
kèm, do đó chọn được luật chính xác.
Trong ví dụ của chúng tôi các nút lá với transition 7 có hai bitmap luật,
tương ứng với R1 và R4.
2) Lookup: Thuật toán 2 là giả mã cho quá trình tra cứu. Nhảy từ một nút tới một
nút khác chỉ được cho phép nếu có một quá trình chuyển đổi hợp lệ đối với một
stride đã cho S(i). Vì nhiều hơn 1 stride có thể được biểu diễn bởi cùng một nút,
không rõ ràng để có một sự chuyển đổi hợp lệ đối với 1 stride so khớp S(i), bởi vì
nó có thể được xem như là 1 stride khác (S(j)). Các transition bitmaps được sử
dụng chỉ để tránh các bước sai lầm có thể.
Trong quá trình tra cứu một bitmap tạm thời (BMclass) phải được cập nhật để
lưu vết của những stride đã được xét.
Mỗi khi đi tới một nút mới, tất cả những stride tốt (trừ ra những stride đã
duyệt) phải được để ý tới để tìm một sự chuyển đổi hợp lệ. Một khi một transition
được tìm thấy, các bitmap tạm thời phải được cập nhật bằng cách xác nhận các bit

nhắc đến stride chỉ được dùng. Nếu không có quá trình chuyển đổi hợp lệ hiện tại,
tiến trình kết thúc. Khi đến một nút lưu trữ một hoặc nhiều luật; nếu nó có chỉ là
một luật, kết quả tra cứu là rõ ràng, nếu không, nếu nhiều luật hơn được lưu trữ,
quá trình này phải so sánh bitmap tạm thời với các bitmap luật để tìm ra các so
khớp chính xác.


B. Entropy-Based JA-Trie
Trong lý thuyết thông tin, entropy là một thước đo cho tính không ổn đinh
(độ bất định) trong một biến ngẫu nhiên [14]. Thuật ngữ này thường đề cập đến
entropy Shannon, mà định lượng giá trị kỳ vọng của thông tin chứa trong một
message. Chính thức, đưa ra một biến ngẫu nhiên X, mà có thể giả sử n có các giá
trị riêng biệt {x1; x2;…; xn}, nó được định nghĩa là:

trong đó P(xi) là hàm khối lượng xác suất của kết quả xi.
Tóm lại, điều này có nghĩa là một sự kiện có xác suất cao có entropy thấp và
ngược lại. Một nghiên cứu tương tự cũng có thể được áp dụng cho những stride;
giá trị thấp của entropy của một stride có nghĩa là nhiều stride từ những luật khác
nhau chia sẻ cùng giá trị. Do đó, entropy có liên quan chặt chẽ đến số lượng các
nút được tạo ra trong một cấu trúc dữ liệu dựa trên cây. Khai thác một thuộc tính
như vậy có thể giảm bớt các yêu cầu bộ nhớ của các cấu trúc dữ liệu. JA-Trie có
thể được hưởng lợi từ sự quan sát này, bằng cách sử dụng hai giai đoạn bổ sung, cụ
thể là một giai đoạn tiền xử lý và một giai đoạn tổ chức byte dựa trên entropy.


Giai đoạn tiền xử lý quan tâm đến việc chia các luật thành những stride 8-bit
và tính toán giá trị entropy trên mỗi stride đó. Chúng tôi lưu ý rằng một tiến trình
như vậy cần những stride bao gồm hoặc các giá trị cố định hoặc các kí hiệu. Vì
những stride ký hiệu không tạo ra bất kỳ nút con nào trong quá trình xây dựng
Trie, chúng có giá trị zero entropy.

Một khi các giá trị entropy được tính toán, các luật được tổ chức lại. Trong
thực tế, những bước tiến khác nhau của các luật được sắp xếp lại dựa trên giá trị
gia tăng của entropy; các luật được viết như vậy là chúng bắt đầu với những bước
tiến với giá trị entropy thấp nhất, tiếp theo là các bước tiến với giá trị entropy thấp
thứ hai và tiếp tục như vậy.
Ngược lại với một Trie xây dựng không có giai đoạn tiền xử lý này, giai
đoạn này làm giảm số lượng các nút trong mức đầu tiên và mở rộng số lượng nút
lá, dẫn đến vết (footprint) bộ nhớ nhỏ hơn. Kích thước bộ nhớ của cấu trúc có thể
đủ nhỏ để vừa trong bộ nhớ cache, đặc biệt là cho thế hệ mới của CPU cache lớn
đang vào thị trường [15], do đó có khả năng cải thiện tốc độ tra cứu tổng thể.


Để định lượng tốt hơn tính hiệu quả của giai đoạn sơ bộ, chúng ta hãy xem
xét đến các tập luật thể hiện trong Bảng II. Trong ví dụ này có bốn luật đơn giản,
mỗi luật dựa trên một địa chỉ IP duy nhất. Chia các luật thành những stride dài 8bit khác nhau, chúng ta nhận được bảng III, có chứa các giá trị của entropy kết hợp
với mỗi stride duy nhất ở hàng cuối cùng. JA-Trie tương ứng được thể hiện trong
hình 2.
Ngoài ra, việc áp dụng giai đoạn tiền xử lý, các tập luật xử lý được sắp xếp
lại trên cơ sở của những giá trị entropy stride. Điều này dẫn đến các tập luật thể
hiện trong Bảng IV và các Entropy-Based-JA-Trie có liên quan, thể hiện trong
hình 3.


Ngay cả trong trường hợp rất đơn giản này, các Entropy-Based-JA-Trie là
nhỏ gọn hơn so với JA-Trie"tiêu chuẩn"; biểu diễn chỉ 10 nút thay vì 15 nút. Nó
nhấn mạnh rằng, với các thủ tục xây dựng số nút của Entropy-Based-JA-Trie luôn
nhỏ hơn hoặc bằng nhau về số nút của JA-Trie tương ứng.
IV. SIMULATION RESULTS
Trong phần này chúng tôi trình bày các kết quả của một đánh giá thử nghiệm
về tính hiệu quả của các thuật toán đề xuất (lưu ý rằng ở đây và trong những điều

sau, với các biểu hiện thuật toán của chúng tôi, nếu không xác định rõ khác nhau,
chúng tôi luôn luôn nhắc đến các Entropy-Based-JA-Trie ).
Sử dụng Classbench [16], chúng tôi đã tiến hành một số kiểm tra thử
nghiệm, thay đổi số lượng luật trong các tập dữ liệu (ví dụ, từ 500 đến 10.000 luật).
Đối với mỗi kích thước của tập luật, chúng tôi đã tạo ra 1.000 tập luật khác nhau.
Mỗi plot cho thấy giá trị trung bình trên tất cả các mẫu thử nghiệm tập luật cho một
tham số cụ thể. Hơn nữa, để đánh giá chính xác hiệu suất của phương pháp của
chúng tôi, chúng tôi đã so sánh nó với một số các thuật toán phân loại phổ biến
nhất: WOO, TSS, HiCuts, và HyperCuts [9], [12], [8], [10]. Chúng tôi đã chọn cấu
hình tốt nhất có thể cho mỗi thuật toán, ví dụ, cả hai yếu tố binth và không gian tốt
nhất trong trường hợp của HiCuts.


Cùng với những ứng dụng trước đây của các bài báo khác sử dụng bộ công
cụ [8], [10], chúng tôi không cung cấp kết quả tốc độ tìm kiếm vì điều này phụ
thuộc vào phần cứng sử dụng để thực hiện (ví dụ, kích thước và sử dụng những bộ
nhớ nhanh và chậm). Hơn nữa, phần lớn các thuật toán so sánh không cung cấp
thông tin về việc triển khai mẫu, đưa ra một so sánh trực tiếp là không tránh khỏi
sai sót lúc tốt nhất, lúc tồi tệ nhất, có khả năng bị xuyên tạc công việc của thuật
toán khác. Thay vì kết quả tốc độ tra cứu trực tiếp, chúng tôi sử dụng chiều sâu cây
như một đại diện ủy quyền của tốc độ tra cứu. Điều này là bởi vì, nói chung, tốc độ
tra cứu tỷ lệ chặt chẽ với chiều sâu cây. Điều này cho phép chúng ta kết luận rằng
thuật toán của chúng ta có khả năng cung cấp hiệu năng tốc độ tra cứu tốt.
Hình 4 thể hiện sự chiếm bộ nhớ của mỗi thuật toán. Trong trường hợp này,
thuật toán đề xuất rõ ràng tốt hơn cả hai HiCuts và HyperCuts, nhưng hơi tệ hơn
WOO và TSS.


Độ sâu cây được minh họa trong hình 5. Rõ ràng thấy rằng phương pháp JATrie trình bày một dáng điệu gần như liên tục với hiệu suất tốt nhất trên tập so sánh
của các thuật toán. Kết quả là gần như tương đương với những phương pháp được

cung cấp bởi hoặc WOO hoặc TSS đối với tập luật "nhỏ", nhưng thuật toán của
chúng tôi chạy tốt hơn đáng kể khi tăng cao hơn kích thước tập luật được tăng lên.
Trong khi có những thuật toán khác nhau có khả năng hoặc lưu vết bộ nhớ
tốt nhất, hoặc hiệu suất tốt nhất từ các cây có độ sâu nhỏ nhất, ngoài JA-Trie,
không có thuật toán có thể cung cấp một sự cân bằng. Các thuật toán JA-Trie có
thể cung cấp hiệu suất tốt trong khi xem xét cả hai tiêu chí thực hiện và do đó kết
quả này là một lựa chọn tốt cho phân loại gói tin nhanh.
Cuối cùng, Hình 6 cho thấy tính hiệu quả của các giai đoạn lọc dựa trên
entropy. Rõ ràng là entropy có thể có một tác động đáng kể và tính hợp lý của nó
như lọc trước có thể cải thiện độ sâu của một số thuật toán phân loại khác, nếu áp
dụng một cách thích hợp.


V. CONCLUSIONS
Trong công việc này, chúng tôi giới thiệu một thuật toán phân loại mới: các
JA-Trie dựa trên Entropy. Cách tiếp cận này sử dụng một giai đoạn tiền xử lý dựa
trên Entropy cùng với một cơ chế mới để kết hợp các ký tự đại diện. Một đánh giá
thử nghiệm cho thấy tính hiệu quả của các giải pháp đề xuất cho các bộ dữ liệu
khác nhau. Thật vậy, các thuật toán có thể cung cấp hiệu suất tốt cả về sự chiếm bộ
nhớ và chiều sâu cây. Việc so sánh mở rộng với các thuật toán hiện hành đã chứng
minh rằng đề xuất của chúng tôi có thể vượt qua một hạn chế đáng kể của các thuật
toán trước đó chỉ có thể tối ưu hóa một metric hiệu suất duy nhất tại một thời điểm.



×