Hình 2 .7 Giả mã của thuật tốn ThresholdPlus
Hình 2.10 Truy vấn đặt vào các nút ở dạng phân bố Zipf
2.4.2.4. Đánh giá chi phí của các thuật tốn cân bằng tải
Chi phí của các thuật tốn cân bằng tải được đánh giá bằng số thông báo phát ra để tìm kiếm các nút nhẹ tải trong quá trình thực hiện cân bằng tải. Chi phí này được đánh giá thơng qua các mơ phỏng. Số thông báo này được đếm và ghi lại trong toàn bộ thời gian thực hiện mơ phỏng, sau đó được tính trung bình trong một giây. Trong mô phỏng chúng tôi giữ cố định thời gian sống
của một nút là 30 phút, thay đổi số truy vấn đặt vào một nút lần lượt là 10, 20, 40, 60, 80, 100 truy vấn/giây. Khóa truy vấn đặt vào các nút được thực hiện dưới dạng Uniform và Zipf. Thời gian thực hiện thí nghiệm trong 1 giờ. Kết quả thí nghiệm được vẽ trong hình 2.13.
Uniform: tốc độ gửi truy vấn thay đổi
Zipf: tốc độ gửi truy vấn thay đổi
Hình 2.11. Chi phí của các thuật tốn cân bằng tải Kết quả thí nghiệm cho thấy:
- Khi số lượng truy vấn đặt vào một nút ở tỷ lệ thấp, trong mạng tồn tại nhiều nút nhẹ tải và ít nút nặng tải. Với thuật tốn đề xuất, số thơng báo của
tải ít. Trong khi đó, với thuật tốn Threshold số thơng báo tìm kiếm nút nhẹ tải của thuật tốn ít. Thuật toán đề xuất hoạt động không hiệu quả trong trường hợp này.
- Khi số lượng truy vấn đặt vào một nút tăng dần, trong mạng tồn tại nhiều nút nặng tải và ít nút nhẹ tải, việc thực hiện cân bằng tải được thực hiện nhiều hơn. Với thuật tốn đề xuất, số lượng thơng báo của nút nhẹ tải cho thư mục giảm, số lượng thông báo truy vấn thư mục để tìm nút nhẹ tải tăng. Số lượng thơng báo tìm kiếm nút nhẹ tải của thuật tốn Threshold ban đầu tăng nhanh. Trong trường hợp này, thuật toán đề xuất hoạt động hiệu quả hơn thuật toán Threshold ban đầu rất nhiều. Khi số truy vấn đặt vào một nút đạt ngưỡng 100 truy vấn/giây, chi phí của thuật tốn đề xuất chỉ bằng một nửa chi phí của thuật tốn Threshold ban đầu.
2.5. Kết luận
Chương 2 của luật án đã trình bày một số nghiên cứu liên quan về cân bằng tải trong mạng ngang hàng có cấu trúc và đề xuất một thuật tốn để nâng cao khả năng cân bằng tải xử lý các câu truy vấn của các nút trong mạng, tăng tỷ lệ thành công của các câu truy vấn qua đó nâng cao hiệu năng hoạt động cho mạng ngàng có cấu trúc.
Thuật tốn cân bằng tải đề xuất có hai đóng góp chính: thứ nhất, thuật
toán xem xét cả tải tìm kiếm các nút nhẹ tải trong quá trình thực hiện cân bằng tải. Thứ hai, thuật tốn chỉ mất thời gian hằng số để tìm kiếm chính xác và nhanh chóng một nút nhẹ tải cho q trình thực hiện cân bằng tải, do đó làm giảm số thơng báo tìm kiếm nút nhẹ tải.
Thuật toán đề xuất được đánh giá, so sánh với thuật tốn Threshold
ngun thuỷ trên các tiêu chí tỷ lệ truy vấn thành cơng và chi phí tìm kiếm nút nhẹ tải. Trong các điều kiện thí nghiệm như nhau, thuật tốn đề xuất có tỷ lệ
truy vấn thành cơng cao hơn so với thuật tốn Threshold khoảng 12%. Đồng thời chi phí cho việc thực hiện cân bằng tải giảm xuống khi số lượng truy vấn đặt vào một nút tăng lên, có nghĩa là thuật tốn đề xuất thích hợp cho hệ thống hoạt động ở ngưỡng tải nặng.
Kết quả nghiên cứu và thuật tốn chúng tơi đề xuất được cơng bố trong báo cáo khoa học tại hội thảo quốc gia về CNTT năm 2009 với tên gọi:
“Nâng cao hiệu quả của thuật toán cân bằng tải theo ngưỡng trong mạng ngang hàng có cấu trúc”.
Chương 3. ĐIỀU KHIỂN TẮC NGHẼN TRONG MẠNG NGANG HÀNG CÓ CẤU TRÚC
Các câu truy vấn trong mạng ngang hàng có cấu trúc được định tuyến qua nhiều nút khác nhau từ nút nguồn (nút phát câu truy vấn) đến nút đích (nút quản lý khóa truy vấn). Do tính khơng đồng nhất về khả năng định tuyến của các nút trong mạng cho nên xuất hiện tình trạng một số nút nhận được quá nhiều yêu cầu định tuyến truy vấn so với khả năng của nó. Điều này dẫn đến hiện tượng tắc nghẽn mạng tại một số nút, làm cho các câu truy vấn khơng đến được đích, gây ảnh hưởng đến hiệu năng hoạt động của hệ thống mạng. Để cải thiện hiệu năng hoạt động của mạng ngang hàng có cấu trúc, ngoài vấn đề cân bằng tải xử lý truy vấn đã giải quyết trong chương 2, cần phải giải quyết vấn đề tắc nghẽn tại các nút trong mạng khi thực hiện định tuyến truy vấn.
Chương 3 trình bày về điều khiển tắc nghẽn trong mạng ngang hàng có cấu trúc và đề xuất thuật tốn điều khiển tắc nghẽn trong mạng ngang hàng có cấu trúc. Thuật tốn điều khiển tắc nghẽn góp phần nâng cao tỷ lệ thành cơng của các cấu truy vấn qua đó nâng cao hiệu năng hoạt động của mạng ngang hàng có cấu trúc. Nội dung của chương 3 gồm các vấn đề sau:
- Các nghiên cứu liên quan về điều khiển tắc nghẽn trong mạng ngang hàng có cấu trúc.
- Thuật tốn điều khiển tắc nghẽn đề xuất. - Phân tích và đánh giá thuật toán.
3.1. Đặt vấn đề
Bảng băm phân tán (DHT) là kiến trúc hiệu quả để lưu trữ và tìm kiếm dữ liệu trong các mạng ngang hàng có cấu trúc. Thuật toán trong DHT xác định vị trí dữ liệu thơng qua một định danh (ví dụ: khóa) trong khơng gian định danh. Mỗi nút chịu trách nhiệm quản lý một khoảng không gian liên tục các định danh. Thao tác cơ bản của DHT là tìm kiếm một định danh và trả lại địa chỉ (địa chỉ IP và địa chỉ cổng) của nút quản lý định danh đó. Mỗi nút trong hệ thống duy trì một bảng định tuyến để chuyển tiếp các truy vấn mà nó khơng quản lý. Các DHT, như P-Grid [45], Chord [21] hoặc Pastry [22] tạo các bảng định tuyến để chuyển tiếp gói tin đến nút đích.
Trong những năm gần đây, DHT không chỉ được sử dụng cho các ứng dụng chia sẻ tệp tin mà còn được dùng trong xây dựng hệ thống truy vấn thông tin ngang hàng (P2P-IR - P2P Information Retrieval) [46]. Trong các hệ thống P2P-IR, DHT phải xử lý rất nhiều gói tin trong thời gian ngắn, làm tăng đáng kể tải hệ thống. Tối ưu hóa phương pháp định tuyến trong các mạng DHT là một yêu cầu quan trọng đối với các hệ thống P2P-IR. Hơn nữa, khi một nút nhận được một số truy vấn vượt quá khả năng định tuyến sẽ xảy ra sự cố tắc nghẽn trong mạng. Nếu khơng có cơ chế kiểm sốt tắc nghẽn thích hợp, các câu truy vấn tiếp theo đến hoặc đi qua nút này sẽ không đến được đích. Do đó, làm giảm tỷ lệ thành cơng của các câu truy vấn và dẫn tới làm giảm hiệu năng hoạt động của hệ thống mạng ngang hàng có cấu trúc.
Điều khiển tắc nghẽn trong DHT hoạt động ở lớp trên và độc lập với các cơ chế điều khiển tắc nghẽn của TCP. DHT thường sử dụng các thuật toán tham lam để định tuyến các gói tin trong mạng, trong đó một nút ln lựa chọn nút láng giềng gần nhất để chuyển tiếp gói tin tới nút đích. Các mạng
giống nhau, độ ổn định của các nút không cao và các nút phải chia sẻ CPU và tài nguyên mạng cho các tiến trình khác đang chạy trong cùng thời điểm đó, v.v. Do đó, việc chọn các nút lân cận để chuyển tiếp các gói tin đến đích có thể khơng đáp ứng với sự thay đổi tải hệ thống trong mạng DHT.
Các nghiên cứu điều khiển tắc nghẽn trong mạng P2P được thực hiện theo hai hướng: hạn chế tốc độ gửi truy vấn của các nút gửi hoặc thay đổi tuyến đường đi của thông điệp để tránh tắc nghẽn. Một số nghiên cứu tiêu biểu về điều khiển tắc nghẽn là CSCC [47] (Credit System Congestion Control), BPCC [47] (Back-Pressure Congestion Control) và CCLBR [48]. Các nghiên cứu này có đặc điểm chung là sử dụng bảng định tuyến cố định và kiểm sốt tắc nghẽn bằng cách giảm tốc độ gửi gói tin hoặc sử dụng đường đi khác trong bảng định tuyến và không tính đến khả năng xử lý của các nút trong mạng. Do đó, chúng có thể làm giảm tốc độ truyền của mạng khi xảy ra tắc nghẽn.
Chương này đề xuất một thuật toán điều khiển tắc nghẽn trong mạng ngang hàng có cấu trúc bằng cách thay đổi bảng định tuyến của một nút dựa trên trạng thái của các nút tiếp theo trong đường định tuyến. Khi một nút nhận được truy vấn, đầu tiên nó kiểm tra trạng thái tắc nghẽn của nó dựa trên khả năng định tuyến của nút và sau đó gửi thơng tin phản hồi về trạng thái tắc nghẽn cho nút gửi nếu nó bị tắc nghẽn. Mỗi nút gửi sẽ theo dõi thông tin phản hồi tắc nghẽn được gửi từ các nút tắc nghẽn và thay thế nút tắc nghẽn bởi nút không tắc nghẽn trên đường đi của gói tin. Thuật tốn đề xuất cho phép các nút nhanh chóng thích ứng với tuyến đường mới để tránh các phần còn lại của mạng bị quá tải. Do đó, phương pháp này có thể sử dụng hiệu quả băng thông mạng và tài nguyên của các nút không tắc nghẽn mà không ảnh hưởng đến hiệu năng định tuyến của tồn bộ mạng.
Thuật tốn đề xuất có ba đóng góp chính. Thứ nhất, đề xuất phương
pháp phát hiện tắc nghẽn dựa trên khả năng định tuyến của một nút trước khi một nút loại bỏ gói tin do tắc nghẽn xảy ra. Thứ hai, khi phát hiện một nút bị tắc nghẽn, nút định tuyến sẽ thay thế nút tắc nghẽn bằng nút không tắc nghẽn trong bảng định tuyến dựa trên các thông tin nhận được. Cuối cùng, phương pháp xử lý khi một nút hết tắc nghẽn đưa mạng trở lại trạng thái định tuyến ban đầu khi tỷ lệ truy vấn giảm và nút tắc nghẽn trở lại trạng thái không tắc nghẽn. Thuật toán đề xuất được đánh giá thông qua một số thí nghiệm mơ phỏng hoạt động trên một hệ thống mạng gần với hệ thống mạng thực. Trong mơ phỏng đánh giá thuật tốn, khả năng định tuyến của các nút tham gia vào mạng là không giống nhau và thời điểm ra/vào của các nút được xác định theo phân bố xác suất Pareto. Kết quả mơ phỏng cho thấy thuật tốn điều khiển tắc nghẽn chúng tôi đề xuất đạt được tỷ lệ truy vấn thành công cao hơn so với thuật toán định tuyến trong giao thức Chord ban đầu khoản trên 40%.
3.2. Các nghiên cứu liên quan
Các nghiên cứu liên quan đến điều khiển tắc nghẽn trong mạng ngang hàng có cấu trúc chủ yếu tập trung vào hai hướng: kiểm soát tốc độ và điều khiển bảng định tuyến. Trong hướng kiểm soát tốc độ, tốc độ gửi truy vấn bị giới hạn ở nút truy vấn khi một nút trong đường định tuyến bị quá tải. Các phương pháp tiêu biểu cho hướng này gồm: phương pháp CSCC [47], phương pháp BPCC [47] và phương pháp Marking [49]. Trong phương pháp CSCC, khi nút đích nhận được một gói tin, nó trả lời nút truy vấn bằng một gói tin
ACK. Tại nút trung gian chuyển tiếp gói tin, một hàng đợi được duy trì để lưu
trữ các truy vấn đến. Khi hàng đợi đạt đến ngưỡng, các truy vấn gửi đến tiếp theo sẽ bị loại bỏ mà không thông báo cho các nút gửi truy vấn.
Trong phương thức BPCC, mỗi nút duy trì một hàng đợi cho các truy vấn gửi đến. Khi nó nhận được một gói tin, nếu hàng đợi đạt đến giới hạn, nó sẽ gửi trạng thái hàng đợi của nó cho nút gửi. Nút gửi sẽ tự động điều chỉnh tốc độ gửi để tránh tắc nghẽn. Khi hàng đợi tại nút n đầy, nó sẽ tạm dừng đọc gói tin từ socket TCP của các kết nối đến thay vì từ chối gói tin. Sau đó, thuật tốn điều khiển luồng trong TCP sẽ tự động làm chậm việc gửi truy vấn đến n.
Trong phương pháp Marking, mỗi nút tổ chức một hàng đợi cho các truy vấn gửi đến và trả về trạng thái nghẽn bằng cách thêm một cờ h vào tiêu đề gói tin. Mục đích là để giữ các nút được chia sẻ tài nguyên với các nút khác đang bị nút cổ chai một cách công bằng mà không làm quá tải nút đang tắc nghẽn. Theo mặc định, cờ h bị tắt khi gói tin truy vấn được tạo. Cờ h tắt cho biết trạng thái mạng không tắc nghẽn và ngược lại. Mỗi nút thêm một giá trị x vào gói tin để biểu diễn tốc độ truy vấn hiện tại của nó. Mỗi nút lưu trữ số gói tin trung bình xavg, được tính tốn trên các giá trị nhận được từ một số gói tin trước đó. Cờ h được kích hoạt hoặc vơ hiệu hóa với xác suất q được xác định bằng cách xem xét tốc độ gói tin có đến nhanh hơn hay chậm hơn so với giá trị trung bình xavg và giá trị trung bình của kích thước hàng đợi. Khi cờ h được bật, nó sẽ khơng được tắt dọc theo đường đi đến đích cuối cùng. Nút đích sao chép giá trị của h vào gói ACK và trả nó về nút gửi truy vấn. Khi một nút
nhận được một gói ACK với cờ h bị tắt, nghĩa là mạng khơng có tắc nghẽn, nó sẽ tăng tốc truy vấn. Nếu cờ h đang bật, nó sẽ giảm tốc độ truy vấn. Tốc độ
truy vấn được tăng dần và giảm dần theo cấp số nhân.
Do phương pháp Marking khơng loại bỏ các gói tin, có cơ chế đơn giản cho việc gửi trạng thái tắc nghẽn tới nút nguồn, cho nên thông lượng của phương pháp này tốt hơn và thời gian phản hồi truy vấn nhanh hơn so với hai phương thức CSCC và BPCC.
Theo hướng nghiên cứu định tuyến dựa trên trạng thái của mỗi nút trong bảng định tuyến, đường đi của gói tin được thay đổi để đi các nút ít tắc nghẽn hơn. Trong phương pháp Adaptive Routing [50], thay vì chọn nút gần nhất với khóa, nó chọn m nút gần khóa và theo dõi hiệu năng của các nút đó để xác định đường đi tốt nhất. Nút gửi truy vấn sử dụng cờ tắc nghẽn h để xác định khả năng sử dụng của mỗi tuyến đường định tuyến qua m nút gần khóa đã
chọn. Từ giá trị h nhận được, mỗi nút tính tốn xác suất (được gọi là op) quan sát h trên mỗi đường đi. Dựa trên giá trị xác suất này, mỗi nút sẽ di chuyển lưu lượng định tuyến thông qua các đường dẫn khác nhau để tăng thơng lượng trên tồn mạng. Mỗi nút cập nhật giá trị op khi một truy vấn mới được thực
hiện. Khi nút chuyển tiếp truy vấn đến các nút khác, các nút sẽ chia lưu lượng truy cập theo các hướng khác nhau dựa trên việc tính tốn dung lượng của từng tuyến đường. Nhược điểm của phương pháp Adaptive Routing là khi muốn tăng số lượng đường định tuyến ta phải tăng kích thước của bảng định tuyến, điều này sẽ tiêu tốn tài ngun của hệ thống. Ngồi ra, việc khơng sử dụng các phương thức định tuyến tham lam sẽ làm tăng số lượng gói tin được truyền qua mạng.
Các cách tiếp cận khác bao gồm CCLBR [48], các phương pháp trong [49], [51] và [52]. CCLBR [48] đã đề xuất một phương pháp nhóm tài nguyên và một chiến lược định hướng lại (rewiring) để tự tổ chức và phân cụm các nút có tài nguyên giống nhau. Sau đó, một phương pháp học cộng tác (collaborative Q-learning) được đề xuất để cân bằng tải truy vấn giữa các nút trong nhóm để tránh các truy vấn được chuyển tiếp tới các nút bị tắc nghẽn trong mạng một cách thông minh. Nghiên cứu [49] có thể đạt được thơng lượng mạng cao, nhưng mỗi nút phải chi phí tài ngun của nó để quản lý sự gia tăng kích thước của bảng định tuyến. Nghiên cứu [51] đề xuất cơ chế định
hướng khác, nghiên cứu [52] đề xuất một mơ hình tối ưu hóa lưu lượng mạng P2P với khoảng cách tắc nghẽn và giới thiệu một sơ đồ tối ưu hóa dựa trên khoảng cách tắc nghẽn và bảng băm phân tán.
Nghiên cứu [65] đề xuất cơ chế bảng định tuyến động (ERT - Elastic Routing Table) để tạo ra các đường định tuyến khác nhau đến đích tránh tắc nghẽn. Bảng định tuyến có cấu trúc khơng cố định như bảng định tuyến hiện