1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo tốt nghiệp nghiên cứu bộ lọc bloom và ứng dụng

76 977 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo tốt nghiệp nghiên cứu bộ lọc bloom và ứng dụng
Tác giả Trương Thị Thu Hằng
Người hướng dẫn TS Nguyễn Mạnh Hùng
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa học Máy Tính
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 76
Dung lượng 2,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu bộ lọc Bloom• Được Burton H.Bloom đưa ra năm 1970 • Bộ lọc Bloom là một cấu trúc dữ liệu rất hiệu quả về không gian cho việc truy vấn thành viên nhóm, cho phép bỏ qua các

Trang 1

Nghi ên cứu bộ lọc Bloom và ứng dụng

Giáo viên hướng dẫn:

ĐỒ ÁN TỐT NGHIỆP

Trang 2

Giới thiệu bộ lọc Bloom

• Được Burton H.Bloom đưa ra năm 1970

• Bộ lọc Bloom là một cấu trúc dữ liệu rất hiệu quả về không gian cho việc truy vấn thành viên nhóm, cho phép bỏ qua các trường hợp không cần thiết phải tìm kiếm.

Trang 3

Bài toán khớp tiền tố dài nhất Bài toán phân loại gói tin

2.3 Bài toán khai phá phần tử phổ biến

Trang 4

1 Lý thuyết về bộ lọc Bloom

Cấu trúc bộ lọc Bloom cơ bản

Cơ chế hoạt động của bộ lọc Bloom Ước lượng sai số

Bộ lọc Bloom đếm Lựa chọn hàm băm

Trang 5

Cấu trúc bộ lọc Bloom cơ bản

Trang 6

Cơ chế hoạt động của bộ lọc Bloom

• Chèn một phần tử vào bộ lọc: Mỗi phần tử x thuộc tập X

được nạp vào trong bộ lọc Bloom theo phương pháp như sau:

– Tính toán x qua k hàm băm ta có k giá trị: h1(x),…,hk(x)

– K bit có vị trí tương ứng với h1(x),…,hk(x) trong vectơ bit V

sẽ được gán là 1

x

VV

Trang 7

Cơ chế hoạt động của bộ lọc Bloom

Trang 8

Ước lượng sai số

• False Negative : kiểm tra qua bộ lọc là không có nhưng tìm kiếm thực thì lại có.

• False Positive : kiểm tra qua bộ lọc là có nhưng tìm kiếm thực thì không có.

• Bộ lọc Bloom:

không bao giờ xảy

ra lỗi false negative

Chỉ xảy ra lỗi false

Trang 9

Ước lượng sai số - False positive

• Xác suất để một bit được gán là 0 bởi tất cả các hàm băm là:

• Đặt p=e-kn/m, xác suất của một false positive là:

• Giả sử cho trước m và n thì giá trị k tối ưu là:

m

nk e

p

e m

k =

Trang 10

Bộ lọc Bloom đếm

• Một đặc điểm của bộ lọc Bloom cơ bản là không

thể xoá một phần tử khỏi bộ lọc vì như vậy sẽ

làm xáo trộn những phần tử khác.

• Người ta đã cải tiến và đưa ra bộ lọc Bloom đếm trong đó thêm vào một vectơ đếm có độ dài bằng vectơ bit.

• Khi thêm vào hoặc xoá một phần tử chỉ cần tăng

hoặc giảm bộ đếm tương ứng, và nếu khi bộ đếm bằng 0 thì vectơ bit tương ứng bằng 0, nếu bộ

Trang 11

Bộ lọc Bloom đếm

0000

0000

00000

0

1

0

11

Trang 13

Kết quả sử dụng bộ lọc trong bài toán tìm kiếm

Số

phần tử

Số hàm băm

Độ dài vectơ bit

Số phần

tử so sánh

Số

PT lọc qua

là có

Số PT

BF KT sai

Tỉ lệ đúng

(%)

Tỉ lệ sai -FP(%

)

So sánh TG

10000 5 72463 2500 334 82 96.76 3.24 1/7.81

50000 5 370000 12500 1532 266 97.87 2.13 1/13.7

100000 5 730000 25000 3197 712 97.15 2.95 1/11.9

Trang 15

2.1 Bài toán khớp tiền tố dài nhất

Bảng định tuyến trong router

Trang 16

a Bảng định tuyến

• Router chuyển tiếp các gói

tin dựa trên địa chỉ IP đích

trong phần Header của gói

tin

• Nó so sánh địa chỉ đích với

bảng định tuyến để tìm ra

một lối khớp, lối này sẽ cho

Router biết gói tin sẽ được

chuyển đi đâu tiếp

Prefix Next Hop

Trang 17

b Thuật toán khớp tiền tố cổ điển

• Trên Router dùng định tuyến phân lớp giữa các

miền CIDR chia các địa chỉ IP thành các khối

tiền tố, để đăng ký sử dụng Internet giữa các

vùng.

• CIDR sử dụng kỹ thuật mặt nạ mạng có chiều

dài thay đổi (VLSM-Variable Length Subnet

Masking) cho phép định vị trí các tiền tố có chiều dài tùy ý.

• Khối CIDR IPv4 (W = 32): A.B.C.D/N trong đó

A.B.C.D là địa chỉ IP (A, B, C, D có giá trị từ

0-255), N chiều dài tiền tố (có giá trị 0-32).

Trang 18

b Thuật toán khớp tiền tố cổ điển

• Ví dụ một khối có địa chỉ bắt đầu là 220.78.168.0

Trang 19

b Thuật toán khớp tiền tố cổ điển

• Mỗi địa chỉ IP là một phần của tiền tố, và một địa chỉ IP

có thể khớp với nhiều tiền tố có chiều dài khác nhau

• Tìm một tiền tố khớp với địa chỉ đích d thì tiền tố phải

giống với N bit đầu của địa chỉ (N là độ dài tiền tố)

• VD xét với địa chỉ IP 5 bít Tiền tố 1101* khớp với tất cả các địa chỉ đích mà bắt đầu với các bít 1101 Khi biểu

diễn các tiền tố thành một đoạn thì 1101* trở thành

{11010,11011} = {26,27}

• Giả sử một BĐT Router bao gồm các tiền tố P1=101*,

P2=10010*, P3=01*, P4=1* và P5=1010* Địa chỉ đích

d=1010100 khớp với các tiền tố P1, P4, P5 Trong đó P5

là tiền tố dài nhất khớp với d

Trang 20

b Thuật toán khớp tiền tố cổ điển

• Như vậy ta có thuật toán khớp tiền tố cổ

điển như sau: so sánh địa chỉ IP với mỗi

tiền tố trong bảng định tuyến để tìm ra tiền

Trang 21

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

• Bộ lọc Bloom được sử dụng trong bài toán này

nhằm giúp tăng hiệu quả quá trình tìm kiếm.

• Bảng định tuyến được chia thành các bảng nhỏ

theo độ dài tiền tố gọi là các bảng băm Mỗi

bảng băm chỉ chứa tiền tố có cùng độ dài.

• Mỗi bảng băm được khởi tạo với một bộ lọc

Bloom để hỗ trợ trước khi tìm kiếm.

• Nếu địa chỉ IP có W bit thì cần dùng W bảng

băm Mỗi bản ghi trong bảng băm là một cặp

[tiền tố, bước truyền tiếp theo]

Trang 22

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

• Chia bảng định tuyến thành các bảng nhỏ theo

độ dài tiền tố gọi là các bảng băm Mỗi bảng băm chỉ chứa các tiền tố có cùng độ dài.

• Giả sử địa chỉ IP có W bit Cấu trúc bao gồm:

– W bộ lọc Bloom: B(1),…, B(W)

– W bộ đếm tương ứng với W bộ lọc Bloom: C(1),…, C(W)

• Cặp <B(i), C(i)> được nạp vào bảng băm HT(i)

Trang 23

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

• Quá trình tìm kiếm diễn ra như sau:

– Địa chỉ IP đầu vào được kiểm tra song song qua W

bộ lọc Bloom Tiền tố 1-bit của địa chỉ được đưa qua

bộ lọc B(1) mà được khởi tạo bởi các tiền tố của bảng băm HT(1), tiền tố 2-bit được đưa qua bộ lọc B(2) mà được khởi tạo bởi các tiền tố 2-bit của bảng băm HT(2)…

– Mỗi bộ lọc chỉ đơn giản đưa ra kết quả là khớp hay

không khớp Tập hợp tất cả các độ dài tiền tố mà kết quả từ bộ lọc tương ứng là khớp chúng ta có một

vectơ, chúng ta gọi là vector khớp

– Tìm kiếm trong các bảng băm với thứ tự từ tiền tố dài nhất đến ngắn nhất Quá trình tìm kiếm dừng khi tìm thấy một kết quả khớp hoặc đã duyệt qua hết vectơ khớp

Trang 24

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

Prefix Next hop

Trang 25

c Khớp tiền tố dài nhất sử dụng bộ lọc Bloom

– Địa chỉ IP đầu vào được

kiểm tra song song qua W

bộ lọc Bloom

– Mỗi bộ lọc chỉ đơn giản

đưa ra kết quả là khớp hay

không khớp.

– Vector khớp là tập hợp tất

cả các độ dài tiền tố có

khi tìm thấy một kết quả

khớp hoặc đã duyệt qua

Trang 26

2.2 Bài toán phân loại gói tin

Khái niệm phân loại gói tin

Trang 27

a Phân loại gói tin

• Phân loại gói tin là một hoạt động của router nhằm phân loại gói tin dựa trên header thành các lớp tương đương

gọi là các dòng (flow)

• Tất cả gói tin của một dòng đều tuân theo một quy tắc

được xác định trước và được router xử lý như nhau Ví

dụ một dòng = (địa chỉ nguồn, điạ chỉ đích) hay một dòng

= (tiền tố địa chỉ đích, giao thức)

• Khi nhận được một gói tin, router sẽ tìm một quy tắc

khớp với gói tin để xác định xử lý thích hợp với gói tin

đó

Trang 28

a Phân loại gói tin

• Giả sử gói tin đến có header

(5.168.3.0,152.133.171.71,…,TCP), ta thấy gói

tin khớp với quy tức 2 và N, nhưng kết quả khớp với quy tắc 2 có tiền tố dài hơn do đó ta xử lý gói tin này với hành động là A2

Trang 29

b Thuật toán tích chéo cổ điển

• Xây dựng bảng quy tắc đầy đủ bằng cách thêm vào các quy tắc tích chéo.

• Bởi vì với tập quy tắc ban đầu thì việc tìm kiếm gặp khó khăn do độ dài tiền tố của các quy tắc khác nhau.

Trang 30

b Thuật toán tích chéo cổ điển

• Xét ví dụ bảng quy tắc có hai trường f1 và f2, mỗi trường có độ rộng 4 bit, tập quy

tắc có 3 quy tắc: r1: ‹1*,*›, r2‹1*,00*›, r3

‹101*, 100*›

• Biểu diễn mỗi trường bằng một cây nhị

phân, với mỗi nút màu đen là tương ứng

với tiền tố hợp lệ của các trường Mỗi kết

nối giữa 2 nút màu đen là một quy tắc Ta

Trang 31

b Thuật toán tích chéo cổ điển

• một khoá khớp

bảng không có

quy tắc gốc

• Thêm vào một số

quy tắc giả ta có

bảng quy tắc tích

chéo

Trang 32

• Ta xét ví dụ <10101100, 00111011>

• Thực hiện khớp tiền tố dài nhất trên mỗi trường

ta có khoá <101, 00>

• Tìm kiếm khoá ta thấy quy tắc khớp là p2.

b Thuật toán tích chéo cổ điển

Trang 33

• Bảng quy tắc tích chéo gồm các quy tắc giả thêm vào, khi đó ta có thuật toán phân loại gói tin đơn giản như sau:

ClassifyPacket(P )

1 for each field i

2 vi ← LPM(P.fi)

3 {match, {Id}} ← HashLookup(‹v1, , vk›)

• Tìm tiền tố khớp dài nhất trên mỗi trường, kết hợp thành khoá và tìm kiếm khoá đó trong bảng quy tắc.

b Thuật toán tích chéo cổ điển

Trang 34

c Thuật toán tích chéo đa tập con

• Thuật toán tích chéo cổ điển: lượng quy tắc giả thêm vào có thể là rất lớn, tăng theo lượng hàm mũ.

• Tức là mỗi trường có m tiền tố không trùng nhau thì số quy tắc giả thêm vào tương đương với mn

với n là số trường trong bảng quy tắc.

• Giảm lượng quy tắc giả: chia tập quy tắc ban đầu thành các tập con và thực hiện thuật toán

Trang 35

c Thuật toán tích chéo đa tập con

• Số quy tắc cần

thêm vào là 7

Trang 36

• Chia tập quy tắc thành các

tập con.

• Tập G1 sinh thêm 1, tập

G2 sinh p2, tập G3 không

sinh thêm.

• Với mỗi trường ta xây

dựng một bảng LPM xác

định độ dài tiền tố dài nhất

của một tiền tố trong các

tập con.

c Thuật toán tích chéo đa tập con

Trang 37

• ClassifyPacket(P)

• for each field i

• t i ← LPM (P.f i)

• for each subset j

• for each field i

Trang 38

• Tính chất: trong mỗi trường không có tiền tố chồng nhau thì không sinh ra quy tắc tích chéo

• Phương pháp gom nhóm không chồng nhau.

• Đây là cách chia tập quy tắc không sinh thêm quy tắc chéo nào.

d Thuật toán tìm kiếm không gian NLT

Trang 39

• Mức xếp chồng (Nested Level): mức xếp chồng của

một nút được đánh dấu trong một cây nhị phân là số nút ancestor(ông bà) đã được đánh dấu của nút đó Nút gốc luôn được xem là đã được đánh dấu Ví dụ, mức xếp

chồng của nút m2 và m3 là 1 và mức xếp chồng của nút

m4 là 2.

• Cây mức xếp chồng (Nested Level Tree): cho biết một

cây nhị phân với các nút đã được đánh dấu, chúng ta

xây dựng một cây mức xếp chồng bằng cách bỏ đi các

nút không đánh dấu và liên kết mỗi nút được đánh dấu

tới nút ancestor gần nhất của nó.

d Thuật toán tìm kiếm không gian NLT

Trang 40

• Bộ mức xếp chồng (Nested Level Tuple – NLT): với mỗi

trường có trong tập quy tắc, chúng ta tạo ra một cây mức xếp chồng Bộ mức xếp chồng của quy tắc r là tập hợp

mức xếp chồng của mỗi trường tiền tố của quy tắc đó.

• Ví dụ, NLT của r6 là [1,0] và của r4 là [2,1]

d Thuật toán tìm kiếm không gian NLT

Trang 41

• Các nút cùng mức xếp chồng thì không có nút nào là ancestor của nút khác.

• Tập gồm quy tắc trong cùng một bộ mức

xếp chồng thì không sinh một quy tắc tích

chéo nào.

• Tập quy tắc như vậy gọi là tập quy tắc con NLT.

• Cải tiến bảng LPM để giảm

chi phí bộ nhớ đưa ra khái

niệm bản đồ bit NLT và bản

đồ bit PL/NL.

d Thuật toán tìm kiếm không gian NLT

Trang 42

• 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à ‘–‘)

Bản đồ bit PL/NL

• Với mỗi NLT chỉ biết mức xếp chồng của tiền tố

• Đưa ra bản đồ bit PL/NL để tính độ dài của tiền tố từ

mức xếp chồng và bản đồ bit PL/NL

• Bản đồ bit PL/NL có độ dài bằng độ dài địa chỉ IP và bit

d Thuật toán tìm kiếm không gian NLT

Trang 43

d Thuật toán tìm kiếm không gian NLT

Trang 44

1 B1: Tìm ra các tiền tố khớp dài nhất trên mỗi trường.

2 B2: Thực hiện phép giao của các bản đồ bit NLT tương ứng để tìm các tập NLT có chứa tiền tố của 2 địa chỉ 2 trường.

3 B3: Từ bản đồ bit giao nhau và từ bảng NLT nhận được cặp mức xếp chồng của NLT thực.

4 B4: Kết hợp cặp mức xếp chồng của tập NLT với bản đồ bit PL/NL của mỗi trường, thu được danh sách các bộ độ dài tiền tố PLT.

5 B5: Kết hợp danh sách bộ PLT với tiền tố mỗi trường, chúng ta nhận được các cặp khoá́

d Thuật toán tìm kiếm không gian NLT

Trang 45

e Thuật toán tích chéo và trộn NLT

• Số tập quy tắc con nhiều thì tiêu tốn nhiều tài nguyên khi

sử dụng bộ lọc Bloom Nhưng nếu số tập con ít thì lại có khả năng sinh nhiều quy tắc chéo

• Phương pháp gom nhóm không chồng nhau thì không sinh ra quy tắc tích chéo nào nhưng số tập quy tắc con lại rất nhiều Mặt khác thì phân phối quy tắc có độ lệch cao

Trang 46

• ĐN: khoảng cách giữa hai NLT là tổng của các

độ lệch giữa các mức nạp chồng của từng

trường riêng lẻ.

• Ví dụ, NLT [3, 1] và [1, 0] có khoảng cách là |3 - 1| + |1 - 0| = 3.

• ĐN: NLT đậm đặc là NLT chứa phần nhiều quy

tắc của tập quy tắc ban đầu.

e Thuật toán tích chéo và trộn NLT

Trang 47

• Thuật toán trộn NLT thực hiện theo các

bước như sau:

1 Sắp xếp p NLT theo số lượng quy tắc ở

trong nó.

2 Chọn g NLT đậm đặc nhất trong đó g là giới

hạn số lượng tập con cho trước.

3 Với mỗi NLT trong số p-g NLT còn lại, trộn

nó vào trong NLT đậm đặc nhất có khoảng cách gần nhất tới nó Nếu khoảng cách bằng nhau, trộn với tập có số lượng quy tắc nhỏ

nhất.

e Thuật toán tích chéo và trộn NLT

Trang 48

• Sau khi trộn NLT thì các tập con chứa quy tắc có thể thuộc nhiều NLT khác nhau do đó không thể dùng bản đồ bit NLT và bản đồ bit PL/NL.

• Lúc này thuật toán tương tự với thuật toán tích chéo đa tập con.

• Với thuật toán này số quy tắc tích chéo đã giảm bớt rất nhiều trong khi số bộ lọc Bloom sử dụng

e Thuật toán tích chéo và trộn NLT

Trang 49

e Kết quả

Số QT

Số QTTC TT1

Số QTTC TT2

Số tập con TT2 con TT3 Số tập con TT4 Số tập

Số QTTC TT4

Trang 50

2.3 Bài toán khai phá phần tử phổ biến

Luồng dữ liệu và phần tử phổ biến

Trang 51

a Định nghĩa luồng dữ liệu và phần tử phổ biến

• Một luồng dữ liệu là một chuỗi không giới hạn của các

phần tử dữ liệu được truyền đi với tốc độ cao

• Dữ liệu của nhiều ứng dụng phổ biến có dạng là các

dòng liên tục thay vì các tập dữ liệu có lượng phần tử

được lưu trữ hạn chế

• Trong phần này ta ĐN luồng dữ liệu S là một chuỗi gồm

N cặp của N phần tử kết hợp với nhãn thời gian khi xuất hiện phần tử đó

• S = {(e1, t1), (e2, t2),…, (eN, tN)}

• Một phần tử phổ biến là một phần tử có tần số xuất hiện trong một luồng S(N) vượt quá một giá trị được xác định bởi người sử dụng φN, trong đó 0 ≤ φ ≤ 1

Trang 52

b Mô hình Damped

• Là mô hình xử lý luồng dữ liệu.

• Còn gọi là mô hình Time – Fading, khai phá các phần tử phổ biến trong luồng dữ liệu mà mỗi

phần tử có một trọng số và trọng số này giảm

theo thời gian Các phần tử cũ hơn đóng góp

trọng số ít hơn tới tần số phần tử đó

• Mô hình này thích hợp với các ứng dụng trong

đó dữ liệu cũ có tác động vào kết quả khai phá,

nhưng tác động này giảm theo thời gian.

Trang 53

c Bộ đếm phân rã theo thời gian

• Bộ đếm phân rã theo thời gian hay còn gọi đơn

giản là bộ đếm phân rã là một bộ đếm mà giá trị của nó phân rã theo từng giai đoạn.

• Giá trị của bộ đếm giảm theo một hàm không

âm, không tăng, gọi là hàm phân rã theo thời

gian (TDF) Một hàm TDF phải thoã mãn các

điều kiện sau:

» = 1

» là hàm không tăng

» 0 ≤ ≤ 1 với mọi t ≥ 0

) 0 (

φ

) 0 (

φ

) 0 (

φ

Ngày đăng: 19/06/2014, 20:43

HÌNH ẢNH LIÊN QUAN

Bảng định tuyến để tìm ra - Báo cáo tốt nghiệp  nghiên cứu bộ lọc bloom và ứng dụng
ng định tuyến để tìm ra (Trang 16)
Bảng băm chỉ chứa tiền tố có cùng độ dài. - Báo cáo tốt nghiệp  nghiên cứu bộ lọc bloom và ứng dụng
Bảng b ăm chỉ chứa tiền tố có cùng độ dài (Trang 21)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w