DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ MANET Mobile adhoc network Mạng tự hợp di động NS-2 Network Simulator 2 Bộ công cụ giả lập mạng phiên bản 2 NAM Network Animator Công cụ hình hóa mô
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNGĐẠI HỌC CÔNG NGHỆ
NGUYỄN TRUNG HẢI
ĐỊNH TUYẾN ĐA PHÁT DỰA TRÊN BẢO TRÌ TỐI ƯU CÂY KHUNG TRONG CÁC MẠNG TỰ HỢP DI ĐỘNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2010
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNGĐẠI HỌC CÔNG NGHỆ
NGUYỄN TRUNG HẢI
ĐỊNH TUYẾN ĐA PHÁT DỰA TRÊN BẢO TRÌ TỐI ƯU CÂY KHUNG TRONG CÁC MẠNG TỰ HỢP DI ĐỘNG
Trang 3
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN i
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ 1
DANH MỤC CÁC BẢNG BIỂU 2
DANH MỤC HÌNH VẼ 3
CHƯƠNG 1 - GIỚI THIỆU CHUNG 5
1.1 Mở đầu 5
1.2 Vấn đề nghiên cứu 6
1.3 Phương pháp luận 7
1.4 Tổ chức luận văn 8
CHƯƠNG 2 - ĐA PHÁT TRONG MẠNG MANET 9
2.1 Giới thiệu 9
2.2 Mạng tự hợp di động và các vấn đề khi thiết kế giao thức đa phát 11
2.3 Phân loại các giao thức định tuyến đa phát 14
2.4 Multicast Ad hoc On-demand Distance Vector – MAODV 16
2.5 On-Demand Multicast Routing Protocol - ODMRP 18
2.6 Giao thức PUMA và ROMANT 19
2.7 Kết luận 22
CHƯƠNG 3 - XÂY DỰNG VÀ BẢO TRÌ TỐI ƯU CÂY KHUNG TRONG MẠNG ĐỘNG 23
3.1 Mở đầu 23
3.2 Phát biểu bài toán 23
Trang 43.3 Giải thuật GHS-83 24
3.4 Giải thuật bảo trì cây khung trong mạng động 32
3.5 Kết luận 46
CHƯƠNG 4 - CẢI TIẾN GIẢI THUẬT BẢO TRÌ TỐI ƯU CÂY KHUNG TRONG MẠNG ĐỘNG 47
4.1 Đặt vấn đề 47
4.2 Tư tưởng giải thuật OMST cải tiến 48
4.3 Chi tiết giải thuật OMST cải tiến 51
4.4 Ví dụ minh họa 56
4.5 Chứng minh tính đúng đắn của giải thuật OMST cải tiến 61
4.6 Độ phức tạp thông báo của giải thuật OMST cải tiến 62
4.7 Đơn giản hóa cài đặt danh sách “cây ảo” 63
4.8 Cải tiến cách thức xây dựng “cây ảo” trong mạng MANET 65
CHƯƠNG 5 - XÂY DỰNG VÀ BẢO TRÌ TỐI ƯU CÂY KHUNG ĐA PHÁT TRONG MẠNG MANET 67
5.1 Đặt vấn đề 67
5.2 Tư tưởng của giải pháp 67
5.3 Giải thuật chi tiết 72
5.4 Ví dụ minh họa 80
5.5 Chứng minh tính đúng đắn 86
5.6 Độ phức tạp thông báo 86
CHƯƠNG 6 - ĐÁNH GIÁ GIẢI PHÁP MỚI 87
6.1 Môi trường mô phỏng và các tham số 87
6.2 Chứng minh tính đúng đắn của giải thuật 88
6.3 Đánh giá hiệu quả truyền phát thành công 90
6.4 Đánh giá độ trễ trung bình truyền thông 94
Trang 56.5 Đánh giá tỉ lệ phụ tải 95
6.6 Đánh giá trung bình số gói tin điều khiển 96
6.6 Nhận xét 98
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 99
6.1 Kết luận 99
6.2 Hướng nghiên cứu tiếp theo 100
TÀI LIỆU THAM KHẢO 101
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
MANET Mobile adhoc network Mạng tự hợp di động
NS-2 Network Simulator 2 Bộ công cụ giả lập mạng phiên
bản 2 NAM Network Animator Công cụ hình hóa mô phỏng
mạng
IP Internet Protocol Giao thức định tuyến cho mạng
Internet HTTP Hyper Text Transfer
Giao thức phân giải địa chỉ
MZRP Multicast Zone Routing
Prototol
Giao thức định tuyến đa phát theo vùng
MAODV Multicast Adhoc
On-demand Distance Vector
Giao thức định tuyến đa phát theo yêu cầu dựa theo vector khoảng cách
AMRIS Ad hoc Multicast Routing
protocol utilizing Increasing id-numberS
Giao thức định tuyến đa phát bằng các sử dụng chỉ số ID tăng dần
ODMRP On-Demand Multicast
RREQ Route Request Yêu cầu định tuyến
MST Minimum Spanning Tree Cây khung nhỏ nhất
OMST Optimal Maintenance of
Cây khung đa phát
PUMA Protocol for Unified
Multicasting through Annoucements
Giao thức cho đa phát hợp nhất dựa vào các bản tin thông báo
ROMANT Robust Multicasting in
Adhoc Networks using Trees
Đa phát hiệu quả trong mạng tự hợp sử dụng cây
Trang 7DANH MỤC CÁC BẢNG BIỂU
Bảng 1: Thực hiện giải thuật OMST 38
Bảng 2: Thủ tục LOCAL-UPDATE 40
Bảng 3: Thủ tục FIND 42
Bảng 4: Thủ tục CHANGE_ROOT 43
Bảng 5: Thủ tục MERGE 44
Bảng 6: Thực hiện giải thuật OMST cải tiến 51
Bảng 7: Thủ tục UPDATE 52
Bảng 8: Thủ tục UPDATED 53
Bảng 9: Thủ tục FIND 54
Bảng 10: Thủ tục FOUND 55
Bảng 11: Thủ tục SET_DATALINK 77
Bảng 12: Thủ tục CANCEL_DATALINK 78
Bảng 13: Cấu hình môi trường giả lập 87
Trang 8DANH MỤC HÌNH VẼ
Hình 1: Đơn phát (trái), phát tỏa (giữa) và đa phát (phải) 9
Hình 2: Đa phát mạng chồng (trái) và đa phát tầng mạng (phải) 10
Hình 3: Một mạng tự hợp di động đơn giản 11
Hình 4: Phân loại các giao thức định tuyến đa phát 14
Hình 5: Phân loại định tuyến theo hình trạng mạng 15
Hình 6: Phân loại định tuyến đa phát theo cơ chế bảo trì hình trạng 16
Hình 7: Hoạt động giao thức MAODV 17
Hình 8: Giao thức ODMRP 19
Hình 9: Khởi tạo lưới trong mạng bằng giao thức PUMA 21
Hình 10: Khởi tạo cây chia sẻ trong giao thức ROMANT 21
Hình 11: Minh họa chứng minh định lí 3.1 25
Hình 12: “Rừng ảo” lưu tại nút u 34
Hình 13: Mảnh A chọn liên kết ngoài có trọng số 2 36
Hình 14: Mảnh B chọn liên kết ngoài có trọng số 1 (mới được thêm vào) 36
Hình 15: Gửi thông báo thêm cạnh u-t cho nút right 41
Hình 16: Gửi thông báo thêm cạnh u-t và xóa cạnh u-s 41
Hình 17: Danh cách cây ảo tại nút 6 41
Hình 18: Danh cách cây ảo tại nút 6 50
Hình 19: Đồ thị vô hướng trước khi kết hợp 56
Hình 20: Hình trạng mạng sau khi mảnh MST kết hợp với nút 2 thông qua nút 1 57
Hình 21: Cây khung dựng được sau khi kết thúc 58
Hình 22: Liên kết 3-4 bị đứt gãy 59
Hình 23: Hình trạng mạng sau khi kết hợp trở lại 60
Hình 24: Minh họa chứng minh định lí 4.2 62
Hình 25: Giá trị node_map tương ứng với “cây ảo” 64
Hình 26: Mô tả các khái niệm trong cây khung đa phát 69
Trang 9Hình 27: Các loại liên kết với nút hàng xóm 70
Hình 28: Trước và sau khi thực hiện thủ tục SET_DATALINK 78
Hình 29: Xóa bỏ các liên kết Data_Link không cần thiết 79
Hình 30: Hình trạng mạng cần xây dựng cây khung đa phát 80
Hình 31: Hình trạng cây MST sau khi nút 0 mở rộng với nút 3 81
Hình 32: Hình trạng cây khung sau khi nút 0 kết hợp với nút 4 83
Hình 33: Cây khung STM sau khi kết hợp với nút 2 84
Hình 34: Cây STM hoàn chỉnh 85
Hình 35: Quá trình kết hợp các mảnh 88
Hình 36: Quá trình kết hợp thành công 89
Hình 37: Cây khung bị đứt gãy liên kết 89
Hình 38: Cây khung được bảo trì thành công 90
Hình 39: Biểu đồ tỉ lệ truyền thành công theo thời gian 91
Hình 40: Biểu đồ tỉ lệ truyền thành công theo tốc độ nút 92
Hình 41: Biểu đồ tỉ lệ truyền thành công theo số nút phát 93
Hình 42: Biểu đồ độ trễ trung bình theo tốc độ nút và số lượng nút tham gia 94
Hình 43: Biểu đồ độ trễ theo số nút phát 94
Hình 44: Biểu đồ tỉ lệ phụ tải theo thời gian và số nút tham gia 95
Hình 45: Biểu đồ tỉ lệ phụ tải theo tốc độ nút và số nút phát 96
Hình 46: Biểu đồ trung bình thông điệp điều khiển theo thời gian và số nút 97
Trang 10CHƯƠNG 1 - GIỚI THIỆU CHUNG
1.1 Mở đầu
Với sự phát triển không ngừng của các thiết bị máy tính cá nhân xách tay
và các thiết bị truyền dữ liệu không dây với giá thành ngày càng rẻ, truyền thông không dây giữa những người dùng di động đang càng ngày càng trở nên phổ biến, với mức nhu cầu truyền nhận dữ liệu càng cao, như truyền dữ liệu đa phương tiện, dữ liệu hội nghị truyền hình… Do tính chất di động của các thiết
bị, đôi khi việc thiết lập mạng truyền không cần sự giúp đỡ của các thiết bị hạ tầng cơ sở cố định, như các trạm phát cơ sở (base station) hoặc điểm truy cập (access point) Thay vào đó, người dùng có thể thiết lập các mạng không dây di động ngang hàng của riêng họ Những mạng này được gọi là mạng tự hợp di động (mobile ad hoc network- MANET)
Năm 2003, Chlamtac, Conti và Liu [1] đã đưa ra khái niệm chính thức về mạng MANET, là mạng động tạm thời được thiết lập bằng một tập hợp các nút mạng không dây di động tự trị mà không cần bất kì sự hỗ trợ về cơ sở hạ tầng mạng cố định cũng như hỗ trợ về quản lí tập trung Các nút mạng tự do di chuyển một cách ngẫu nhiên và tự tổ chức chính nó bằng một số qui luật chung,
do đó, hình trạng mạng có thể thay đổi một cách đột ngột và không thể đoán trước Hơn nữa, các thiết bị không dây di động có sự hạn chế về không gian truyền, năng lượng và năng lực vi xử lí, làm cho toàn bộ mạng MANET có các đặc tính rất tự nhiên như mạng động, băng thông thấp, tỉ lệ mất gói cao, giới hạn năng lượng… (theo Kaliaperumal và Jeyakumar [2]) Do đó, vấn đề lựa chọn thiết kế giao thức truyền thông trong mạng MANET đóng vai trò cốt lõi để đảm bảo chất lượng dịch vụ mạng
Mạng MANET càng ngày càng có nhiều ứng dụng thực tế, như hội nghị nhóm, các ứng dụng khẩn cấp như cứu hộ, chia sẻ dữ liệu lớn Đặc biệt trong các ứng dụng chia sẻ dữ liệu, một nút mạng có thể chia sẻ dữ liệu cho rất nhiều nút lân cận cùng lúc, do bản chất truyền đa hướng của sóng không dây Tính chất này làm cho các ứng dụng chia sẻ dữ liệu và truyền thông kiểu phát tỏa (broadcast) và đa phát (multicast) được quan tâm nghiên cứu và phát triển nhiều hơn Trong đó, truyền thông đa phát có cách thức thực thi khó khăn và tốn chi phí nhiều hơn so với phát tràn, do phải có cơ chế điều khiển để không truyền dữ
Trang 11liệu tràn lan gây lãng phí băng thông mạng, mà chỉ truyền cho một số thành viên thuộc cùng nhóm truyền thông
Vì thế, nghiên cứu về đa phát và các giao thức định tuyến đa phát trong mạng MANET là một trong những hướng nghiên cứu thu hút được nhiều sự quan tâm Có nhiều các ý tưởng, giao thức và cách thức tiếp cận khác nhau được đưa ra, nhưng hiện nay vẫn chưa có một chuẩn chính thức được công nhận rộng rãi về mặt học thuật lẫn ứng dụng công nghiệp Luận văn này hướng đến nghiên cứu vấn đề một vấn đề quan trọng của định tuyến đa phát trong mạng MANET: duy trì và bảo toàn hình trạng mạng với chi phí tối thiểu, đảm bảo kết nối được liên tục và chất lượng, bằng hướng tiếp cận ứng dụng các kết quả nghiên cứu mới nhất trong lĩnh vực tính toán phân tán áp dụng cho mạng MANET, từ đó xây dựng nên một giao thức định tuyến đa phát mới, đáp ứng được yêu cầu của một giao thức định tuyến đa phát với kết quả tối ưu về một số thông số được trình bày ở các phần sau
1.2 Vấn đề nghiên cứu
Trong định tuyến đa phát, việc duy trì và bảo toàn hình trạng mạng nhằm đảm bảo sự truyền thông được liên tục và bảo đảm chất lượng dịch vụ là một vấn đề then chốt được hầu hết các nghiên cứu quan tâm đến Có nhiều tư tưởng
và hướng tiếp cận khác nhau được đặt ra để giải quyết vấn đề này Một trong những hướng tiếp cận cơ bản và có tính nền tảng là dựa theo lý thuyết đồ thị, trong đó xem xét mạng MANET là một đồ thị có trọng số vô hướng và mạng truyền dữ liệu là một cây nối tất cả các nút trong đồ thị Do từng tính chất của mạng MANET mà yêu cầu xây dựng cây có sự khác biệt, một số mạng chỉ truyền thông đa phát theo kiểu môt-nhiều, trong đó một nút gửi và nhiều nút nhận, lúc đó cây xây dựng hướng vào nút gửi (mô hình Source Based Tree); một
số mạng khác xem toàn bộ các nút trong cây là bình đẳng (mô hình Shared Tree)
và truyền thông theo kiểu nhiều-nhiều
Luận văn đặt ra vấn đề nghiên cứu truyền thông nhiều-nhiều, do các ứng dụng như hội nghị truyền hình, trong đó mọi thành viên đều có thể phát biểu và truyền dữ liệu, càng ngày càng trở nên phổ biến hơn, thay vì chỉ có một nguồn gửi dữ liệu duy nhất Theo lí thuyết đồ thị, bài toán trở thành xây dựng và bảo trì cây khung nhỏ nhất, lúc đó, chi phí về truyền dữ liệu sẽ được tối ưu nhất Tuy nhiên, cây khung dùng trong định tuyến đa phát (từ đây gọi là cây khung không đầy đủ hay cây khung đa phát) không giống hoàn toàn với cây khung nhỏ nhất thuần túy, lí do là chỉ có một số nút mạng thuộc nhóm đa phát để gửi nhận dữ
Trang 12liệu, một số nút khác chỉ đóng vai trò định tuyến và chuyển tiếp gói tin chứ không trực tiếp nhận dữ liệu, nếu áp dụng nguyên bản tư tưởng cây khung nối tất cả các nút mạng lại với nhau, thì sẽ không tối ưu về chi phí đường truyền nếu chuyển tiếp gói tin cho những nút không thuộc nhóm đa phát Do đó cần đưa ra một giải pháp tiên tiến hơn để giải quyết vấn đề trên
Một số nghiên cứu cũng đặt ra vấn đề tương tự, tuy nhiên hiệu suất của giao thức vẫn chưa tối ưu, chi phí phụ tải cho điều khiển mạng lớn Luận văn đưa ra một hướng tiếp cận hoàn toàn mới, áp dụng các thành tựu mới nhất trong lĩnh vực tính toán phân toán để đưa ra giao thức xây dựng và bảo trì cây khung
đa phát với chi phí tối thiểu hóa, cây khung đa phát được bảo trì là cây khung xấp xỉ nhỏ nhất có thể được
2 để làm số liệu so sánh đánh giá hiệu năng thực nghiệm với các giao thức phổ biến tương tự như MAODV[9] và PUMA[13], để chứng minh tính ưu việt về tỉ
lệ phát thành công gói tin, độ trễ thấp không hề thua kém các giao thức khác, thậm chí có những thông số ưu việt hơn, trong khi chi phí điều khiển giao thức lại thấp hơn rất nhiều Cuối cùng các kết luận và một số phương hướng cải tiến giao thức được đưa ra để hoàn thiện hơn giải pháp
Trang 131.4 Tổ chức luận văn
Luận văn được bố cục theo các chương chính sau:
- Chương 1: Giới thiệu: Cung cấp tổng quan về luận văn, từ vấn đề cần đặt
ra, đến hướng tiếp cận, cách thức tổ chức giải quyết vấn đề
- Chương 2: Trình bày chi tiết về đa phát và đa phát trong mạng MANET
- Chương 3: Trình bày sâu về bài toán xây dựng và bảo trì tối ưu cây khung trong mạng động
- Chương 4: Cải tiến giải thuật xây dựng và bảo trì tối ưu cây khung trong mạng động
- Chương 5: Đề xuất giải pháp mới cho vấn đề cây khung đa phát trong mạng MANET
- Chương 6: Các kết quả đạt được: Cài đặt, so sánh và đánh giá giải pháp mới
- Chương 7: Kết luận và các hướng nghiên cứu tiếp theo
Trang 14CHƯƠNG 2 - ĐA PHÁT TRONG MẠNG MANET
2.1 Giới thiệu
Trong mạng máy tính nói chung và mạng IP nói riêng, dữ liệu có thể được truyền phát bằng ba cách khác nhau: đơn phát, phát tỏa và đa phát Đơn phát là kiểu truyền thông đơn giản và phổ biến nhất, tạo ra liên kết dữ liệu một-một giữa hai thực thể mạng đơn Rất nhiều các ứng dụng hiện nay như HTTP, SMTP, FTP… dựa trên định tuyến đơn phát Phát tỏa là cơ chế phát từ một thực thể mạng cho toàn bộ các thực thể khác cùng thuộc mạng đó, tạo ra liên kết kiểu một-tất cả Các ứng dụng trên mạng diện rộng thường khó áp dụng cơ chế phát tỏa, thay vào đó, các ứng dụng ở mức cục bộ hóa, như ARP (Address Resolution Protocol) sử dụng cơ chế phát tỏa
Đa phát là khái niệm có thể xem như nằm giữa đơn phát và phát tỏa, trong
đó một thực thể mạng đơn có thể gửi dữ liệu cho nhiều (nhưng không phải tất cả) các thực thể mạng khác, tạo ra liên kết dữ liệu một-nhiều hoặc nhiều-nhiều Ứng dụng đa phát trở nên phổ biến hơn trong mạng máy tính xuất phát từ yêu cầu thực tế ngày càng nhiều, ví dụ việc phân phối cùng một nội dung (bản cập nhật phần mềm, hội nghị từ xa, cung cấp dịch vụ nội dung số ), đặc biệt là các
dữ liệu đa phương tiện có dung lượng lớn, làm cho vấn đềtối ưu hóa các giao thức định tuyến để đảm bảo chất lượng dịch vụ tốt nhất trở thành vấn đề then chốt trong nghiên cứu và triển khai các hệ thống truyền dữ liệu dựa trên đa phát
Hình 1: Đơn phát (trái), phát tỏa (giữa) và đa phát (phải)
Trang 15Cơ chế đa phát có thể đƣợc cài đặt thông qua các cơ chế khác nhau, trong
đó có hai cơ chế phổ biến: đa phát ở tầng mạng và đa phát ở tầng dứng dụng (đa phát mạng chồng – overlay multicast)
Đa phát mạng chồng [4] cho phép ảo hóa các kết nối đơn phát ở tầng mạng, gửi các gói tin dữ liệu từ một thực thể mạng qua các thực thể khác bằng các kết nối đơn phát độc lập Đa phát mạng chồng có ƣu điểm là có thể cài đặt ở tầng ứng dụng mà không cần có sự thay đổi ở các thiết bị định tuyếnởtầng mạng, bù lại hiện tƣợnglặp các gói dữ liệu trên dùng một liên kết đơn làm tăng chi phí truyền phát
Do các đặc điểm này, các nghiên cứu về đa phát ở tầng mạng nhận đƣợc nhiều sự chú ý hơn Trong cơ chế này, một gói dữ liệu (hoặc bản sao của nó) sẽ đƣợc gửi duy nhất một lần đến các router lân cận cho tới khi nào gói dữ liệu cần đƣợc sao thành các bản và gửi đến các router tiếp theo để đến đƣợc các thực thể đích Một cách trực quan, cơ chế định tuyến này mang lại hiệu năng mạng cao hơn, tuy nó yêu cầu các router trung gian phải hỗ trợ định tuyến Do có ƣu thế
về hiệu năng, luận văn này chỉ tập trung vào các vấn đề liên quan đến đa phát tầng mạng
Hình 2: Đa phát mạng chồng (trái) và đa phát tầng mạng (phải)
Với cơ chế này, vấn đề định tuyến là vấn đề cốt lõi nhất, và cũng là trọng tâm của luận văn này Các vấn đề khác của đa phát không liên quan đến định tuyến, nhƣ việc đánh địa chỉ, đã đƣợc trình bày chi tiết ở [4] và sẽ không đƣợc trình bày lại ở đây
Trong định tuyến tầng mạng, sẽ có các router chịu trách nhiệm chuyển phát cùng một gói dữ liệu đến nhiều router kế tiếp, nhƣ hình 2 Trong mạng có dây,
Trang 16thực tế các gói dữ liệu đi theo các đường liên kết chặng khác nhau là độc lập, làm tăng chi phí gửi gói tin tỉ lệ thuận với số router liền kề cần phải chuyển phát Với sự phát triển của ngành viễn thông và mạng không dây, cơ chế định tuyến như trên trở nên tự nhiên hơn, trong đó các router giao tiếp bằng sóng không dây, và một router chỉ cần phát đi (phát tỏa sóng mang) một gói dữ liệu duy nhất là tất cả các router liền kề nằm trong vùng phủ của router này đều có thể nhận được Tiện ích này khiến cho các nghiên cứu về định tuyến đa phát hướng nhiều đến mạng không dây.Các giao thức cài đặt trong định tuyến đa phát mạng không dây so với mạng có dây, chủ yếu tập trung vào vấn đề đáp ứng tính
di động của mạng Các vấn đề trong chương này sẽ trình bày tập trung vào định tuyến tầng mạng cho mạng không dây, tuy nhiên các khái niệm, sự phân loại và
tư tưởng thuật toán hầu hết giống mạng có dây và có thể áp dụng được
2.2 Mạng tự hợp di động và các vấn đề khi thiết kế giao thức đa phát
Mạng tự hợp di động hay thường gọi là mạng Mobile Ad-hoc Network
(MANET) Mô hình này gồm hai hay nhiều thiết bị không dây di động kết nối với nhau theo mô hình mạng ngang hàng (peer-to-peer) và các nút có vai trò như nhau, và có thể kết nối với nhau một cách tùy ý và không cần đến cơ sở hạ tầng của các mạng trước đó Các nút trong mạng này còn đóng vai trò như là các router có khả năng tìm kiếm, duy trì và định tuyến các gói dữ liệu cho các node nằm trong vùng phát sóng của nó Các node trong mạng di chuyển tùy ý nên kiến trúc của mạng luôn luôn thay đổi Mô hình mạng MANET được sử dụng nhiều trong những trường hợp khẩn cấp: Hoạt động tìm kiếm và cứu hộ, quân sự, …
Trang 17Trong các mạng tự hợp di động với các nhược điểm đã nêu ở phần trên, định tuyến đa phát trở thành vấn đề rất phức tạp
Những năm gần đây, nhiều giao thức định tuyến đa phát cho các mạng tự hợp di động đã được phát triển, một số thì dựa trên cơ chế thụ động , các đường
đi được khám phá khi có nhu cầu; một số khác lại dựa trên cơ chế chủ động như định kỳ gửi phát tràn hoặc định kỳ cập nhất bảng định tuyến
Những đặc tính riêng biệt của mạng MANET làm cho việc thiết kế giao thức định tuyến multicast có những vấn đề riêng Những giao thức này cần phải tính toán đến rất nhiều trường hợp, ví dụ, hình trạng mạng thay đổi động, khả năng các node có giới hạn (do hầu hết là các node mobile), ít tài nguyên về năng lượng, tỉ lệ lỗi truyền cao, vấn đề định tuyến đa chặng, và vấn đề xử lí thông điệp ở thiết bị đầu cuối Do đó, yêu cầu đặt ra với các giao thức định tuyến hiện tại (và cả các giao thức định tuyến sau này) nên được cân nhắc đến tất cả các yếu tố sau[5,6,7,8]:
- Hình trạng mạng, khả năng di động và khả năng bền bỉ: Trong mạng MANET, các nút mạng di chuyển tự do đến bất kì đâu, vào bất kì lúc nào
và với các tốc độ khác nhau Sự di chuyển ngẫu nhiên và liên tục của các nút mạng dẫn đến một cấu hình mạng động, đặc biệt trong môi trường mạng có tính di động cao Giao thức định tuyến multicast cần phải đủ bền
bỉ để phản hồi một cách nhanh chóng với sự di động của các nút mạng và đáp ứng các thay đổi hình trạng để tránh việc mất mát các gói tin dữ liệu trong suốt phiên multicast, việc mất mát dữ liệu này tạo ra tỉ lệ truyền gói tín thấp (Packet delivery ratio: số gói tin không lặp nhận được ở các điểm nhận so với số gói tin được mong chờ sẽ nhận được ở điểm nhận) Điều này rất quan trọng trong thiết kế tối thiểu hóa các phụ phí cho gói tin điều khiển mạng khi khởi tạo và duy trì hình trạng mạng cho multicast, đặc biệt quan trọng trong môi trường động với năng lực giới hạn (về băng thông, năng lượng…)
- Năng lực và sự tiện lợi: Không như các mạng có dây, mạng MANET được mô tả là có năng lực giới hạn được gây ra bởi nhiễu sóng và giao thoa trong môi trường truyền không dây và fading đa chặng Các giao thức định tuyến multicast được gọi là tiện lợi nếu nó cung cấp một số lượng gói tin điều khiển vừa đủ, tỉ lệ tương quan với số gói tin dữ liệu truyền tới các điểm đến tham gia mạng; ngoài ra, các phương thức để cải
Trang 18tiến và năng cao năng lực hiện có của mạng cũng được cân nhắc để làm tiện lợi hơn giao thức hiện có
- Mức tiêu thụ năng lượng: Việc truyền phát gói tin tỉ lệ thuận với tỉ lệ tiêu thụ năng lượng Sự hạn chế tiêu thụ năng lượng là vấn đề cân quan tâm trọng mang MANET, vì các nút trong mạng hầu hết hoạt động dựa và nguồn pin có sức mạnh giới hạn Các kĩ thuật tiết kiệm năng lượng được
sử dụng để tối thiểu hóa mức tiêu thụ năng lượng cũng được nghiên cứu, như tối thiểu hóa số nút tham gia vào việc khởi tạo kết nối mạng multicast, tối thiểu hóa số gói tin điều khiển…
- Chất lượng dịch vụ và quản lí tài nguyên: Cung cấp dịch vụ đảm bảo chất lượng dịch vụ (Quality of Services) là một trong những thách thức lớn nhất khi thiết kế giao thức multicast Giao thức định tuyến multicast cần
có khả năng phục vụ theo từng tiêu chí chất lượng dịch vụ khác nhau như năng lực mạng, độ trễ, mất gói tin… Rất khó để có thể đáp ứng tất cả các yêu cầu QoS cùng lúc do các đặc thù của mạng MANET Thậm chí cả khi đáp ứng được, giao thức cũng sẽ rất phức tạp (nhiều bảng định tuyến, phụ phí điều khiển lớn, tiêu thị nhiều năng lượng), điều này ảnh hưởng tới năng lực có giới hạn của mạng Do đó, cân nhắc giữa chi phí và hiệu quả thu được trong mạng MANET là điều cần quan tâm
- An ninh và tin cậy: An ninh trọng MANET là điều sống còn trong multicast bởi vì đặc tính phát tràn của mạng (có thể bị nghe lén ở giữa), và đặc tính thiếu cơ sở hạ tầng cố định để quản lí trung tâm Điều này làm cho mạng MANET dễ bị tổn thương bởi các hình thức nghe lén, giả mạo… Các giao thức định tuyến cần cân nhắc vấn đề này, đặc biệt quan trọng trong các ứng dụng như của quân đội, cứu hộ Tin cậy là một yếu tố quan trọng khác trong multicast, đặc biệt đối với tầng ứng dụng chạy trên mạng này, nó trở nên khó khăn để cung cấp một dịch vụ truyền phát tin cậy cho tầng ứng dụng nếu cấu hình mạng thay đổi liên tục Một giao thức multicast đáng tin cậy cần phải có câu trả lời rõ ràng cho cả ba câu hỏi: Ai
có vai trò tìm ra lỗi? Làm thế nào để báo hiệu lỗi cho toàn mạng? Làm thế nào để truyền lại gói tin đã mất?
- Khả năng mở rộng: Một giao thức định tuyến multicast cần có khả năng cung cấp một mức dịch vụ chấp nhận được trong mạng có số nút mạng lớn Để đảm bảo điều này, các đặc tính riêng biệt của mạng như năng lực
Trang 19giới hạn, tính di động ngẫu nhiên, cần được tính đến khi giải quyết vấn đề
mở rộng mạng
2.3 Phân loại các giao thức định tuyến đa phát
Có nhiều cách để phân loại các giao thức định tuyến đa phát, tùy theo triết
lí về mục đích xây dựng giao thức định tuyến Hình 4 mô tả khái quát các cách thức phân loại giao thức định tuyến
Hình 4: Phân loại các giao thức định tuyến đa phát
Có một số cách phân loại khá phổ biến sau:
1/ Phân loại theo hình trạng mạng: Dựa theo hình trạng mà các nốt mạng liên kết với nhau tạo thành Có hai nhánh chính phân chia theo hình trạng: Hình trạng dựa theo cây, và hình trạng dựa theo lưới Triết lí xây dựng cây liên kết các nốt mạng xuất phát từ mạng có dây, theo nghĩa, chỉ có đường đi ngắn nhất trở thành tuyến nối các cặp gửi-nhận dữ liệu
Cây liên kết đa phát trong mạng phân tán được xây dựng thành hai nhánh: cây dựa theo nguồn và cây chia sẻ chung Trong cây đa phát dựa theo nguồn, mỗi nguồn phát hình thành một cây riêng, như các giao thức MZRP, BEMRP Trong khi đó, với cây đa phát dựa treo cây chia sẻ chung, mọi thực thể mạng chỉ
Trang 20xây dựng duy nhất một cây nối chúng với nhau Tư tưởng này được áp dụng ở rất nhiều các giao thức mạng, như MAODV, AMRIS, LAM…
Khác với quan điểm về cây, trong đó mỗi cặp thực thể chỉ có duy nhất một liên kết, mạng đa phát dựa theo lưới cho phép có nhiều đường nối giữa cặp gửi-nhận Có rất nhiều giao thức áp dụng tư tưởng này, như ODMRP, CAMP…
Hình 5: Phân loại định tuyến theo hình trạng mạng
Ngoài ra, còn có một số kiểu phân theo hình trạng mạng khác như: Lai ghép giữa cây và lưới (Hybrid), mạng không lưu hình trạng (stateless), nhưng ít phổ biến hơn
2/ Phân loại theo cách thức bảo trì kết nối: Do mạng MANET có thể thay đổi do tính di động, nên cần thiết phải có cơ chế bảo trì kết nối mạng Theo sự phân loại này, có hai tư tưởng chính: Bảo trì cứng (Hard-State) hoặc bảo trì mềm (Soft-State)
Trong cơ chế bảo trì mềm, các thành viên của nhóm đa phát và các liên kết được định kì làm mới (chủ động - proactive) bằng cách phát tràn gói tin điều khiển, trong khi đó, với cơ chế bảo trì cứng, các liên kết bị đứt có thể tái cấu
hình bằng cách gửi các gói tin điều khiển yêu cầu tạo kết nối mới chỉ khi nào
phát hiện có liên kết bị đứt gãy (phản hồi - reactive) Rõ ràng, cơ chế cập nhật chủ động các liên kết sẽ ít tránh gây ra mất mát gói tin hơn, dẫn đến tỉ lệ truyền thành công cao hơn Một số giao thức thuộc hai nhóm bảo trì kết nối được liệt
kê như hình dưới
Trang 21Hình 6: Phân loại định tuyến đa phát theo cơ chế bảo trì hình trạng
Ngoài hai cơ chế này, còn có một số cách phân loại khác như: phân loại theo đối tượng khởi tạo phiên (thực thể gửi khởi tạo hay thực thể nhận khởi tạo), phân loại theo node thủ lĩnh (nhóm có nốt thủ lĩnh hay nhóm không cần nốt thủ lĩnh) Tuy nhiên, so sánh ưu và nhược điểm giữa các cơ chế này không có sự khác biệt rõ rệt, do đó, sẽ không đi sâu chi tiết
Phần dưới đây sẽ trình bày cụ thể hơn mỗi giao thức định tuyến phổ biến thuộc mỗi nhóm phân chia, với những đặc trưng riêng của từng giao thức
2.4 Multicast Ad hoc On-demand Distance Vector – MAODV
Giao thức MAODV[9] được phát triển từ giao thức AODV Nó lưu trữ một cây dùng chung chứa các nút nhận và các nút chuyển trung gian cho mỗi nhóm
đa phát Giao thức phát hiện một tuyến đường đa phát khi có yêu cầu thông qua
cơ chế gửi gói tin quảng bá
Thành viên đầu tiên của nhóm đa phát trở thành “nút thủ lĩnh” của nhóm Nút thủ lĩnh lưu giữ và quảng bá một số thứ tự cho nhóm đa phát thông qua gói tin HELLO Các nút sử dụng thông tin trong gói HELLO đề cập nhật bảng yêu cầu của chúng
Trang 22Khi một nút muốn tham gia vào nhóm đa phát, nút sẽ gửi gói tin truy vấn tìm đường đi (RREQ) tới nút leader thông qua đơn phát hoặc gửi quảng bá Chỉ
có nút leader hoặc các nút thành viên của nhóm có số thứ tự cao hơn nút truy vấn mới được phép gửi phản hồi cho nó Khi các nút như thế nhận được gói tin RREQ, nút sẽ chon số thứ tự lớn nhất và số chặng nhỏ nhất để gửi đơn phát gói tin phản hồi RREP cho nút truy vấn Gói RREP chứa khoảng cách từ nút gửi phản hồi tới nút leader và số thứ tự hiện thời của nhóm Khi nút truy vấn nhận được nhiều gói RREP nó sẽ chọn gói có số thứ tự lớn nhất và gần nút leader nhất, sau đó nút gửi gói MACT tới chặng tiếp theo để khởi tạo tuyến đường
Các nút không phải lá khi muốn rời khỏi nhóm sẽ gửi thông điệp với cờ prune được thiết lập tới chặng kế tiếp của nút MAODV sử dụng tìm kiếm vòng
mở rộng (ERS) để duy trì cây đa phát Khi link lỗi giữa hai nút được phát hiện, nút bị tách rời sẽ gửi gói tin RREQ sử dụng ERS Các nút gần leader hơn sẽ gửi phản hồi Nếu nút không nhận được phản hồi, nó tự mình xây dựng cây đa phát mới
Nhận xét :
- Trở ngại lớn nhất của MAODV là độ trễ cao và overhead lớn Hơn nữa tỉ
lệ nhận gói tin thấp trong các mô phỏng có nút mạng di chuyển nhiều, số lượng nút thành viên lớn, và độ tải cao Trường hợp tồi tệ nhất xảy ra khi nút thủ lĩnh bị lỗi
Hình 7: Hoạt động giao thức MAODV
Trang 232.5 On-Demand Multicast Routing Protocol - ODMRP
On-demand Multicast Routing Protocol hay ODMRP [10] là giao thức đa phát dựa trên nút nguồn Ở đây chúng ta quan tâm đến thuật ngữ “nhóm chuyển” – là tập các nút chuyển gói dữ liệu đa phát
Khi nguồn đa phát có dữ liệu để gửi nhưng không có bất ký thông tin định tuyến nào, nút sẽ phát tràn gói tin JOIN DATA Khi một nút nhận được một gói tin JOIN DATA gốc, nó lưu lại ID nút gửi và tiếp túc gửi quảng bá gói tin đó Khi gói JOIN DATA đến được nút nhận, nút nhận sinh gói tin JOIN TABLE và gửi quảng bá cho các hàng xóm của nó Khi một nút nhận đượcgói JOIN TABLE, nếu ID của nút bằng với giá trị trường next ID của một trong các entry thuộc JOIN TABLE thì nút sẽ quyết định mình nằm trên đường đi tới nguồn, điều này đồng nghĩa với việc nút này thuộc về “nhóm chuyển” Sau đó nó bắt đầu gửi quảng bá gói JOIN TABLE của chính nó Gói JOIN TABLE được gửi qua từng thành viên trong nhóm chuyển cho đến khi tới được nguồn đa phát Các nút gửi cập nhật thông tin về các nút thành viên bằng cách gửi định kỳ các gói JOIN DATA Các nút tự do rời khởi nhóm và không cần gửi bất kỳ gói tin nào vào mạng
Nhận xét :
- Hạn chế chính của quá tải do các gói tin điều khiển gây nên trong quá
trình duy trì nhóm chuyển và phát tràn gói tin toàn mạng
- Hạn chế thứ hai chính là hiện tượng nhân bản các gói tin trong mạng
- Cuối cùng, các nút nguồn phải là thành viên của mạng lưới đa phát cho dù chúng không muốn nhận các gói đa phát
Trang 24Hình 8: Giao thức ODMRP
2.6 Giao thức PUMA và ROMANT
Giao thức Protocol for Unified Multicasting through Announcements (PUMA) và giao thức Robust Multicasting in Adhoc Networks using Trees (ROMANT)[13] là hai phiên bản khác nhau của giao thức đa phát xây dựng vào bảo trì hình trạng mạng dựa trên các bản tin thông báo Điểm khác nhau của hai giao thức này là PUMA quản lí hình trạng mạng theo lưới, còn ROMANT quản
lí hình trạng mạng theo cây
PUMA là giao thức đa phát trong đó các nút nhận sẽ chủ động khởi tạo một lưới để phục vụ cho quá trình nhận dữ liệu Mặc định, nút nhận đầu tiên tham gia nhóm đa phát sẽ đóng vai trò là lõi của nhóm, trong trường hợp có nhiều nút nhận đồng thời tham gia vào nhóm thì nút có địa chỉ IP lớn nhất sẽ được chọn làm lõi PUMA là giao thức đơn giản, nó chỉ sử dụng một gói tin điều khiển duy nhất gọi là Multicast Announcement Khác với MAODV, PUMA không cần đến bất cứ kênh truyền đơn phát nào , tất cả các phiên truyền nhận dữ liệu đều là
Trang 25broadcast Thành viên của lưới sẽ chỉ bao gồm thành viên nhóm đa phát và các nốt kết nối giữa chúng
Định kì, lõi của nhóm sẽ gửi đi thông điệp Multicast Announcement cho các nút lân cận thông qua cơ chế broadcast, các thông điệp định kì này được phân biệt bằng số hiệu (sequence number) tăng dần theo phiên Mỗi nút hàng xóm nhận được các thông điệp Multicast Announcement từ các nút lân cận sẽ lựa chọn ra thông điệp Multicast Announcement tốt nhất, theo tiêu chí: thông điệp nào có số hiệu lớn hơn là tốt hơn; nếu 2 thông điệp có cùng số hiệu thì thông điệp nào có khoảng cách tới nút lõi nhỏ hơn là tốt hơn; nếu 2 thông điệp
có cùng số hiệu và khoảng cách thì thông điệp nào đến trước là tốt hơn Sau khi lựa chọn được thông điệp Multicast Announcement tốt nhất tại mỗi nút, nút đó lại phát tỏa thông điệp tốt nhất này cho các nút liền kề, cứ như vậy lan tỏa khắp toàn bộ mạng Sau đó, dựa vào danh sách kết nối (Connectivity List) xây dựng được sau xử lí các thông điệp Multicast Announcement, các nút có cơ chế dịnh tuyến dựa theo lưới dựng được
Khi một thông điệp Multicast annoucement truyền đi trong lưới, các nút sẽ biết được đường đi ngắn nhất tới lõi, sử dụng cơ chế từ thông điệp Join Annoucement, được gửi đi ngược chiều lại từ nút muốn tham gia nhóm về đến lõi của nhóm
Theo cách này, các gói dữ liệu sẽ được định tuyến tới đích một cách nhanh nhất Trên đường hướng về lõi, gói dữ liệu sẽ gặp phải hai trường hợp :
(a) Gói đi dọc theo tất cả các đường đi có thể cho đến khi gặp lõi
(b) Gói sẽ đến một thành viên của lưới trước khi đến được lõi Trong trường hợp (b) , gói sẽ được truyền giới hạn trong các thành viên của mesh Khi lõi của nhóm gặp lỗi , quá trình chọn lõi sẽ được kích hoạt để chọn ra một lõi mới
Giao thức ROMANT cũng tương tự như PUMA và mặt ý tưởng và cài đặt, chỉ khác ở điểm: Với connectivity list xây dựng được sau mỗi lần gửi Multicast Annoucement, giao thức PUMA xây dựng một lưới nối tất cả các nút lại, còn ROMANT xây dựng một cây chia sẻ nối tất cả các nút
Trang 26Hình 9 dưới đây mô tả sự hình thành lưới, sự phát tỏa của thông báo Multicast Announcement từ lõi của mạng đến các nút
Hình 9: Khởi tạo lưới trong mạng bằng giao thức PUMA
Hình 10 mô tả thực thi của giao thức ROMANT, với sự hình thành của cây chia sẻ thay vì lưới như PUMA
Hình 10: Khởi tạo cây chia sẻ trong giao thức ROMANT
Trang 27Nhận xét:
Cơ chế thực thi như giao thức PUMA và ROMANT tỏ ra đơn giản nhưng hiệu quả, với việc sử dụng các gói tin broadcast để điều khiển và tổ chức mạng, thay vì sử dụng các gói tin unicast như MAODV Tuy nhiên các giao thức này
có nhược điểm là do sử dụng cơ chế phát thông điệp Multicast Announcement định kì với số hiệu thông điệp tăng dần, dẫn đến 2 tính chất là
- Số lượng thông báo gửi dọc theo mạng sẽ tăng tỉ lệ với số nút tham gia và thời gian thực thi giao thức
- Việc sử dụng biến số hiệu tăng dần về nguyên tắc sẽ dấn đến lớn vô hạn, gọi là các biến đếm vô hạn (unbounded counters) Việc sử dụng các biến đếm vô hạn sẽ có nguy cơ dẫn đến khả năng: Khi một nút có hư hỏng về phần cứng, cụ thể là bộ nhớ, dẫn đến việc nút đó quên chỉ số lớn nhất hiện thời của biến đếm Một số nghiên cứu [14][15] chỉ ra rằng là không an toàn trong những mạng thiếu tin cậy, hoặc những mạng nhanh sử dụng các thiết bị switch đặc biệt Hạn chế sử dụng các biến đếm vô hạn cũng làm tăng khả năng tự ổn định của mạng
2.7 Kết luận
Chương này đã trình bày một số vấn đề cơ bản của đa phát, mạng MANET
và các giao thức định tuyến đa phát tiêu biểu trong mạng MANET, các ưu nhược điểm của các giao thức này Có thể thấy rằng việc xây dựng và bảo trì hình trạng mạng là một trong những yếu tố làm cho giao thức trở nên hiệu quả hơn Ngoài ra, một tư tưởng mới trong việc truyền các gói tin điều khiển trong mạng đáng được học tập, thay vì dùng các thông điệp unicast thì dùng các thông điệp broadcast Trong mạng MANET, sử dụng broadcast cho hiệu quả truyền cao hơn, cùng một gói tin broadcast phát đi thì nhiều nút có thể nhận được đồng thời Một điểm quan trọng nữa cần chú ý là việc tránh sử dụng các biến đếm vô hạn để quản lí các thông điệp, như đã được chứng minh về nhưng rủi ro tiềm ẩn
có thể có, làm cho giao thức trở nên thiếu tin cậy
Ở các chương tiếp theo, luận văn tập trung vào nghiên cứu các cơ chế xây dựng và bảo trì hình trạng mạng theo mô hình cây chia sẻ, dựa trên tư tưởng về cây khung bao trùm mạng để tối thiếu hóa tổng chi phí truyền dữ liệu trong mạng
Trang 28CHƯƠNG 3 - XÂY DỰNG VÀ BẢO TRÌ TỐI ƯU CÂY KHUNG
TRONG MẠNG ĐỘNG
3.1 Mở đầu
Trong các tư tưởng về xây dựng định tuyến cho mạng máy tính nói chung,
và mạng di động nói riêng, bài toán xây dựng cây khung là bài toán cơ bản, lâu đời nhất và là nền tảng cho nhiều giao thức định tuyến trong mạng Theo lí thuyết đồ thị, xem xét mỗi thiết bị mạng là một nút trong cây khung, đường truyền gói tin là cạnh của cây khung Vấn đề xây dựng định tuyến được qui về xây dựng cây khung bao trùm tất cả các nút trong cây, sao cho chi phí là thấp nhất có thể được, thì chi phí đường truyền mạng cũng là nhỏ nhất Trong mạng
di động, vấn đề phức tạp hơn do hình trạng mạng thay đổi liên tục, do đó cây khung cũng thay đổi liên tục Làm thế nào để bảo trì được cây khung một cách tối ưu mà tối thiểu hóa chi phí bảo trì là vấn đề mấu chốt được bài toán đặt ra, và được giải quyết ở các phần sau trong chương này
3.2 Phát biểu bài toán
Xem xét một hệ phân tán là một đồ thị vô hướng G = (V, E), với tập nút V biểu diễn các bộ xử lý của mạng và tập cạnh E biểu diễn các liên kết truyền thông giữa các bộ xử lý Mỗi nút trong mạng có một định danh phân biệt Mỗi liên kết trong mạng có một trọng số nhất định Để tiện trong việc xây dựng giải thuật, ta giả thiết trọng số của các liên kết là khác nhau Ta có định nghĩa sau:
Định nghĩa 3.1:Một cây khung tối thiểu trong đồ thị G = (V, E) (Minimum
Spanning Tree - MST) là một đồ thị con gồm n nút và n – 1 cạnh thỏa mãn các tính chất sau:
- Cây khung là liên thông và không có chu trình (giữa hai nút trên cây tồn tại duy nhất một đường đi nối hai nút đó)
- Tổng trọng số của n – 1 cạnh của cây khung là nhỏ nhất
Trong hệ phân tán, bài toán MST có những yêu cầu khác biệt, dựa trên tính chất của từng mạng cụ thể Nếu mạng là tĩnh, bài toán yêu cầu xây dựng cây khung tối thiểu bằng giải thuật phân tán Nếu mạng là động như các mạng MANET, yêu cầu bài toán cần có đáp ứng cụ thể với sự thay đổi hình trạng mạng
Trang 29Bài toán xây dựng cây khung MST trên mạng tĩnh phân tán là bài toán kinh điển, thuật toán có kết quả tốt nhất đến thời điểm hiện tại là thuật toán GHS-83[11] do Gallager, Humblet và Spira đề xuất năm 1983, với độ phức tạp thông báo là O(|V|log|V|) Đây là cơ sở cho hầu hết các giải thuật phân tán cũng như các giao thức liên quan đến việc xây dựng cây khung phân tán
Trong mạng MANET cũng như mạng động nói chung, chi phí xây dựng cây khung không quan trọng bằng chi phí bảo trì, do hình trạng của mạng thường xuyên thay đổi và không thể báo trước, do đó chi phí bảo trì cho mỗi thay đổi hình trạng mạng ảnh hưởng rất lớn đến hiệu năng truyền dữ liệu Hầu hết các giải thuật bảo trì cây khung trong mạng động đều có độ phức tạp Ω(E)[12], là một hàm của số cạnh của đồ thị, trong trường hợp đồ thị là đầy đủ,
số cạnh tỉ lệ với V2 Kết quả tốt nhất hiện nay cho bài toán bảo trì cây khung trên mạng động là giải thuật bảo trì tối ưu cây khung[12] do Baruch Awerbach, Israel Cidon, Shay Kutten đề xuất năm 2008, với chi phí độ phức tạp thông báo là O(|V|), là độ phức tạp tối ưu nhất có thể đạt được Phần còn lại của chương này chủ yếu tập trung vào hai giải thuật này, làm tiền đề cơ sở để trình bày đóng góp chính của luận văn ở các chương tiếp theo
3.3 Giải thuật GHS-83
3.3.1 Tư tưởng của giải thuật
Giải thuật GHS-83 do các tác giả R G Gallager, P A Humblet, and P M Spira đề xuất năm 1983 Giải thuật này là phiên bản cài đặt phân tán, kế thừa tư tưởng của giải thuật Prim - giải thuật xây dựng cây khung trọng số tối thiểu trên
đồ thị bằng cách lần lượt bổ xung các cạnh ngoài có trọng số nhỏ nhất vào trong cây khung Trong tín toán phân tán, các nút không biết được hình trạng mạng của toàn bộ hệ thống, hơn nữa mỗi nút sẽ xử lý hình trạng một cách riêng rẽ một cách không đồng bộ Vì vậy, bài toán đặt ra yêu cầu phải quản lí cấu hình mạng
để có thể lưu lại và xử lí thích hợp các tương tác không đồng bộ từ các nút
Để tiện cho việc mô tả giải thuật, chúng ta dùng một số thuật ngữ sau:
- Mảnh MST: Là một cây con thuộc cây MST hoàn chỉnh Ban đầu, mỗi mảnh MST chỉ bao gồm 1 nút Thực thi của giải thuật là tìm cách liên kết các mảnh MST này lại với nhau thành một cây MST duy nhất
- Liên kết ngoài: Liên kết ngoài của một mảnh MST là liên kết có một nút bên trong mảnh, nút còn lại nằm bên ngoài
Trang 30- Gốc của mảnh: là một nút trong mảnh được quy ước và lấy định danh làm định danh của mảnh
Tư tưởng của giải thuật dựa trên việc kết hợp dần các mảnh MST lại một cách phân tán không đồng bộ thông qua các liên kết ngoài nhỏ nhất chọn được,
từ đó hình thành nên cây MST hoàn chỉnh trong hệ thống Trong hệ thống phân tán, một nút trên mạng không biết được cấu trúc toàn cục của hệ thống Do đó, muốn đảm bảo kết hợp mảnh một cách không đồng bộ, ta dựa vào các định lí sau:
a) Định lý 3.1: Cho một mảnh MST A, gọi e là một liên kết ngoài có trọng
số tối thiểu trong mảnh A Thì e là một cạnh trong cây MST hoàn chỉnh
Chứng minh Giả sử e nối mảnh MST A với một mảnh MST B và e không
nằm trong cây MST, như vậy phải tồn tại liên kết ngoài e’ của mảnh A nằm trên đường đi giữa mảnh A và mảnh B, và là một cạnh trong cây MST (nếu không mảnh A sẽ không liên thông với mảnh B) Theo giải thiết, w(e) < w(e’) Kết nạp
e vào cây MST và bỏ cạnh e’, ta nhận được cây khung T’ có tổng trọng số của tất cả các cạch bé hơn cây khung MST ban đầu, vô lý
Hình 11: Minh họa chứng minh định lí 3.1
b) Định lý 3.2: Nếu tất cả các cạnh của một đồ thị liên thông có các trọng
số phân biệt, thì cây MST là duy nhất
Chứng minh Giả sử tồn tại hai cây khung tối thiểu phân biệt Ký hiệu cây
A và cây B Gọi e là cạnh có trọng số nhỏ nhất nằm ở một trong hai cây, nhưng không nằm trong cả hai Không mất tính tổng quát, giả sử e thuộc cây A gọi T
là tập các cạnh của cây A và T’ là tập các cạnh của cây B Tập cạnh {e} T
phải chứa một chu trình (tính chất của cây khung), và ít nhất một cạnh trong chu
Trang 31trình, gọi là e, không nằm trong T (bởi vì T không chứa chu trình) Vì các trọng
số là phân biệt và e nằm trong T nhưng không nằm trong Tw(e) <w(e)
Vì vậy {e} T - {e} là tập các cạnh của một cây khung có trọng số nhỏ
hơn T, vô lý Định lí được chứng minh
3.3.2 Tư tưởng của giải thuật GHS-83
Giải thuật bắt đầu với các mảnh là một nút trong mạng Áp dụng định lý 1
để mở rộng các mảnh theo các liên kết ngoài có trọng số tối thiểu Định lý thứ 2 đảm bảo việc mở rộng một cách độc lập giữa các mảnh không bị xung đột lẫn nhau
Ở trạng thái khởi tạo ban đầu, một mảnh MST chỉ bao gồm duy nhất một nút Nút này cũng chính là gốc của mảnh Quá trình mở rộng mảnh bao gồm các bước sau:
- Tìm liên kết ngoài có trọng số tối thiểu: gốc của mỗi mảnh sẽ gửi thông báo yêu cầu các nút tìm liên kết ngoài cục bộ có trọng số tối thiểu Khi tìm thấy, mỗi nút sẽ gửi liên kết ngoài này đến cho gốc của mảnh Gốc của mảnh sẽ tập hợp kết quả và chọn ra liên kết ngoài tối thiểu của mảnh
- Kết hợp mảnh: khi tìm thấy liên kết ngoài tối thiểu, mảnh này sẽ cố gắng kết hợp với mảnh mà liên kết này dẫn đến Để thuật toán không có khóa chết, chúng ta sử dụng một khái niệm là mức của mảnh Ban đầu, mỗi
mảnh có mức là 0 Giả sử rằng mảnh F ở mức L có cạnh liên kết ngoài tối thiểu dẫn tới và mảnh F có mức L Mảnh F và F kết hợp với nhau chỉ khi thỏa mãn một trong hai điều kiện sau:
o Nếu L<L, thì mảnh F bị hấp thu bởi F, mảnh mở rộng có mức là
Trang 32Để lưu trữ cấu hình mạng hiện thời, các nút và liên kết sẽ có một số các trạng thái khác nhau
- found: trạng thái khi nút đã tim thấy liên kết ngoài tối thiểu cục bộ
Mỗi liên kết cũng được phân biệt theo 3 trạng thái sau đây:
- basic: trạng thái ban đầu của mỗi liên kết
- branch: nếu liên kết được công nhận là một cạnh trong cây MST Các
thông điệp điều khiển sẽ được truyền dọc qua cây MST theo các liên kết này
- rejected: liên kết không thuộc cây MST, nhưng nối 2 nút thuộc cùng một
mảnh MST (hay thường gọi là liên kết trong)
3.3.3 Chi tiết giải thuật GHS-83
Tại thời điểm khởi tạo:
- Tất cả các nút có trạng thái khởi tạo là sleeping
Trang 33a) Thủ tục tìm kiếm liên kết ngoài
- Gốc của một mảnh chuyển trạng thái thành find và gửi thông báo initiate chứa định danh mảnh, số hiệu mức và trạng thái find cho toàn mảnh
- Khi nút i nhận thông báo initiate: i cập nhật định danh mảnh và số hiệu mức của nó Nút i chuyển trạng thái thành find và tìm liên kết ngoài có trọng số tối thiểu cục bộ Mỗi nút i sắp xếp cạnh liên thuộc nó có trạng thái basic theo trọng số của chúng với thứ tự tăng dần trong danh sách
unused i
- Nút i tìm cạnh liên kết ngoài trọng số tối thiểu cục bộ như sau:
- Nút i chọn cạnh tiếp theo (i,j) từ unused i và gửi một thông báo test với
định danh mảnh và số hiệu mức qua cạnh này
- Nút j nhận được một thông báo test từ i, nó hoạt động như sau:
o Nếu định danh mảnh của j giống với định danh mảnh của i, thì i và
j thuộc cùng một mảnh và bởi vậy, j xóa cạnh (i, j) từ danh sách unused j , thay đổi trạng thái cạnh này thành rejected và j trả lời i bằng thông báo reject Khi nút i nhận thông báo reject từ j, nó xóa cạnh (i, j) từ danh sách unused i, thay đổi trạng thái cạnh này thành
rejected và tiếp tục bằng cách gửi thông báo test qua cạnh tiếp theo
trong danh sách của nó
o Nếu các định danh mảnh của i và j là khác nhau:
Nếu L jL i , nút j gửi một thông báo accept tới i nút i nhận được thông báo accept sẽ lưu cạnh tốt nhất cục bộ của nó là (i,j), kết thúc quá trình tìm kiếm cạnh cục bộ tốt nhất tại nút
i
Ngược lại, j làm trễ sự trả lời cho đến khi L jL i
- Khi một nút i đã xác định cạnh tốt nhất cục bộ của nó là e:
o Nếu i là nút lá, nó gửi một thông báo report với cạnh e đến cha của
nó và chuyển sang trạng thái found
o Ngược lại, i là nút trong, i đợi cho đến khi nó tìm ra cạnh tốt nhất cục bộ và nhận các thông báo report từ tất cả các con của nó Sau
đó i gửi thông báo report với cạnh nhỏ nhất trong số các cạnh này tới cha của nóvà chuyển sang trạng thái found
Trang 34- Nút gốc sau khi đã tìm ra cạnh tốt nhất cục bộ của nó và nhận các thông
báo từ tất cả các con của nó, nút gốc chọn cạnh có trọng số tối thiểu e min
trong số các cạnh này
o Nếu chọn được e min, đây chính là cạnh tốt nhất của mảnh, nó gửi
thông báo change-root, tới nút trong mảnh có e min là cạnh liên thuộc Nút này trở thành gốc mới của mảnh, thay đổi trạng thái của
e min là branch, và gửi một thông báo connect với số hiệu mức của
nó qua e min
o Ngược lại, không có cạnh ngoài nào được tìm thấy, kết thúc giải thuật, mảnh hiện thời chính là cây MST cần tìm
b) Thủ tục kết hợp mảnh
Xét thủ tục kết hợp mảnh tại nút j trong mảnh G ở mức l j, nhận một thông
báo connect từ nút i trong mảnh F ở mức l i Ta xét các trường hợp sau:
- l j <l i : Trước khi gửi một thông báo connect tới j, i sẽ phải gửi một thông báo test tới j để xác định xem liệu rằng (i, j) có phải là một cạnh ngoài Vì
j có số hiệu mức nhỏ hơn, nó sẽ làm trễ sự trả lời thông báo test cho đến
khi số hiệu mức của nó trở thành ít nhất là l i
- l j = l i : Trong trường hợp này, nút j trì hoãn trả lời thông báo connect cho
đến khi số hiệu mức của nó trở nên lớn hơn hoặc nhận được thông báo
change-root từ gốc của G, tức (i, j) là cạnh tốt nhất của G Nếu (i,j) là
cạnh tốt nhất của G thì F và G được trộn vào nhau Nếu j>i thì j trở thành
gốc của mảnh kết hợp Nó tăng số hiệu mức của nó lên 1 và bắt đầu lần
lặp mới bằng cách gửi một thông báo initiate tới các hàng xóm của nó Ngược lại j gửi một thông báo connect tới i và i trở thành gốc mới của mảnh kết hợp, i tăng số hiệu mức của nó lên 1 và gửi thông báo initiate
cho các hàng xóm của nó để khởi tạo lần lặp mới cho mảnh kết hợp
- l j >l i:
o Nếu nút j đã nhận được một thông báo initiate và chưa gửi thông báo report, thì nó gửi một thông báo initiate với định danh của mảnh G, số hiệu mức l j và trạng thái find tới i và đợi một thông báo
report từ i trước khi gửi thông báo report của nó, đồng thời j thay
đổi trạng thái của cạnh (j,i) thành branch Vì vậy, F được hấp thu vào G như là một phần của lần lặp hiện thời của G
Trang 35o Nếu j đã gửi thông báo report: Trong trường hợp này, nút j gửi thông báo initiate với định danh của mảnh G, số hiệu mức l j và
trạng thái found tới i, đồng thời j thay đổi trạng thái của cạnh (j,i) thành branch Một nút nhận được một thông báo initiate với trạng thái found thay đổi trạng thái của nó thành found, cập nhật số hiệu
mức và định danh mảnh của nó và truyền thông báo tới các con của nó
3.3.4 Chứng minh tính đúng đắn:
Ta thấy giải thuật chỉ tìm cạnh ngoài có trọng số tối thiểu từ các mảnh,
thông báo connect chỉ được gửi trên cạnh ngoài tối thiểu, giải thuật thỏa mãn các
định lí 3.1 và 3.2, do đó chúng ta nhận được cây MST
Để chỉ ra rằng khóa chết không tồn tại, ta xét tập các mảnh tồn tại trong bất
kỳ thời điểm nào Ngoại trừ các mảnh có mức 0 bao gồm các nút trong trạng thái ngủ Giả thiết rằng giải thuật đã được bắt đầu nhưng không kết thúc, tập các mảnh ở trên không rỗng và mỗi mảnh có một cạnh ngoài trọng số tối thiểu Xét mảnh từ tập các mảnh có mức thấp nhất trong tập hợp với cạnh ngoài có trọng
số nhỏ nhất trong tập đó Mọi thông báo kiểm thử test từ mảnh đó hoặc sẽ đánh thức mảnh ở trạng thái ngủ sleeping có mức không hoặc sẽ được phản hồi mà không cần đợi Tương tự, một thông báo connect từ mảnh đó sẽ đánh thức mảnh
ở trạng thái ngủ có mức 0 hoặc sẽ chuyển đến mảnh có mức cao hơn, hoặc sẽ chuyển đến mảnh đồng mức và có chung cạnh ngoài với trọng số tối thiểu, tất cả đều dẫn đến mảnh mới có mức cao hơn Như vậy không có mảnh nào tồn tại vĩnh viễn, suy ra, giải thuật không tồn tại khóa chết
3.3.4 Độ phức tạp thông báo
Định lý 3.3: Độ phức tạp thông báo của giao thức là O(E + N log N)
Chứng minh Số hiệu mức của một mảnh có thể nhiều nhất là log N và số
hiệu mức tăng sau mỗi lần lặp, một nút có thể tham gia không quá log N lần lặp Trong một lần lặp, mỗi nút trong một mảnh có thể nhận không quá một thông báo initiate và một thông báo accept Nó có thể chuyển nhiều nhất một thông báo report và một thông báo change-root hoặc thông báo connect
Vì vậy, không quan tâm đến các thông báo test và reject, thì một nút có thể chỉ gửi O(N) thông báo trong mỗi lần lặp, do đó sau logN lần lặp, số thông báo
Trang 36sử dụng là O(N log N) Có nhiều nhất hai thông báo reject được gửi qua mỗi cạnh Chung qui lại, độ phức tạp thông báo được tạo thành tổng O(E)
Mỗi thông báo test được trả lời bởi một thông báo reject và một thông báo accept Bởi vì có nhiều nhất O(E) thông báo reject và nhiều nhất O(N log N) thông báo accept, có thể có nhiều nhất O(E + N log N) thông báo test
Kết luận, độ phức tạp thông báo của giao thức là O(E + N log N)
3.3.5 Độ phức tạp thời gian
Định lý 3.4: Độ phức tạp thời gian của giải thuật GHS-83 là O(N log N)
Chứng minh Chúng ta sẽ chứng minh bằng qui nạp rằng mỗi nút cần 5lN –
3N đơn vị thời gian để đạt đến mức l
- Với l = 1: sau thời gian N, mỗi nút được đánh thức và sẽ gửi một thông báo connect Sau thời gian 2N, tất cả các nút sẽ ở mức 1
- Giả thiết đúng ở mức l, ta sẽ chứng minh đúng ở mức l + 1
Thật vậy, ở mức l, mỗi nút có thể gửi không quá N thông báo Test và nó sẽ được trả lời trước thời điểm 5lN – N Tại mỗi lần lặp, các nút chuyển thông báo initiate không quá N đơn vị thời gian, chuyển thông báo report không quá N đơn
vị thời gian, chuyển thông báo changeroot hoặc connect không quá N đơn vị thời gian, vậy số các thông báo report, change – root, connect, inititate chuyển đi trong một lần lặp không quá 3N đơn vị thời gian Bởi vậy, trước thời điểm 5(l + 1) N – 3 N tất cả các nút ở mức l + 1
Tại mức cao nhất, l log2N, chỉ có các thông báo test, reject, và report được
sử dụng
Vậy giải thuật hoàn thành trong khoảng thời gian là 5Nlog2N
Trang 373.4 Giải thuật bảo trì cây khung trong mạng động
3.4.1 Giới thiệu
Như phần trên đã đề cập, trong mạng động, hình trạng mạng thay đổi liên tục và không thể dự báo trước được Do đó, các giải thuật xây dựng cây khung trong mạng tĩnh, nếu muốn mở rộng hoặc áp dụng cho mạng động, cần phải có
sự điều chỉnh để đáp ứng lại sự thay đổi về hình trạng mạng
Thông thường, các giải thuật trong mạng động có thể được xây dựng bằng cách cải tiến các giải thuật tương ứng trong mạng tĩnh theo mô hình sau đây:
- Áp dụng giải thuật trong mạng tĩnh tương đương để giải quyết bài toán một cách bình thường
- Khi phát hiện ra sự thay đổi trong topo mạng, tìm cách hủy toàn bộ kết quả đạt được và khởi động lại thuật toán từ đầu
Cách tiếp cận này đơn giản, dễ cài đặt các thuật toán trong mạng động dựa vào những thuật toán đã được nghiên cứu trong mạng tĩnh Tuy nhiên, tính hiệu quả của phương pháp này không cao Nếu thuật toán tương ứng trong mạng tĩnh
có độ phức tạp lớn, thì độ phức tạp để đáp ứng với mỗi thay đổi trong topo mạng cũng lớn tương ứng
Nếu sử dụng phương pháp này trong bài toán xây dựng cây khung tối thiểu, với mỗi thay đổi trong hình trạng mạng, toàn bộ cây khung sẽ bị hủy (kể cả khi cây khung đã xây dựng xong), thuật toán sẽ phải khởi động lại từ đầu để xây dựng cây khung mới Như phần trên đã chứng minh, các thuật toán xây dựng cây khung phân tán hiện nay đều có độ phức tạp là O(E) (với E là số liên kết trong mạng) Vì vậy, độ phức tạp đáp ứng với mỗi thay đổi trong mạng trong trường hợp này là O(E)
Nhược điểm của phương pháp trên là tính thiếu hiệu quả do không tận dụng được những kết quả đã có trong các lần thực hiện thuật toán trước Với mỗi sự thay đổi dù nhỏ trong hình trạng mạng, toàn bộ kết quả của thuật toán sẽ bị hủy
Vì vậy, nhóm tác giả Baruch Awerbuch, Israel Cidon, Shay Kutten đã đề xuất giải thuật Optimal Maintenance of a Spanning Tree (OMST)[12], đưa ra một cách tiếp cận khác cho bài toán xây dựng cây khung trong mạng động Bằng cách sử dụng lại những thành quả xây dựng cây khung đã đạt được, mỗi khi có
Trang 38thay đổi trong mạng, các nút chỉ cần đáp ứng lại bằng cách thay đổi một số trạng thái của mình cho phù hợp, chứ không thay đổi tất cả hình trạng Nhờ đó, độ phức tạp của phương pháp này đối với mỗi thay đổi trong mạng giảm xuống con O(V) (V là số nút trong mạng) Tất nhiên, độ phức tạp khi xây dựng cây khung ban đầu vẫn là O(E)
3.4.2 Tư tưởng của giải thuật OMST
Thuật toán OMST được sử dụng để xây dựng cũng như bảo trì cây khung tối thiểu trong mạng động Tương tự như giải thuật GHS-83 trong mạng tĩnh, giải thuật này cũng dựa trên tư tưởng kết hợp dần các mảnh MST lại thành cây MST Các mảnh MST được kết hợp lại bằng cách chọn ra các liên kết ngoài có trọng số tối thiểu
Tuy nhiên, nếu chúng ta chỉ sử dụng phương pháp của giải thuật xây dựng cây khung tối thiểu trong mạng tĩnh, thì khi có một sự thay đổi trong hình trạng mạng, cây khung trong mạng có thể bị ảnh hưởng và các nút trong mạng sẽ không có cơ sở nào để đáp ứng lại những thay đổi đó Giải thuật OMST cố gắng phục hồi lại cây khung bị đứt gãy hoặc thay đổi hình trạng mạng, dựa trên thông tin về cây khung trước lúc thay đổi, chứ không tìm cách xây dựng lại cây khung
từ đầu
Để lưu trữ thông tin về cây khung, giải thuật OMST đưa ra một cấu trúc dữ liệu đặc biệt để lưu trữ trên mỗi nút, sử dụng để khôi phục lại cây khung trong trường hợp có những thay đổi trong mạng, gọi là “rừng ảo” và “cây ảo”:
- Rừng ảo”(forest replica) là một cấu trúc dữ liệu trên một nút, lưu trữ thông tin các liên kết trong cây MST hiện thời (rừng thật) của hệ thống Như vậy, “rừng ảo” là một bản sao của cây MST hiện thời, được lưu trữ trên một nút Tất nhiên bản sao này có thể không hoàn toàn giống như cây MST thật (do hệ thống phân tán và các nút không biết trạng thái toàn cục trong mạng), nhưng mỗi nút sẽ cố gắng xây dựng “rừng ảo” giống cây MST thật nhất có thể
- “Cây ảo” (tree replica) là một cây con thuộc “rừng ảo” được lưu trữ trên một nút Để phân biệt, ta ký hiệu “cây ảo v” là cây ảo chứa nút v
Trang 39h 12: “Rừng ảo” lưu tại nút u
Như trên hình 12, nút u lưu một “rừng ảo” bao gồm hai cây ảo Một cây bao gồm 3 liên kết (u, v)(v, q)(q, w) và một cây (x,y) Trong đó, liên kết (x, y) không thuộc cây MST thật, nhưng vẫn tồn tại trong “rừng ảo” của nút u
Mỗi nút trong hệ thống sẽ lưu một “rừng ảo” trong bộ nhớ cục bộ “Rừng ảo” sẽ là cơ sở để các nút thực hiện thủ tục tìm kiếm liên kết ngoài tối thiểu cũng như kết hợp các mảnh MST lại với nhau Vì vậy, trong quá trình thực hiện thuật toán, “rừng ảo” sẽ được đảm bảo sao cho giống “rừng thật” (cây MST hiện thời) nhất có thể
Giải thuật OMST duy trì cấu trúc dữ liệu “rừng ảo” nhằm giảm độ phức tạp trong quá trình tìm kiếm liên kết ngoài có trọng số tối thiểu Hai thủ tục quan trọng nhất trong giải thuật và liên quan trực tiếp đến cấu trúc dữ liệu này là UPDATE và FIND
- Thủ tục UPDATE: có nhiệm vụ duy trì “rừng ảo” tại mỗi nút giống với
“rừng thật” Với mỗi thay đổi trong topo mạng, thủ tục UPDATE sẽ được gốc của mỗi mảnh MST gọi, và các nút trong mạng sẽ thực hiện các thủ tục LOCAL_UPDATE để điều chỉnh lại “rừng ảo” của nút đó cho giống với “rừng thật” Ta có thể chứng mình được, sau khi thực hiện thủ tục UPDATE, “cây ảo” của một nút u trong hệ thống sẽ giống hệt mảnh MST chứa u
Trang 40- Thủ tục FIND: dựa vào “rừng ảo” tại mỗi nút, các nút sẽ tìm được liên kết ngoài tối thiểu cục bộ và gửi về cho nút gốc Từ đó, nút gốc sẽ chọn ra được liên kết ngoài tối thiểu của mảnh và thực hiện các biện pháp ghép mảnh.
Do mỗi nút có lưu trữ “rừng ảo” trong bộ nhớ, thủ tục tìm kiến liên kết ngoài tối thiểu cục bộ sẽ có độ phức tạp thông báo là 0 Mỗi nút sẽ gửi thông báo cho nút gốc dọc theo mảnh MST hiện thời sau khi tìm kiếm xong Vì vậy,
độ phức tạp thông báo của thủ tục FIND là O(V) Đối với thủ tục UPDATE, chúng ta sẽ nghiên cứu kỹ cấu trúc dữ liệu và cách cài đặt của thủ tục này ở phần tiếp theo Thủ tục này cũng có độ phức tạp là O(V)
Ngoài hai thủ tục UPDATE và FIND, trong giải thuật OMST còn một số thủ tục khác tương tự giải thuật GHS-83 để xây dựng cây khung tối thiểu:
Thủ tục chuyển gốc CHANGE_ROOT: Sau khi tìm được liên kết ngoài tối thiểu của mảnh, gốc của mảnh sẽ được chuyển xuống nút có liên kết ngoài đó Việc chuyển gốc sẽ giúp quá trình kết hợp mảnh dễ dàng hơn
Thủ tục kết hợp mảnh MERGE: Có thay đổi so với thủ tục tương ứng trong thuật toán GHS-83 để tránh tình trạng deadlock Trong thủ tục này, khi 2 mảnh MST chọn 1 liên kết ngoài chung, mảnh có ID nhỏ hơn sẽ tiến hành việc yêu cầu kết nối Giả sử mảnh u trong liên kết ngoài tối thiểu (u, v) có ID nhỏ hơn Khi u trở thành gốc (qua thủ tục chuyển gốc), nó sẽ gửi
1 thông báo Request qua liên kết (u, v) Khi thông báo đến v, nút v có thể hoặc không phải là gốc, nhưng vẫn tạm chấp nhận thông báo Request này Đợi tới khi cây chứa v tìm thấy liên kết (u, v) và chuyển gốc lại cho nút v
v sẽ gửi một thông báo Accept lại cho u Sau đó mới tiến hành kết hợp hai mảnh qua liên kết (u, v) Những trường hợp thay đổi topo mạng trong quá trình kết hợp mảnh sẽ được xem xét sau đây
Thủ tục xử lý khi cấu hình mạng thay đổi: Khi một liên kết trong mảnh MST nối từ nút con đết nút cha bị đứt, nút con sẽ hủy bỏ liên kết này, trở thành gốc của mảnh mới và thực hiện các thủ tục để tìm liên kết ngoài nhỏ nhất như với các gốc thông thường Nếu thay đổi xảy ra trong quá trình thực hiện các thủ tục UPDATE và FIND, các nút sẽ có những biện pháp
cụ thể để xử lý tương ứng, tránh tình trạng deadlock Ví dụ, khi một liên kết giữa nút cha và nút con bị đứt, nút cha sẽ không đợi thông báo phản hồi từ nút con qua liên kết này nữa Các trường hợp thay đổi cấu hình