Dư thừa gói tin, tranh chấp và xung đột khi Broadcast

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 33)

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.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) = rd 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 đề. Như vậy, sự lãng phí sẽ càng tăng lên theo chiều dài gói tin.

Tóm lại, flooding mù sẽ gây ra sự lãng phí lớn tài nguyên của mạng và tồn tại khá nhiều nguy cơ khác. Vấn đề đặt ra là phải có các phương pháp cải tiến kỹ thuật này sao cho giảm thiểu được các nhược điểm của flooding trong khi vẫn giữ được tính đơn giản của nó. Phần sau sẽ trình bày một số kỹ thuật flooding cải tiến điển hình và các ưu điểm của chúng.

2.1.3. Một số kỹ thuật Flooding cải tiến dùng cho Broadcast

2.1.3.1. Flooding dựa trên phân cụm (clustering-based flooding)

Để thực hiện được kỹ thuật này, đầu tiên, các nút trong mạng MANET phải thực hiện thuật toán phân cụm như sau. Giả sử rằng mỗi nút trong mạng đều có một định danh (ID) duy nhất. Các nút sẽ định kỳ thực hiện việc gửi các gói tin “giới thiệu” bản thân đến các nút hàng xóm của nó nhằm xác định được số lượng thực sự các kết nối còn dùng được. Một cụm là một tập các nút được xác định như sau. Các nút sẽ gửi các thông điệp chứa ID của nó đến các nút xung quanh để xác định xem nút nào là nút có ID nhỏ nhất cục bộ. Một nút A có ID nhỏ nhất cục bộ sau đó sẽ gửi thông điệp quyết định lập cụm, trong đó nó sẽ tự đề cử mình làm CH (cluster head – trưởng cụm) và lấy ID của nó làm ID của cụm. Nếu một nút nhận được từ một hàng xóm của nó

một thông điệp thông báo rằng nút đó là CH, nó sẽ gửi trả lại một thông điệp đến các nút hàng xóm của nó để khai báo rằng nó không phải là trưởng cụm, giúp cho việc thành lập các cụm khác tiếp tục được tạo ra. Để có thể thích ứng được với tính di động của các nút, tức là hai nút có vai trò làm CH đến một lúc nào đó có thể liên lạc trực tiếp với nhau, thuật toán phân cụm trên hai nút này sẽ quyết định lấy nút có ID nhỏ hơn làm trưởng cụm mới và nút còn lại sẽ từ bỏ vai trò trưởng cụm của mình. Trong một cụm, một thành viên có thể liên lạc được với CH của các cụm khác được gọi là gateway. Để giảm thiểu được số lượng các cụm và các gateway, thuật toán có thể thêm vào một số ràng buộc thành lập cụm như nút có nhiều hàng xóm hơn sẽ có xu hướng làm trưởng cụm; sau khi thành lập được các cụm, mỗi CH sẽ liên hệ với các CH hàng xóm để từ đó quyết định loại bỏ một số gateway không cần thiết, chỉ sử dụng một số gateway đủ để đảm bảo sự liên lạc giữa các cụm trên toàn mạng.

Hình 3. Bốn cụm B, C, F và J với ba hoặc bốn nút gateway.

Khi mạng MANET đã hình thành được các cụm, flooding sẽ được thực hiện theo phương thức sau. Chỉ có các CH mới thực hiện việc broadcast lại gói tin đến tất cả các nút khác trong cụm, các nút còn lại trong cụm không cần thiết phải thực hiện điều này. Tiếp theo, để đảm bảo việc phát tán gói tin đến các cụm khác, các nút gateway sẽ thực hiện vai trò của mình. Chú ý rằng các CH và các nút gateway chỉ thực hiện việc broadcast lại gói tin duy nhất một lần mà thôi. Ngoài ra, chúng ta có thể áp dụng thêm một số thuật toán khác trên các nút CH và gateway để quyết định xem bản thân các nút này có nhất thiết phải broadcast lại gói tin không. Các CH và nút gateway lúc này sẽ tạo thành một tập thống trị liên thông của mạng. Đối với ví dụ ở hình 3, sẽ có 8 (hoặc 7 nếu loại nút A) chứ không phải 12 nút sẽ thực hiện việc broadcast gói tin trong mạng. Nói chung, trong thuật toán này, tỉ lệ các nút nằm trong tập thống trị liên thông (và thuộc vào các cụm) so với tổng các nút trong mạng với bậc nút trung bình (số hàng xóm trung bình của một nút) là tương đối ổn định.

Nhược điểm của giao thức này nằm ở chỗ việc duy trì được cấu trúc của các cụm cần một lượng lớn chi phí phụ trội gây ra bởi sự chuyển động của các nút trong mạng. Nhiều thuật toán phân cụm đã được đề xuất nhằm giảm thiểu được chi phí phụ trội trên như thuật toán của Gerla, Kwon và Pei [1] hoặc của Wu và Lou [2].

2.1.3.2. Flooding dựa trên bộ đếm (counter-based flooding)

Khi một nút nhận được gói tin broadcast lần đầu tiên, nó sẽ không thực hiện broadcast lại gói tin này ngay mà sẽ chờ một khoảng thời gian nào đó để xem nó có tiếp tục nhận được gói tin này nữa không. Điều này thực ra cũng phù hợp với thực tế bởi vì gói tin được broadcast lại có thể bị chặn do thiết bị phát sóng đang bận hoặc phải xếp vào hàng đợi thông điệp nào đó trước khi thực sự được gửi đi. Trong khoảng thời gian chờ này, nếu nút nhận được một số lần gói tin đó (k lần chẳng hạn), nó sẽ giả sử rằng tất cả các nút hàng xóm của nó đã nhận được gói tin này rồi và sẽ hủy việc broadcast lại gói tin này.

Các bước thực hiện sẽ như sau:

S1. Khởi tạo bộ đếm c = 1 khi lần đầu tiên nhận được gói tin broadcast pkg. Trong S2, nếu lại nhận được pkg một lần nữa thì sẽ tạm đừng quá trình chờ và thực hiện S4.

S2. Chờ trong một khoảng thời gian nào đó; sau đó chuyển pkg vào hàng đợi các gói tin cần truyền và chờ cho đến khi gói tin thực sự được truyền đi. S3. Gói tin đã được truyền. Thủ tục chấm dứt.

S4. Tăng c lên một. Nếu c < k (k gọi là ngưỡng và được chọn) thì phục hồi lại quá trình chờ trong S2. Nếu ngược lại, c = k thì thực hiện S5.

S5. Hủy bỏ việc truyền pkg nếu nó đã được chuyển vào hàng đợi cần truyền ở S2. Như vậy, nút sẽ chặn việc broadcast lại gói tin pkg. Thủ tục chấm dứt. Nhược điểm của kỹ thuật này là việc chọn giá trị k và thời gian chờ phù hợp là một vấn đề rất phức tạp. Hiện nay chưa có một giải pháp nào cho phép tính ra được giá trị k và thời gian chờ tối ưu. Hầu hết các kết quả có được đều do thực nghiệm và kinh nghiệm của các nhà nghiên cứu.

2.1.3.3. Flooding dựa trên khoảng cách (distance-based flooding)

Trong kỹ thuật flooding ở mục trước, một bộ đếm được sử dụng để quyết định xem liệu có nên broadcast lại gói tin hay không. Trong kỹ thuật flooding được giới thiệu trong mục này, khoảng cách tương đối giữa các nút trong mạng sẽ được dùng để đưa ra quyết định.

Giả sử rằng nút H nhận được gói tin broadcast đến lần đầu tiên là từ nút S. Nếu khoảng cách d giữa H và S là rất nhỏ thì H sẽ cho rằng sẽ có khả năng rất lớn rằng các nút hàng xóm của nó cũng nhận được gói tin này. Nếu d tăng lên thì khả năng này cũng giảm đi. Lại giả sử rằng trước khi gói tin được H broadcast lại, H lại nhận được một số gói tin tương tự. Gọi dmin là khoảng cách từ nút gần nhất gửi gói tin đến cho H thì trong kỹ thuật này, dmin chính là thước đo đánh giá liệu có nên broadcast lại gói tin hay không. Nếu dmin nhỏ hơn một khoảng cách làm ngưỡng D nào đó thì quá trình broadcast lại gói tin sẽ được H hủy bỏ. Hiện nay, việc chọn D sao cho quá trình flooding đạt được sự tối ưu là vấn đề phức tạp vì nó phụ thuộc vào khá nhiều yếu tố, giống như giá trị k và khoảng thời gian chờ của kỹ thuật flooding được nêu trong mục trước.

Nói chung, kỹ thuật này sẽ hoạt động theo năm bước sau:

S1. Khi nhận được một gói tin broadcast pkg lần đầu tiên, khởi tạo giá trị dmin cho nút. Nếu dmin < D, thực hiện bước S5. Trong S2, nếu lại nhận được pkg một lần nữa, tạm dừng việc chờ đợi và thực hiện S4.

S2. Chờ trong một khoảng thời gian nào đó; sau đó chuyển pkg vào hàng đợi các gói tin cần truyền và chờ cho đến khi gói tin thực sự được truyền đi. S3. Gói tin đã được truyền. Thủ tục chấm dứt.

S4. Cập nhật dmin nếu khoảng cách từ nút vừa gửi gói tin tương tự pkg nhỏ hơn dmin. Nếu dmin < D, thực hiện S5. Nếu không, phục hồi quá trình chờ ở S2. S5. Hủy bỏ việc truyền pkg nếu nó đã được chuyển vào hàng đợi cần truyền ở

S2. Như vậy, nút sẽ chặn việc broadcast lại gói tin pkg. Thủ tục chấm dứt. Trong mạng không dây, có một mối liên hệ mật thiết giữa cường độ tín hiệu nhận được và khoảng cách giữa nút gửi và nút nhận. Nói chung, nếu cường độ tín hiệu nhận được là càng nhỏ thì khoảng cách giữa hai nút gửi và nhận sẽ càng lớn; tỉ lệ này không cố định cho mọi mạng mà sẽ dựa vào một số yếu tố như môi trường vật lý, bước sóng mang hay chất lượng ăng ten… Do vậy, trong kỹ thuật này, chúng ta cũng có thể dùng độ đo và ngưỡng là cường độ của tín hiệu truyền gói tin nhận được để thay cho

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 33)

Tải bản đầy đủ (PDF)

(65 trang)