ĐỒ án tốt NGHIỆP đại học NGHIÊN cứu bài TOÁN SO KHỚP TIỀN tố dài NHẤT áp DỤNG TRONG ROUTER

80 855 1
ĐỒ án tốt NGHIỆP đại học NGHIÊN cứu bài TOÁN SO KHỚP TIỀN tố dài NHẤT áp DỤNG TRONG ROUTER

Đ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

LỜI NĨI ĐẦU Việc định tuyến gói tin thường tạo điểm thắt nút mạng, đặc biệt nhu cầu cập nhật luật bảng định tuyến cao Do có nhiều nghiên cứu nhằm tìm giải pháp, thuật tốn tốt cho việc định tuyến nhằm giảm thắt nút mạng Các giải pháp dựa bảng tiền tố tĩnh có nhiều kết tốt áp dụng địa IP ngắn Tuy nhiên, áp dụng địa IP dài, giải pháp thông thường phải xây dựng lại toàn bảng định tuyến nên thời gian cập nhật chậm xảy trường hợp định tuyến sai gói tin Thời gian gần có nhiều tác giả đưa giải pháp, thuật toán thực bảng định tuyến động - bảng định tuyến cho phép chèn/xóa đồng thời với việc định tuyến gói tin Trong nội dung đồ án nghiên cứu 02 phương pháp định tuyến bảng IP động: phương pháp khớp tiền tố dài nhất, phương pháp sử dụng độ ưu tiên cao luật Nội dung nghiên cứu bao gồm: - Nguyên tắc hoạt động Router - Định tuyến IP theo phương pháp khớp tiền tố dài - Định tuyến IP theo độ ưu tiên - Cài đặt minh họa Trong q trình thực đồ án, có nhiều cố gắng việc nghiên cứu, sưu tầm tài liệu giúp đỡ nhiệt tình giáo viên hướng dẫn, điều kiện thời gian có hạn, trình độ kiến thức cịn nhiều hạn chế nên tơi khơng thể tránh thiếu sót Tơi mong nhận đóng góp ý kiến thầy cô giáo người quan tâm Tôi xin chân thành cảm ơn thầy giáo TS thầy cô Bộ môn Công nghệ phần mềm, Khoa CNTT tận tình hướng dẫn, tạo điều kiện giúp đỡ thực đồ án Chương TỔNG QUAN VỀ ĐỊNH TUYẾN Định tuyến yếu tố cốt yếu tất mạng truyền thơng Một thiết bị định tuyến trích đích từ phần đầu gói tin nhận được, chọn đường tốt tới đích chuyển tiếp gói liệu tới thiết bị tiếp dọc theo đường tốt Trong phạm vi chương này, tơi xin trình bày số nội dung định tuyến Internet 1.1 Thiết bị định tuyến - Router Router thiết bị hoạt động tầng mạng, tìm đường tốt cho gói tin qua nhiều kết nối để từ trạm gửi thuộc mạng đầu đến trạm nhận thuộc mạng cuối Router sử dụng việc nối nhiều mạng với cho phép gói tin theo nhiều đường khác tới đích Router có địa riêng tiếp nhận, xử lý gói tin gửi đến mà thơi Khi trạm muốn gửi gói tin qua Router trạm phải gửi gói tin tới địa trực tiếp Router gói tin đến Router, Router xử lý gửi tiếp Khi xử lý gói tin, Router phải tìm đường gói tin qua mạng Để làm điều phải tìm đường tốt mạng dựa thơng tin có mạng bảng định tuyến Để ngăn chặn việc mát số liệu, Router phải nhận biết đường truyền ngừng truyền đường bị tắc cách cài đặt phương thức tránh tắc nghẽn Các phương thức hoạt động Router đảm bảo cho nối với Router khác, qua chia sẻ thơng tin mạng có Các chương trình chạy Router xây dựng bảng đường thông qua việc trao đổi thông tin với Router khác Trong phương thức vector khoảng cách, Router truyền thơng tin bảng định tuyến mạng, thơng qua Router khác cập nhật lên bảng đường Trong phương thức trạng thái tĩnh, Router truyền thông báo phát có thay đổi mạng Router tự cập nhật lại bảng định tuyến, thơng tin truyền thường thơng tin đường truyền 1.2 Định tuyến Internet 1.2.1 Khái niệm định tuyến Định tuyến tiến trình học tất hướng mạng chuyển tiếp gói tin hướng Một cách cụ thể, định tuyến trình định hướng gói tin phía địa đích, hay nói cách khác xác định đường từ mạng đến mạng khác Router định đường gói tin đến địa đích dựa vào bảng định tuyến chứa nhớ Bảng định tuyến khởi tạo giá trị ban đầu, đầu vào tạo tay tự động Có thể phân chia thành kiểu định tuyến - Định tuyến tĩnh - Định tuyến động - Định tuyến mặc định: Một gói tin mà Router khơng biết địa đích gửi cổng mặc định Ngày Internet bao gồm hàng nghìn gói tin kết nối mạng Router Khi máy trạm gửi gói tin vào Internet, Router giữ chậm gói tin định hướng đến địa đích cuối Các Router trao đổi thơng tin định tuyến với Router khác, sử dụng thông tin thu để tính tốn đường cho tất địa đích đến Mỗi gói tin xử lý định hướng tới Router dựa địa đích 1.2.2 Thuật tốn định tuyến Một mạng chuyển mạch gói bao gồm nút mạng (các Router switch) kết nối với đường truyền thơng có cấu trúc giống mạng lưới Gói tin truyền từ nút mạng tới nút mạng khác có nhiều đường khác Tuy nhiên đường tốt có việc tìm đường 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 trạng thái mạng mạng hoạt động Các tiêu chí để đánh giá thuật toán định tuyến tốt Router phụ thuộc vào hàm mục tiêu mà người cố gắng tối ưu Tuy nhiên, nói chung thuật tốn định tuyến thường hướng tới nhiều mục đích sau: Phân phát nhanh xác gói tin Khả thích nghi với thay đổi cấu hình mạng kết từ nút đường kết nối bị đứt Thích nghi với việc thay đổi địa nguồn – đích tải lưu lượng Khả gửi gói tin khỏi đường liên kết bị tắc tạm thời Khả kiểm tra kết nối mạng Chi phí thấp 1.3 Bảng định tuyến Router chuyển tiếp gói tin dựa địa IP đích phần Header gói tin Nó so sánh địa đích với bảng định tuyến để tìm lối khớp, lối cho Router biết gói tin chuyển đâu tiếp Nếu Router không khớp lối bảng định tuyến khơng có đường mặc định hủy gói tin Vì vậy, cần phải có bảng định tuyến đầy đủ xác Một nút mạng hay Router phải xem xét bảng định tuyến trước chuyển gói tin đến địa xa Trong bảng, địa đích gán tương ứng với địa Router cần đến chặng Mục đích - Lưu trữ thông tin mạng khác mạng cách để đến nút mạng mạng - Chỉ địa IP toán định hướng để đến nút mạng đích - Chỉ giao diện mạng sử dụng để chuyển gói tin tới đích Mỗi bảng định tuyến bao gồm nhiều thành phần Trong phạm vi đồ án ta giả sử có bảng định tuyến bảng 1.1, bao gồm trường sau: Rule Name: tên quy tắc Prefix Name: tên tiền tố Prefix: tiền tố đưa CIDR1 Next Hop: bước truyền Ranges Start: giá trị bắt đầu đoạn, coi tiền tố đoạn Classless Inter-Domain Routing Ranges Finish: giá trị kết thúc đoạn Priority: trường ưu tiên, giá trị để đánh giá độ ưu tiên nhóm địa Có nhiều cách để đánh giá độ ưu tiên cho nhóm địa ví dụ dựa vào băng thông mạng, dựa vào khoảng cách vùng, dựa vào chiều dài tiền tố… Rule Name Prefix Name Ranges Start Ranges Finish Priority R1 P1 * N1 31 R2 P2 0101* N2 10 11 R3 P3 100* N3 16 19 R4 P4 1001* N4 18 19 R5 P5 10111 N5 23 23 Prefix Next Hop Bảng 1.1 Một bảng định tuyến với quy tắc (W = 5) Ta sử dụng W ký hiệu chiều dài lớn tiền tố Trong IPv4, W = 32 IPv6, W = 128 Trong bảng 1.1, với W = 5, tiền tố P1 khớp với tất địa đích, gọi default prefix Tiền tố P3 khớp với địa từ 16 đến 19 Nếu địa tiền tố quy tắc khớp với địa đích gói tin đến, Next Hop quy tắc sử dụng để định hướng gói tin Khi địa đích đến khớp với nhiều quy tắc bảng định tuyến việc chọn Next Hop phụ thuộc vào phương pháp khớp tiề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ử danh sách tuyến tính luật với số từ đến n, cho bảng có n quy tắc Quy tắc khớp với gói tin đến sử dụng để định tuyến gói tin Ví dụ địa đích đến 19 Next Hop N1, tiền tố * tiền tố khớp với địa 19 Nhận thấy quy tắc R1 khớp với tất địa đích Tuy nhiên định tuyến tất gói tin theo quy tắc R1 kết việc định tuyến khó thể nói xảy điều Do đánh thứ tự cho quy tắc phải thay đổi để quy tắc khác sử dụng, tiền tố mặc định nên đặt cuối bảng quy tắc Trong khớp tiền tố có độ ưu tiên cao nhất, quy tắc gán độ ưu tiên, quy tắc với độ ưu tiên cao chọn từ quy tắc khớp với gói tin đến (giả sử độ ưu tiên tiền tố khác nhau) Biện pháp khớp biện pháp đặc biệt khớp có độ ưu tiên cao Khớp đặc trưng nhất, tất tiền tố khớp với địa đích tiền tố đặc trưng chọn để định tuyến gói tin Tiền tố 110* đặc trưng tiền tố 11* Khi tiền tố khớp với địa đích d tiền tố đặc trưng tiền tố dài nên biện pháp khớp đặc trưng gọi khớp tiền tố dài Trong trường hợp bảng 1.1, quy tắc P1, P3, P4 khớp với địa 19 Với biện pháp này, quy tắc P4 chọn 1.3.1 Bảng định tuyến tĩnh Là cách mà quy tắc đưa vào bảng định tuyến tay Trong trường hợp này, gói tin gửi đến đích mà khơng vào trạng thái mạng Đích có hoạt động hay không, đường tĩnh giữ nguyên bảng đầu ra, lưu lượng gửi tới đích xác định trước Độ dài tiền tố số bit tiền tố (khơng sử dụng đến kí tự * xác định độ dài) Với bảng liệu trên, độ dài P1 P2 Đặc điểm bảng Router tĩnh: Thời gian xử lý gói tin đến: thời gian cần thiết để tìm bảng quy tắc để sử dụng Chúng ta thường gọi phép tìm kiếm Thời gian tiền xử lý: thời gian tạo cấu trúc liệu cho bảng quy tắc Yêu cầu nhớ: dung lượng 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 thao tác cập nhật, người ta sử dụng bảng: bảng làm việc (working) bảng phụ (shadow) Việc tìm kiếm thực bảng làm việc cịn việc cập nhật thực bảng phụ (theo thời gian thực cập nhật theo gói với khoảng thời gian thích hợp) Sau chu kỳ, bảng phụ chép sang bảng lưu trữ bảng làm việc xóa Trong kiểu cập nhật này, nhiều gói tin phân loại sai định tuyến, việc copy không thực Số lượng gói tin bị phân loại sai phụ thuộc vào chu kỳ cập nhật bảng làm việc Do 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 nhớ cho bảng phụ cho việc xây dựng lại theo chu kỳ bảng làm việc Qua đặc điểm bảng định tuyến tĩnh, ta nhận thấy loại bảng có số ưu nhược điểm định Việc cập nhật thực tay nên người quản trị có tồn quyền điều khiển thông tin bảng định tuyến Tuy vậy, kích thước mạng tăng lên 3, độ phức tạp việc cấu hình tăng lên Bảng định tuyến kiểu khơng có khả thích ứng với mạng có cấu trúc thay đổi Trên thực tế, loại bảng sử dụng Giả sử mạng có n Router cần phải cấu hình n*(n-1) câu lệnh tất Router 1.3.2 Bảng định tuyến động Định tuyến động trình mà giao thức định tuyến phải tìm đường tốt mạng trì chúng Gói tin đến đích tùy thuộc vào tồn trạng thái mạng Nếu đích rời khỏi mạng, đường tới đích bị bảng định tuyến, gói tin khơng gửi tới đích Có nhiều cách để xây dựng bảng định tuyến động Nhưng tất thực theo quy tắc chung sau: Router khám phá tất tuyến đường đến đích thực số quy tắc định trước để xác định đường tốt đến đích Trong bảng quy tắc động, quy tắc chèn/xóa thường xun Kiểu bảng khơng chèn/xóa theo khối, việc chèn/xóa thực thời gian thực Đầu tiên, việc cập nhật thực thường xuyên vùng Backbone Bảng định tuyến cần phải cập nhật để phản ánh thay đổi Router Tốc độ cập nhật đạt tới 1000 giây [Labovitz] Mạng cập nhật lỗi phát sinh từ Router bị hỏng, Router chỉnh sửa Thứ hai, tiến trình cập nhật nhanh ưu tiên trình cấu trúc lại, thời gian trễ từ điểm sang điểm khác tăng lên, số gói tin bị tăng lên đột ngộ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óa quy tắc Trong bảng quy tắc động, ban đầu cấu trúc liệu khởi tạo với cấu trúc liệu tĩnh sau chèn quy tắc Các đặc điểm bảng định tuyến động: Thời gian tìm kiếm địa tiền tố bảng 10 nét đứt S tập đoạn vẽ bao ranges(y) (các đoạn liền bao đoạn nét dứt) Hình 4.4 ranges(x) ranges(y) cho phép quay LL RR Nút x y hình 4.3 Đoạn rMax S với giá trị start() lớn tìm cách tìm kiếm RTS(x) với đoạn mà giá trị start() lớn khớp với point(y) (Chú ý, rMax = msr(point(y), ranges(x)) – nghĩa đoạn đặc trưng đoạn x có khóa d = point(y)) Khi RST(x) tìm kiếm nhị phân tập có thứ tự (định nghĩa 18), rMax tìm thời gian O(height(RST(x)) cách tìm từ nút gốc Nếu rMax khơng tồn tại, S = ∅ ranges’(x) = ranges(x) ranges’(y) = ranges(y) Giả sử rMax tồn Chúng ta sử dụng hàm Split để trích từ RST(x) đoạn thuộc S Tốn tử RST(x) ->split(small, rMax, big) chia RST(x) thành nút RST nhỏ đoạn < rMax nút RST lớn đoạn > rMax Chúng ta thấy RST’(x) = big RST’(y) = join(small, rMax, RST(y)), với join kết hợp đỏ đen nhỏ với đoạn < rMax, đoạn rMax đỏ đen RST(y) với đoạn > rMax vào đỏ đen 66 Các phép split join Horowitz cần chỉnh chút để cập nhật giá trị mp tác động đến nút Việc chỉnh sửa không ảnh hưởng đến tiệm cận độ phức tạp, hàm loga số nút hai kết hợp, toán tử split join Cho nên độ phức tạp để thực phép quay LL RR (và thực phép quay LR RL) PTST O(log n) 4.1.5 Xóa đoạn Nếu r đoạn PTST r phải RST nút z gần nút gốc r khớp với point(z) Thuật tốn tìm z xóa r từ RST(z) Thuật tốn xóa đoạn +) Nếu r khớp với point(z) tìm r RST(z) xóa r khỏi cây, thực hàm cleanup() +) Tìm r PTST i Nếu finish(r) < point(z) tìm kiếm trái ii Nếu start(r) > point(z) tìm kiếm phải Giả sử r đoạn PTST Để xóa r từ RST(z) sử dụng thuật tốn xóa đỏ đen, chỉnh sửa để cập nhật lại giá trị mp cần thiết Sau xóa r từ RST(z) ta thực hàm cleanup cần thiết để trì ràng buộc kích thước PTST Thuật tốn cleanup + Nếu RST(z) rỗng có bậc xóa nút z từ PTST cân lại + Trong |PTST| > 2|R| xóa nút RST(z) rỗng bậc bậc PTST cân lại 67 Sau xóa r từ RST(z), RST(z) rỗng khơng rỗng Nếu RST(z) rỗng bậc nút z 1, nút z xóa khỏi PTST sử dụng thuật tốn xóa đỏ đen Nếu việc xóa u cầu phép quay phép quay thực Khi số đoạn nút giảm lần 1, kích thước bắt buộc bị vi phạm (điều xảy |PTST| = 2|R| trước xóa) Do vậy, cần bỏ nút từ PTST để lưu lại ràng buộc kích thước Nếu RST(z) rỗng bậc z RST(z) không rỗng, z khơng xóa khỏi PTST Khi , |PTST| khơng thay đổi việc xóa r |R| giảm Tiếp tục bị vi phạm kích thước cho phép Nếu vậy, dẫn đến nút bị xóa khỏi PTST thiết lập lại ràng buộc kích thước Ràng buộc kích thước, bị vi phạm, thiết lập lại vòng lặp while Việc thiết lập lại thực việc xóa nút bậc bậc mà có RST rỗng Định nghĩa 18 cho thấy ràng buộc kích thước bị vi phạm, PTST có nút bậc bậc với RST rỗng Cho nên z cần xóa Bổ đề 11 Khi PTST có nhiều 2n nút, với n = |R|, PTST có nút bậc bậc nút PTST rỗng Chứng minh Giả sử không tồn nút bậc bậc nút PTST rỗng Khi đó, bậc nút mà có nột RST rỗng Cho n tổng số nút bậc 2, n1 tổng số nút bậc 1, n tổng số nút bậc 0, n e tổng số nút mà có RST rỗng, n n tổng số nút mà có RST khơng rỗng Khi tổng số nút PTST mà có RST rỗng nút bậc 2, n2 > ne Hơn nữa, có n đoạn đoạn lưu RST, có nhiều n nút mà có RST không rỗng, n ≥ 68 nn Do đó, n2 + n ≥ ne + nn = |PTST|, n2 ≥ |PTST| - n Từ [24] ta thấy n0 = n2 + Do vậy, n0 + n1 + n2 = n2 + + n1 + n2 > n2 + n2 ≥ 2|PTST| - 2n > |PTST| Mâu thuẫn với n0 + n1 + n2 = |PTST| Để tìm nút bậc bậc mà có RST rỗng cách hiệu quả, ta trì danh sách liên kết kép nút Do vậy, danh sách kiên kết kép nút bậc mà có RST rỗng trì Khi đoạn chèn vào hay xóa đi, Các nút PTST thêm xóa từ danh sách liên kết kép nút rời từ danh sách sang danh sách khác Thời gian thực phép toán O(1) Độ phức tạp đòi hỏi O(log n) thời gian để tìm nút PTST z mà có chứa đoạn r cần phải xóa Cần O(log n) thời gian để xóa r từ RST(z) Bước cleanup với nút PTST cần thời gian O(log n) Cho nên tổng thời gian để xóa O(log n) 4.1.6 Độ phức tạp BOB Cho maxR số đoạn lớn mà khớp với địa tiền tố Do vậy, |ranges(z)| = |RST(z)| ≤ maxR với nút z PTST Vì thế, ta phát biểu lại độ phức tạp phép tìm kiếm BOB, chèn, xóa tương ứng sau O(log n log maxR), O(log n), O(log n) Sahni phân tích tiền tố bảng định tuyến bảng định tuyến IPv4 thực tế Họ nói địa đích trung bình khớp với tiền tố; số lượng lớn mà tiền tố khớp với địa đích thường Điều giả sử cho bảng định tuyến đoạn thực tế, ta kết luận maxR ≤ Cho nên, độ phức tạp BOB cho bảng định tuyến thực tế O(log n) phép tốn 69 4.2 Bảng tiền tố có độ ưu tiên cao nhất12 - PBOB 4.3.1 Cấu trúc liệu Khi tất quy tắc lọc tiền tố, maxR ≤ min{n, W} Do vậy, BOB sử dụng để biểu diễn HPPT, độ phức tạp tìm kiếm O(log n* min{log n, log W}); chèn xóa độ phức tạp O(log n) Khi maxR ≤ cho bảng định tuyến thực, ta hướng tới việc tìm cách làm tốt sử dụng cấu trúc đơn giản cho ranges(z) cấu trúc RST phần Trong PBOB, ta thay RST nút z PTST cấu trúc BOB với danh sách mảng tuyến tính, gồm cặp (pLength, priority) pLength chiều dài tiền tố priority độ ưu tiên tiền tố ALL(z) gồm cặp cho đoạn r ∈ ranges(z) Giá trị pLength cặp chiều dài tiền tố mà tương ứng với đoạn r giá trị priority giá trị ưu tiên đoạn r Một cặp ALL(z) theo thứ tự tăng pLength Chú ý đoạn ranges(z) chứa khớp với point(z), tương ứng với tiền tố có chiều dài khác 4.3.2 Tìm kiếm Thuật tốn tìm độ ưu tiên tiền tố có độ ưu tiên cao khớp với địa d hp(d) { // Trả tiền tố có độ ưu tiên cao khớp với địa d hp = -1; // giả sử độ ưu tiên nhỏ = -1 z = root; // root of PTST while (z != null) { if (d == point(z)) 12 Hightest – Priority Prefix – Table (HPPT) 70 return max{hp, ALL(z)->maxp()}; ALL(z)->searchALL(d,hp); if (d < point(z)) z = leftChild(z); else z = rightChild(z); } return hp; } Phương thức maxp() trả độ ưu tiên cao tiền tố ALL(z) (là nút mà tất tiền tố ALL(z) khớp với point(z)) Phương thức searchALL(d, hp) kiểm tra tiền tố ALL(z) cập nhật hp vào mục ưu tiên ALL(z) khớp với d Phương thức searchALL(d, hp) chứng minh theo bổ đề Do vậy, kiểm tra tiền tố ALL(z) theo thứ tự tăng dần chiều dài tất tiền tố kiểm tra đến tiền tố không khớp với d Bổ đề 12 Nếu tiền tố ALL(z) khơng khớp với địa đích d, khơng tiền tố dài ALL(z) khớp với d Chứng minh: cho p1 p2 tiền tố ALL(z) Cho li chiều dài pi Giả sử l1 < l2 p1 không khớp với d Trong hai p1 p2 khớp với point(z), p2 chứa p1 Do vậy, tất địa đích mà khớp p2 thường khớp với p1 Do p2 không khớp với d Một cách để kiểm tra xem tiền tố có chiều dài l ALL(z) có khớp với địa d hay không ta sử dụng Bổ đề sau Bổ đề kiểm tra khả áp dụng mặt nạ để trích bít đặc trưng point(z) d 71 Bổ đề 13 tiền tố p có chiều dài l ALL(z) khớp với d l bít có nghĩa point(z) d Độ phức tạp Giả sử phép tốn lấy mặt nạ thực thời gian O(1) (Trong IPv4, để kiểm tra mặt nạ dài 32 bit tách tập bít từ số nguyên 32 bit cách sử dụng phép logic phương pháp mặt nạ số ngun) Số nút PTST tìm đến vịng lặp while thuật toán O(log n) thời gian sử dụng vào nút z mà tìm đến hàm tuyến tính số tiền tố ALL(z) mà khớp với d Trong nút PTST có nhiều maxR tiền tố mà khớp với d, độ phức tạp thuật tốn tìm kiếm O(log n + maxR) = O(W) (chú ý log2 n ≤ W maxR ≤ W) 4.3.3 Chèn xóa Các thuật tốn PBOB để chèn xóa tiền tố tương tự thuật toán với cấu trúc BOB rMax tìm thấy cách kiểm tra tiền tố ALL(x) theo thứ tự tăng dần chiều dài ALL’(y) bao gồm tiền tố quan tâm ALL(x) tiền tố mà chiều dài ≤ chiều dài rMax ALL(y), ALL’(x) bao gồm phần tử lại ALL(x) sau bỏ tiền tố mà có chiều dài ≤ nhỏ chiều dài rMax Thời gian yêu cầu để tìm rMax O(maxR) Đó thời gian yêu cầu để tính ALL’(y) ALL’(x) Độ phức tạp tổng thể phép chèn xóa O(log n + maxR) = O(W) Chú ý maxR ≤ thực hành Cho nên thực tế PBOB O(log n) thời gian tạo O(log n) khả lỗi toán tử 4.3 Bảng tiền tố khớp dài nhất13 – LMPBOB 4.3.1 Cấu trúc liệu 13 Longest-Matching Prefix-Table (LMPT) 72 Sử dụng priority = pLength, PBOB sử dụng để biểu diễn bảng LMPT có phương thức bảng HPPT Tuy nhiên, ta giảm nhớ yêu cầu cấu trúc liệu ta thay mảng danh sách tuyến tính lưu nút PTST vector bít W, bit bit(z)[i] ký hiệu bít thứ i vector bít lưu nút z PTST, bit(z)[i] = ALL(z) có tiền tố có chiều dài i 4.3.2 Tìm kiếm Thuật tốn tìm chiều dài tiền tố khớp dài lmp(d) cho địa d Phương thức longest() trả i dài cho bit(z)[i] = Phương thức searchBitVector(d, hp, k) kiểm tra bit(z) cập nhật hp vào mục chiều dài tiền tố vector bit khớp với d Phương thức same(k+1, point(z), d) trả true point(z) địa d giống k + bit đặc trưng Algorithm lmp(d) { // Trả tiền tố dài khớp với địa d hp = 0; // chiều dài tiền tố k = 0; z = root; // root of PTST while (z != null) { if (d == point(z)) return max{k, z->longest()}; bit(z)->searchBitVector(d,hp,k); 73 if (d < point(z)) z = leftChild(z); else z = rightChild(z); } return hp; } Thuật toán searchBitVector searchBitVector(d,hp,k) { // cập nhật hp k while (k < W && same(k+1, point(z), d) { if (bit(z)[k+1] == 1) hp = k+1; k++; } } Bổ đề 14 Nếu bit(z)[i] tương ứng với tiền tố mà không khớp với địa đích d, bit(z)[j] , j > i tương ứng với tiền tố mà không khớp với d Chứng minh: bit(z)[q] tương ứng với tiền tố pq mà có chiều dài q q bít đặc trưng point(z) Cho nên pi khớp với điểm mà khớp với pj Do vậy, pi khơng khớp với d pj khơng khớp với d Bổ đề 15 Cho w z nút PTST cho w cháu z Giả sử z -> bit(q) tương ứng với tiền tố p q khớp với d w -> bit(j), j ≤ q không tương ứng cới tiền tố khớp với d 74 Chứng minh: Giả sử w có bit(j) tương ứng với tiền tố pj, pj khớp với d, j ≤ q Do pj j bít đặc trưng d Khi pq khớp với d khớp với point (z), d point(z) có q bít đặc trưng Do pj khớp với point(z) Cho nên theo quy tắc phân phối đoạn, pj phải lưu nút z không nút w Mâu thuẫn Độ phức tạp Giả sử phương thức same() thực sử dụng mặt nạ toán tử Boolean có độ phức tạp O(1) Khi vector bit có số bít địa đích, điều giả sử phù hợp với giả thiết ngầm định mà hàm số học địa đích chiếm O(1) Tổng thời gian sử dụng lệnh searchBitVector O(W+log n) Thời gian bước lại lmp(d) O(log n) Cho nên, độ phức tạp lmp(d) O(W+ log n) = O(W) Cùng với độ phức tạp thời gian O(W), số khả lỗi O(log n) (chú ý vector bit chiếm lượng không gian cần thiết để lưu địa đích) 4.4.3 Chèn xóa LMPT Thuật tốn chèn xóa tương tự thuật tốn với HPPT Chỉ có số khác biệt sau: Ngồi việc chèn xóa tiền tố từ ALL(z), Chúng ta đặt bit(z)[l] với l chiều dài tiền tố chèn xóa thành tương ứng Với phép quay, ta khơng tìm rMax bit(x) Thay vào đó, ta tìm số ngun lớn iMax cho tiền tố mà tương ứng với bit(x)[iMax] khớp với point(y) Đầu tiên iMax bít bit’(y) iMax bít bit(x) bít cịn lại bit’(y) giống với bit phù hợp bit(y) bit’(x) chứa bit(x) cách đặt iMax bít đầu 75 Độ phức tạp iMax kiểm tra thời gian O(log W) sử dụng tìm kiếm nhị phân; bit’(x) bit’(y) tính thời gian O(1) sử dụng mặt nạ phép tốn Boolean Các nhiệm vụ cịn lại thực q trình chèn xóa O(log n) thời gian Cho nên, độ phức tạp phép chèn xóa O(log n + log W) = O(log(Wn)) Lượng khả lỗi O(log n) Kết luận chương Chương 4, ta nghiên cứu cấu trúc liệu đặc biệt cấu trúc BOB dùng để cấu trúc cho bảng định tuyến, đồng thời đưa thuật tốn tìm kiếm tiền tố có độ ưu tiên cao khớp với địa, thuật tốn chèn/xóa tiền tố Đây cấu trúc với kết hợp kỹ thuật việc cấu trúc liệu cho toán cụ thể Sau hai cấu trúc PBOB LMPBOB cải tiến BOB với ưu điểm giảm nhớ Trong cấu trúc LMPBOB độ ưu tiên luật chiều dài tiền tố Trên sở tìm hiểu kỹ cấu trúc liệu ứng dụng chúng, đồ án cài đặt minh họa cấu trúc sau: BOB, PBOB, LMPBOB (phụ lục 1) Chương trình gồm chức sau: o Dựng cấu trúc theo luật bảng định tuyến o Chèn xóa luật o Tìm kiếm luật khớp với gói IP sử dụng địa đích theo phương pháp sử dụng độ ưu tiên cao 76 KẾT LUẬN Nghiên cứu, áp dụng cấu trúc tìm kiếm ưu tiên để giải toán so khớp tiền tố dài Cây tìm kếm ưu tiên có ưu điểm thời gian xây dựng, chèn/ xóa, tìm kiếm thực với độ phức tạp thời gian O(log n) với n số nút Nghiên cứu, áp dụng cấu trúc liệu BOB Từ tập luật bảng định tuyến, ta sử dụng hai cấu trúc lồng để phân chia luật vào nút PST, nút z PST gồm đoạn ranges(z), đoạn ranges(z) lại xây dựng thành đỏ đen Và độ phức tạp phép tìm kiếm, chèn, xóa tương ứng sau O(log n log maxR), O(log n), O(log n) Sau đó, phát triển cấu trúc BOB lên cấu trúc PBOB với cách biểu diễn đơn giản thay RST thành mảng danh sách tuyến tính ALL mà phần tử mảng gồm cặp (pLength, priority) Và độ phức tạp thuật tốn tìm kiếm O(W), thời gian chèn xóa O(log n) Cấu trúc LMPBOB thay mảng danh sách tuyến tính ALL thành vector bit bitz Cấu trúc có độ phức phép tìm kiếm O(W), độ phức tạp phép chèn xóa O(log(Wn)) Bài tốn so khớp tiền tố dài vấn đề hay có nhiều ứng dụng thực tế, đặc biệt định tuyến IP dựa chiều dài tiền tố Các cấu trúc liệu cho toán nghiên cứu đồ án chứng minh tính hiệu lý thuyết, chưa có điều kiện để kiểm nghiệm thuật tốn Router thực tế Tuy nhiên, sau trình nghiên cứu giúp cho phát triển khả tư duy, giải vấn đề Tôi nghĩ, học lớn cho người học viên tốt nghiệp trường Đi sâu tìm hiểu vấn đề so khớp luật Router nhiều nội dung khác cần nghiên cứu Một là, mở rộng nghiên cứu bảng định 77 tuyến đa chiều Hai là, cài đặt chạy thử liệu lớn để chứng minh ưu điểm giải pháp trình bày Qua thời gian nghiên cứu, tơi hồn thành nội dung đồ án, học tập phương pháp nghiên cứu vấn đề, cách trình bày, thuyết trình nội dung khoa học, làm sở cho sau trường đảm nhận cơng việc giao Đồng thời qua đồ án mở rộng kiến thức nội dung đồ án nội dung có liên quan Do hiểu biết tơi cịn hạn chế, chưa có kiến thức sâu rộng lĩnh vực rộng lớn, nên nội dung đồ án cịn vấn đề sai sót, chưa đầy đủ Tơi mong nhận góp ý thầy, cô bạn quan tâm để đồ án tơi hồn thiện Trong suốt q trình làm đồ án, tơi nhận nhiều giúp đỡ thầy giáo hướng dẫn TS.Nguyễn Mạnh Hùng Một lần nữa, xin chân thành cảm ơn thầy giáo hướng dẫn, thầy khoa bạn giúp tơi hồn thành đồ án này! 78 MỤC LỤC 79 ... để định tuyến gói tin Tiền tố 110* đặc trưng tiền tố 11* Khi tiền tố khớp với địa đích d tiền tố đặc trưng tiền tố dài nên biện pháp khớp đặc trưng gọi khớp tiền tố dài Trong trường hợp bảng... Các ứng dụng tầm nhìn, toán túi, toán định tuyến IP, vấn đề tính tốn địa lý…Ngay sau ứng dụng PST để giải toán định tuyến IP 36 Chương ĐỊNH TUYẾN IP THEO PHƯƠNG PHÁP KHỚP TIỀN TỐ DÀI NHẤT Chương... 11011100.01001110.10101* Trong 21 chiều dài tiền tố Với cấu trúc địa IP phần tiền tố, địa IP khớp với nhiều tiền tố có chiều dài khác Việc tìm tiền tố khớp với địa đích d tiền tố địa đích phải có

Ngày đăng: 18/06/2014, 22:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan