3.3.3 Flooding based on 2-hop backward information (2HBI)
Có thể thấy rằng, thuật tốn flooding theo 1HI là thuật toán dựa vào bên gửi chỉ dùng thơng tin hàng xóm 1-chặng, theo đó kết quả của giao thức là chi phí nhỏ và dễ thực thi. Tuy nhiên, do những đặc tính của nó, thuật tốn này có nhược điểm như sau: Thứ nhất, tập chuyển tiếp chỉ được tối ưu một cách cục bộ dựa vào thơng tin hàng xóm 1-chặng. Do đó, số nút truyền lại vẫn tương đối cao. Thứ 2, các nút truyền lại được phân tán dày đặc theo biên mạng gây nên lãng phí, bởi vì hàng xóm của những nút mạng này đã nhận được thông báo flooding từ các nút truyền lại ở những chặng trước đó.
Do đó, dùng thuật toán 2HBI sẽ giảm đáng kể số nút truyền lại trong mạng. Ưu điểm của thuật toán này như sau:
1) 2HBI hoàn toàn thuận lợi cho thơng tin vị trí địa lý để giảm số nút truyền lại một cách hiệu quả trong suốt quá trình flooding và giải quyết được vấn đề broadcast storm trong mạng ad-hoc.
2) 2HBI dùng khái niệm “thông tin lùi 2-chặng” để tối thiểu tập nút truyền lại ở mỗi chặng bằng cách dùng 3 qui tắc tối ưu.
3) 2HBI khơng địi hỏi bất kỳ chi phí truyền thơng phụ nào so với việc trao đổi các thông báo hello 1-chặng.
4) 2HBI có độ phức tạp thời gian nhỏ, O(nlogn), với n là số nút mạng
5) Với thuật toán 2HBI, nút gửi quyết định nút nào sẽ là nút truyền lại thông báo flooding (dựa vào bên gửi). Hơn nữa, nút nhận có thể từ chối việc chuyển tiếp thông báo.
Về thông tin lùi 2-chặng: Trong một mạng ad-hoc, nút gửi của một nút được gọi là nút lùi 1-chặng và nút gửi của nút lùi 1-chặng được gọi là nút lùi 2- chặng. Như hình vẽ 3.4, thơng báo flooding được lan truyền từ nút nguồn 0 đến nút 3, sau đó nó được lan truyền từ nút 3 đến nút 4 và cứ thế tiếp tục. Do đó, trường hợp của nút 4, các nút lùi một và hai chặng tương ứng là nút 3 và nút 0. Khi đó, có thể xem thơng tin lùi 2-chặng như là sự kết hợp thông tin tập chuyển tiếp của các nút lùi một và hai chặng với thông tin hàng xóm 1-chặng. Thơng tin tập chuyển tiếp gồm định danh của các nút mạng và thơng tin vị trí của tất cả các nút trong tập hợp đó.
Hình 3.4: Thông tin lùi 2-chặng của nút 4.
Thông tin lùi 2-chặng nhận được nhờ sự trợ giúp của cơ chế lan truyền thông tin tập chuyển tiếp, trong đó mỗi nút truyền lại cố định thông tin tập chuyển tiếp và nút gửi của nó cùng với thơng báo flooding trước khi quảng bá thông báo. Dựa trên thông báo nhận được, nút truyền lại ở chặng tiếp theo sẽ kết hợp thông tin này với thơng tin hàng xóm 1-chặng và do đó tạo nên tồn bộ thông tin lùi 2-chặng. Như trong hình 3.4, nút 4 nhận được thơng tin tập chuyển tiếp của các nút 0 và 3 từ việc lan truyền thơng báo flooding. Sau đó, thơng tin này được kết hợp với thơng tin hàng xóm 1-chặng. Vì vậy, nút 4 chứa tồn bộ thơng tin lùi 2-chặng. Theo đó, mỗi nút mạng cần phải duy trì thơng tin hàng xóm 1-chặng.
Ý tưởng chung của thuật tốn 2HBI: Q trình flooding bắt đầu khi một
nút nguồn cần truyền đi một thông báo. Trước tiên, nút nguồn chọn tập chuyển tiếp của mình. Sau đó, nút nguồn cố định tập chuyển tiếp cùng với thông báo flooding và quảng bá thơng báo đó nếu tập chuyển tiếp khác tập rỗng. Dựa vào thông báo flooding nhận được, mỗi nút nhận thực hiện như sau: ngừng chuyển tiếp thông báo nếu như thông báo này bị lặp lại hoặc nút nhận không được gán như là nút truyền lại. Nếu định danh của nút nhận nằm trong tập chuyển tiếp của nút gửi thì nút nhận đó là nút truyền lại. Tiếp theo, mỗi nút truyền lại sẽ tính chính xác tập chuyển tiếp của mình tương tự với cách tính của nút nguồn. Sau đó, mỗi nút truyền lại dùng ba qui tắc tối ưu nhằm tối ưu tập chuyển tiếp của mình dựa vào thơng tin lùi 2-chặng. Nếu tập chuyển tiếp tối ưu đó khác tập rỗng thì nút nhận sẽ cố định thông tin tập chuyển tiếp và nút gửi của mình cùng với thơng báo flooding và quảng bá thơng báo đó đến chặng tiếp theo. Bằng cách đó, thơng báo flooding sẽ đi đến tất cả các nút mạng.
Chọn tập chuyển tiếp của một nút mạng: Đầu vào là danh sách các nút mạng hàng xóm. Mỗi nút mạng là nút truyền lại sẽ tính biên giới vùng phủ sóng của mình đến các nút mạng hàng xóm. Sau đó, gộp tất cả các biên giới của mỗi nút truyền lại và hàng xóm của nút cần tìm tập chuyển tiếp thành một tập hợp duy nhất. Tập này gọi là biên giới vùng phủ sóng của các nút mạng hàng xóm. Vì vậy, các nút mạng đóng góp vào biên giới trên chính là tập chuyển tiếp khởi tạo. Minh họa ở hình 3.5, biên giới vùng phủ sóng của các nút hàng xóm của nút 0 là đường biên dày. Cũng theo hình vẽ, chỉ có các nút hàng xóm là 2 và 3 đóng góp đến biên giới này. Do đó, tập chuyển tiếp khởi tạo của nút 0 gồm có nút 2 và nút 3. Theo thuật tốn merge sort thì độ phức tạp thời gian của thuật toán chọn tập chuyển tiếp là O(nlogn), trong đó n là số nút mạng hàng xóm.
Tối ưu tập chuyển tiếp: Sau khi chọn tập chuyển tiếp, mỗi nút truyền lại sẽ tối ưu tập chuyển tiếp của mình dựa trên ba qui tắc tối ưu sau:
Qui tắc 1: Mỗi nút truyền lại loại bỏ từ tập chuyển tiếp của mình các nút mạng bị phủ sóng bởi nút gửi của nó.
Xét trường hợp nút truyền lại 4 trong hình 3.5, nút này vừa nhận được thông báo flooding từ nút 3. Giả sử tập chuyển tiếp khởi tạo của nút 4 gồm có bốn nút là: 3, 6, 7 và 8. Áp dụng qui tắc 1 thì các nút 3 và 7 được loại bỏ từ tập chuyển tiếp của nút 4. Do đó, tập chuyển tiếp cịn lại của nút 4 gồm hai nút là 6 và 8. Ý nghĩa của qui tắc 1 là ngăn chặng thông báo flooding lan truyền ngược
trở lại. Khi đó, thơng báo luôn luôn được lan truyền hướng về vùng chưa bị phủ sóng.
Qui tắc 2: Nút truyền lại là đóng với bên gửi khi loại bỏ từ tập chuyển tiếp của nó những nút mạng nằm trong vùng phủ sóng bị chồng chéo, gồm các nút mạng nằm trong vùng phủ sóng của nó và vùng phủ sóng của các nút truyền lại khác.
Hình 3.5: Q trình flooding theo thuật tốn 2HBI.
Để nhận được thông tin về vị trí của tất cả các nút mạng nằm trong tập chuyển tiếp của nút gửi, mỗi nút truyền lại tính chính xác tất cả các vùng phủ sóng chồng chéo với các nút truyền lại khác (gọi là vùng chồng chéo), ngay cả khi hai nút truyền lại không phải là hàng xóm với nhau. Sau đó, chỉ có nút truyền lại ở cách xa hơn từ nút gửi sẽ chọn các nút mạng nằm trong những vùng chồng chéo để thực hiện nhiệm vụ truyền lại. Điều này giúp cho mỗi nút truyền lại làm giảm thêm kích thước tập chuyển tiếp của nó một cách hiệu quả. Dựa vào qui tắc này, nút 8 được loại bỏ từ tập chuyển tiếp của nút 4 bởi vì nó nằm trong vùng chồng chéo với nút 5 ở cách xa hơn nút 4 kể từ nút gửi 3. Do đó, tập chuyển tiếp cịn lại của nút 4 chỉ gồm có nút 6. Ưu tiên của việc chọn các nút truyền lại trong thuật toán 2HBI khác với trong thuật toán 1HI. Trong thuật toán 1HI, dùng định danh nút thấp hơn làm sự ưu tiên. Cịn trong thuật tốn 2HBI, dùng “khoảng cách giữa các nút truyền lại với nút gửi” làm sự ưu tiên. Cơ sở của việc ưu tiên này lấy từ khái niệm tham lam: nút mạng ở cách xa nút gửi hơn sẽ phủ sóng một phạm vi rộng hơn.
Mỗi nút truyền lại áp dụng các qui tắc 1 và 2 để tối ưu tập chuyển tiếp của mình. Ngồi ra, những nút truyền lại mà nút gửi của nó khơng phải là nút nguồn sẽ áp dụng thêm qui tắc 3 để tối ưu tập chuyển tiếp.
Qui tắc 3: Dựa vào thông tin tập chuyển tiếp của nút lùi 2-chặng, mỗi nút truyền lại loại bỏ từ tập chuyển tiếp của mình những nút mạng nằm trong vùng phủ sóng của các nút mạng là hàng xóm của nút lùi 2-chặng.
Mục đích của qui tắc 3 tương tự với qui tắc 1, nhằm ngăn chặng thông báo flooding lan truyền ngược trở lại. Như vậy, trong hình 3.5, nút mạng 6 nằm trong tập chuyển tiếp khởi tạo của nút 4. Tuy nhiên, nó cũng nằm trong vùng phủ sóng của nút 2, là hàng của nút 0. Vì vậy, nút 6 được xét đến bởi nút 2 và do đó nó được loại bỏ từ tập chuyển tiếp của nút 4. Cuối cùng, tập chuyển tiếp tối ưu của nút 4 là tập rỗng.
Việc tối ưu tập chuyển tiếp với sự trợ giúp của nút gửi sẽ làm giảm số nút truyền lại ở chặng tiếp theo. Khi đó, sẽ giảm số nút truyền lại trong mạng một cách đáng kể. Vì vậy, có thể xem thuật tốn 2HBI là thuật tốn flooding dựa vào bên gửi.
3.3.4 Flooding with dominant pruning (FWDP)
Một thuật tốn flooding nữa cũng dựa vào thơng tin 2-chặng, đó là thuật tốn FWDP. Ưu điểm của thuật toán này như sau:
Thuật toán dựa vào bên gửi.
FWDP dùng thông tin 2-chặng nên giảm đáng kể số nút truyền lại ở chặng tiếp theo.
Thuật toán đơn giản, hiệu quả và dễ thực thi.
Theo thuật toán FWDP, nút gửi chọn ra các nút kề sẽ chuyển tiếp gói tin để hồn thành vấn đề flooding trong mạng. Định danh của các nút kề đã chọn được ghi vào trong gói tin như là danh sách chuyển tiếp (forward list). Khi đó,
một nút kề được yêu cầu chuyển tiếp lại gói tin, nó sẽ xác định danh sách chuyển tiếp của mình. Quá trình này được lặp lại cho đến khi vấn đề flooding được hoàn thành.
Việc xác định danh sách chuyển tiếp được thực hiện như sau. Giả sử, nút vj nhận được gói tin từ nút vi và vj nằm trong danh sách chuyển tiếp. Nút vj phải xác định danh sách chuyển tiếp của mình sao cho tất cả các nút mạng nằm trong khoảng cách 2-chặng nút từ vj nhận được gói tin. Danh sách chuyển tiếp phải
được tối thiểu để giảm số nút truyền lại. Tập các nút mạng với khoảng cách tối đa 2-chặng từ vj là N(N(vj)). Các nút mạng vi, vj, N(vi) đã nhận được gói tin từ vi và N(vj) sẽ nhận được gói tin khi vj chuyển tiếp. Do đó, nút vj xác định danh sách chuyển tiếp của mình sao cho tất cả các nút mạng nằm trong tập hợp U = N(N(vj)) – N(vi) – N(vj) nhận được gói tin. Hình 3.6 biểu diễn tập U như thế. Đặt B(vi, vj) = N(vj) – N(vi), khi đó chọn một tập nút F = {f1, f2, …, fm} B(vi,
vj) sao cho: ∪ fi∈F(N fi ∩ U)) = U
Hình 3.6: Phương pháp Dominant pruning.
Tìm ra một tập F nhỏ nhất như thế là một bài toán phủ tập hợp và nó là bài tốn NP-đầy đủ [8]. Vì vậy, sử dụng thuật toán xấp xỉ để xác định tập chuyển tiếp.
Trong thuật toán FWDP, vấn đề quan trọng nhất là chọn danh sách các nút mạng chuyển tiếp F = {f1, f2, …, fm} B(vi, vj) cho chặng tiếp theo. Khi đó,
cần phải có thuật tốn chọn tập chuyển tiếp F. Ở đây, chúng tơi dùng thuật tốn xấp xỉ greedy set cover [20] để chọn tập F. Thuật toán như sau:
Bước 1: Khởi tạo F = , Z = , K = {S1, S2, …, Sn} Trong đó, Sk = N(vk) U , với (1 ≤ k ≤ n); Bước 2: Chọn tập Sk K sao cho |Sk| là lớn nhất;
Bước 3: F = F {vk}, Z = Z Sk, K = K \ {Sk}, Sl = Sl \ Sk, với Sl K; Bước 4: Nếu Z = U thì dừng thuật tốn;
Bước 5: Lặp lại bước 2.
Kết thúc thuật tốn trên ta sẽ có được tập chuyển tiếp F. Tỷ lệ xấp xỉ của thuật toán này là ln|U| + 1. Trong đó, tập U được mơ tả như trên.
Vấn đề quan trọng ở đây là cài đặt thuật toán FWDP để thử nghiệm. Chúng tơi đã tìm hiểu và cài đặt thuật tốn này (chi tiết về cài đặt thuật tốn này có thể xem ở phần phụ lục).
3.4 Tổng kết chương
Ở chương này, đầu tiên chúng tơi đã trình bày về thuật tốn flooding thơ cho mạng di động ad-hoc và chỉ ra rằng tại sao cần phải quan tâm đến các thuật toán flooding. Sau đó, chúng tơi trình bày bốn thuật tốn flooding có cải tiến. Self-pruning là thuật toán đơn giản nhất, dựa vào bên nhận và dùng thông tin hàng xóm một chặng. Tiếp theo, trình bày thuật toán 1HI, là thuật toán flooding dựa vào bên gửi và cũng chỉ dùng thơng tin hàng xóm 1-chặng. Một nút mạng trong thuật toán 1HI muốn chuyển tiếp thông báo thì cần phải chọn và tối ưu danh sách chuyển tiếp của mình bằng cách loại bỏ các nút mạng bị phủ sóng bởi bên gửi và các nút truyền lại là hàng xóm có định danh ID nhỏ hơn mình. Ưu điểm của thuật toán này là dễ thực thi và chi phí nhỏ.
Tiếp theo nữa, chúng tơi trình bày về thuật toán 2HBI. Đây là thuật toán flooding dựa vào bên gửi và dùng thông tin lùi 2-chặng nút. Tương tự như thuật toán 1HI, trong thuật toán 2HBI, một nút mạng chịu tránh nhiệm chuyển tiếp thông báo cũng thực hiện việc chọn và tối ưu danh sách chuyển tiếp. Vấn đề tối ưu danh sách chuyển tiếp trong thuật toán này dựa vào ba qui tắc tối ưu đã được đề cập. Ưu điểm chính của thuật tốn này so với thuật toán 1HI là: Thứ nhất, thuật tốn khơng địi hỏi bất kỳ chi phí truyền thơng phụ nào so với việc trao đổi các thông báo hello 1-chặng. Thứ hai, thuật tốn có độ phức tạp thời gian nhỏ,
O(nlogn), với n là số nút mạng hàng xóm.
Phần cuối cùng của chương này, chúng tôi trình bày một cách chi tiết thuật toán FWDP. Đây cũng là thuật toán flooding dựa vào bên gửi và dùng thông tin 2-chặng nút. Chúng tôi đã nghiên cứu và cài đặt thuật toán này trên bộ mơ phỏng mạng ns2, từ đó góp phần vào việc tìm ra hướng mới của định tuyến mạng ad-hoc, một trong những vấn đề quan trọng nhất của loại mạng này.
CHƢƠNG 4
MƠ PHỎNG VÀ ĐÁNH GIÁ
Bộ mơ phỏng mạng nổi tiếng thường dùng để mô phỏng các giao thức định tuyến ad-hoc là network simulator 2 (phiên bản hiện nay là ns-2.34). Để mô phỏng môi trường vô tuyến không dây di động, chúng tôi đã dùng phần mở rộng về tính di động của ns được phát triển bởi dự án CMU Monarch tại trường đại học Carnegie Mellon.
4.1 Môi trường mô phỏng NS2
Network simulator 2 (ns2) là kết quả nghiên cứu, phát triển và được quản lý bởi nhóm nghiên cứu tại Berkeley. Nó là bộ mơ phỏng các sự kiện rời rạc nhằm mục đích nghiên cứu trong lĩnh vực mạng máy tính. Thực chất nó hỗ trợ để mơ phỏng cho TCP, định tuyến và các giao thức mạng multicast.
Hình 4.1: Network Simulator 2.
Bộ mô phỏng này được viết bằng C++ và ngôn ngữ kịch bản OTcl1
. Ns dùng một trình thơng dịch Otcl hướng đến người dùng. Điều này có nghĩa là người dùng viết một kịch bản Otcl để định nghĩa mạng (số nút mạng, các liên kết), lưu lượng mạng (nguồn, đích, loại lưu lượng) và giao thức nào sẽ được dùng. Sau đó kịch bản này được sử dụng bởi ns trong suốt quá trình mơ phỏng. Kết quả đầu ra của mơ phỏng là một tệp vết (trace file) có thể được dùng để xử
1
lý dữ liệu (tính delivery ratio, delay, throughput, …) và để quan sát mô phỏng bằng cách dùng một chương trình gọi là network animator (NAM). Phiên bản hiện tại của ns2 có hỗ trợ cho mơi trường không dây di động.
4.1.1 Nút mạng di động
Hình 4.2: Một nút mạng di động theo chuẩn không dây mở rộng CMU cho ns.