Hình 30 mô tả một đồ thị vô hƣớng, trong đó các nút vòng tròn kép là các nút thuộc nhóm đa phát, các nút còn lại không thuộc nhóm. Để đơn giản hóa mô tả và không làm mất tính tổng quát, giả sử ban đầu chỉ có một nút số 0 phát động mở rộng và kết hợp mảnh, các nút khác đóng vai trò đáp ứng.
- Ban đầu do mảnh STM chỉ có mỗi nút số 0, nút số 0 chọn kết hợp với nút
số 7. Do nút số 7 không thuộc nhóm đa phát nên liên kết 0-7 đƣợc thiết lập là Tree_Link. Gốc 0 phát động UPDATE, gửi cho 7.
- Nút 7 gửi UPDATED(7) cho nút 0. Nút 0 tổng hợp các thông điệp
UPDATED và gửi FIND(0,7) cho nút 7.
- Nút 7 thực hiện thủ tục LOCAL_FIND: Nút 7 chọn nút 1 có trọng số là 1,
và gửi cho nút 0 thông điệp FOUND(1,7,∞,-1).
- Nút 0 nhận đƣợc, cập nhật các giá trị tốt nhất tìm đƣợc
o Min_BestWeight = 1
o Min_BestID = 7
o Rmin_BestID = -1
Do 2 khác với ∞ (nút 7 không phải là nút thuộc nhóm đa phát) nên cập nhật bổ sung thêm trọng số của liên kết 0-7 vào Min_BestWeight = 1 + 1 = 2
- Nút 0 thực hiện LOCAL_FIND, chọn nút 3 có trọng số Min_Weight = 2.
Do đã nhận đủ số thông điệp FOUND, gốc 0 so sánh kết quả, chọn Min_Weight kết quả tốt nhất (có độ dài đƣờng dẫn ngắn hơn từ 0 đến 1, cho dù Min_Weight = Min_BestWeight = 2). Nút 0 kết hợp với nút 3.
- Qui trình UPDATE và UPDATED đƣợc lặp lại, gốc 0 gửi FIND(0,7,3)
cho các nút con. Lúc này hình trạng mạng có dạng nhƣ hình 31, với liên kết Tree_Link đƣợc thể hiện bằng nét liền.
4 6 3 7 1 2 2 1 1 1 4 2.5 7 3.5 0 2 20
Hình 31: Hình trạng cây STM sau khi nút 0 mở rộng với nút 3
- Nút 7 chọn nút 1, gửi FOUND(1,7,∞,-1) cho nút 0. Nút 0 cập nhật:
o Min_BestWeight7 = 1
o Min_BestID7 = 7
o Rmin_BestWeight7 = ∞
Do nút 7 có Min_ID7 khác Rmin_ID7, do đó cập nhật
Min_BestWeight7 = 1+1= 2
- Nút 3 chọn nút 4 có trọng số là 2, gửi FOUND(2,3,∞,-1). Tƣơng tự nhƣ
nút 7, nút 3 đƣợc cập nhật o Min_BestWeight3 = 2 o Min_BestID3 = 3 o Rmin_BestWeight3 = ∞ o Rmin_BestID3 = -1 Do nút 3 có Min_ID3 khác Rmin_ID3, do đó cập nhật Min_BestWeight3 = 2+2= 4
- Nút 0 nhận đủ các thông điệp FOUND, thực thi LOCAL_FIND, chọn nút
4 có trọng số là 3, cập nhật
o Min_ID = 0
o Min_Weight = 3
o Min_Nb = 4
Do nút 0 là nút thuộc nhóm đa phát nên
o Rmin_Weight = 3
o Rmin_ID = 0
So sánh các kết quả nhận đƣợc, gốc 0 chọn nút 1 (có đƣờng dẫn ngoài nhỏ nhất từ nút thuộc nhóm đa phát là 2) để kết hợp thông qua nút 7. Liên kết dựng đƣợc là Tree_Link. Quá trình UPDATE và UPDATED đƣợc lặp lại.
Đến lúc này, hình trạng cây khung có dạng nhƣ hình 32: 4 6 3 7 1 2 2 1 1 1 4 2.5 7 3.5 0 2 20
Hình 32: Hình trạng cây khung sau khi nút 0 kết hợp với nút 4
- Nút 0 gửi FIND(0,3,7,1) cho các nút thuộc mảnh STM hiện tại.
- Nút 1 chọn nút 2, gửi FOUND(1,2,∞,-1) cho nút 7. Nút 7 cập nhật giá trị
nhận đƣợc từ 1 với Min_BestWeight1=1. Do nút 1 không phải là nút thuộc
nhóm đa phát nên giá trị Min_BestWeight1=1+1 = 2.
- Nút 7 thực hiện LOCAL_FIND, chọn nút 6 là nút ngoài có trọng số là 2.5.
So sánh các kết quả, nút 7 chọn nút 2 là nút ngoài (thông qua nút 1). Thông điệp gửi lên nút 0 có dạng FOUND(2,1, ∞,-1).
- Nút 0 nhận đƣợc, Thiết lập Min_BestWeight7=2+1=3, do nút 7 không
thuộc nhóm đa phát.
- Nút 3 chọn nút 4, gửi FOUND(2,3,∞,-1) cho nút 0.
- Nút 0 nhận đƣợc kết quả từ nút 3, do Min_ID3 khác Rmin_ID3, nên
Min_BestWeight2 = 2+2=4 .
- Nút 0 thực hiện LOCAL_FIND, chọn giá trị nút ngoài 4 có
Min_Weight=3.5.
- So sánh các kết quả, gốc 0 chọn nút 1 để thực hiện kết hợp. Thông điệp
CHANGE_ROOT đƣợc gửi cho 1. Nút 1 kết hợp với liên kết ngoài đơn tốt nhất là nút 2.
- Do nút 2 là nút thuộc nhóm đa phát, cho nên sau khi kết hợp nó sẽ gửi thông điệp SET_DATALINK dọc theo liên kết vừa tạo, đến nút thuộc nhóm đa phát gần nhất là nút 0 thì dừng lại. Liên kết dọc theo đƣờng dẫn này đƣợc chuyển thành Data_Link.
Ở bƣớc thực hiện này, chú ý rằng nút 2 có số chặng trên đƣờng dẫn đến nút 0 là nhiều nhất, tuy nhiên do độ dài đƣờng dẫn là nhỏ nhất, nên vẫn đƣợc chọn kết nối, thay vì các đƣờn dẫn từ nút 0 đến nút 4 cũng nhƣ từ nút 0 đến nút 6 (thông qua nút 7).
Đến lúc này, hình trạng mạng có dạng nhƣ hình 33 (Liên kết Data_Link đƣợc biểu thị bằng nét liền đậm, còn Tree_Link đƣợc biểu thị bằng nét liền nhạt)
4 6 3 7 1 2 2 1 1 1 3 4 2.5 7 3 3.5 0 2 8 20
Hình 27: Cây khung STM sau khi kết hợp với nút 2
- Tiếp tục thực hiện bƣớc tiếp theo, nút 0 gửi FIND(0,3,7,1,2) cho các nút.
- Nút 2 chọn nút 8 có trọng số là 3. Do nút 2 thuộc nhóm đa phát nên sẽ gửi
thông điệp FOUND(3,2,3,2) cho nút 1.
- Nút 1 không có lựa chọn cục bộ nào, gửi FOUND(2,3,2,3) cho nút 7. Nhƣ
vậy, ở “nhánh ảo” cao hơn “nhánh ảo” tại nút 2, liên kết đa phát tốt nhất vẫn đƣợc bảo toàn.
- Nút 7 nhận đƣợc kết quả từ 2, do Min_ID2 = Rmin_ID2, nên Min_Weight2
đƣợc bảo toàn giá trị 3. Điều này có nghĩa là tại nút 7, liên kết đa phát từ một nút con trong “nhánh ảo” của nút 7 vẫn đƣợc giữ nguyên giá trị, đảm bảo tiêu chí tìm kiếm.
- Nút 7 thực hiện LOCAL_FIND, chọn nút ngoài 6 có trọng số 2.5. So sánh các kết quả, nút 7 gửi FOUND(7,2.5,3,1). Ở đây giá trị của liên kết đa phát tốt nhất không còn là giá trị liên kết đƣờng dẫn tốt nhất nữa, nhƣng vẫn là giá trị liên kết đa phát tốt nhất, vì thế nút 7 vẫn gửi giá trị của liên kết đa phát này cho nút cha.
- Nút 0 nhận FOUND từ nút 7, thiết lập Min_Weight7= 2.5+1 = 3.5 (do nút
7 không phải là nút đa phát). Lúc này, giá trị liên kết đa phát tốt nhất trở lại thành giá trị đƣờng dẫn tốt nhất. Do đó, nếu nút 7 không gửi thông tin về liên kết đa phát tốt nhất lên cho nút cha, có thể tiêu chí tìm kiếm bị sai sót.
- Nút 0 thực hiện LOCAL_FIND, so sánh kết quả và chọn nút 2 để kết hợp.
Nút 2 thực hiện kết hợp với nút 8.
- Tiếp tục quá trình này, ta thu đƣợc cây khung bao trùm tất cả các nút
thuộc nhóm đa phát nhƣ hình 34 4 5 6 3 7 1 2 2 1 1 1 3 2 2.5 3.5 0 9 2 8 Hình 28: Cây STM hoàn chỉnh
Nhận xét: So sánh với kết quả của ví dụ ở chƣơng 4, với cùng một hình
trạng mạng, giải thuật OMST tạo cây khung mà để truyền dữ liệu đi các nút thuộc nhóm đa phát, tổng chi phí là 11, nhƣng với cây khung đa phát STM, tổng chi phí để truyền dữ liệu qua các nút thuộc nhóm đa phát là 7.5, tốt hơn rất nhiều so với chi phí kết nối tất cả các nút không cần thiết.
5.5 Chứng minh tính đúng đắn
Ta có các định lí sau:
- Định lí 5.1: Đƣờng dẫn nối một nút u thuộc nhóm đa phát V’ đến một nút
bất kì k không thuộc V’ theo liên kết Tree_Link luôn là đƣờng nối ngắn nhất từ nút u đến k trong đồ thị G.
Chứng minh định lí này đƣợc suy ra trực tiếp từ sự thực hiện của thủ tục FOUND.
- Định lí 5.2: Giải thuật STM đảm bảo đƣợc tính bất biến không vòng lặp
và mảnh STM hiện tại sẽ không xuất hiện chu trình.
- Định lí 5.3: Thủ tục UPDATE và FIND luôn kết thúc, và nút gốc nhận
biết đƣợc sự kết thúc này.
- Định lí 5.4: Độ phức tạp thông báo với mỗi đáp ứng của giải thuật với
một sự thay đổi hình trạng mạng là O(V).
Định lí 5.2,5.3,5.4 đƣợc chứng minh tƣơng tự nhƣ các định lí của giải thuật OMST cải tiến, với chú ý là quá trình UPDATE đƣợc phát sinh dọc theo các liên kết Data_Link và cả Tree_Link, do đó các nút không thuộc nhóm đa phát V’ cũng có thể có mặt trong danh sách Tree_List. Nói cách khác, quá trình UPDATE và FIND không phân biệt một nút là thuộc nhóm đa phát hay không, do đó danh sách “cây ảo” vẫn đƣa ra đƣợc danh sách loại trừ đúng đắn cho thủ tục LOCAL_FIND. Áp dụng chứng minh của giải thuật OMST cải tiến, các định lí trên cũng đƣợc chứng minh là đúng đắn.
5.6 Độ phức tạp thông báo
Do các quá trình truyền thông báo của các nút trong mạng là giống hệt nhau ở giải thuật STM so với giải thuật OMST cải tiến, chỉ khác nhau về nội dung của thông điệp FOUND, nhƣng không thay đổi về số lƣợng, ngoại trừ thông điệp SET_DATALINK cũng chỉ đi dọc theo các liên kết Tree_Link, do đó chi phí thông điệp này cũng là O(V). Kết luận, tổng chi phí thông điệp của giải thuật STM cũng là O(V).
CHƢƠNG 6 - ĐÁNH GIÁ GIẢI PHÁP MỚI
6.1 Môi trƣờng mô phỏng và các tham số
Để chứng minh tính đúng đắn của giải thuật và tối ƣu về số lƣợng gói tin điều khiển gửi đi, luận văn đã cài đặt một phiên bản STM để có thể thực hiện mô phỏng, sau đó thực hiện các mô phỏng theo cùng kịch bản và đánh giá hiệu năng của giao thức STM so với các giao thức đa phát tầng mạng tƣơng tự. Giao thức đƣợc chọn để so sánh là PUMA và MAODV. Nhƣ đã trình bày ở chƣơng 2, PUMA là giao thức duy trì hình trạng mạng theo lƣới (Mesh Based), sử dụng biến đếm vô hạn để thực thi giải thuật, còn MAODV là giao thức duy trì hình trạng mạng theo cây chia sẻ (Shared Tree Based), và chỉ chạy khi có yêu cầu kết nối (On Demand). STM duy trì hình trạng mạng theo cây chia sẻ, nhƣng luôn bảo trì hình trạng mạng chứ không cần có yêu cầu kết nối (theo kiểu Link State).
Môi trƣờng sử dụng để đánh giá hiệu năng các giao thức trên là công cụ NS2, phiên bản allinone 2.34. Các mã nguồn của các giao thức PUMA[18], MAODV[19] đƣợc cung cấp nhƣ module mở rộng cho NS2. Mã nguồn của STM đƣợc thiết kế và lập trình từ đầu nhƣ một module mở rộng mới cho NS2, đƣợc cung cấp trung đĩa tài liệu đính kèm với luận văn. Các mã nguồn của MAODV và PUMA cũng đƣợc tích hợp trong đĩa tài liệu.
Mạng giả lập bằng công cụ NS2 có cấu hình nhƣ sau:
Công cụ NS2
Simulation Area 300m x 300m
Vị trí nút Ngẫu nhiên (mô hình Random Waypoint Model)
Vùng phủ sóng 200m
Thời gian dừng 0 s
Băng thông 2 Mbps
Kích thƣớc gói dữ liệu 512 bytes
MAC Protocol 802.11
6.2 Chứng minh tính đúng đắn của giải thuật
Để chứng minh tính đúng đắn của giải thuật OMST cải tiến cũng nhƣ STM, chúng tôi đã cài đặt mã nguồn của giải thuật nhƣ một module mở rộng của NS2, đồng thời bổ sung tính năng hiển thị trực quan hình trạng của cây khung trong công cụ NAM[3], là một phần của bộ công cụ NS2.
Kết quả thu đƣợc với một hình trạng mạng ngẫu nhiên với 10 nút đƣợc sinh ra bằng mô hình Random Waypoint Model nhƣ sau:
Hình 35 mô tả quá trình kết hợp các mảnh MST riêng rẽ, chạy phân tán. Trọng số của các nút chính là khoảng cách giữa chúng. Các liên kết Tree_Link đƣợc thể hiện bằng các đƣờng nối liền.
Hình 36 cho thấy quá trình kết hợp thành công. Nhƣ thể hiện trong hình, cây khung bảo đảm tính bất biến không vòng lặp, và không xuất hiện chu trình.
Hình 30: Quá trình kết hợp thành công
Hình 37 cho thấy một liên kết bị đứt gãy, cây khung MST bị tách thành 2 mảnh MST riêng rẽ.
Hình 38 là kết quả của quá trình tái kết hợp. Tính bất biến không vòng lặp và không xuất hiện chu trình vẫn đƣợc đảm bảo.
Hình 32: Cây khung đƣợc bảo trì thành công
6.3 Đánh giá hiệu quả truyền phát thành công
Công thức tính hiệu quả truyền phát
Để đánh giá hiệu quả truyền phát của các giao thức, ta đánh giá qua một số tiêu chí: Hiệu năng so với thời gian thực thi giải thuật, hiệu năng so với tốc độ di chuyển của nút, hiệu năng so với số nút phát, hiệu năng so với số thành viên nhóm đa phát
6.3.1 Hiệu năng so với thời gian thực thi giao thức
Hình 39: Biểu đồ tỉ lệ truyền thành công theo thời gian
Theo kết quả này, tỉ lệ truyền phát thành công của giao thức STM tƣơng đƣơng với giao thức PUMA và tốt hơn so với MAODV. Lƣu ý rằng giao thức PUMA quản lí mạng theo lƣới, do đó nếu một liên kết bị đứt gãy, dữ liệu có thể truyền qua các liên kết khác. STM quản lí mạng theo cây, các đƣờng truyền giữa 2 nút bất kì là duy nhất, nên liên kết bị đứt thì sẽ làm gián đoạn quá trình truyền dữ liệu. Để khắc phục vấn đề này, giao thức STM đáp ứng nhanh với sự thay đổi hình trạng mạng, do chi phí thông điệp là tối ƣu, do đó thời gian đáp ứng giảm xuống, đảm bảo tỉ lệ truyền phát suy giảm tối thiểu.
6.2.2 Hiệu năng truyền thành công theo tốc độ nút
Hình 40: Biểu đồ tỉ lệ truyền thành công theo tốc độ nút
Tốc độ di chuyển của các nút càng nhanh, hình trạng mạng thay đổi càng thƣờng xuyên. Do đó, các giao thức dựa theo lƣới nhƣ PUMA càng thể hiện đƣợc tính vƣợt trội hơn, do dữ liệu có thể truyền qua nhiều đƣờng liên kết khác nhau. Các giao thức dựa theo cây nhƣ MAODV và STM đáp ứng không tốt bằng các giao thức dựa theo lƣới khi tốc độ nút tăng lên, làm cho tỉ lệ phát thành công càng thấp khi tốc độ di chuyển của nút càng cao.
6.3.2 Hiệu năng theo số nút phát
Hình 41: Biểu đồ tỉ lệ truyền thành công theo số nút phát
Trong biểu đồ trên, có thể nhận thấy tất cả các giao thức đều có tỉ lệ truyền thành công giảm dần theo số nút phát, nghĩa là mật độ dữ liệu trong mạng càng cao, tỉ lệ lỗi càng lớn. Nguyên nhân của điều này là do trong môi trƣờng mạng, các nút phát theo cơ chế phát tỏa sóng mang (broadcast), nếu nhƣ mật độ các gói tin trong mạng càng nhiều, thì tỉ lệ xung đột (collision) càng cao, dẫn đến tỉ lệ phát thành công giảm xuống. Không có sự khác biệt đáng kế giữa chiều hƣớng của tỉ lệ phát thành công của các giao thức theo số lƣợng nút phát, do đó STM đƣợc xem là có hiệu năng tƣơng đƣơng với các giao thức tƣơng tự về phía cạnh hiệu năng này.
6.4 Đánh giá độ trễ trung bình truyền thông
6.4.1 Độ trễ trung bình theo tốc độ nút và số nút tham gia
Hình 42: Biểu đồ độ trễ trung bình theo tốc độ nút và số lƣợng nút tham gia
Dù MAODV có độ trễ cao hơn so với STM và PUMA, tuy nhiên mức chênh lệch là không đáng kế, và độ trễ của các 3 giao thức đều ở mức thấp, nghĩa là rất tốt.
6.4.2 Độ trễ trung bình theo số nút phát
Hình 33: Biểu đồ độ trễ theo số nút phát
Độ trễ theo số nút phát của giao thức STM cao hơn so với MAODV và PUMA, do STM duy trì hình trạng mạng theo cơ chế Link State, do đó trong phạm vi phát sóng, chừng nào liên kết chƣa bị đứt gãy thì STM sẽ không thực thi sửa lại hình trạng. Điều này dẫn đến 2 nút hàng xóm có thể ở rất xa nhau,
nhƣng vẫn truyền dữ liệu qua nhau, thay vì truyền đến nút hàng xóm gần đến. Dù sao sự chênh lệch độ trễ cũng không quá lớn, so với tổng thời gian thực thi giải thuật.