Trong những năm sắp tới, tính toán di động chắc chắn sẽ ngày càng phát triển mạnh và sẽ tiến hóa dần đến mạng không dây thế hệ thứ tư. Mạng ad hoc do đó cũng sẽ đóng một vai trò quan trọng trong sự tiến hóa này. Các đặc điểm tự nhiên của mạng ad hoc như tính linh động, dễ duy trì, cần ít cơ sở hạ tầng, tự cấu hình, khả năng tự trị và các ưu điểm về giá thành đã đưa nó trở thành công nghệ hàng đầu phục vụ cho truyền thông cá nhân. Ngày nay, hàng loạt các hoạt động nghiên cứu, sự quan tâm cao độ của giới công nghiệp và sự tăng trưởng theo hàm mũ đối với khu vực công nghệ Bluetooth và WLAN đã cho thấy tầm quan trọng và cơ hội của mạng ad hoc trong các cộng đồng nghiên cứu và giới công nghiệp. Phát triển và tích hợp MANET với các mạng không dây khác và cơ sở hạ tầng internet cố định cũng như giải quyết một loạt các vấn đề đã được nêu trong chương này sẽ là xu hướng công nghệ và cũng là các hướng nghiên cứu chủ yếu trong tương lai.
MANET là một hướng nghiên cứu có nhiều tiềm năng bởi nhu cầu phát triển lớn và có phạm vi ứng dụng rộng rãi. Xu hướng phát triển công nghệ của nước ta chắc chắn sẽ không nằm ngoài các xu hướng chung của công nghệ thế giới và do đó bắt đầu cần phải có các nghiên cứu về vấn đề này. Trong khuôn khổ của đề tài, tác giả sẽ tập trung đi vào giải quyết một khía cạnh trong vấn đề định tuyến đã được nêu trong chương. Đó chính là vấn đề tăng cường tính hiệu quả của kỹ thuật flooding trong MANET.
CHƢƠNG II
FLOODING TRONG MANET VÀ PHƢƠNG PHÁP CẢI TIẾN 2.1. Broadcast trong MANET và những vấn đề liên quan
2.1.1. Broadcast trong MANET
2.1.1.1. Một số ứng dụng
Một mạng không dây là một tập hợp của các host (nút) đứng yên hoặc di động có thể liên lạc được với nhau thông qua các liên kết không dây mà không cần có sự hỗ trợ của mạng cố định. Mỗi nút di động có khả năng liên lạc trực tiếp với các nút nằm trong lân cận của nó. Ngoài ra, chúng còn có thể liên lạc gián tiếp đến các nút ở xa bằng cách gửi các gói tin đến các nút lân cận, các nút này đến lượt nó lại chuyển tiếp gói tin đến các nút lân cận khác, cứ như vậy cho đến khi đến được nút đích.
Broadcast là hoạt động cơ bản của mạng, trong đó, một nút sẽ gửi cùng một thông điệp đến toàn bộ các nút khác trong mạng. Có hai mô hình broadcast. Thứ nhất là mô hình một-đến-tất cả, trong đó nút nguồn mỗi lần truyền thông điệp sẽ truyền cùng một lúc đến tất cả các nút nằm trong tầm phủ sóng của nó; khác với mô hình thứ hai, một-đến-một, nút nguồn mỗi lần truyền sẽ chỉ truyền đến một hàng xóm của nó mà thôi. Nói chung, broadcast thường được hiểu và nghiên cứu tập trung theo mô hình đầu tiên, mô hình một-đến-tất cả.
Các mạng không dây dựa trên cơ sở hạ tầng mạng cố định hoặc các mạng cố định thường xuyên sử dụng broadcast để thực hiện một số công tác của mình như gửi một tín hiệu báo động về tình trạng mạng cho tất cả các nút hoặc xác định vị trí của một nút đặc biệt nào đó. Ngoài ra, broadcast cũng thường xuyên được sử dụng trong hoạt động phát hiện tuyến đường trong mạng. Khi một nút nguồn S muốn tìm một tuyến đường đến nút đích D, đầu tiên, nó sẽ broadcast một gói tin chứa thông tin về nó (tên và địa chỉ IP chẳng hạn), ID hoặc địa chỉ của D và một vài bit điều khiển. Khi gói tin này đến được D, D sẽ thực hiện một số thuật toán định tuyến và sau đó gửi về S một gói tin chứa thông tin về vị trí của D và các tuyến đường đã thiết lập được. S sẽ dựa vào các thông tin này và chọn ra tuyến phù hợp để thực hiện các công việc truyền tin tiếp theo.
Trong môi trường mạng có tính động cao như MANET, broadcast đặc biệt thích hợp với các giao thức định tuyến. Tần số broadcast của các nút thậm chí còn lớn hơn nhiều so với mạng không dây có hỗ trợ bởi cơ sở hạ tầng mạng cố định. Các nút trong MANET luôn có xu hướng chuyển động, do đó hình trạng mạng luôn luôn thay đổi và
dẫn đến phá vỡ các tuyến đường truyền tin giữa các nút. Để có thể duy trì được các tuyến đường truyền tin, các nút phải thường xuyên thực hiện hoạt động phát hiện tuyến đường và broadcast là giải pháp hữu hiệu cho hoạt động này.
Một ứng dụng khác của broadcast là trong mạng sensor. Các tiến bộ về công nghệ gần đây đã cho phép tích hợp microsensor, xử lý tín hiệu năng lượng thấp, tính toán và truyền thông không dây giá rẻ vào trong một thiết bị cảm biến. Broadcast và thu thập dữ liệu là hai chức năng quan trọng trong mạng sensor, giúp cho mạng có khả năng thu thập và phát tán các thông tin quan trọng như nhiệt độ, áp suất và mức độ ồn. Kỹ thuật đầu tiên được dùng cho broadcast chính là flooding mù. Đây là kỹ thuật đơn giản nhất nhưng lại không phải kỹ thuật có độ hiệu quả cao. Kỹ thuật này đảm bảo gói tin cần broadcast sẽ đến được tất cả các nút trong mạng. Tuy nhiên, đi đôi với điều đó lại là một sự lãng phí lớn tài nguyên của mạng. Ở phần sau chúng ta sẽ đi vào xem xét kỹ thuật này và các nhược điểm của nó.
2.1.1.2. Flooding mù
Flooding mù (flooding đơn giản) là cách dễ dàng nhất để phát tán dữ liệu từ một nút đến tất cả các nút khác trong mạng. Trong kỹ thuật này, nút nguồn sẽ broadcast gói tin dữ liệu đến tất cả các hàng xóm của nó thông qua cơ chế broadcast của lớp MAC. Mỗi nút trong mạng nhận được gói tin này sẽ lại broadcast tiếp gói tin này đến các hàng xóm của nó nếu đây là lần đầu tiên chúng nhận được gói tin đó. Như vậy, các gói tin broadcast sẽ được các nút khác tự động phát tán trong mạng, và cuối cùng, quá trình broadcast sẽ chấm dứt khi tất cả các nút đã nhận được gói tin và chuyển tiếp nó. Rõ ràng là quy tắc “mỗi nút sẽ chỉ broadcast gói tin vào lần đầu tiên nó nhận được gói tin đó” đảm bảo chắc chắn rằng quá trình này sẽ chấm dứt và do đó tránh được hiện tượng xuất hiện vòng lặp truyền gói tin trong mạng. Quy tắc này hoàn toàn có thể thực hiện được nhờ sử dụng một định danh duy nhất cho mỗi gói tin được flooding. Kỹ thuật flooding này sẽ phát tán dữ liệu đến tất cả các nút nằm trong thành phần liên thông của mạng.
Với flooding mù, các nút không cần phải biết hoặc duy trì các thông tin về hình trạng mạng. Trong những mạng mà các nút có tính động cao, một giao thức định tuyến unicast (là giao thức tìm đường đến từng đích đơn) thường không thể theo kịp được với tốc độ thay đổi của hình trạng mạng, khi đó, flooding có lẽ sẽ là cách tiếp cận định tuyến duy nhất có thể tin cậy được. Tuy nhiên trong những mạng mà sự di động của các nút đủ chậm để một giao thức định tuyến có thể theo dõi được thì flooding mù có thể trở thành một lựa chọn không hợp lý. Lý do là ở chỗ tổng số lần truyền phục vụ cho việc phát tán một gói tin đến đích của kỹ thuật flooding mù sẽ tỷ lệ thuận với kích
thước của mạng; trong khi đối với một thuật toán định tuyến unicast thì tổng số này sẽ phụ thuộc vào đường kính của mạng (với giả thiết luôn có thể tìm được một tuyến thích hợp) [29].
Mặc dù flooding không phải là sự lựa chọn đầu bảng cho yêu cầu thiết kế một cơ chế phát tán dữ liệu một cách hiệu quả, nhưng nó vẫn thực sự hữu dụng trong một số tác vụ định tuyến như phát hiện tuyến, phổ biến hình trạng mạng hoặc có thể là cơ chế duy nhất đầu tiên cần phải thực hiện khi không hề có một thông tin nào về hình trạng mạng hiện thời. Do vậy, flooding vẫn được coi là một phần quan trọng trong các giao thức định tuyến.
Trong giao thức flooding muf được mô tả như vừa rồi, mỗi nút chỉ truyền gói tin duy nhất một lần và chúng ta có thể thấy ngay rằng một nút có thể nhận được cùng một gói tin từ nhiều hàng xóm của nó. Do đó, tùy vào mật độ của mạng mà cách flooding này có thể sẽ thực hiện tổng số lần truyền nhiều hơn rất nhiều số lần truyền cần thiết để gói tin đến được tất cả các nút. Nhiều cơ chế flooding cải tiến đã được giới thiệu nhằm hạn chế sự dư thừa này. Tất cả đều tập trung vào giải quyết vấn đề sẽ dùng một lượng nhỏ các nút để truyền gói tin mà vẫn đảm bảo được gói tin cần phát tán có thể đến được tất cả các nút trong mạng.
2.1.2. Dư thừa gói tin, tranh chấp và xung đột khi Broadcast
Như phần trên đã trình bày, flooding là một giải pháp trực tiếp và đơn giản nhất để thực hiện việc phát tán thông tin trong mạng. Tuy nhiên, nhiều nghiên cứu đã cho thấy rằng flooding đơn giản sẽ kéo theo một loạt những rắc rối khác nảy sinh, đó chính là sự dư thừa thông tin broadcast, sự tranh chấp và xung đột trong truyền tin. Các rắc rối này sinh ra bởi các lý do sau đây. Thứ nhất, sự truyền phát sóng radio thường là kiểu phát tỏa (phát ra theo mọi hướng) và một vị trí vật lý có thể nằm trong vùng phủ sóng của nhiều nút nên một nút có thể nhận được nhiều gói tin được broadcast lại từ các nút khác, dẫn đến sự dư thừa và hao phí băng thông. Thứ hai, sự tranh chấp quyết liệt có thể xảy ra bởi các nút thường tự mình đưa ra quyết đinh có nên thực hiện broadcast lại gói tin hay không mà không “tham khảo” các nút khác. Thứ ba, sự đụng độ có khả năng sẽ xảy ra thường xuyên hơn bởi không có cơ chế đối thoại RTS/CTS [43] và thời gian truyền tin giữa các nút có thể gối đầu nhau [18].
Xét trường hợp mạng sử dụng cơ chế flooding đơn giản, nghĩa là mỗi nút khi nhận được gói tin broadcast lần đầu tiên sẽ broadcast lại gói tin này. Như vậy, nếu mạng có n nút thì sẽ có tổng số n lần truyền tin. Chúng ta sẽ lần lượt phân tích các vấn đề đã nêu ở trên.
2.1.2.1. Dƣ thừa hoạt động broadcast
Xét hai ví dụ trong hình 1. Trong hình 1(a), chỉ cần hai lần truyền là nút trắng có thể broadcast một gói tin thành công, trong khi sử dụng flooding đơn giản thì cần đến 4 lần truyền. Hình 1(b) là một ví dụ phức tạp hơn: chỉ cần hai lần truyền là nút trắng có thể broadcast thành công so với 7 lần nếu dùng flooding đơn giản.
Hình 1. Hai mô hình broadcast tối ưu trong MANET. Mỗi gạch nối biểu cho một liên kết giữa 2 nút. Nút trắng là nút nguồn, nút xám là nút broadcast lại.
Hình 2. Vùng hưởng lợi từ broadcast lại: A gửi một thông điệp broadcast và B quyết định xem có nên broadcast lại không.
[18] đã phân tích được rằng việc broadcast lại là rất tốn kém và phải được dùng một cách cẩn thận. Cụ thể như sau, xét trường hợp trong hình 2, trong đó A là nút gửi gói tin và B là nút sẽ quyết định xem có nên broadcast lại gói tin hay không. Gọi SA và SB là diện tích vùng phủ sóng của A và B (là các vòng tròn có tâm A, B, bán kính r), gọi d là khoảng cách giữa A và B. Như vậy, rõ ràng vùng chứa các nút khác không nhận được gói tin broadcast từ A của B là SB-A, đây cũng chính là vùng mà các nút nằm trong nó sẽ nhận được gói tin từ việc broadcast lại của B (vùng phủ sóng có lợi). Ta sẽ tính được SB-A như sau:
SB-A = πr2 – INTC(d)
Trong đó, INTC(d) là diện tích của phần giao nhau giữa SA và SB được tính theo công thức sau:
INTC(d) = r d dx x r 2 / 2 2 4
Khi d = r thì SB-A là lớn nhất và có giá trị bằng 2 2
61 . 0 ) 2 3 3 ( r r . Như vậy, [18] đã cho chúng ta thấy rằng một lần broadcast lại chỉ có thể truyền thêm cho khoảng từ 0 ~ 61% diện tích vùng phủ sóng của nó.
Giả sử rằng B có thể nằm ở bất kỳ vị trí nào trong vùng phủ sóng của A, như vậy, ta có giá trị trung bình của SA-B là:
2 0 2 2 41 . 0 )] ( .[ 2 r dx r x INTC r x r
Như vậy, sau lần broadcast đầu tiên, chỉ có trung bình khoảng 41% diện tích vùng phủ sóng để một nút có thể broadcast thêm là diện tích phủ sóng có lợi.
Sau một vài lần broadcast lại, diện tích phủ sóng có lợi thậm chí còn giảm rất nhanh bởi số lượng các nút đã nhận được gói tin broadcast tăng lên và do đó vùng giao nhau của các nút cũng sẽ tăng lên. Rõ ràng là việc broadcast lại một cách không kiểm soát sẽ gây ra rất nhiều lãng phí tài nguyên của mạng và đây cũng chính là một ràng buộc đặc biệt quan trọng trong việc thiết kế các kỹ thuật flooding cải tiến.
2.1.2.2. Tranh chấp broadcast
Chúng ta xem xét tình huống sau: nút A broadcast một gói tin và có n nút khác nhận được gói tin này. Nếu tất cả các host này đều muốn broadcast lại gói tin thì sự tranh chấp có thể xảy ra bởi vì các nút xung quanh A thường là đóng và do đó có thể xảy ra tranh chấp trên môi trường truyền không dây.
Theo [18], trong trường hợp đơn giản nhất, với n = 2, gọi nút B và C là hai nút đã nhận gói tin broadcast. Để có thể xảy ra tranh chấp giữa B và C, thì C phải nằm trong vùng SA∩B. Như vậy, xác suất để sự tranh chấp xảy ra là SA∩B/πr2. Gọi x là khoảng cách từ A đến B, theo [18], ta có thể tính ra xác suất đó là:
% 59 ) /( ) ( . 2 0 2 2 dx r r x INTC x r
Chúng ta có thể thấy ngay rằng nếu n tăng thì thì xác suất xảy ra tranh chấp sẽ tăng lên. [18] đã cho thấy rằng với n ≥ 6 thì xác xuất xảy ra đụng độ sẽ tăng rất nhanh (hơn 80%). Như vậy, nếu mật độ các nút trong vùng càng cao thì sự tranh chấp càng xảy ra nghiêm trọng.
2.1.2.3. Va chạm khi broadcast
Cơ chế CSMA/CA yêu cầu mỗi nút phải bắt đầu một thủ tục backoff (backoff procedure) [44] ngay sau khi nút truyền xong gói tin, hoặc khi một nút muốn truyền nhưng môi trường truyền đang bận và thủ tục backoff trước đó đã được thực hiện xong. Để thực hiện một thủ tục backoff, đầu tiên, một bộ đếm được gán một giá trị nguyên dương bất kỳ được lấy từ cửa sổ backoff hiện tại. Nếu cơ chế “Channel clear assessment” (CCA) [45] của nút thấy rằng không có hoạt động liên quan đến kênh truyền nào được thực hiện trong khoảng thời gian chờ trước đó thì bộ đếm sẽ được trừ đi một. Khi bộ đếm này có giá trị bằng không thì thủ tục backoff sẽ được kết thúc.
Xét tình huống sau: có nhiều nút nhận được gói tin broadcast từ X. Có rất nhiều lý do để sự va chạm có thể xảy ra. Thứ nhất, nếu môi trường truyền quanh X đã không được sử dụng trong một thời gian đủ dài thì tất cả các hàng xóm của X có thể sẽ triển khai thủ tục backoff của chúng. Điều này có nghĩa là sau khi nhận được gói tin broadcast chúng có thể bắt đầu broadcast lại gói tin này gần như cùng một lúc. Thứ hai, bởi vì cơ chế hội thoại cảnh báo RTS/CTS không sử dụng được trong khi broadcast nên thiệt hại gây ra bởi va chạm thậm chí còn nghiêm trọng hơn. Thứ ba, một khi va chạm đã xảy ra mà cơ chế phát hiện va chạm lại không có, một nút vẫn sẽ tiếp tục truyền tiếp các bit khác của gói tin ngay cả khi các bit trước đó đã có vấn đề.