Ở đây, nút nt là nút thay thế của nút nk trong bảng định tuyến của nút ni. Sau khi bảng định tuyến được thay đổi, các thông báo truy vấn tiếp theo đến một nút sẽ được định tuyến theo tuyến đường mới dựa trên cơ chế định tuyến của Chord.
Bước 3: Xử lý sau khi hết tắc nghẽn
Mặc dù việc thay thế bảng định tuyến giúp tuyến đường đến đích ngắn hơn, tuy nhiên nếu giữ nguyên bảng định tuyến như vậy thì sau một khoảng thời gian hoạt động, các nút trong bảng định tuyến sẽ có xu hướng xa dần nút ban đầu dẫn đến phá vỡ cấu trúc của mạng Chord và làm tăng độ trễ định tuyến. Do đó, sau khi hết tắc nghẽn một nút phải xử lý để đưa bảng định tuyến trở lại trạng thái ban đầu.
Khi trạng thái của nút thay đổi từ trạng thái tắc nghẽn sang trạng thái thơng thường (nghĩa là số lượng gói tin đến trong một đơn vị thời gian nhỏ hơn ngưỡng tắc nghẽn mềm T), các thao tác sau đây được thực hiện:
- Nút vừa ra khỏi trạng thái tắc nghẽn sau một khoảng thời gian nhất định gửi thông báo hết tắc nghẽn tới các nút mà nó đã gửi thơng báo tắc nghẽn.
- Nút nhận thông báo hết tắc nghẽn thay đổi tuyến đường đang hoạt động trong bảng định tuyến trở lại tuyến đường ban đầu. Ví dụ, khi ni nhận được thơng báo hết tắc nghẽn từ nk, nó sẽ chuyển tuyến đường đang hoạt động
trong bảng định tuyến của nó đi qua nút nk.
Khi nút nk ra khỏi trạng thái tắc nghẽn, nó chọn ngẫu nhiên z nút đã nhận thông báo tắc nghẽn để gửi thơng báo hết tắc nghẽn. Q trình này được thực hiện trong một khoảng thời gian t. Số z được chọn sẽ ảnh hưởng trực tiếp đến mức độ tải phục hồi trạng thái ban đầu của nút. Nếu số z quá nhỏ, nó sẽ khiến nút nhận thông báo hết tắc nghẽn trở lại trạng thái định tuyến bình thường chậm. Nếu số z quá cao, nó có thể làm cho nút khơng tắc nghẽn trở lại trạng thái bị tắc nghẽn một cách dễ dàng. Thuật toán xử lý hết tắc nghẽn tại nút n được mơ tả bằng đoạn giả mã trong Hình 3.2. Trong đoạn giả mã đó, v là nút được chọn để gửi thông báo hết tắc nghẽn, z là tổng số nút sẽ được chọn để
gửi thông báo hết tắc nghẽn.
Hình 3.2. Giả mã thuật tốn xử lý hết tắc nghẽn tại nút n
Bước 4: Cập nhật danh sách các nút láng giềng đứng sau không bị tắc nghẽn có khả năng định tuyến tốt nhất
Danh sách các nút láng giềng đứng sau khơng bị tắc nghẽn có khả năng định tuyến tốt nhất của một nút có thể bị thay đổi do các nút vào ra trong mạng và sự thay đổi trạng thái của một nút từ trạng thái tắc nghẽn sang trạng thái không tắc nghẽn và ngược lại. Để duy trì danh sách trên, định kỳ trong một khoảng thời gian t mỗi nút n gửi thông tin đến các nút láng giềng đứng
sau theo cơ chế Chord để cập nhật danh sách này. Mỗi nút n' khi nhận được thông báo cập nhật sẽ căn cứ vào hiệu số của khả năng định tuyến C của nút và tải làm việc hiện tại (số thông báo truy vấn định tuyến đang thực hiện) để xác định khả năng định tuyến cịn có thể thực hiện được (khả năng định tuyến sẵn sàng). Căn cứ vào thông tin về khả năng định tuyến sẵn sàng của nút n'
gửi cho nút n, nút n sẽ cập nhật lại danh sách các nút láng giềng đứng sau
không bị tắc nghẽn có khả năng định tuyến tốt nhất.
Hình 3.3. Truy vấn thơng thường trong mạng Chord (m=6)
Xét mạng Chord với 6 bit khơng gian khóa (64 định danh) như trong hình 3.3.
n42 bị tắc nghẽn, nó sẽ thơng báo trạng thái nghẽn tới nút n8. n8 sẽ thay đổi
bảng định tuyến của nó như trong hình 3.3 (b). Trên nút n8, tất cả đường định tuyến qua nút n42 sẽ được đổi thành n48 (kế tiếp của nút n42). Số lượng các nút mà truy vấn phải đi qua vẫn là 3, đó là số cần thiết trong trường hợp ban đầu. Giả sử nút n48 đang ở trạng thái tắc nghẽn. Trong bảng định tuyến của n8, nút
n48 sẽ được thay thế bằng n51. Trên nút n8, giả sử rằng chúng ta cần truy vấn
khóa 49. Vì khóa 49 thuộc phạm vi [42, 51], truy vấn sẽ phải đi qua nút n42 và được xử lý như bình thường. Trong q trình hoạt động, chúng tơi giả sử một số nút có bảng định tuyến đi qua nút n42 phải thay đổi thành các nút khác khi nút n42 bị tắc nghẽn. Khi n42 thốt khỏi trạng thái nghẽn, các nút có bảng định tuyến đã được thay đổi sẽ được khôi phục về trạng thái ban đầu.
Thuật toán điều khiển tắc nghẽn CA-Chord lựa chọn nút tốt nhất không bị tắc nghẽn trên đường định tuyến gói tin để thay cho nút bị tắc nghẽn. Nút không bị tắc nghẽn được chọn là nút đứng sau nút tắc nghẽn. Với cơ chế lựa chọn đề xuất, thuật toán đảm bảo được luôn tận dụng được các nút có khả năng định tuyến tốt nhất trong hệ thống, đồng thời làm giảm số bước định tuyến, rút ngắn được quãng đường định tuyến, tránh được tắc nghẽn xảy ra. Do đó, tỷ lệ truy vấn thành cơng của thuật toán CA-Chord được cải thiện và nâng cao. Việc thay thế nút tắc nghẽn trong bảng định tuyến và bổ sung thêm một trường thông tin để lưu trữ đường định tuyến gốc (đường định tuyến lúc khởi tạo nút) không làm tăng q cao chi phí cho việc duy trì bảng định tuyến. Với cơ chế xử lý hết tắc nghẽn, các đường định tuyến gốc được khôi phục sau khi một nút ra khỏi trạng thái tắc nghẽn sẽ làm cho cấu trúc mạng được duy trì, bảng định tuyến không bị phá vỡ cấu trúc.
3.4. Đánh giá thuật toán
3.4.1. Phương pháp đánh giá
Để đánh giá hiệu quả của thuật tốn đề xuất, chúng tơi thực hiện một số thí nghiệm mơ phỏng và so sánh với thuật toán định tuyến trong giao thức Chord. Các thí nghiệm thực hiện trong điều kiện mô phỏng một hệ thống mạng gần với hệ thống mạng thực tế, gồm 4096 nút vật lý và hoạt động theo thời gian rời rạc, sử dụng các tham số đầu vào của J. Ledlie [44]. Mỗi bước hoạt động gồm các kịch bản: nút tham gia và rời hệ thống, cập nhật bảng tìm đường, truy vấn dữ liệu.
Nút vào và ra hệ thống: theo nghiên cứu của F. Bustamante and
Y. Qiao. Friendships [36], các nút ra/vào hệ thống với thời gian sống trung bình của một nút dựa trên phân bố xác suất Pareto. Dựa trên phân bố xác suất này, chúng tôi tạo ra các tệp dữ liệu ghi lại thời điểm ra/vào của một nút với thời gian sống trung bình của một nút là 15 phút, 30 phút, 1 giờ, 2 giờ và 3 giờ. Mô phỏng được thực hiện trong khoảng thời gian là 3 giờ, tuy nhiên chúng tôi chỉ ghi lại các thống kê trong nửa cuối của thời gian mô phỏng để tránh các kết quả mô phỏng không ổn định. Khả năng định tuyến của một nút là một số được sinh ngẫu nhiên có giá trị từ 1 đến 399999 (thể hiện số thông báo truy vấn có thể định tuyến). Khả năng định tuyến trung bình của một nút tương ứng khoảng 8000 thơng báo truy vấn và được giữ cố định trong tất cả các thí nghiệm.
Cập nhật bảng tìm đường, mỗi nút tham gia hệ thống dựa theo cơ chế
Chord [17] để để thực hiện cập nhật bảng tìm đường.
Truy vấn dữ liệu, chúng tơi tạo các tập khóa truy vấn dựa theo phân bố
liệu khóa truy vấn khác nhau. Khóa truy vấn là các số nguyên nằm trong giới hạn khơng gian khóa của mạng Chord. Tập các khóa truy vấn được sinh theo phân bố xác suất Zipf có mức độ phổ biến khác nhau dựa trên một tham số gọi là thứ hạng. Xác suất để một khóa xuất hiện trong tập khóa truy vấn là 1
𝑟
với r là thứ hạng của khóa và là một số ngẫu nhiên giữa 1 và tổng số khóa
truy vấn, là một hằng số phản ảnh mức độ phổ biến của một khóa trong tập khóa, càng lớn thì mức độ phổ biến của một khóa càng lớn và ngược lại. Trong các thí nghiệm, giá trị được thiết lập tương ứng là 0,8; 1,2; 2,4; 4,8.
Với mỗi thí nghiệm, các khóa truy vấn được chọn từ một tệp dữ liệu khóa truy vấn và gán ngẫu nhiên cho một nút truy vấn. Nút truy vấn gửi thông báo truy vấn qua nhiều nút trung gian trên đường định tuyến đến nút đích chịu trách nhiệm quản lý khóa truy vấn. Nếu một nút trung gian bị tắc nghẽn cứng, thông báo truy vấn bị loại bỏ và truy vấn được coi là không thành công. Một truy vấn được coi là thành công nếu thông báo truy vấn đến được nút đích.
Chúng tơi trình bày và thảo luận về kết quả thí nghiệm trong các phần dưới đây.
3.4.2. Các kết quả mô phỏng
3.4.2.1 Đánh giá tỷ lệ truy vấn thành công
Phần này mô tả đánh giá của chúng tôi về tỷ lệ truy vấn thành cơng khi thay đổi các tham số thí nghiệm, bao gồm thời gian sống trung bình của một nút trong mạng, số truy vấn trung bình đặt vào một nút, ngưỡng tắc nghẽn mềm T và tham số của phân bố xác suất Zipf.
Trong thí nghiệm đầu tiên, các khóa truy vấn đặt vào một nút theo hai dạng Uniform và Zipf với tham số = 0,8. Trong mỗi vịng của thí nghiệm, tốc độ truy vấn trung bình đặt vào một nút 20 truy vấn/giây. Chúng tôi đếm số
truy vấn định tuyến thành công bởi các nút quy vấn. Thời gian sống trung bình của một nút tương ứng là 15 phút, 30 phút, 60 phút, 120 phút và 180 phút. Tham số ngưỡng mềm T được đặt bằng 50% khả năng định tuyến của
một nút.
Hình 3.4. Tỷ lệ truy vấn thành cơng khi thay đổi thời gian sống trung bình của nút
Kết quả thí nghiệm được vẽ trong hình 3.4 cho thấy tỷ lệ thành công của thuật tốn CA-Chord do chúng tơi đề xuất cao hơn thuật toán Chord 42% đối
Khi thời gian sống trung bình của một nút thấp, các nút vào ra mạng thường xuyên, độ ổn định của mạng không cao, các nút thường xuyên phải cập nhật lại bảng định tuyến, bảng định tuyến của một nút bị lỗi nhiều hơn, do đó tỷ lệ thành công các câu truy vấn của các thuật tốn khơng cao. Khi thời gian sống trung bình của các nút trong mạng cao, các nút tồn tại trong mạng với thời gian dài, độ ổn định của mạng được nâng lên, bảng định tuyến của các nút ổn định hơn, do đó tỷ lệ thành cơng các câu truy vấn trong các thuật toán được nâng lên.
Thí nghiệm thứ hai chúng tơi đánh giá tỷ lệ thành công của các câu truy vấn dữ liệu khi thay đổi số lượng truy vấn trung bình được đặt vào một nút với số lượng được thay đổi từ 0.01, 0.1, 1, 10, 100 truy vấn/giây. Thời gian sống trung bình của một nút được giữ cố định là 1 giờ. Các khóa truy vấn được tạo ra theo phân bố Uniform và Zipf với = 0,8. Tham số ngưỡng mềm
T được đặt bằng 50% khả năng định tuyến của một nút.
Kết quả thí nghiệm được vẽ trong hình 3.5. Khi số lượng truy vấn đặt vào mỗi nút là thấp, số nút tắc nghẽn trong mạng ít, do đó tỷ lệ thành cơng của hai thuật toán là gần 100%. Khi số lượng truy vấn đặt vào mỗi nút tăng, trong mạng tồn tại nhiều nút tắc nghẽn, các truy vấn tiếp theo đi qua nút tắc nghẽn sẽ dừng lại ở nút tắc nghẽn và khơng đến được đích. Thuật tốn Chord khơng có cơ chế xử lý tắc nghẽn do đó tỷ lệ truy vấn thành cơng của các câu truy vấn giảm đáng kể. Trong khi đó, với thuật tốn CA-Chord, nhờ có cơ chế thay thế một nút tắc nghẽn bởi một nút không tắc nghẽn khi một nút tắc nghẽn xảy ra, cho nên các truy vấn tiếp sẽ được định tuyến theo tuyến đường mới để đến đích do đó làm tăng tỷ lệ truy vấn thành cơng.
Hình 3.5. Tỷ lệ thành cơng với số truy vấn đặt vào mỗi nút thay đổi Với số lượng truy vấn trung bình được đặt vào một nút là 100 câu truy vấn, tỷ lệ truy vấn thành cơng của thuật tốn đề xuất tốt hơn thuật tốn Chord là 32% và 41% tương ứng với truy vấn Zipf và Uniform.
Thí nghiệm thứ ba được tiến hành để đánh giá ảnh hưởng của ngưỡng tắc nghẽn mềm đến tỷ lệ truy vấn thành cơng. Trong thí nghiệm này, số lượng
bình của một nút là 1 giờ. Ngưỡng tắc nghẽn mềm T đặt vào một nút được
thay đổi. Các khóa truy vấn đặt vào một nút được thực hiện theo hai dạng: phân bố Uniform và phân bố Zipf với = 0,8. Kết quả của thí nghiệm được vẽ trong Hình 3.6.
Hình 3.6. Tỷ lệ thành cơng của các truy vấn khi thay đổi ngưỡng mềm Khi giá trị ngưỡng tắc nghẽn mềm T được đặt ở mức thấp (nhỏ hơn 30% khả năng định tuyến của một nút) và mức cao (lớn hơn 70% khả năng định tuyến của một nút), tỷ lệ truy vấn thành công thấp hơn khi giá trị ngưỡng tắc nghẽn mềm nằm trong khoảng từ 40% đến 60% khả năng định tuyến của một nút. Khi giá trị ngưỡng mềm T được đặt ở mức thấp, một nút chuyển sang
trạng thái xử lý tắc nghẽn sớm làm ảnh hưởng đến hiệu suất hoạt động của hệ thống. Khi giá trị T được đặt ở mức cao, một nút chuyển sang trạng thái tắc
nghẽn chậm. Trong trường hợp này số lượng gói tin bị loại bỏ tăng lên. CA- Chord đạt được hiệu suất tốt nhất khi giá trị của T là 50% khả năng định tuyến của một nút.
Thí nghiệm thứ tư chúng tôi đánh giá khả năng đáp ứng của các thuật toán đối với các truy vấn dạng Zipf. Trong thí nghiệm này, số lượng các câu truy vấn đặt vào một nút trung bình là 20 truy vấn/giây, tham số ngưỡng mềm
T là 50% khả năng định tuyến của một nút, thời gian sống trung bình của một
nút là 1 giờ. Các khóa truy vấn được tạo bởi phân bố xác suất Zipf với giá trị
là 0.8, 1,2, 2,4 và 4,8.
Hình 3.7. Ảnh hưởng của tham số Zipf đến tỷ lệ thành công của truy vấn Các kết quả của thí nghiệm được vẽ trong hình 3.7 cho thấy thuật tốn đề xuất hoạt động tốt hơn thuật toán Chord với truy vấn Zipf khoảng 20%. Khi tham số thấp ( = 0,8 và = 1,2) các khóa truy vấn phân bố tương đối
đồng đều. Do đó, các thuật tốn Chord và CA-Chord nhận được tỷ lệ truy vấn thành công cao. Thuật tốn CA-Chord, nhờ có cơ chế thay thế nút tắc nghẽn bằng nút khơng tắc nghẽn do đó tỷ lệ thành cơng của CA-Chord là cao hơn thuật toán Chord. Tuy nhiên, khi tham số cao, mức độ phổ biến của một số khóa tăng lên. Trong trường hợp này, một số khóa có tần suất truy vấn cao, một số khóa có tần suất truy vấn thấp hơn. Do đó, trong mạng tồn tại nhiều
nút bị tắc nghẽn khơng có khả năng định tuyến câu truy vấn làm cho tỷ lệ truy vấn thành công thấp.
3.4.2.2. Đánh giá số bước chuyển tiếp truy vấn
Các thí nghiệm tiếp theo chúng tơi đánh giá số bước (tức là các nút) cần thiết để chuyển tiếp truy vấn. Thời gian sống trung bình của một nút được giữ cố định là 1 giờ, ngưỡng tắc nghẽn mềm T được đặt cố định bằng 50% khả năng định tuyến của một nút. Số lượng câu truy vấn trung bình đặt vào một nút thay đổi tương ứng là 0,01; 0,1; 1; 10; 100 truy vấn/giây. Khóa truy vấn được phân bố theo hai dạng Uniform và Zipf với =0,8.
Các kết quả được vẽ trong hình 3.8 cho thấy khi số truy vấn đặt vào một nút thấp, các nút trong mạng chưa bị tắc nghẽn do đó thuật tốn CA-Chord xử