Siêu cắt.

Một phần của tài liệu PHÂN LOẠI CÁC GÓI IP doc (Trang 35 - 42)

Singh et al. [12] đã đề xuất một thuật toán phân loại dựa trên một cây thiết kế, được gọi là HyperCuts, ý tưởng trong đó có phần tương tự với các thuật toán HiCuts (mục 1.3.6) trong đó cả hai đều cho phép các nút nhánh để lưu trữ nhiều hơn một quy tắc và đó là tìm kiếm tuyến tính được thực hiện tại các nút nhánh.

1. Tại mỗi nút của cây quyết định, quy tắc là cắt trong đa chiều tại một thời điểm và được lưu trữ trong một mảng đa chiều. Nói cách khác, nó sử dụng HyperCut cắt giảm các quy tắc, trong khi HiCuts chỉ xem xét cắt giảm một chiều.

2. Nếu tất cả các nút con của một nút trong cây có chứa cùng một tập con của các quy tắc, tập hợp được nâng lên tối đa được lưu trữ trong nút để giảm không gian lưu trữ. Ví dụ, trong hình 1.17 R2 có thể được di chuyển lên đến nút gốc và loại bỏ bốn nút con.

Hình 1.16- Biểu diễn hình học của bảy quy định trong bảng 1.6. (A) R1, (b) R2, (c) R3, (d) R4; (e) R5; (f) R6; (g) R7; (h) tất cả bảy nguyên tắc.

Hình 1.17- Có thể thiết lập phân loại cây trong bảng 3,6 (binth = 2). - Mỗi nút trong cây thiết lập có liên quan:

- Một khu vực R (v) đã được che phủ.

- Một số cắt giảm (NC) là một mảng tương ứng và NC của con trỏ - Một danh sách các quy tắc thích hợp.

Hình 1.18 cho thấy HyperCuts trong hành động để phân loại trong Bảng 1.7. cây này bao gồm một nút gốc duy nhất bao phủ các khu vực [0-15, 0-15, 0-3,

0-3, 0-1], được chia thành các khu vực với 16 vết cắt. Lưu ý rằng mỗi kích thước được cắt đồng đều thành nhiều vùng.

Nguyên tắc tổ chức lưu trư. Thuật toán cây quyết định xây dựng bắt đầu

với một bộ quy tắc N, mỗi trong các quy định có chứa d chiều. Mỗi nút xác định một khu vực và đã liên kết với một bộ quy tắc S phù hợp với khu vực. Nếu kích thước của các bộ quy tắc tại nút hiện tại là lớn hơn kích thước thùng chấp nhận được (ví dụ, binth trong HiCuts), nút được phân chia trong một số (NC) của các nút con, trong đó mỗi nút con xác định một tiểu vùng của khu vực liên quan đến nút hiện hành. Xác định số lượng các nút con cũng như tiểu vùng liên kết với nhau của các nút con là một bước tiến trình hai, mà cố gắng tối ưu hóa tại khu vực chia (s) như vậy mà sự phân bố của các quy tắc trong số các nút con là tối ưu . Quá trình cắt chi tiết có thể tìm thấy trong công tác Singh et al. [12].

Hình 1.18 HyperCuts cây thiết lập dựa trên phân loại trong Bảng 1.7. (A) luật tương ứng với giá trị cố định trong F2, (b) tương ứng với giá trị cố định trong Nội quy F4, (c) tương ứng với giá trị cố định trong Nội quy F5, (d) Một tìm kiếm thông qua cây quyết định HyperCuts (đều cắt giảm trong mỗi chiều) .

Đề án phân loại. Các thuật toán tìm kiếm cho một gói với một chiều đầu

i bắt đầu với một giai đoạn khởi động của thiết lập các nút hiện tại để tìm kiếm như

là nút gốc của cấu trúc cây thiết kế và thiết lập các khu vực mà bao gồm các tiêu đề gói tin với giá trị tối đa của khu vực cho mỗi chiều. Sau đó, các cây thiết lập là đi ngang qua cho đến khi hoặc là một nút con hoặc nút NULL được tìm thấy, với các siêu vùng bao gồm các giá trị trong tiêu đề gói tin đang được cập nhật tại mỗi nút ngang. Khi một nút con được tìm thấy, trong danh sách các quy tắc liên quan đến nút thông tin này là hoàn toàn phù hợp với tìm kiếm và các quy tắc đầu tiên được trả về. Nếu không có sự tương thích, một NULL được trả về.

Điều này giải thích thêm qua một ví dụ. Hình 1.19 cho thấy một gói tin đến tại một nút A bao gồm các vùng 200-239 trong chiều X và 80-159 trong chiều Y. Các tiêu đề gói tin có giá trị 215 trong chiều X và 111 trong chiều Y. Trong quá trình tìm kiếm, các tiêu đề gói được hộ tống bởi một tập hợp các thông tin về đăng ký mang siêu khu vực mà các tiêu đề gói tin thuộc giai đoạn hiện tại. Trong ví dụ này, khu vực siêu hiện tại là {[200-239], [80-159], ...}.

Node A có 16 vết cắt, với bốn vết cắt cho mỗi kích thước X và Y. Để xác định các node con, mà phải được theo dõi trong tiêu đề gói tin này, chỉ số trong mỗi chiều được xác định như sau: đầu tiên, Xindex = 215 - 200 / 10 = 1. Điều này là bởi vì mỗi cắt giảm trong chiều X có kích thước (239-200 + 1) / 4 = 10. Tương tự như vậy, Yindex = 111 - = 1. 80/20. Điều này là bởi vì mỗi cắt giảm trong chiều Y có kích thước (159-80 + 1) / 4 = 20. Kết quả là các nút con B được chọn và tập hợp đăng ký được cập nhật với các giá trị mới mô tả các siêu khu vực bao gồm các

tiêu đề gói tin ở giai đoạn này. Siêu khu vực này bây giờ là: {[210-219], [100-119], ...}.Quá trình tìm kiếm kết thúc khi một nút nhánh đạt được trong trường hợp tiêu đề gói được kiểm tra đối với các trường trong danh sách các quy tắc liên kết với nút.

Hiệu suất Comment. Bằng sự tương phản, HyperCuts cho phép cắt cả

hai nguồn và các trường IP đích trong một nút duy nhất, không chỉ phân tán các quy tắc trong số các nút con trong một bước duy nhất, nhưng cũng làm giảm hiệu lực của quy tắc nhân rộng. Hơn nữa, HyperCuts đẩy mạnh bộ phổ biến các quy định làm giảm thiệt hại do nhân bản. Nó được báo cáo trong [12] rằng cơ sở dữ liệu bức tường lửa cho cuộc sống thực, tối ưu hóa này dẫn đến việc giảm bộ nhớ của 10 phần trăm. Nhìn chung, đối với cơ sở dữ liệu bức tường lửa, HyperCuts sử dụng một số lượng bộ nhớ tương tự như EGT-PC (mục 3.2.4) trong khi thời gian tìm kiếm của nó là đến năm lần tốt hơn so với HiCuts tối ưu hóa cho tốc độ. Đối với kiểu cơ sở dữ liệu router chính tổng hợp có kích thước quy định 20.000, HyperCuts đòi hỏi chỉ có 11 truy cập bộ nhớ cho tìm kiếm trong trường hợp xấu nhất, cho router cạnh kiểu cơ sở dữ liệu, HyperCuts yêu cầu 35 truy cập bộ nhớ cho một cơ sở dữ liệu của 25.000 quy tắc. Trong trường hợp cơ sở dữ liệu giống như tường lửa, sự hiện diện của khoảng 10 ký tự đại diện phần trăm một trong các nguồn và đích trường IP góp phần vào sự gia tăng bộ nhớ dốc. Điều này có thể vì một số lượng lớn các quy tắc áp dụng ở các nút nhánh.

Hình 1.19- Tìm kiếm thông qua cây thiết lập HyperCuts

Một phần của tài liệu PHÂN LOẠI CÁC GÓI IP doc (Trang 35 - 42)