Bán kính vùng định tuyến

Một phần của tài liệu tìm hiểu phương pháp nâng cao hiệu năng của giao thức zrp với bl và sd trong mạng manet (Trang 53 - 85)

5. Cấu trúc của luận văn

2.1.5 Bán kính vùng định tuyến

Với một kích thước vùng hợp lý, ZRP có thể làm giảm lưu lượng điều khiển đến lượng nhỏ nhất. Mỗi cấu hình mạng có một giá trị bán kính vùng r.

Để xác định giá trị tối ưu, cần thiết phải hiểu các nhân tố khác nhau ảnh hưởng như thế nào đến lưu lượng, những nhân tố chính là bán kính vùng r,

kích thước mạng N, mật độ nút δ (số nút láng giềng trung bình của mỗi nút) và tốc độ trung bình v của nút (ảnh hưởng đến sự ổn định của tuyến đường). Trong các nhân tố trên, chỉ có bán kính vùng là một tham số cố định.

Chi phí duy trì tuyến đường chủ động và lưu lượng điểu khiển từ IARP tăng lên cùng với sự tăng lên của bán kính vùng. Do việc cập nhật tuyến đường IARP là công việc nội bộ, nên kích thước mạng không ảnh hưởng đến lưu lượng chủ động. Lưu lượng IERP nhận bởi một nút độc lập với N. Thay vào đó, việc tăng kích thước mạng làm tăng số lượng truy vấn tuyến đường. Do đó, lưu lượng truy vấn tuyến đường bị động tăng lên theo sự tăng lên của kích thước mạng. Vì vậy, kích thước vùng lớn được ưa chuộng hơn trong các mạng lớn. Các vùng lớn cung cấp nhiều truy vấn hiệu quả bù đắp lại chi phí duy trì IARP cao.

Lưu lượng điều khiển lớn phụ thuộc vào mối liên hệ giữa tốc độ di chuyển của nút và tuyến đường sử dụng. Tốc độ cao dẫn đến việc tăng tuyến tính việc cập nhật định tuyến trong IARP và làm thất bại các tuyến đường IERP. Nếu tỷ lệ sử dụng tuyến đường cao hơn đáng kể so với tỷ lệ thất bại tuyến đường, việc khám phá tuyến đường được thúc đẩy bởi sự thất bại của các tuyến đường, và lưu lượng tăng tuyến tính tỷ lệ với tốc độ di chuyển của nút. Ngược lại, nếu tỷ lệ sử dụng tuyến đường nhỏ hơn tỷ lệ thất bại tuyến đường, thì tỷ lệ truy vấn tuyến đường độc lập với sự ổn định của tuyến đường và tốc độ di chuyển của nút. Trong trường hợp này, quá trình nạp trên IARP tăng tỷ lệ với vận tốc nút, và vùng định tuyến nhỏ được ưu tiên hơn.

Tối ưu hóa bán kính vùng định tuyến độc lập với mật độ nút trong đa số trường hợp. Tuy nhiên, mật độ nút tăng lên nhanh chóng làm tăng chi phí duy trì vùng định tuyến IARP, làm giảm bán kính vùng định tuyến tối ưu.

2.1.6 Ví dụ minh họa hoạt động của ZRP

Xét mạng có kiến trúc như hình 2.9 với bán kính vùng r = 2.

(a) (b)

(c) (d)

Giả sử nút A có gói tin muốn gửi đến nút B. Trước hết nút A sử dụng IARP để kiểm tra xem nút B có nằm trong vùng định tuyến của nó hay không. Với bán kính vùng r = 2 thì nút B thuộc vùng định tuyến của nút A. Do đó, nút A gửi gói tin đến B theo bảng định tuyến của nút A.

Xét trường hợp nút A muốn gửi gói tin đến nút U. Giao thức ZRP sẽ thực hiện qua các bước sau:

- Nút A sử dụng IARP để xác định xem U có nằm trong vùng định tuyến của nó hay không. Với bán kính r = 2, thì U không thuộc vùng định tuyến của A. Vì IARP là giao thức chủ động, thông tin nút U trong vùng định tuyến không có sẵn. Khi đó nút A khởi tạo 1 yêu cầu tuyến đường bằng cách sử dụng IERP. IERP sử dụng BRP để gửi gói tin truy vấn đến các nút biên của A: nút B, D, E, F, J, H (hình 2.9 a).

- Các nút B, D, E, F, J, H sử dụng IARP để kiểm tra nút U có nằm trong vùng định tuyến của chúng hay không. Trong trường hợp này, nút U không được tìm thấy trong bảng định tuyến của các nút trên. Do đó, B, D, E, F, J, H sử dụng IERP để chuyển tiếp gói tin truy vấn đến các nút biên của chúng.

- Do các nút trong vùng định tuyến của B, D, E, F, J đều đã được truy vấn bao phủ (nằm trong vùng định tuyến của A) nên các nút này không chuyển tiếp gói tin truy vấn. Đối với nút H, có các nút biên A, F, M, N. Trong đó, A và F đã được bao phủ nên nhánh tương ứng với chúng trong cây quảng bá biến của H sẽ bị loại bỏ. Vì vậy, nút H chuyển tiếp truy vấn đến M, N (hình 2.9 b).

- Tương tự như vậy, nút N chuyển tiếp gói tin truy vấn đến nút biên R và S vì nút biên M và H đã được bao phủ (hình 2.9 c).

- Nút R và S lần lượt trả lời tuyến đường đến nút đích truy vấn U vì U nằm trong vùng định tuyến của các R và S (hình 2.9 d).

- Cuối cùng nút nguồn A lựa chọn ngẫu nhiên một tuyến đường từ các gói tin trả lời nhận được để gửi gói tin đến U.

Trong giao thức ZRP, mạng được chia thành các vùng chồng chéo lên nhau. Giao thức ZRP có ưu điểm là làm giảm lưu lượng điều khiển được quảng bá định kỳ để duy trì thông tin định tuyến chủ động bằng cách giới hạn phạm vi định tuyến chủ động trong nội bộ vùng. Đồng thời, với giải pháp quảng bá biên BRP, giao thức ZRP cũng làm giảm được lượng băng thông và giảm chi phí cho việc tìm kiếm các đường đi bị động giữa các vùng. Tuy nhiên nhược điểm của ZRP là các vùng định tuyến chồng chéo lên nhau, nên các nút có thể nhận được nhiều gói tin cùng truy vấn một tuyến đường. Do đó, cần phải có cơ chế điều khiển truy vấn phù hợp.

2.2 Khám phá dịch vụ tại tầng định tuyến

Mục đích khi thêm giao thức khám phá dịch vụ vào tầng định tuyến [2] xuất phát từ thực tế là các giao thức khi truyền gói tin thường tồn tại 2 quá trình: quá trình thứ nhất là truyền thông tin dịch vụ giữa các nhà cung cấp và người yêu cầu dịch vụ; quá trình thứ hai là truyền thông tin định tuyến giữa chúng. Kết quả là một nút buộc phải thực hiện thao tác nhiều lần tiêu hao nguồn để tiếp nhận và truyền tải các gói dữ liệu. Cách tiếp cận nhằm mục đích khai thác khả năng thu thập thông tin dịch vụ cùng với thông tin định tuyến bằng cách khám phá dịch vụ tại tầng định tuyến thay vì tầng ứng dụng, để thực hiện khám phá dịch vụ tại tầng định tuyến là sử dụng piggybacking các thông tin dịch vụ vào các thông điệp định tuyến, cho phép các thiết bị có được cả hai: dịch vụ và thông tin định tuyến cùng một lúc, mục đích để giảm chi phí thông tin liên lạc và tiết kiệm pin.

Để thêm khả năng khám dịch vụ cho ZRP, cần nhúng thêm một trường mở rộng trong tin nhắn NDP "Hello" để lưu trữ số ID của dịch vụ. Sử dụng các khái niệm về Nhận dạng phổ duy nhất (UUID) thay cho mô tả dịch vụ để

giữ độ dài gói nhỏ cho các thông báo định tuyến, như vậy không làm gián đoạn quá trình định tuyến (thông điệp càng lớn thì sự chậm trễ và khả năng sai sót càng lớn). Một cách tiếp cận như vậy có nghĩa là tất cả các nút biết một ưu tiên các ánh xạ giữa các dịch vụ được cung cấp trong Manet và UUID. Đây là một giả định phổ biến và được chứng minh bằng thực tế là hầu hết các MANETs được triển khai cho mục đích nhất định, nơi thiếu cơ sở hạ tầng thông tin liên lạc cố định (ví dụ như ở chiến trường hay một địa điểm bị thiên tai). Trong môi trường như vậy, vai trò của tất cả các nút tham gia là cụ thể và có thể dễ dàng phân loại theo dịch vụ. Việc ánh xạ các dịch vụ cho UUID là hiệu quả hơn cho việc phát hiện dịch vụ. Như vậy, bằng cách mở rộng tin nhắn "Hello" với các dịch vụ UUIDs, một nút có thể để biểu thị cả sự hiện diện của nó và các dịch vụ nó cung cấp.

ZRP được tiếp tục sửa đổi để bao gồm thông tin dịch vụ trong tất cả các ngõ định tuyến các thông điệp và bảng định tuyến IARP. IARP lắng nghe thông tin thu thập được từ tin nhắn NDP, cập nhật bảng và sau đó định kỳ quảng bá bảng của mình cho các nút lân cận. Bằng cách này, mỗi nút biết các tuyến đường đến tất cả các nút trong khu vực của nó và các dịch vụ mà các nút cung cấp, do vậy bổ sung thêm khả năng phát hiện dịch vụ cho phần chủ động của ZRP. Phiên bản sửa đổi của ZRP này (gọi là SD-ZRP) có khả năng cung cấp các dịch vụ khám phá chủ động tại tầng định tuyến.

2.3 Bộ lọc Bloom (BL)

Bộ lọc Bloom [9] được sử dụng để mô tả thông tin dịch vụ, BL là những cấu trúc dữ liệu nén nhỏ gọn cho các quyết định thành viên nhanh. Như kỹ thuật mã hóa băm cung cấp một sự thay đổi giữa việc sử dụng không gian hoặc kích cỡ băm và thời gian, bộ lọc Bloom được tìm thấy ở nhiều ứng dụng như tăng tốc độ tra cứu Cache, truy vấn lọc định tuyến và tìm kiếm văn bản miễn phí.

Xét một tập hợp A = {1, 2, ..., an } của n phần tử. Bộ lọc Bloom mô tả

thành viên của A sử dụng vector v của m phần tử (mỗi phần tử là 1 bit), ban đầu tất cả các thiết lập là 0, và sau đó chọn k hàm băm độc lập, h1, h2,..., hk,

mỗi hàm có miền xác định từ 1 đến m. Với mỗi phần tử a A, các bit ở vị trí h1(a), h2(a), ..., hk(a) trong v được thiết lập là 1. Một bit cụ thể có thể được

thiết lập là 1 nhiều lần. Cho một thành viên trên b, các bit ở vị trí h1(b),

h2(b), ..., hk(b) được kiểm tra. Nếu tất cả chúng là 0, thì chắc chắn b A. Ngược lại, chúng ta phỏng đoán rằng b là thuộc tập này.

Hình 2.10. Bộ lọc Bloom với hàm băm k=4

Xây dựng một bộ lọc Bloom

Các thủ tục sau đây xây dựng m bits, Bloom tương ứng với một tập hợp A và sử dụng h1, h2,..., hk hàm băm:

Procedure BloomFilter(set A, hash_function, integer m)

returns filter

filter = allocate m bits initialized to 0

foreach ai in A:

filter [hj(ai)] = 1

end foreach end foreach

return Yes

Nếu ai là thành viên của một tập A, trong kết quả lọc Bloom V tất cả các bits thu được tương ứng với giá trị băm của ai được thiết lập là 1. Thử nghiệm cho các thành viên của một phần tử elm là tương đương với thử nghiệm mà tất cả các bit tương ứng của V được thiết lập:

Procedure MembershipTest (elm, filter, hash_functions)

returns yes/no

foreach hash function hj:

if filter[hj(elm)] != 1 return No

end foreach return Yes

2.4 ZRP và cơ chế hổ trợ khám phá cho dịch vụ sử dụng BL và SD

Để thêm cơ chế khám phá dịch vụ cho giao thức định tyến lai ZRP, cần phải kết hợp một trường bổ sung trong thông điệp "Hello" để lưu trữ các dịch vụ định danh. Sử dụng các khái niệm của bộ lọc Bloom thay vì mô tả dịch vụ để giữ kích thước nhỏ của các gói tin cho việc định tuyến tin nhắn và giảm thiểu tác động trên mạng. Phương pháp này yêu cầu tất cả các nút cùng sử dụng hàm băm MD5 [10] thuật toán mã hóa để chuyển đổi một mô tả dịch vụ vào một bộ lọc Bloom.

ZRP được mở rộng bao gồm các thông tin dịch vụ trong mỗi mục thông báo định tuyến của IARP. Mỗi nút của mạng ad hoc sử dụng một bộ nhớ SvcCache để lưu trữ tất cả các dịch vụ được cung cấp thông qua các thông tin dịch vụ thu thập từ các gói NDP đến.

Hình 2.11: SvcCache và IARP bảng cập nhật và tương tác khi nhận được của NDP "Hello" thông báo dịch vụ video (1000) được cung cấp bởi các nút I và dịch vụ máy in (1100) được cung cấp bởi các nút G. Nút D tìm kiếm một dịch vụ máy in, được chuyển đổi thành một BF (1100), nó sẽ kiểm tra đầu tiên SvcCache của nó, lấy nhà cung cấp dịch vụ của máy in là G và tìm kiếm một con đường đến G trong bảng IARP.

Thông tin dịch vụ được lưu trữ: tên nhà cung cấp dịch vụ, (như là một vector BF). Khi một nút muốn sử dụng một dịch vụ, kiểm tra bộ nhớ cache của nó, nếu nó được tìm thấy, lấy địa chỉ nhà cung cấp và kiểm tra cho một tuyến đường trong bảng định tuyến.

Giao thức sử dụng các dịch vụ địa phương bộ nhớ đệm được quảng cáo bởi các nút láng giềng để tiết kiệm băng thông mạng. Quá trình khám phá dịch vụ và vị trí của nhà cung cấp được mô tả trong thuật toán:

Require: SvcCache not empty 1: if ∃ LookupSvcCache(X) then 2: Px ← LookupSvcCache(X):@ 3: if ∃ RoutingTable(Px) then 4: Return Px 5: end if 6: end if

Khám phá dịch vụ sử dụng MD5 theo cách sau đây: Hàm băm k tạo thành bộ lọc Bloom, được xây dựng từ k nhóm của mỗi r bits theo hoạt động hàm MD5 với 128 bit. Bất kỳ bộ sub-bits từ một đầu ra MD5 có thể được sử dụng như là một đầu vào đến một chức năng độc lập. Mỗi phòng trong các chức năng này k đặt một chút trong bộ lọc v.

Trong BF-SD-ZRP [3] , hàm băm được thực hiện trong thuật toán 2:

Algorithm 2 Calculate the Bloom Filter V for a service X

Require: x ≠ 0 1: a ⇐ MD5(x) 2: r ⇐ k 128 3: for i = 0 TO k do 4: f ← subbits (r*i, (r * (i + 1)) - 1, a) 5: V [f mod m] = 1 6: end for

Các giao thức ZRP là một mô hình lai giữa sở đồ chủ động và bị động. ZRP kết hợp một số giao thức phụ, cụ thể là IARP (bên trong khu vực), IERP(ngoài khu vực), và những giao thức khác (NDP, ICMP và BRP ... v.v.). Các phát hiện của láng giềng được thực hiện bằng cách tham khảo các lớp thấp hơn. ZRP chỉ đơn giản là lấy bảng láng giềng được cung cấp bởi một cơ chế tìm kiếm lân cận. Bảng này sẽ được sử dụng bởi IARP để xây dựng sơ đồ

mạng. Mỗi sửađổi, bổ sung bảng các nút láng giềng sẽ dẫn đến một cập nhật vùng của IARP và cập nhật bảng định tuyến bởi IERP.

Giao thức phát hiện láng giềng (NDP) được thực hiện tại lớp liên kết. Sử dụng NDP, định kỳ mỗi nút phát đi một thông điệp "Hello" để chỉ ra sự hiện diện của nó. NDP cập nhật bảng IARP, IERP sử dụng bảng IARP, IERP sau đó chuyển tiếp các yêu cầu đến các nút biên thông qua BRP. BRP sử dụng bảng IARP hướng dẫn yêu cầu. Và xây dựng thêm một trường trong thông điệp "Hello" để lưu trữ các dịch vụ định danh. Sử dụng các khái niệm của bộ lọc Bloom thay vì một mô tả dịch vụ thường để chiều dài gói tin NDP nhỏ. Chiều dài bộ lọc Bloom được sử dụng trong việc thực hiện là 128 bit.

Vì vậy, giải pháp là phân phối một bản tóm tắt của các dịch vụ được cung cấp trong một vector được mô tả như một bộ lọc Bloom. Một bộ lọc Bloom là một cấu trúc dữ liệu, cho phép các đại diện của một dữ liệu một cách đơn giản và không phô trương. Các gói tin IARP (hình 2.12) mang tất cả các thông tin về các nút láng giềng và các dịch vụ trong một bộ lọc Bloom tới tất cả các nút khu vực.

Hình 2.12 Định dạng gói tin IARP

Mỗi nút có một bộ nhớ cache trong đó lưu trữ tất cả các cung cấp dịch vụ (địa phương và những láng giềng). Trong bộ nhớ cache này, các thông tin được lưu trữ (địa chỉ nhà cung cấp, tên dịch vụ (bộ lọc Bloom) và time to life)

được giữ lại từ các gói NDP nhận được. Khi nhận được gói NDP, một bảng cập nhật nút láng giềng. IARP nghe thông tin thu thập được thông báo từ NDP, cập nhật bảng IARP của nó, và định kỳ phát sóng bảng của nó các nút láng giềng trong gói IARP. Một nút phân phối các IARP cập nhật các gói thiết lập trường TTL với giá trị bán kính vùng định tuyến, do đó các gói tin được giảm xuống khi đến nút biên. Khi nhận được gói IARP, một bản cập nhật nút bộ nhớ cache dịch vụ của mình và bảng định tuyến của nó. Như vậy, mỗi nút biết các tuyến đường đến tất cả các nút trong khu vực cũng như các dịch vụ được cung cấp bởi các nút này.

2.5 Kết luận chương 2

Trong chương này, tôi đã đi sâu phân tích cơ chế hoạt động của giao

Một phần của tài liệu tìm hiểu phương pháp nâng cao hiệu năng của giao thức zrp với bl và sd trong mạng manet (Trang 53 - 85)

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

(85 trang)
w