Bản đồ bit NLT và bản đồ bit PL/NL

Một phần của tài liệu Đồ án tốt nghiệp đại học nghiên cứu bộ lọc bloom và ứng dụng (Trang 35 - 38)

5. if (t i.u[j] == NULL) bỏ qua tập con j

3.5.2Bản đồ bit NLT và bản đồ bit PL/NL

Chúng ta thấy một đặc điểm của tập quy tắc con NLT là không một tiền tố nào có tiền tố con trong cùng một tập con. Sử dụng đặc điểm này, cấu trúc dữ liệu đầu vào LPM đã trình bày trong hình 3.4 có thể được nén hơn nữa. Với mỗi tiền tố, chúng ta lưu một bản đồ bít (bit-map) với số bit bằng số bộ mức xếp chồng (NLT) gọi là bản đồ bit NLT. Mỗi bit tương ứng với một NLT và sẽ được thiết lập là 1 nếu tiền tố đó hoặc tiền tố con của nó thuộc về một quy tắc mà được chứa trong NLT này và trong trường hợp ngược lại thì có giá trị là null (biểu diễn trong bảng dưới đây ký hiệu là ‘–‘).

Chúng ta xét ví dụ dưới đây: với trường thứ nhất, tiền tố 1* chỉ có trong NLT [1,0] và [1,1] nên bản đồ bit của nó là 11–, 101* có trong NLT[2,1], trong NLT [1,0] và NLT [1,1] có tiền tố con của nó là 1* nên bản đồ bit của nó là 111. Xét với tất cả các tiền tố của hai trường chúng ta có bảng dưới đây.

Hình 3.8: Các bảng LPM với bản đồ bit NLT và bản đồ bit PL/NL.

Chúng ta thực hiện phép giao giữa các bản đồ bit NLT của các tiền tố khớp dài nhất của mỗi trường để cắt bớt các tập quy tắc con khi tìm kiếm.

Hình 3.9: Phép giao giữa các bản đồ bit của các trường để tìm ra các tập quy tắc con cần tìm kiếm.

Tuy nhiên, với một NLT cho trước chúng ta chỉ biết mức xếp chồng của mỗi tiền tố. Chúng ta không biết độ dài tiền tố chính xác để xây dựng

khoá tìm kiếm cho tập quy tắc NLT đó. Như trong hình 3.8 chúng ta thấy m4 của trường 1 có mức xếp chồng là 2 nhưng độ dài tiền tố của nó là 3, m4 của trường 2 có mức xếp chồng là 1 nhưng độ dài tiền tố của nó là 3. Do đó, với mỗi tiền tố chúng ta cần lưu một bản đồ bit khác mà cho chúng ta kết quả là một độ dài tiền tố khi thực hiện phép ánh xạ mức xếp chồng. Chúng ta gọi bản đồ bit này là một bản đồ bit PL/NL. Bản đồ bit có độ dài bằng độ dài của địa chỉ IP. Ví dụ với một tiền tố của địa chỉ IPv4, chúng ta sẽ duy trì bản đồ bit PL/NL 32 bit.

Trong bản đồ bit PL/NL, bit tại vị trí x có giá trị là 1 (với bit đầu tiên có chỉ số là 1) nếu tiền tố có độ dài x có mặt trong tập quy tắc và chúng ta có thể xác định mức xếp chồng của tiền tố đó là bằng cách tính tổng số bit có giá trị là 1 từ vị trí đó trở về trước. Xét một địa chỉ IP 8-bit và bản đồ bit PL/NL tương ứng với nó như sau:

Địa chỉ IP : 10110110 Bản đồ bit PL/NL : 10010101

Do đó, các tiền tố của địa chỉ IP này đã có trong tập quy tắc là: 1* (mức xếp chồng 1), 1011* (mức xếp chồng 2), 101101* (mức xếp chồng 3), 10110110* (mức xếp chồng 4). Nếu chúng ta muốn biết độ dài tiền tố ở một mức xếp chồng k thì chúng ta đếm k bit có giá trị là 1 trong bản đồ bit PL/NL và vị trí của bit cuối cùng chính là độ dài của tiền tố có mức xếp chồng k. Do đó chúng ta xây dựng bộ độ dài tiền tố (prefix length tuple - PLT) từ một NLT sử dụng các bản đồ bit PL/NL của mỗi tiền tố trong NLT đó. Bộ độ dài tiền tố cho chúng ta thấy những bit nào sử dụng để xây dựng khoá trong khi khảo sát tập quy tắc tương ứng (hoặc lọc qua bộ lọc Bloom tương ứng). Chúng ta khái quát cách xác định tiền tố từ địa chỉ IP và bản đồ bit PL/NL khi biết mức xếp chồng như sau:

Bản đồ bit PL/NL : b1b2….bn

TinhTienTo (MucXepChong)

1. Gán x=0;2. For i=1 to n

Một phần của tài liệu Đồ án tốt nghiệp đại học nghiên cứu bộ lọc bloom và ứng dụng (Trang 35 - 38)