Hình 2.7 cho thấy sự khác biệt trong cấu trúc entry bảng định tuyến giữa giao thức AODV và giao thức AOMDV. Entry bảng định tuyến của giao thức AOMDV có một trƣờng mới là “advertised hop count” biểu diễn số chặng đƣợc quảng bá. Bên cạnh đó, một danh sách tuyến đƣờng “route list” đƣợc sử dụng trong giao thức AOMDV để lƣu trữ thông tin bổ sung cho từng đƣờng dẫn thay thế bao gồm: chặng kế tiếp (next_hop), chặng cuối cùng (last_hop), số chặng (hop_count) và thời gian hết hạn (timeout). Nhƣ đã trình bày ở trên, thông tin chặng cuối cùng rất cần thiết trong việc kiểm tra tính không giao nhau của các đƣờng dự phòng.
Hình 2.7. Cấu trúc entry bảng định tuyến của giao thức AODV và AOMDV
2.2.2. Thuật toán cập nhật đường
Xét một nút đích d và một nút i. Bất cứ khi nào nút i cập nhật số thứ tự đích cho d, số chặng đƣợc quảng bá tƣơng ứng sẽ đƣợc khởi tạo. Cho trƣớc một số thứ tự đích, đặt là số chặng của con đƣờng thứ k trong entry bảng định tuyến cho đích d tại nút i. Nhƣ vậy là
( ) . Khi nút i chuẩn bị gửi
quảng bá đƣờng đầu tiên cho đích d, nó sẽ cập nhật số chặng đƣợc quảng bá nhƣ sau:
{
i
Bất cứ khi nào một nút nhận đƣợc một quảng bá đƣờng, nó sẽ áp dụng các quy tắc cập nhật đƣờng của giao thức AOMDV đƣợc liệt kê trong Thuật toán 1. Trong thuật toán này, nút i gọi áp dụng các quy tắc này mỗi khi nó nhận đƣợc một quảng bá đƣờng cho nút đích d từ một nút láng giềng j. Các biến ,
destination sequence number hop count next hop timeout
(a) AODV
destination sequence number advertised hop count route list
next_hop1 last_hop1 hop_count1 timeout1 next_hop2 last_hop2 hop_count2 timeout2
. . . . . . . . (b) AOMDV
, và tƣơng ứng là chặng kế tiếp, số chặng đƣợc quảng bá và danh sách đƣờng cho đích d tại nút i (i # d). Các biến
và biểu diễn giá trị tƣơng ứng của chặng kế tiếp và
chặng cuối cùng của con đƣờng thứ k trong entry bảng định tuyến cho đích d tại nút i. Các dòng (1) và (10) trong Thuật toán 1 đảm bảo tính không lặp vòng, trong khi các dòng (12) và (15) kiểm tra tính tách biệt theo liên kết. Chứng minh cho các tính chất không lặp vòng và tách biệt theo liên kết cùng với các chi tiết liên quan đƣợc trình bày trong mục 2.3.
1: if then /* áp dụng quy tắc số thứ tự */ 2: ; 3: ; 4: ; 5: if then /*nút láng giề g là đích*/ 6: insert into ; 7: else 8: insert into ; 9: end if 10: else if and then /* áp dụng quy tắc số thứ tự */ 11: if then /*nút láng giề g là đích*/
12: if and ) then /* đảm bảo tính duy nhất của chặng kế tiếp và chặng cuối cùng */
13 insert into ; 14: end if
15: else if and ) then /* đảm bảo tính duy nhất của chặng kế tiếp và chặng cuối cùng */
16: insert into ; 17: end if
18: end if
Thuật toán 1: Quy tắc cập nhật đường của giao thức AOMDV
2.2.3. Tiến trình khám phá đường
Trong giao thức AODV, khi một nút nguồn có lƣu lƣợng dữ liệu cần một con đƣờng để truyền tới đích, nút nguồn sẽ bắt đầu quá trình khám phá đƣờng bằng cách tạo gói RREQ. Vì RREQ đƣợc truyền kiểu quảng bá ngập toàn mạng, một nút trong mạng có thể nhận đƣợc một vài bản sao của cùng một gói RREQ. Chỉ bản sao đầu tiên của gói RREQ đƣợc sử dụng để tạo các đƣờng dự phòng ngƣợc hƣớng nguồn. Các bản sao đến sau đơn giản sẽ bị loại bỏ. Cần lƣu ý rằng một số bản sao này có thể đƣợc sử dụng một cách hữu ích để tạo thành các đƣờng ngƣợc hƣớng tới nguồn. Vì vậy, tất cả các bản sao trùng lặp đƣợc giao thức AOMDV kiểm tra để phục vụ cho mục đích tạo ra các đƣờng dự phòng ngƣợc hƣớng nguồn. Tuy nhiên, các đƣờng ngƣợc hƣớng nguồn chỉ đƣợc hình thành bằng các bản sao đảm bảo tính không lặp vòng và không giao cho các con đƣờng. Điều này đƣợc xác nhận bằng cách áp dụng các quy tắc cập nhật tuyến đƣờng trong Thuật toán 1.
Khi một nút trung gian nhận đƣợc một đƣờng ngƣợc qua bản sao gói RREQ, nó sẽ kiểm tra xem có một hay nhiều đƣờng thuận hợp lệ hƣớng đích hay không. Nếu có, nút này sẽ tạo một gói RREP và gửi nó trở lại nút nguồn dọc theo đƣờng ngƣợc. Gói RREP chứa một đƣờng thuận chƣa đƣợc sử dụng trong bất kỳ gói RREP nào trƣớc đây cho tiến trình khám phá đƣờng này. Trong trƣờng hợp này, nút trung gian không chuyển tiếp gói RREQ nữa. Trƣờng hợp ngƣợc lại, khi nút trung gian không có bất cứ đƣờng hợp lệ nào tới đích, nó sẽ quảng bá lại bản sao gói RREQ nếu trƣớc đó nó chƣa chuyển tiếp bất kỳ bản sao nào của gói RREQ này và bản sao này dẫn đến hoạt động hình thành/cập nhật đƣờng ngƣợc.
Khi nút đích nhận đƣợc các bản sao RREQ, nó cũng tạo thành các đƣờng dẫn ngƣợc theo cách tƣơng tự nhƣ các nút trung gian. Tuy nhiên, nó áp dụng một chính sách lỏng hơn để tạo gói RREP. Cụ thể là, nút đích tạo ra gói RREP để trả lời đƣờng cho mọi bản sao gói RREQ đến nó qua đƣờng không lặp đến nút nguồn mặc dù khi tạo ra các đƣờng ngƣợc, nút đích chỉ sử dụng các bản sao gói RREQ đến qua các đƣờng không lặp và không giao từ nút nguồn. Lý do ẩn sau việc áp dụng chính sách tạo gói RREP lỏng hơn tại nút đích là nhƣ sau: Đối với cơ chế quảng bá gói RREQ kiểu ngập tràn toàn mạng, mỗi nút chỉ quảng bá cục bộ gói RREQ một lần, triệt tiêu các bản sao gói RREQ tại các nút trung gian và nhân bản các gói RREQ khác. Hình 2.8 cho thấy một ví dụ, trong đó nút I nhân bản bản sao gói RREQ đi qua nút A và triệt tiêu bản sao gói RREQ đi qua nút B. Kết quả là, nhiều đƣờng tách biệt có thể bị liên kết lại tại các nút trung gian và xuất hiện dƣới dạng một đƣờng duy nhất tại đích. Nhƣ vậy, nút đích D sẽ chỉ biết về đƣờng S-A-I-X-D nhƣng không biết về đƣờng S-B-I-Y-D. Vấn đề này đƣợc gọi là vấn đề “cắt tuyến” (route cutoff). Rõ ràng, vấn đề cắt đƣờng ngăn chặn việc khám phá ra tất cả các đƣờng ngƣợc không giao nhau. Điều này dẫn đến sự
giới hạn về số lƣợng các đƣờng thuận hƣớng đích không giao nhau đƣợc tìm thấy tại nút nguồn nếu nút đích chỉ gửi gói RREP theo các đƣờng dẫn ngƣợc. Do đó, nút đích đƣợc cho gửi lại gói RREP theo từng đƣờng dẫn ngƣợc không lặp mặc dù đây chƣa chắc đã là đƣờng tách biệt với các đƣờng ngƣợc đƣợc thiết lập trƣớc đó. Các RREP bổ sung nhƣ vậy làm giảm bớt vấn đề cắt tuyến và tăng khả năng tìm thấy các đƣờng thuận hƣớng đích. Cần lƣu ý rằng các gói RREP bổ sung này không yêu cầu các nút trung gian và nút nguồn phải thực hiện thêm bất kỳ hành động đặc biệt nào khác nhằm đảm bảo tính không giao cho các đƣờng dự phòng tìm đƣợc vì các quy tắc trong Thuật toán 1 vẫn đƣợc áp dụng độc lập tại mỗi nút.
Hình 2.8. Tiến trình quảng bá RREQ của AOMDV
Khi một nút trung gian nhận đƣợc gói RREP, nó tuân theo các quy tắc cập nhật đƣờng trong Thuật toán 1 để có thể tạo thành một đƣờng dẫn không lặp và không giao tới đích. Ngƣợc lại, gói RREP sẽ bị hủy bỏ. Giả sử một nút trung gian tạo thành đƣờng thuận hƣớng đích và nó có một hoặc nhiều đƣờng dẫn nghịch hợp lệ hƣớng nguồn, nó sẽ kiểm tra xem có đƣờng nghịch nào trƣớc đó
A X I D P Y B bản sao 1 qua A bản sao 2 qua B bản sao của bản sao 1 qua X bản sao của bản sao 1 qua Y
chƣa đƣợc sử dụng để gửi gói RREP trong tiến trình khám phá đƣờng này. Nếu có, nó chọn đƣờng nghịch này để chuyển tiếp gói RREP. Ngƣợc lại nút trung gian sẽ hủy bỏ gói RREP. Việc chọn một đƣờng dẫn nghịch duy nhất để chuyển tiếp RREP theo một đƣờng dẫn ngƣợc duy nhất không phải là việc nhân bản nó tới tất cả các đƣờng dẫn nghịch hiện có, do đó không làm ảnh hƣởng đến độ trễ khám phá đƣờng của giao thức AOMDV. Điều này là do độ trễ của tiến trình khám phá đƣờng đƣợc đo bằng thời gian chờ trƣớc khi nút nguồn nhận đƣợc con đƣờng đầu tiên và các gói RREP trong giao thức AOMDV (cũng nhƣ trong giao thức AODV) sử dụng cơ chế truyền unicast tin cậy của tầng MAC trên cơ sở ARQ. Nói cách khác, nếu thực hiện việc nhận bản gói RREP tại các nút trung gian sẽ gây ra vấn đề cắt tuyến tƣơng tự nhƣ quá trình quảng bá gói RREQ đã trình bày ở trên, do đó làm giảm số lƣợng đƣờng dẫn không giao đƣợc tìm thấy tại nguồn.
2.2.4. Cơ chế bảo trì đường
Tiến trình bảo trì đƣờng trong giao thức AOMDV đƣợc phát triển từ tiến trình bảo trì đƣờng của giao thức AODV với những thay đổi rất đơn giản. Cũng giống nhƣ giao thức AODV, giao thức AOMDV sử dụng các gói RERR. Một nút tạo hoặc chuyển tiếp gói RERR khi đƣờng cuối cùng đến đích bị phá vỡ. Giao thức AOMDV cũng đã đƣợc tối ƣu để cứu các gói theo kế hoạch sẽ đƣợc chuyển tiếp qua các liên kết lỗi bằng cách chuyển tiếp chúng qua các đƣờng dự phòng. Điều này tƣơng tự nhƣ cơ chế cứu gói nhƣ trong giao thức DSR.
Cơ chế timeout (thời gian chờ hết hiệu lực) đƣợc mở rộng từ một đƣờng đơn tới đa đƣờng (Hình 2.7) mặc dù vấn đề đặt giá trị timeout thích hợp trong giao thức AOMDV khó khăn hơn so với giao thức AODV. Khi có nhiều đƣờng
cùng hƣớng tới một đích, sẽ có nhiều khả năng xảy ra việc tồn tại các con đƣờng có thông tin đã cũ và không còn chính xác với topo mạng hiện tại. Tuy nhiên, nếu sử dụng các giá trị timeout rất nhỏ để loại bỏ các đƣờng cũ có thể làm giảm lợi ích của việc sử dụng nhiều đƣờng. Khi cài đặt giao thức AOMDV, nên sử dụng các giá trị timeout có độ lớn trung bình và sử dụng thêm các gói HELLO để chủ động xóa các đƣờng cũ. Do đó, timeout trong phiên bản hiện tại của giao thức AOMDV chủ yếu đóng vai trò là một cơ chế mềm để xử lý các sự kiện không lƣờng trƣớc chẳng hạn nhƣ bảng định tuyến bị hủy. Cơ chế lựa chọn thời gian timeout thích hợp để xóa đƣờng cũ trong giao thức DSR đã đƣợc đề xuất áp dụng cho giao thức AOMDV với một số thay đổi. Cũng có thể lựa chọn thời gian chờ trên cơ sở đặc tính phân tích đặc tính theo hành vi của liên kết trong mạng không dây phi cấu trúc.
2.2.4. Cơ chế chuyển tiếp dữ liệu
Tại một nút có nhiều đƣờng đến cùng một đích, khi có dữ liệu cần chuyển tiếp, giao thức AOMDV chỉ sử dụng một đƣờng để chuyển tiếp dữ liệu cho đến khi đƣờng này bị lỗi và sau đó mới chuyển sang một đƣờng dẫn khác. Thứ tự sử dụng các đƣờng theo thứ tự chúng đƣợc tạo ra trong bảng định tuyến tại nút đó.
Có những lựa chọn khác để chuyển tiếp dữ liệu bằng cách sử dụng đồng thời tất cả các đƣờng. Mặc dù đây không phải là cơ chế chuyển tiếp dữ liệu đƣợc sử dụng trong giao thức AOMDV, các cơ chế này vẫn đƣợc trình bày ở đây để có đƣợc một cách nhìn hoàn thiện hơn về cơ chế chuyển tiếp dữ liệu. Với cơ chế „diversity coding‟ [14], header của mỗi gói dữ liệu đƣợc bổ sung một trƣờng mã gói mã hóa; các gói đƣợc mã hóa đƣợc truyền theo các đƣờng khác nhau. Cơ chế này có thể cải thiện xác suất phân phối gói trong các mạng ad hoc có tần suất di
động lớn và cũng có thể đƣợc sử dụng theo cách chọn lọc để đảm bảo phân phối các gói tin quan trọng.
Trong các tiếp cận phân phối dữ liệu theo hƣớng cân bằng tải, các con đƣờng dự phòng đƣợc sử dụng đồng thời để phân phối dữ liệu, do đó cải thiện mức độ sử dụng mạng và độ trễ đầu cuối. Đề xuất trong [9], ngoài đề xuất phân chia lƣu lƣợng thích hợp trên nhiều đƣờng và khả năng xử lý sắp xếp lại gói, cân bằng tải hiệu quả trong các mạng ad hoc, còn phải giải quyết vấn đề “song tuyến” do nhiễu phát sinh khi định tuyến trên các đƣờng dự phòng. Sử dụng phiên bản trƣớc của giao thức AOMDV, đề xuất trong [6] nhận thấy sự kém hiệu quả của định tuyến đa luồng để cân bằng tải trong các mạng ad hoc di động đơn kênh do vấn đề “song tuyến” và lợi ích của việc sử dụng giao thức CSMA đa kênh tại tầng MAC. Bên cạnh sự hỗ trợ từ các tầng thấp hơn để có đƣợc thông tin về tính sẵn sàng của nhiều kênh không gây nhiễu cho nhau, điều quan trọng là phải tìm các đƣờng dẫn dự phòng phù hợp để cân bằng tải. Cụ thể là cần có một rằng buộc chặt chẽ hơn về tính không giao so với sự rằng buộc về tính không giao theo nút hoặc theo liên kết để giải quyết vấn đề nhiễu khi truyền dữ liệu đồng thời trên nhiều đƣờng dự phòng. Đề xuất trong [13] đã đề cập đến vấn đề chọn các đƣờng tách biệt tối đa để giảm thiểu hiệu ứng “song tuyến” trong các mạng ad hoc sử dụng ăng ten định hƣớng.
2.3. Các tính chất của giao thức
Việc chứng minh về tính không lặp vòng và tách biệt của giao thức AOMDV sẽ đƣợc thực hiện trong phần này.
2.3.1. Loại bỏ tính lặp vòng
Các ký hiệu dùng cho việc chứng minh sự loại bỏ tính lặp vòng của giao thức AOMDV tƣơng tự nhƣ giao thức AODV trong mục 2.2 ngoại trừ ký hiệu số chặng (hop_count) đƣợc thay thế bằng ký hiệu số chặng đƣợc quảng bá (advertised_hop_count). Phần chứng minh đƣợc trình bày nhƣ sau:
Định lý 1: Quy tắc cập nhật tuyến đƣờng AOMDV (Thuật toán 1) mang lại các đƣờng không bị lặp vòng.
Chứng minh: Theo phƣơng pháp phản chứng
Giả sử một vòng lặp có kích thƣớc m là (i1, i2, ..., im, i1) đƣợc hình thành trong một đƣờng đến đích d. Lƣu ý rằng các nút i và j trong mã ở Thuật toán 1 là 2 nút liền kề trên đƣờng và . Do đó, điều sau đây phải đúng trong số các nút thuộc vòng lặp đƣợc hình thành:
suy ra:
Từ dòng 10 trong Thuật toán 1, suy ra:
Vì vậy:
Biểu thức trên là vô lý. Do đó, các đƣờng do giao thức AOMDV tìm đƣợc là đƣờng đƣợc loại bỏ tính lặp vòng.
Cần chú ý rằng giao thức AOMDV duy trì tính không lặp của đƣờng ngay cả trong các tình huống topo mạng ad hoc thay đổi liên tục rất dẫn đến các liên kết và tuyến đƣờng thƣờng xuyên bị phá vỡ. Điều này đƣợc đảm bảo theo cách tƣơng tự nhƣ giao thức AODV, nghĩa là khi tất cả các liên kết từ một nút i hƣớng đến đích d bị phá vỡ thì nút I tự tăng và đặt
bằng ∞. Ngoài ra, việc giao thức AOMDV sử dụng
các số thứ tự đích làm cho việc phân phối gói không theo thứ tự trở nên mạnh mẽ hơn nhƣ trong giao thức AODV.
2.3.2. Tính tách biệt của đường
Định lý 2. Nếu tất cả các nút trong mạng đều có số nhận dạng duy nhất (UID) và tất cả các nút trên đƣờng từ nút X đến nút đích D có số thứ tự đích giống nhau thì các đƣờng dự phòng đƣợc duy trì bởi giao thức AOMDV từ nút X đến nút D là các đƣờng phân tách theo liên kết.
Chứng minh: Trƣớc hết cần chứng minh tính tách biệt cho một cặp đƣờng từ nút X tới nút D. Sau đó, áp dụng cùng một đối số này cho mọi cặp đƣờng còn lại từ X đến D.
Xét 2 đƣờng P1 và P2 từ X đến D đƣợc hình thành theo quy tắc cập nhật đƣờng AOMDV (Thuật toán 1). Các đƣờng đƣợc xác định bởi chuỗi các mã định danh nút từ X đến D. P1 và P2 đƣợc xác định bởi bộ dữ liệu <D, next_hop,