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

Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG

70 793 1
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 đề Nghiên Cứu Cấu Trúc Dữ Liệu Phục Vụ Tìm Kiếm Đa Chiều Và Ứng Dụng
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 70
Dung lượng 1,32 MB

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

Nội dung

Mỗi gói tin được xử lý ngay và định hướng tới Router tiếp theodựa trên địa chỉ đích của nó.1.2.2 Thuật toán định tuyến Một mạng chuyển mạch gói bao gồm các nút mạng các Router vàswitch

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 3

Chương 1: TỔNG QUAN VỀ ĐỊNH TUYẾN 5

1.1 Thiết bị định tuyến - Router 5

1.2 Định tuyến trên Internet 6

1.2.1 Khái niệm về định tuyến 6

1.2.2 Thuật toán định tuyến 7

1.3 Bảng định tuyến 7

1.3.1 Bảng định tuyến tĩnh 10

1.3.2 Bảng định tuyến động 12

Chương 2: CÁC THUẬT TOÁN CỔ ĐIỂN 14

2.1 Tìm kiếm tuần tự 14

2.2 Cây 15

2.3 Trie nhị phân (Binary Trie) 18

2.3.1 Tìm kiếm 19

2.3.2 Chèn tiền tố 20

2.3.3 Xoá tiền tố 21

2.3.4 Thực thi 21

2.4 Trie được nén đường dẫn 22

2.5 Cây tiền tố thay đổi (DP trie) 24

2.5.1 Định nghĩa và cấu trúc dữ liệu 24

2.5.2 Thuật toán của DP trie 27

2.5.2.1 Chèn 1 khoá mới 27

2.5.2.2 Xoá một khoá 29

2.5.2.3 Tìm kiếm 31

Chương 3: GIỚI THIỆU PHÂN LOẠI GÓI TIN 32

3.1 Giới thiệu 32

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

Trang 2

3.2.1 Định nghĩa phân loại gói tin 34

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

3.3 Một số cấu trúc cơ bản sử dụng trong phân loại gói tin 36

3.3.1 Giới thiệu 36

3.3.2.1 Lý thuyết về đoạn 37

Chương 4: THUẬT TOÁN TÌM KIẾM NHỊ PHÂN THEO MỨC (BINARY SEARCH ON LEVELS) 41

4.1 Giới thiệu chung 41

4.2 Thuật toán Tìm kiếm nhị phân theo mức (BSOL) 41

4.2.1 BSOL một chiều 42

4.2.2 BSOL hai chiều 51

4.2.3 BSOL k chiều (k>2) 57

4.3 Các kết quả thực nghiệm 58

4.3.1 So sánh với sơ đồ 1 chiều của Waldvogel et al [8] 58

4.3.2 Yêu cầu bộ nhớ của BSOL khi là một hàm của T 60

4.3.3 So sánh với sơ đồ k_D của Baboescu et al [9] 61

4.4 Kết luận 63

Chương 5: CÀI ĐẶT THUẬT TOÁN 64

5.1 BSOL 1 chiều 64

5.2 BSOL 4 chiều 66

KẾT LUẬN 70

TÀI LIỆU THAM KHẢO 71

Trang 3

LỜI NÓI ĐẦU

Trước đây, mạng Internet chỉ cung cấp một dịch vụ để giải quyết vớitất cả các gói tin đến cùng một đích xác định, và phục vụ theo phương thứcđến trước phục vụ trước (First Come First Serve) Tuy nhiên, sự phát triểnnhanh chóng của Internet cùng với hàng loạt các dịch vụ mạng là nguyênnhân làm gia tăng sự tắc nghẽn và mất gói tin tại các thiết bị định tuyến Do

đó Router Internet cần tiến hành phân loại nhanh chóng các gói tin để giảmcác nút thắt của mạng nhằm phục vụ cho một số lượng lớn các dịch vụmạng yêu cầu phân loại gói tin như: định tuyến, điều khiển truy nhập trongfirewalls, mạng riêng ảo (Virtual Private Network - VPN), lập hóa đơnmạng (Traffic Billing) và chất lượng dịch vụ (Quality of Service - QoS)

Cho đến hiện nay, nhiều chuyên gia đã nghiên cứu nhằm tìm ra cácgiải pháp tốt nhất cho việc phân loại gói tin Phân loại gói tin đa chiều làmột kỹ thuật khó, do đó các nhà nghiên cứu đã đưa ra nhiều thuật toán khácnhau Mỗi thuật toán đều có những ưu điểm và nhược điểm riêng về độphức tạp của thuật toán, tốc độ xử lý, yêu cầu bộ nhớ lưu trữ

Trong nội dung đồ án tôi nghiên cứu về 01 thuật toán phân loại góitin đa chiều: Tìm kiếm nhị phân theo mức (Binary Search on Levels -BSOL)

Nội dung nghiên cứu bao gồm:

- Tổng quan về định tuyến

- Các thuật toán cổ điển

- Tổng quan về Phân loại gói tin

- Thuật toán phân loại gói tin đa chiều: BSOL

- Cài đặt chương trình minh họa thuật toán

Trong quá trình thực hiện đồ án, mặc dù có rất nhiều cố gắng trongviệc nghiên cứu, sưu tầm tài liệu và được sự giúp đỡ nhiệt tình của giáoviên hướng dẫn, nhưng do điều kiện thời gian có hạn, trình độ kiến thức

Trang 4

còn nhiều hạn chế nên tôi không thể tránh được những thiếu sót Tôi rấtmong nhận được sự đóng góp ý kiến của các thầy cô giáo và những ngườiquan tâm

Tôi xin chân thành cảm ơn thầy giáo TS cùng các thầy cô trong Bộ môn Công nghệ phần mềm, và Khoa CNTT đã tận tình hướng dẫn, tạo

mọi điều kiện giúp đỡ tôi hoàn thành đồ án tốt nghiệp

Trang 5

Chương 1: TỔNG QUAN VỀ ĐỊNH TUYẾN

Định tuyến là yếu tố cốt yếu của tất cả các mạng truyền thông Mộtthiết bị định tuyến trích ra đích từ phần đầu của một gói tin nó nhận được,chọn đường đi tốt nhất tới đích đó và chuyển tiếp các gói dữ liệu tới thiết bịtiếp dọc theo đường đi tốt nhất này

Trong phạm vi chương này, tôi xin trình bày một số nội dung cơ bản

về định tuyến trên Internet

1.1 Thiết bị định tuyến - Router

Router là một thiết bị hoạt động trên tầng mạng, nó có thể tìm đượcđường đi tốt nhất cho các gói tin qua nhiều kết nối để đi từ trạm gửi thuộcmạng đầu đến trạm nhận thuộc mạng cuối Router có thể được sử dụngtrong việc nối nhiều mạng với nhau và cho phép các gói tin đi theo nhiềuđường khác nhau tới đích

Router có địa chỉ riêng và chỉ tiếp nhận, xử lý các gói tin gửi đến nó

mà thôi Khi một trạm muốn gửi gói tin qua Router thì trạm đó phải gửi góitin tới địa chỉ trực tiếp của Router Khi có gói tin đến, Router xử lý và gửitiếp

Khi xử lý một gói tin, Router phải tìm được đường đi của gói tin quamạng Để làm được điều đó nó phải tìm được đường đi tốt nhất trong mạngdựa trên các thông tin đã có về mạng trên bảng định tuyến

Để ngăn chặn việc mất mát số liệu, Router còn phải nhận biết đườngnào có thể truyền và ngừng truyền khi đường bị tắc bằng cách cài đặt cácphương thức tránh tắc nghẽn

Các phương thức hoạt động của Router đảm bảo cho nó có thể nốiđược với các Router khác, qua đó chia sẻ thông tin về mạng hiện có Cácchương trình chạy trên Router sẽ xây dựng bảng chỉ đường thông qua việctrao đổi các thông tin với các Router khác

Trang 6

Trong phương thức vector khoảng cách, mỗi Router luôn truyền đicác thông tin về bảng định tuyến của mình trên mạng, thông qua đó cácRouter khác sẽ cập nhật lên bảng chỉ đường của mình.

Trong phương thức trạng thái tĩnh, các Router chỉ truyền các thôngbáo khi phát hiện có sự thay đổi trong mạng và chỉ khi đó các Router tự cậpnhật lại bảng định tuyến, thông tin truyền đi khi đó thường là thông tin vềđường truyền

1.2 Định tuyến trên Internet

1.2.1 Khái niệm về định tuyến

Định tuyến là tiến trình học tất cả các hướng đi trong một mạng vàchuyển tiếp các gói tin trên các hướng đi này Một cách cụ thể, định tuyến

là quá trình định hướng gói tin về phía địa chỉ đích, hay nói cách khác làxác định đường đi từ mạng này đến mạng khác Router sẽ quyết định

đường đi của gói tin đến đúng địa chỉ đích dựa vào bảng định tuyến chứa

trong bộ nhớ Bảng định tuyến này được khởi tạo giá trị ban đầu, các đầuvào có thể tạo bằng tay hoặc tự động

Có thể phân chia thành 3 kiểu định tuyến

Trang 7

đến được Mỗi gói tin được xử lý ngay và định hướng tới Router tiếp theodựa trên địa chỉ đích của nó.

1.2.2 Thuật toán định tuyến

Một mạng chuyển mạch gói bao gồm các nút mạng (các Router vàswitch) được kết nối với nhau bởi các đường truyền thông có cấu trúcgiống một mạng lưới Gói tin được truyền từ một nút mạng tới một nútmạng khác có rất nhiều đường khác nhau Tuy nhiên đường tốt nhất chỉ cómột và việc tìm được đường này phụ thuộc vào hàm mục tiêu mà ngườiđiều hành mạng cố gắng tối ưu Một thuật toán định tuyến phải biết toàn bộtrạng thái về mạng khi mạng đang hoạt động

Các tiêu chí chính để đánh giá một thuật toán định tuyến tốt trênRouter cũng phụ thuộc vào hàm mục tiêu mà con người cố gắng tối ưu.Tuy nhiên, nói chung một thuật toán định tuyến thường hướng tới một hoặcnhiều hơn các mục đích sau:

1 Phân phát nhanh và chính xác các gói tin

2 Khả năng thích nghi với những thay đổi cấu hình mạng là kếtquả từ một nút hoặc một đường kết nối bị đứt

3 Thích nghi với việc thay đổi địa chỉ nguồn – đích tải lưulượng

4 Khả năng gửi các gói tin ra khỏi các đường liên kết bị tắc tạmthời

5 Khả năng kiểm tra sự kết nối của mạng

6 Chi phí thấp

1.3 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ầnHeader của gói tin Nó so sánh địa chỉ đích với bảng định tuyến để tìm ramộ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

Trang 8

Nếu Router không khớp một lối nào trong bảng định tuyến và không cóđường mặc định nào thì nó sẽ hủy gói tin Vì vậy, cần phải có một bảngđịnh tuyến đầy đủ và chính xác.

Một nút mạng hay một Router phải xem xét bảng định tuyến củamình trước khi chuyển gói tin đến địa chỉ ở xa Trong bảng, mỗi địa chỉđích được gán tương ứng với một địa chỉ Router cần đến ở chặng tiếp theo

Rule Name: tên của quy tắc

Prefix Name: tên tiền tố

Prefix: tiền tố được đưa ra bởi CIDR1

Next Hop: bước truyền tiếp theo

Ranges Start: giá trị bắt đầu của đoạn, khi coi một tiền tố là một

đoạn

Ranges Finish: giá trị kết thúc của đoạn

Priority: trường ưu tiên, là giá trị để đánh giá độ ưu tiên của các

nhóm địa chỉ Có nhiều cách để đánh giá độ ưu tiên cho các nhóm địa chỉ ví

dụ như dựa vào băng thông của mạng, dựa vào khoảng cách các vùng, dựavào chiều dài tiền tố…

Trang 9

Name

Prefix Name

Prefix Next Hop Ranges

Start

Ranges Finish

Bảng 1.1 Một bảng định tuyến với 5 quy tắc (W = 5)

Ta sử dụng W là ký hiệu chiều dài lớn nhất có thể của một tiền tố.Trong IPv4, W = 32 và trong IPv6, W = 128 Trong bảng 1.1, với W = 5,

tiền tố P1 khớp với tất cả các địa chỉ đích, được gọi là default prefix Tiền

tố P3 khớp với các địa chỉ từ 16 đến 19 Nếu một địa chỉ tiền tố của mộtquy tắc khớp với địa chỉ đích của các gói tin đến, Next Hop của quy tắc này

sẽ được sử dụng để định hướng gói tin

Khi một địa chỉ đích đến khớp với nhiều quy tắc trong bảng địnhtuyến thì việc chọn một Next Hop nào đó phụ thuộc vào phương pháp khớptiền tố Có ba biện pháp so khớp thông dụng khác nhau:

Biện pháp khớp tiền tố đầu tiên, bảng quy tắc giả sử là một danh

sách tuyến tính của các luật với chỉ số từ 1 đến n, cho một bảng có n quy

tắc Quy tắc đầu tiên khớp với gói tin đến được sử dụng để định tuyến góitin Ví dụ khi địa chỉ đích đến là 19 thì Next Hop là N1, vì tiền tố * là tiền

tố đầu tiên khớp với địa chỉ 19 Nhận thấy quy tắc R1 khớp với tất cả cácđịa chỉ đích Tuy nhiên khi định tuyến tất cả các gói tin theo quy tắc R1 thìkết quả việc định tuyến khó thể nói sẽ xảy ra điều gì Do vậy đánh thứ tựcho các quy tắc phải thay đổi để các quy tắc khác có thể được sử dụng, tiền

tố mặc định nên đặt ở cuối bảng quy tắc

Trang 10

Trong khớp tiền tố có độ ưu tiên cao nhất, mỗi quy tắc được gán một

độ ưu tiên, và một quy tắc với độ ưu tiên cao nhất được chọn từ các quy tắckhớp với gói tin đến (giả sử rằng các độ ưu tiên của các tiền tố khác nhau)

Để tránh khả năng sử dụng thêm biện pháp quyết định nữa thì phải gán giátrị ưu tiên khác nhau cho các luật khác nhau Biện pháp khớp đầu tiên làbiện pháp đặc biệt của khớp có độ ưu tiên cao nhất

Khớp đặc trưng nhất: trong tất cả các tiền tố cùng khớp với địa chỉ

đích thì tiền tố nào đặc trưng nhất sẽ được chọn để định tuyến gói tin Bộlọc F1 được gọi là đặc trưng hơn bộ lọc F2 nếu F2 khớp với tất cả các góitin mà được khớp bởi F1 và ít nhất có một gói tin không khớp với F1 Vídụ: đoạn [2,4] đặc trưng hơn [1,6], và [5,9] khớp đặc trưng hơn [5,12] Vì[2,4] và [8,14] không chứa nhau nên không thể so sánh đoạn nào đặc trưnghơn đoạn nào Vì thế [4,14] và [6,20] có giao nhau nhưng không so sánhđược đoạn nào cụ thể hơn đoạn nào Tiền tố 110* đặc trưng hơn tiền tố

11* Khi các tiền tố cùng khớp với một địa chỉ đích d thì tiền tố đặc trưng

nhất là tiền tố dài nhất2 nên biện pháp khớp đặc trưng nhất còn gọi là khớp

Đặc điểm của bảng Router tĩnh:

2 Độ dài của một tiền tố là số bit trong tiền tố đó (không sử dụng đến kí tự * khi xác định độ dài) Với bảng dữ liệu trên, độ dài của P1 là 0 và của P2 là 4.

Trang 11

1 Thời gian xử lý một gói tin đến: là thời gian cần thiết để tìm trên bảng

một quy tắc để sử dụng Chúng ta thường gọi đây là phép tìm kiếm

2 Thời gian tiền xử lý: là thời gian tạo cấu trúc dữ liệu cho bảng quy tắc.

3 Yêu cầu về bộ nhớ: dung lượng bộ nhớ cần thiết để cấu trúc lại bảng quy

tắc

Đối với bảng tĩnh để thực hiện các thao tác cập nhật, người ta sửdụng 2 bảng: bảng làm việc (working) và bảng phụ (shadow) Việc tìmkiếm được thực hiện trên bảng làm việc còn việc cập nhật được thực hiệntrên bảng phụ (theo thời gian thực hoặc là cập nhật theo gói với khoảngthời gian thích hợp) Sau một chu kỳ, bảng phụ sẽ được sao chép sang bảngchính và bộ lưu trữ của bảng làm việc được xóa Trong kiểu cập nhật này,nhiều gói tin phân loại sai được định tuyến, do việc copy không được thựchiện ngay lập tức Số lượng các gói tin bị phân loại sai phụ thuộc vào chu

kỳ cập nhật của bảng làm việc Do vậy cần giảm thời gian tiền xử lý đểgiảm số gói tin đã phân loại bị định tuyến sai

Hơn nữa, để cập nhật bảng tĩnh, phải thêm bộ nhớ cho bảng phụ vàcho việc xây dựng lại theo chu kỳ của bảng làm việc

Qua các đặc điểm cơ bản của bảng định tuyến tĩnh, ta nhận thấy loại bảngnày có một số ưu nhược điểm nhất định Việc cập nhật được thực hiện bằngtay nên người quản trị có toàn quyền điều khiển thông tin trong bảng địnhtuyến Tuy vậy, khi kích thước của mạng tăng lên3, độ phức tạp của việccấu hình tăng lên Bảng định tuyến kiểu này không có khả năng thích ứngvới mạng có cấu trúc thay đổi Trên thực tế, loại bảng này rất ít được sửdụng

Trang 12

đích tùy thuộc vào sự tồn tại và trạng thái của mạng đó Nếu một đích rờikhỏi mạng, đường đi tới đích đó sẽ bị mất đi trong bảng định tuyến, và góitin sẽ không được gửi tới đích đó.

Có rất nhiều cách để xây dựng bảng định tuyến động Nhưng tất cảđều thực hiện theo quy tắc chung sau: Router sẽ khám phá tất cả các tuyếnđường đến đích có thể và thực hiện một số quy tắc đã định trước để xácđịnh ra đường tốt nhất đến đích

Trong một bảng quy tắc động, các quy tắc được chèn/xóa thườngxuyên Kiểu bảng này không chèn/xóa theo từng khối, và việc chèn/xóađược thực hiện trong thời gian thực

Đầu tiên, việc cập nhật được thực hiện thường xuyên trong vùngBackbone Bảng định tuyến cần phải cập nhật để phản ánh sự thay đổi củaRouter Tốc độ cập nhật đạt tới 1000 trên giây [Labovitz] Mạng sẽ cậpnhật các lỗi phát sinh từ một Router bị hỏng, Router chỉnh sửa

Thứ hai, một tiến trình cập nhật nhanh được ưu tiên hơn vì trong quátrình cấu trúc lại, thời gian trễ từ điểm này sang điểm khác tăng lên, số góitin bị mất tăng lên đột ngột và một phần kết nối mạng bị lỗi

Với bảng định tuyến động, ta nên nhắc đến thời gian cần để chèn/xóamột quy tắc Trong bảng quy tắc động, ban đầu cấu trúc dữ liệu được khởitạo với một cấu trúc dữ liệu tĩnh và sau đó chèn từng quy tắc một

Các đặc điểm của bảng định tuyến động:

1 Thời gian tìm kiếm địa chỉ tiền tố trong bảng

2 Thời gian chèn Thời gian cần để chèn một quy tắc mới vào bảng

3 Thời gian xóa Thời gian để xóa một quy tắc từ bảng.

4 Yêu cầu bộ nhớ

Bảng định tuyến động chỉ làm việc trên một bảng làm việc và sự cậpnhật được làm trực tiếp trên bảng đó trong thời gian thực Trong kiểu cậpnhật này, không gói tin nào được phân lớp không thích hợp Tuy nhiên,

Trang 13

việc phân lớp và chuyển tiếp gói tin có khi bị trễ cho đến khi tiến trình cậpnhật hoàn thành Để giảm thiểu thời gian trễ này, việc cập nhật phải thựchiện nhanh.

Với kiểu bảng động, yêu cầu xử lý của CPU của Router cao hơn kiểubảng tĩnh Tuy nhiên, việc cấu hình và tự động tìm ra những tuyến đườngthay thế nếu như mạng thay đổi lại đơn giản hơn rất nhiều

Ngày nay, số lượng các hệ thống tự trị đang tiếp tục tăng lên, đó là lý

do đòi hỏi việc tăng tốc độ cập nhật của các bảng định tuyến động Trongphạm vi đồ án, ta xây dựng một cấu trúc và giải thuật cho bảng định tuyếnđộng để giảm thời gian cập nhật của bảng

Trang 14

Chương 2: CÁC THUẬT TOÁN CỔ ĐIỂN

Với sự phát triển mạnh mẽ của Internet, thì việc tối ưu hóa vấn đềtìm kiếm địa chỉ IP đã được rất nhiều nhà nghiên cứu chú ý đến Dưới đây

là một số thuật toán tìm kiếm địa chỉ IP cổ điển:

2.1 Tìm kiếm tuần tự

Danh sách liên kết là một trong những cấu trúc dữ liệu đơn giản nhất Việc tạo ra danh sách mọi tiền tố cho bảng chuyển tiếp cũng khá dễ dàng Cần phải duyệt hết danh sách liên kết mới có thể tìm ra tiền tố dài nhất khớp

N (số tiền tố) lớn

Trang 15

Hình 2.2 Danh sách liên kết được sắp xếpThời gian trung bình tìm kiếm của thuật toán này sẽ được cải thiệnnếu tiền tố được sắp xếp theo chiều giảm dần theo độ dài Và thuật toán tìmkiếm này sẽ dừng lại ngay, không duyệt danh sách liên kết nữa nếu như nóđã tìm được tiền tố đầu tiên thay vì phải duyệt tới hết danh sách.

2.2 Cây

2.2.1 Cây 1 bit

Cây 1 bit là cây mà mỗi node trong cây có trường con trái, dữ liệu

trái, con phải và dữ liệu phải Các node tại mức l-1 của cây lưu trữ các tiền

tố mà chiều dài của chúng là l Nếu bit phải cùng của một tiền tố có chiều dài l là 0 thì tiền tố này được lưu trữ trong trường dữ liệu trái của node tại mức l-1; ngược lại tiền tố được lưu trong trường dữ liệu phải của node ở mức l-1 Tại mức i của cây, việc phân nhánh được thực hiện bằng cách

kiểm tra bit i (các bit được đánh số từ trái sang phải bắt đầu từ 0) của mộttiền tố hoặc địa chỉ đích Khi bít i là 0, thì ta di chuyển đến cây con trái; khibit i là 1 thì ta di chuyển đến cây con phải Hình 2.4 là ví dụ 8 tiền tố vàbiểu diễn tương ứng của chúng trên cây 1 bit

Với bất kỳ địa chỉ đích d nào, tất cả các tiền tố mà khớp với d nằmtrên đường tìm kiếm sẽ được xác định bằng các bit của d Bằng cách theođường tìm kiếm, ta có thể xác định được tiền tố khớp dài nhất, tiền tố đầutiên trong bảng khớp với d cũng như độ ưu tiên cao nhất của tiền tố khớp

Trang 16

trong thời gian O(W) Hơn nữa các tiền tố có thể được chèn hoặc xóa trongthời gian O(W) Không gian nhớ yêu cầu là O(nW)

Hình 2.3: 8 tiền tố và biểu diễn tương ứng trên cây 1 bit

Router backbone IPV4 có thể có nhiều hơn 100 ngàn tiền tố Thậmchí các tiền tố trong một router backbone có thể có chiều dài bất kỳ giữa 0

và W, các tiền tố tập trung ở chiều dài từ 16 đến 24, bởi vì ở thời kỳ đầu thìđịa chỉ Internet được phân phối theo các lớp Tất cả các địa chỉ trong mạnglớp B có cùng 16 bit đầu tiên, trong khi các địa chỉ trong lớp C có cùng 24bit đầu tiên, các địa chỉ trong lớp A có cùng 8 bit đầu tiên Tuy nhiên, cóthể có nhiều nhất 256 mạng lớp A (tương đương với nhiều nhất 256 tiền tố

8 bit trong bảng luật)

2.2.2 Cây tìm kiếm ưu tiên

Cây tìm kiếm ưu tiên là một cấu trúc dữ liệu được sử dụng để biểudiễn một bộ có dạng (key1, key2, data) với key1 0³ ,key2 0³ và không cóhai bộ nào có cùng giá trị key1 Cấu trúc dữ liệu đồng thời xảy ra là câynhỏ nhất trên key2 (nghĩa là giá trị key2 trong mỗi node của cây thì £key2

trong mỗi node con) và cây tìm kiếm trên key1 Có hai cây PST phổ biếnlà:

1 Cây tìm kiếm ưu tiên nguyên thủy (RPST)

Trang 17

2 Cây tìm kiếm ưu tiên đỏ - đen (RBPST)

McCreight đã đề xuất một phương pháp biểu diễn một PST của mộttập các đoạn với điểm kết thúc khác nhau Biểu diễn này sử dụng ánh xạsau của một đoạn lên một bộ PST:

(key1,key2,data)=(finnish(r),start(r),data) (*)

Với data là thông tin bất kỳ gắn với đoạn (ví dụ: next hop) Mỗi đoạn r

được ánh xạ tới một điểm map1=(x,y)=(key1,key2)=(finnish(r),start(r))

theo không gian hai chiều

Cho ranges(d) là một tập các đoạn khớp với d Mc Creight đã nhận thấy

rằng: khi ánh xạ của Phương trình (*) được sử dụng để thu được một tập

điểm P = map1(R) từ một tập đoạn R, sau đó ranges(d) được tạo bởi các

điểm nằm trên hình chữ nhật (bao gồm các điểm nằm trong biên) được xác

định như sau: x left =d, x right =¥ , y top =d, y bottom =0 Các điểm này thu được

thông qua phương thức enumerateRectangle(x left ,x right ,y top ) =

enumerateRectangle(d, ¥ ,d) của một PST (y bottom luôn bằng 0)

Khi một RPST được sử dụng để biểu diễn tập điểm P thì độ phức tạp

của enumerateRectangle(x left ,x right ,y top ) là O(logmaxX + s) với maxX là giá

trị x lớn nhất trong P và s là số lượng điểm trong truy vấn hình chữ nhật

Khi tập điểm được biểu diễn như một RBPST thì độ phức tạp là O(logn+s),

với n= |P| Một điểm (x,y)có thể được chèn vào hoặc xóa khỏi RPST (hoặc

RBPST) trong thời gian O(log maxX) (hoặc O(log n)).

Cho R là một tập đoạn tiền tố Để đơn giản, ta giả sử rằng R bao gồmcác đoạn tương ứng với các tiền tố * Với giả sử này, LMP(d) được địnhnghĩa cho mỗi d Có thể xác nhận rằng LMP(d) là tiền tố mà đoạn của nó là

[maxStart(ranges(d)),minFinnish(ranges(d))] Để tìm kiếm đoạn này một

cách dễ dàng, đầu tiên ta chuyển đổi P=map1(R) thành một tập điểm

transform1(P) để không có hai điểm nào của transform1(P) có cùng giá trị

x Sau đó, ta biểu diễn transform1(P) như một PST Với mỗi (x,y)Î P, định

Trang 18

nghĩa transform1(x,y)=(x’,y’)=(2 W x-y + 2 W – 1,y) Sau đó, transform1(P)={transform1(x,y)| (x,y)Î P}.

Ta thấy rằng 0£ x'<22W với mỗi ( ', ')x y Î transform P1( ) và không

có cùng giá trị x’ Cho PST1(P) là PST cho transform1(P) Phép toán

2.3 Trie nhị phân (Binary Trie)

Binary Trie hoặc còn gọi là trie Trie là viết tắt của từ

“retrieval”.Trong trie các nhánh được gán nhãn, nhánh trái của một nútđược gán nhãn “0”, nhánh phải được gán nhãn “1” Mỗi nút n trong mộttrie đại diện cho một chuỗi bit, Chuỗi bit này chính là nhãn của các nhánhdẫn từ nút gốc tới nút n này

Ví dụ: nút P3 trong hình 2.3 là đại diện cho tất cả các địa chỉ bắt đầubằng chuỗi 001 Những nút có màu xám là những nút ứng với các tiền tố.Những nút này chứa thông tin chuyển tiếp

Lưu ý: các tiền tố không những được định vị ở các nút lá mà còn ở một vài nút nhánh.

Trang 19

Hình 2.4 Trie nhị phân tương ứng với tiền tố trong bảng 2.1

Nhận thấy rằng, tiền tố P2 và P3 là trường hợp cụ thể của tiền tố P1.Địa chỉ của P2 và P3 trùm lên địa chỉ của P1 Bản thân P1 đã là tiền tố của P2

và P3 Vì vậy có địa chỉ có thể khớp nhiều tiền tố

Ví dụ: Địa chỉ bắt đầu là 001 vừa khớp tiền tố P1 vừa khớp tiền tố P3.Tuy nhiên, trong trường hợp này tiền tố P3 sẽ được ưu tiên hơn theo luậtkhớp tiền tố dài nhất

Ví dụ: Nếu ta tìm tiền tố khớp tốt nhất (Best Matching Prefix) có địa

chỉ bắt đầu là bit: 10110 Ta sẽ đi bắt đầu từ gốc Vì bít đầu tiên của địa chỉcần tìm là 1, nên ta sẽ đi sang nhánh phải (đây chính là nút chứa tiền tố d).Như vậy ta sẽ lưu lại d, và d chính là BMP hiện thời Sau đó ta di chuyểnsang nhánh trái, bởi nút thứ 2 trong địa chỉ là 0 Tại thời điểm này nút được

Trang 20

duyệt không lưu một tiền tố nào (vì vậy d vẫn là BMP) Vị trí thứ 3 trongđịa chỉ là 1 Nhưng nút này không có nhánh nào được gán nhãn 1, vì vậyviệc tìm kiếm kết thúc và d chính là tiền tố khớp cuối cùng và là tiền tố tốtnhất.

Đánh giá thuật toán tìm kiếm: Một trie cần O(NW) ô nhớ với N là sốtiền tố, W là số bit của tiền tố Để tìm ra tiền tố khớp dài nhất cần W lầntruy nhập trong trường hợp xấu nhất Vậy độ phức tạp của thuật toán tìmkiếm là O(W)

2.3.2 Chèn tiền tố

Để chèn một tiền tố mới, trước hết ta cần tìm kiếm cho tới khi tớiđược nút không có nhánh tương ứng, lúc đó ta sẽ chèn nút mới vào

Hình 2.5 Chèn tiền tố vào trie nhị phân

Ví dụ: chèn tiền tố 110 và 0110 vào trie Ta giả sử đó là tiền tố P10 và

P11 Bít đầu tiên của P10 là 1, ta dịch xuống nhánh phải đó là nút P4 Tiếptheo là bit thứ 2 ta cũng dịch chuyển về nhánh phải Bit thứ 3 là 0 vì vậy tacần dịch xuống nhánh trái, tuy nhiên nút không có nhánh trái vì vậy nút P10

được tạo mới và đính vào vị trí này Tiếp theo ta chèn tiền tố P11, Sau khitìm kiếm ta nhận thấy rằng nút P1 không có nhánh phải Vì vậy những nút

Trang 21

mới được thêm vào, đây là những nút tạo nên đường dẫn tới nút tương ứngvới tiền tố P11.

2.3.4 Thực thi

Trie nhị phân chứa 2 phần trên một nút, một phần chứa bit 0 và phần

kia chứa bit 1 Mỗi phần này lại gồm 2 trường, nhop lưu trữ thông tin next hop, ptr lưu trữ con trỏ tới nút con Nếu không có thông tin về chặng tiếp

theo thì trường này sẽ có giá trị null, và tương tự nếu không có nút con thì

trường ptr sẽ có giá trị null.

Hình 2.6 Thực thi trie nhị phânTrong trường hợp xấu nhất, chúng ta cần duyệt số nút trong trie tươngđương với độ dài của địa chỉ Vì vậy, độ phức tạp là O(W) Chèn, xoá một

Trang 22

tiền tố vào trie nhị phân trong trường hợp xấu nhất độ phức tạp là O(W).

Độ tiêu hao về bộ nhớ là O(NW), trong trường hợp mọi tiền tố đều cần Wnút

2.4 Trie được nén đường dẫn

Trie được nén đường dẫn chính là Trie nhị phân, tuy nhiên một sốphần của trie được nén lại bằng cách loại bỏ các nút không cần thiết nhằmlàm giảm thời gian tìm kiếm và bộ nhớ cần thiết để lưu trữ

Tuy nhiên, để có thể loại bỏ một số nút mà việc tìm kiếm vẫn chính xác, tacần phải bổ sung một số thông tin vào các nút còn lại

Nhận xét: Trie nhị phân có thể đưa ra những tiền tố có chiều dài tuỳ ý, tuy

nhiên đôi khi tồn tại những nút có chiều dài tuần tự rất lớn

Ví dụ: Ta thấy rằng nút P2 có chiều dài đến nút tiền tố P1 khá lớn, vùng chứatiền tố P2 không có một nút nào khác ngoài P2, ở đây ta thấy có 3 vị tríkhông là tiền tố và không được sử dụng Vì vậy vùng này cần được nén lại(loại bỏ những nút không cần thiết) để giảm thời gian tìm kiếm và giảm bộnhớ cần thiết để lưu trữ Đây chính là ý tưởng của trie nén đường dẫn

Hình 2.7 Cấu trúc dữ liệu trie nén đường dẫn cho các tiền tố bảng 2.1

Trang 23

Nhận thấy rằng nút P2, P3 được chuyển trực tiếp tới làm nút con củanút P1 Hai nút đứng trước P2 trong trie nhị phân được loại bỏ, và đây chính

là các nút không cần thiết

Lưu ý: nguyên bản nút P2 là nút con nằm ở nhánh phải (so với nút cha của

P2), tuy nhiên nó lại được di chuyển tới bên trái của nút P1 Bởi vì ta thấyrằng chỉ có duy nhất tiền tố này nằm hoàn toàn bên nhánh trái của nút P1.Tương tự, tiền tố P3 nằm bên nhánh trái của P1 bây giờ lại được chuyểnsang phải của P1 Con kề cận với P1 bị loại bỏ đi

Để việc tìm kiếm được chính xác, ta cần bổ sung thêm một số thông tin(thông tin này được lưu tại P1) về số thứ tự bít sẽ được kiểm tra tiếp theo.Trong hình 2.6 số bit (hay có thể gọi là vị trí của bit) được kiểm tra tiếptheo được ghi kề bên cạnh (trong hình vuông)

Tìm kiếm

Việc tìm kiếm trong trie nén đường dẫn được tiến hành tương tự nhưtrong trie nhị phân, đó là căn cứ vào bit địa chỉ có giá trị 0 hay 1, ta sẽquyết định tới nhánh trái hoặc nhánh phải Tuy nhiên khác với trie nhị phâncần phải duyệt mọi bit kiểm tra, ta chỉ cần duyệt những bit cần thiết (nhữngbit này được chỉ định) Khi gặp những nút có màu xám (tương ứng với mộttiền tố), ta sẽ tiến hành so sánh với tiền tố trên thực tế Nếu khớp, nó sẽđược lưu với tư cách là BMP và lại tiếp tục tìm kiếm thêm Công việc tìmkiếm sẽ kết thúc nếu gặp được nút lá, hoặc phát hiện ra có lỗi

Ví dụ: Tìm kiếm một địa chỉ bắt đầu với 001010 trong trie nén đường dẫn

trong hình 2.6 Tìm kiếm bắt đầu từ nút gốc, nút này chỉ ra rằng bit số 1 cầnđược kiểm tra Do bit số 1 trong địa chỉ 001010 là 0 vì vậy ta đi xuốngnhánh trái và gặp nút tiền tố P1 Bây giờ ta sẽ so sánh địa chỉ với tiền tố P1,tương ứng với phần địa chỉ là 0 Ta thấy khớp, tiền tố P1 được đưa vào làBMP Bây giờ ta tiếp tục kiểm tra thông tin về bit kế tiếp được duyệt (lưutrong P1), đó chính là bit thứ 3 Đối chiếu sang địa chỉ cần tìm (001010), ta

Trang 24

thấy bit thứ 3 có giá trị là 1 Như vậy, ta tiếp tục kiểm tra nhánh phải Mộtlần nữa ta lại kiểm tra tiền tố P3 (001*) có khớp một phần của địa chỉ(001010) Ta thấy khớp, ngoài ra P3 là nút lá Việc tìm kiếm kết thúc, và P3

là BMP

Tìm kiếm trên trie được nén đường dẫn có độ phức tạp là O(W)trong trường hợp xấu nhất Trie được nén đường dẫn luôn hiểu quả hơn trienhị phân (chiều cao giảm tức là giảm độ phức tạp), trong trường hợp xấunhất (trie nén đường dẫn là trie nhị phân đầy đủ) thì độ phức tạp của trienén đường dẫn sẽ bằng trie nhị phân và lúc này yêu cầu bộ nhớ là 2N-1,trong đó N là số nút lá, N-1 là số nút nhánh Do đó độ phức tạp là O(N)

Nhận xét: Trie được nén đường dẫn giảm yêu cầu về bộ nhớ mà vẫn không

làm tăng độ phức tạp của thuật toán tìm kiếm

2.5 Cây tiền tố thay đổi (DP trie)

DP-trie được phát triển từ PATRICIA trie với mục đích lưu trữ tiền

tố và đảm bảo thời gian tìm kiếm nhỏ, bất chấp kích cỡ của cây và chiềudài của tiền tố DP trie có 2 thuật toán: Chèn và xoá

2.5.1 Định nghĩa và cấu trúc dữ liệu

DP trie được tạo ra bởi IBM, dựa trên ý tưởng: loại bỏ mọi nút trắng(nút không lưu tiền tố) Mọi nút đều bao gồm một trường Index, hai khoá,

và 3 liên kết với nút khác

Hình 2.8 Cấu trúc của một nút trong cây DP trie

Trang 25

- Index(n): Vị trí bit

- Leftkey(n): Một khoá với LeftKey[Index(n)] =0 hoặc NIL.

- Rightkey(n): Một khoá với RightKey[Index(n)] =1 hoặc NIL.

- Parent(n): Liên kết tới nút cha của nút n, và = NIL nếu là nút gốc

- LeftSubTrie(n): Liên kết tới nút con trái của nút n với khoá k (k[Index(n)] = 0) hoặc có giá trị NIL

- RightSubTrie(n):Liên kết tới nút con phải của nút n với khoá k (k[Index(n)] = 0) hoặc có giá trị NIL

Để minh hoạ cho cấu trúc dữ liệu và mối quan hệ đặc biệt giữa các nút nàychúng ta sẽ xây dựng một DP trie gồm tập các mẫu (1000100, 1001, 10,

1111, 11)

Hình 2.9 Chèn nút 1000100 vào DP trie

- Với khoá đầu tiên 1000100 được chèn vào trie ta được 1 DP trie gồmduy nhất một nút (là nút gốc) a Khi khoá 1000100 chỉ là một khoácủa nút a, trường index sẽ mang giá trị lớn nhất của độ rộng của khoá

đó là 6 Và tại vị trí số 6 khoá có giá trị là 0 vì vậy khoá 1000100 sẽ

là leftkey của gốc.

- Tiếp tục chèn 1001 vào DP trie Index của nút a bây giờ bằng 3 (vị trí

đầu tiên mà 2 nút khác nhau) và 3 tiền tố chung đầu tiên sẽ được bỏqua Ta thấy tại vị trí số 3 của khoá mới (1001) ta có giá trị 1 vậy

khoá này sẽ là rightkey của gốc a (Chú ý: Nếu như vị trí bit của khoá

mới là 0, và vị trí cũ lại là 1 thì khoá cũ sẽ được chuyển thành

Trang 26

rightkey và khoá mới sẽ là leftkey) Trong cây này, việc tìm kiếmđược hướng dẫn bởi khoá được lưu trữ Đó chính là giá trị của bitnằm ở vị trí thứ 3 [Index(a)] của khoá cần tìm Vì vậy, bit ở vị trí0,1,2 sẽ được bỏ qua.

Hình 2.10 Chèn nút 1001 vào DP trie

- Tiếp tục chèn 10 vào DP trie Vì 10 là tiền tố của cả 2 khoá của a, vìvậy một nút b được tạo mới và là nút cha của nút a Index của nút b

là 1 Khoá 10 là Leftkey của nút b và a sẽ là Leftsubtrie của nút b bởi

vì tại vị trí bit số 1 của các khoá đều là 0

- Chèn khoá 1111 vào cây DP trie Khoá mới này khác khoá 10 ở bit

có vị trí là 1 Vì vậy, ta không cần thay đổi giá trị của trường Index

Trang 27

Hình 2.11 Chèn nút 10, 11111, 11 vào DP trie

Tìm kiếm:

- Giả sử ta cần tìm kiếm k = 10011 Tại nút b, nút đầu tiên ta sẽ đixuống duyệt nút a, bởi k[1] = 0 Tiếp tục, tại nút a ta thấy k[3] = 1 vìvậy, ta được khoá 1001 Vị trí bit thứ 0 và bit 2 được bỏ qua Khoácuối cùng được tìm thấy (khoá 1001) sẽ là tiền tố khớp dài nhất

- Tìm kiếm k = 100011, ta tiếp tục đi xuống xử lý nút a Tuy nhiên, ởnút a ta chỉ tìm được khoá 1000100 khoá này không phải là tiền tốcủa khoá cần tìm kiếm Ta sử dụng con trỏ liên kết parent để quayngược lại nút b, tại đây khoá 10 sẽ là tiền tố khớp dài nhất

2.5.2 Thuật toán của DP trie

2.5.2.1 Chèn 1 khoá mới

Để chèn một khoá mới cần xử lý 3 bước:

- Lấy kích thước của tiền tố dài nhất giữa khoá cần chèn và các khoáđã có

- Dựa vào thông tin trên, định vị ra nút cạnh nút cần chèn

Trang 28

- Chèn khoá mới vào vị trí thích hợp

ClosestKey(node, key) {

if (|key ≥ Index(node)|) then

if (Key(node, key) π NIL) then return (Key(node, key))

if (|key ≥ Index(node)|) then

if (Subtrie(node, key) π NIL) then

return (SubTrie(node, key))

Allocate Node (index, key) {local node

NEWNODE(node)/* allocate space for a new node*/

LeftKey(node) :RightKey(node) :NIL

Parent(node) :LeftSubTrie(node) :RightSubTrie(nod

Trang 29

Insert(key) {

local node, distpos, index

if ( Root NIL ) then Root :AllocateNode(|key|,

key)

else

node :Root /* start at the root */

while (Not LeafNode(node))

do node :ClosestSubTrie(node, key)

distpos :DistPos(key, ClosetKey(node, key))

index :Min(|key|, distpos) /*

while( index < Index(node) and node π Root)

do node :Parent(node)

if (node Root) then

InsertInOrAbove(node, key, distpos)

elseif(SubTrie(node, key) NIL) then

InsertWithEmptySubTrie(node, key, distpos)

if(node π NIL and |key| ≥ Index(node)) then

while (SubTrie(node, key) π NIL and |key| ≥

Index(SubTrie(node, key) )

do node :SubTrie(node, key) if( node NIL or Key(node, key) π key ) return (NotFound)

Trang 30

/* Bước 2: Xoá khoá và rác*/

else

Key(node, key) :NIL

if ( Empty(node)) then

if(node π Root) then

SubTrie(Parent(node), key) :NIL

storedkey :Key(node, BitComplement(key))

LeftKey(node) :RightKey(node) :NIL

Trang 31

Trie(node, key)) then

collnode :SubTrie(node, key)

if(collnode π NIL and SingleKeyLeafNode(collnode)) then

storedkey :ClosestKey(collnode, key)

if(Parent(conllnode) π NIL and Key(Parent(collnode),

storedkey) NIL ) then Key(Parent(collnode),

local node :Root

if( node NIL or |key|<Index(node) ) then

return(NIL) while(SubTrie(node, key) π NIL) and (|key| ≥

else return(NIL)

}

Trang 32

Chương 3: GIỚI THIỆU PHÂN LOẠI GÓI TIN

Để tối đa thu nhập thì các nhà cung cấp dịch vụ cũng mong muốn cung cấpcác mức phục vụ khác nhau với giá thành khác nhau dựa trên yêu cầu củangười sử dụng, trong khi vẫn sử dụng cơ sở hạ tầng mạng thông thường

Để cung cấp các dịch vụ khác nhau, Router yêu cầu phải bổ sungthêm kỹ thuật mới Các kỹ thuật này bao gồm: điều khiển đầu vào, sự điềutiết (định lượng, đánh dấu, định hình giao thông, và quyết định giải pháp),cung cấp tài nguyên (tối ưu hóa), quản lý hàng đợi và lập lịch hợp lý Cáckỹ thuật này đòi hỏi khả năng phân biệt và tách riêng các giao thông thuộc

về những người sử dụng khác nhau dựa trên sự thống nhất dịch vụ giữa nhàcung cấp dịch vụ và người sử dụng Điều này dẫn đến yêu cầu khả năngnhận biết theo luồng của các thiết bị định tuyến, biểu diễn chúng thành cáctập luật dựa trên các thông tin của gói tin đến Các tập luật này chúng ta gọi

là phân loại luồng

Trang 33

Hình 3.1 Một số trường của header của gói tin sử dụng để phân loại gói tin.

Mỗi luật chỉ định rõ một luồng mà một gói tin sẽ thuộc về luồng đódựa trên các tiêu chuẩn chứa trong header của gói tin Tất cả các gói tinthuộc về cùng một luồng được xử lý như nhau Luồng được chỉ định củamột gói tin đến chỉ rõ một action sẽ được áp dụng cho gói tin Ví dụ, mộtrouter firewall có thể thực hiện action là từ chối hoặc cho phép truy nhậpmột mạng được bảo vệ Việc xác định action này gọi là phân loại gói tin –tức là khả năng của router để xác định action tương ứng với luật tốt nhất

mà một gói tin đến khớp Phân loại gói tin cho phép nhà cung cấp dịch vụ

có thể phân biệt khả năng cạnh tranh và thu được lợi nhuận từ việc cungcấp các dịch vụ gia tăng đến các khách hàng khác nhau

Classification

Dựa vào action để

áp dụng dịch vụ cho gói tin

Trang 34

3.2.1 Định nghĩ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 tindựa trên header của gói tin thành các lớp tương đương gọi là các luồng(flow)

Mỗi luồng phải tuân theo ít nhất một luật, hoặc một tập luật trongbảng luật Tất cả các gói tin thuộc một luồng đều được xử lý như nhau

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

Phân loại gói tin cho phép một số lượng bổ sung các dịch vụ mạngkhông nỗ lực tối đa hơn là cung cấp các chất lượng dịch vụ khác nhau Mộtứng dụng nổi bật của phân loại gói tin là firewall Các dịch vụ mạng khácyêu cầu phân loại gói tin bao gồm định tuyến dựa trên sách lược, chínhsách và mức độ hạn chế giao thông, định hình giao thông và lập hóa đơn.Trong mỗi trường hợp, cần thiết phải xác định gói tin đến thuộc luồng nào

để xác định action cho gói tin đó Ví dụ: chuyển tiếp hay lọc, chuyển tiếp

đến đâu, kiểu dịch vụ phục vụ gói tin là gì, hay chi phí để vận chuyển gói tin là bao nhiêu?

Bài toán phân loại gói tin: mỗi luật của một phép phân loại có d

thành phần Thành phần thứ i của luật R (kí hiệu là R[i]), là một biểu thứcchính quy trong trường thứ i của header của gói tin Một gói tin P được gọi

là khớp với một luật R nếu với mọi i, trường thứ i của header của gói tin Pthỏa mãn biểu thức R[i]

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Haibin Lu and Sartaj Sahni “O(logW) Multidimensional Packet Classification” Sách, tạp chí
Tiêu đề: O(logW) Multidimensional Packet Classification
2. Chi Jia Huang, Chien Chen, Chia Sheng Chou and Shou Ting Kao “Fast Packet Classification Using Multi.pdf” Sách, tạp chí
Tiêu đề: Fast Packet Classification Using Multi.pdf
3. F. Baboescu and G. Varghese, “Scalable Packet Classification,” presented at the ACM SIGCOMM, San Diego, CA, 2001 Sách, tạp chí
Tiêu đề: Scalable Packet Classification
8. M.Waldvogel, G.Varghese, J.Turner, and B.Plattner, “Scalablehigh- speed prefix matching”, Nov. 2001 Sách, tạp chí
Tiêu đề: Scalablehigh-speed prefix matching
9. F.Baboescu, S.Singh, and G.Varghese, “Packet classification for core routers: Is there an alternative to CAMs?” Sách, tạp chí
Tiêu đề: Packet classification for core routers: Is there an alternative to CAMs
4. Mcgraw Hill and Mit Press – Introduction To Algorithms, 239-262 2 nd Ed.pdf Khác
5. Haibin Lu – Data Structures for Dynamic Router Table, 2003 Khác
6. Sarstaj Sahni, Kun Suk Kim, Haibin Lu - Data Structures For One Dimensional Packet Classification Using Most-Specific-Rule Matching 7. Pankaj Gupta - Algorithms for routing lookups and packetclassification, 2000 Khác

HÌNH ẢNH LIÊN QUAN

Bảng 1.1.  Một bảng định tuyến  với 5 quy tắc (W = 5) - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Bảng 1.1. Một bảng định tuyến với 5 quy tắc (W = 5) (Trang 8)
Bảng 2.1 Danh sách các tiền tố - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Bảng 2.1 Danh sách các tiền tố (Trang 13)
Hình 2.2 Danh sách liên kết được sắp xếp - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.2 Danh sách liên kết được sắp xếp (Trang 14)
Hình 2.3: 8 tiền tố và biểu diễn tương ứng trên cây 1 bit - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.3 8 tiền tố và biểu diễn tương ứng trên cây 1 bit (Trang 15)
Hình 2.4 Trie nhị phân tương ứng với tiền tố trong bảng 2.1 - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.4 Trie nhị phân tương ứng với tiền tố trong bảng 2.1 (Trang 18)
Hình 2.5 Chèn tiền tố vào trie nhị phân - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.5 Chèn tiền tố vào trie nhị phân (Trang 19)
Hình 2.6 Thực thi trie nhị phân - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.6 Thực thi trie nhị phân (Trang 20)
Hình 2.7 Cấu trúc dữ liệu trie nén đường dẫn cho các tiền tố bảng 2.1 - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.7 Cấu trúc dữ liệu trie nén đường dẫn cho các tiền tố bảng 2.1 (Trang 21)
Hình 2.8 Cấu trúc của một nút trong cây DP trie - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.8 Cấu trúc của một nút trong cây DP trie (Trang 23)
Hình 2.9 Chèn nút 1000100 vào DP trie - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.9 Chèn nút 1000100 vào DP trie (Trang 24)
Hình 2.11 Chèn nút 10, 11111, 11 vào DP trie - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.11 Chèn nút 10, 11111, 11 vào DP trie (Trang 26)
Hình 3.1 Một số trường của header của gói tin sử dụng để phân loại gói tin. - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 3.1 Một số trường của header của gói tin sử dụng để phân loại gói tin (Trang 32)
Hình 3.2 Đường dữ liệu của một gói tin thông qua quá trình định tuyến  theo luồng. - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 3.2 Đường dữ liệu của một gói tin thông qua quá trình định tuyến theo luồng (Trang 32)
Hình 2.3.  Mối quan hệ giữa các cặp đoạn. (A) Hai đoạn rời nhau. - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 2.3. Mối quan hệ giữa các cặp đoạn. (A) Hai đoạn rời nhau (Trang 38)
Hình 1: Ví dụ cây với tập lọc một chiều (T=2, w=4) - Đồ án tốt nghiệp đại học NGHIÊN cứu cấu TRÚC dữ LIỆU PHỤC vụ tìm KIẾM đa CHIỀU và ỨNG DỤNG
Hình 1 Ví dụ cây với tập lọc một chiều (T=2, w=4) (Trang 45)

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