2.2.1. Chiến lược chuyển tiếp tham lam
Với chiến lược định tuyến tham lam, một nút sẽ xử lý các thông tin vị trí một cách tối ưu để quyết định chọn nút tiếp theo cho chuyển tiếp gói tin. Để
thực hiện điều đó, một nút phải biết được vị trí của hàng xóm của chính nó để
chọn nút hàng xóm có khoảng cách địa lý gần nhất với nút đích. Có hai phương pháp để tối ưu bằng chiến lược tham lam là: Chiến lược định tuyến tham lam với hàng xóm cấp 1 (1- hop greedy) và chiến lược tham lam với hàng xóm cấp 2 (2- hop greedy). Sự khác biệt chính giữa hai chiến lược này là một nút chọn nút tiếp theo của chuyển tiếp bằng cách xem xét mỗi hàng xóm cấp 1 hoặc là hàng xóm cấp 2.
Hình 2-1. Định tuyến gói tin theo chiến lược tham lam6
Hình 2-1 minh họa về chiến lược định tuyến tham lam theo hàng xóm cấp 1. Nút nguồn A muốn gửi gói tin tới nút đích J. Nút A sẽ xem xét các hàng xóm cấp 1 liền kề với chính nó là {B;E} khi đó B sẽ được chọn là nút chuyển tiếp bởi vì khoảng cách từB đến J sẽ ngắn nhất. Khi nút B nhận được gói tin, nút B cũng
sẽ thực hiện việc việc lựa chọn nút C là nút chuyển tiếp trong danh sách hàng
xóm cấp 1 của chính nút B. Các bước lựa chọn nút chuyển tiếp sẽ lặp lại cho đến
khi gói tin đến được nút đích J.
Hình 2-1 minh họa về chiến lược chuyển tiếp gói tin tham lam theo hàng xóm cấp 2. Nút nguồn A gửi gói tin đến nút đích J. Tại nút A sẽ xem xét các nút hàng xóm cấp 2 của chính nó là {C;G;H} khi đó nút C sẽ được chọn như là nút
chuyển tiếp gói tin vì nút C có khoảng cách gần nhất tới nút đích so với các nút G và H. Thuật toán sẽ tiếp tục thực hiện cho tới khi gói tin được gửi tới nút đich.
2.2.2. Vấn đề vùng trống trong giao thức DRQC
Có nhiều giao thức định tuyến địa lý dùng chiến lược tham lam để chuyển tiếp gói tin tới đích, các giao thức chọn nút chuyển tiếp thuộc hàng xóm của nút gửi sao cho nút hàng xóm là nút có khoảng cách ngắn nhất tới nút đích chúng được gọi là các nút tiếp theo (Next hop). Tuy nhiên rào cản trong các địa hình tự nhiên thường dẫn đến chiến lược tham lam sẽ bị lỗi khi tìm kiếm đường đi bởi vì các rào cản tồn tại trong địa hình tự nhiên, khi đó nhiều nút có thể không thể tìm thấy các nút hàng xóm gần với nút đích hơn chính nút đó. Vấn đề này được gọi là vùng tối thiểu - local minima (vùng trống). Khi vấn đề local minima xảy ra trong quá trình chuyển tiếp một gói tin, có nhiều giao thức định tuyến đã xóa gói tin tuy nhiên vẫn có khảnăng tìm thấy đường đi tới đích.
Hình 2-2. Vùng trống trong giao thức DRQC7
Hình 2-2, nút nguồn A gửi gói tin đến nút đích J, khi gói tin được gửi tới nút tiếp theo là D. Tại nút D các chiến lược tìm kiếm tham lam sẽ so sánh khoảng cách các nút hành xóm của D với chính nút D. Trong trường hợp này sẽ
không có nút hàng xóm nào thỏa mãn là hàng xóm của D và có khoảng cách gần nhất với nút đích khác D. Chính vì vậy gói tin gửi tới D sẽ bị xóa, điều đó dẫn
đến việc gửi gói tin từ A đến J sẽ không thực hiện thành công đối với các chiến
lược tham lam. Để giải quyết vấn đề này, các thuật toán định tuyến đã kết hợp nhiều chiến lược tìm kiếm để có thể gửi gói tin đến nút đích bằng nhiều cách.
2.3. Thuật toán định tuyến trong giao thức DRQC
Để giao thức định tuyến DRQC có thể thực hiện được thì phải đảm bảo yêu cầu:
- Mỗi nút yêu cầu phải có thông tin về vị trí của nó từ các hệ thống định vị vị trí và quảng bá vị trí của nó tới các nút hàng xóm cấp liền kề với nó.
- Các nút trong mạng đều cùng dãi giao tiếp.
- Các rào cản trong mạng là cốđịnh (theo rào cản tựnhiên là có định)
2.3.1. Khái niệm, định nghĩa
Thuật toán định tuyến trong giao thức DRQC định nghĩa một số khái niệm về nút:
- Nút nguồn (Source node): là nút sinh ra gói dữ liệu để gửi đi trong mạng.
- Nút đích (Destination node): là nút nhận được gói dữ liệu được gửi đi
trong mạng.
- Nút xử lý lựa chọn (Prober): là nút xử lý lựa chọn nút tiếp theo trong quá trình định tuyến gói tin.
- Nút chuyển tiếp (Forwarder): là nút được chọn bởi nút Prober.
Hình 2-3. Định nghĩa các nút trong DRQC
Hình 2-3: Nút S gọi là nút nguồn. Nút D là nút đích. Nút {S, X} thực thi lựa chọn nút tiếp theo được gọi là Prober. Nút {X, Z} là nút chuyển tiếp (Forwarder).
2.3.2. Trạng thái của các nút
Trong giao thức DRQC định nghĩa mỗi nút có thể mang một trong hai trạng thái là nút đỏ hoặc nút trắng như sau:
- Nút đỏ: Một nút được gọi là nút đỏ nếu có ít nhất một nút hàng xóm cấp 2 tồn tại trong mỗi một góc ¼.
- Nút trắng: một nút được gọi là nút trắng nếu không có một nút hàng xóm cấp 2 tồn tại trong ít nhất một góc ¼.
Hình 2-4. Trạng thái của nút trong DRQC8
Ví dụ trong hình 2-4: nút S có các hàng xóm cấp 2 ở các góc phần tư do đó
nút S có trạng thái là nút đỏ. Ngược lại các nút như H, N, E có trạng thái là nút trắng vì trong các góc phần tư của mỗi nút không tồn tại đầy đủ hàng xóm cấp 2.
2.3.3. Định dạng thông điệp gửi
Để gửi và nhận các gói thông tin về vị trí địa lý cũng như các gói thông tin
dữ liệu, trong giao thức DRQC đã định nghĩa một số kiểu thông điệp gồm thông tin quảng bá - Hello message dùng để gửi và nhận các gói thông tin quảng bá thông tin của các nút, Thông tin gói dữ liệu - Data packet messagedùng để gửi gói dữ liệu, Thông tin phản hồi - Detour message dùng để gửi phản hồi về cho nút chuyển tiếp phía trước khi không tìm thấy các nút chuyển tiếp tiếp theo thỏa mãn điều kiện.
- Hello message: Mỗi nút gán tọa độ và trạng thái của nút hàng xóm cấp 1 và nút hàng xóm cấp 2 của nó cũng như chính nó vào Message Hello, và quảng bá thông tin đó đi cho các nút khác “ĐỊNH KỲ”. Bảng 2-1 minh họa định dạng của thông điệp quảng bá (Hello message):
Bảng 2-1: Định dạng thông điệp quảng bá
Coordinate/States Neighbor_Coordinates/States
o Trường 1 (Coordinate States) là tọa độ, trạng thái của chính nút quảng bá.
o Trường 2 (Neighbor_Coordinate/States) là tọa độ, trạng thái của nút hàng xóm 1 và hàng xóm 2.
- Data packet message: Một nút nguồn giao tiếp với nút đích bằng cách gửi đi một gói dữ liệu có định dạng như Bảng 2-2 bao gồm các thông tin:
Bảng 2-2: Định dạng thông điệp dữ liệu
Source Destination Prober Forwarder Data
o Thông tin của nút gửi (Source)
o Thông tin nút đích (Destination)
o Thông tin nút prober
o Thông tin nút forward.
o Thông tin của dữ liệu (Data)
- Detour message: khi một nút không tìm thấy một nút chuyển tiếp nút đó
sẽ sinh ra một thông điệp phản hồi (DETOUR message) yêu cầu nút
forwarder phía trước của gói tin thực hiện lại việc chọn một nút
forwarder. DETOUR message được chỉ thấy trong Bảng 2-3 gồm các thông tin:
Bảng 2-3: Định dạng thông điệp phản hồi
Source Destination Blocker Previous_Forwarder Filter Data
o Thông tin nút đích, nút nguồn (Source, Destination).
o Thông tin nút sinh ra gói tin Detour message (Blocker).
o Thông tin vềnút đã gửi gói tin phía trước (Previous_Forwarder).
o Thông tin về hàng xóm cấp 1, 2 của nút sinh ra gói tin Detour (Filter)
o Thông tin dữ liệu đã gửi (Data).
2.3.4. Cấu trúc dữ liệu
Để lưu trữ dữ liệu trong quá trình thực hiện xử lý tính toán, giao thức
DRQC đã định nghĩa một số kiểu cấu trúc dữ liệu gồm: bảng thông tin định tuyến (Routing table) và bảng thông tin hàng xóm (Neighbor table)
- Bảng định tuyến (Routing table): mỗi một nút sẽ cập nhật và duy trì một bảng định tuyến để lưu trữ những thông tin về các nút chuyển tiếp có
được trong quá trình định tuyến. Trong cấu trúc dữ liệu (Bảng 2-4) định tuyến gồm có các phần:
Bảng 2-4: Định dạng cấu trúc bảng định tuyến
Destination Next_Forwarder Candidates
o Thông tin vềnút đích (Destination).
o Thông tin về nút chuyển tiếp (Next_Forwarder).
o Thông tin về hàng xóm cấp 2 của nút có thể được lựa chọn
để gửi thông tin tới nút đích (Candidates).
- Bảng hàng xóm (Neighbor table): Mỗi một nút sẽ duy trì và cập nhật một bảng thông tin về các nút hàng xóm cấp 1 và các nút hàng xóm cấp 2 (
Bảng 2-5) cũng như thông tin về các góc phần tư chứa các nút hàng xóm. Bảng 2-5: Định dạng cấu trúc bảng hàng xóm
Quadrant N1 N2
o Quadrant là trường chứa thông tin về góc phần tư o N1 là các nút hàng xóm cấp 1
o N2 là các nút hàng xóm cấp 2
2.3.5. Thuật toán xử lý định tuyến DRQC.
Luồng xửlý định tuyến trong DRQC gồm 2 phần: (1): Khi một nút nhận một gói dữ liệu.
(2): Khi một nút nhận gói DETOUR message.
Khi một nút v trong mạng nhận một gói dữ liệu được gửi từ nút vs, trong đó
chứa thông tin về nút nhận dữ liệu là vd. Nút chuyển tiếp phía trước là vp, nút v sẽ biết rằng có một đường định tuyến từ vs qua vp để đến nút v. Nút v sẽ giữ lại
thông tin định tuyến đến chính nó vào trong bảng định tuyến. Sau đó nút v sẽ
tìm kiếm trong các hàng xóm trong bảng hàng xóm (Neighbors table) hoặc trong bảng định tuyến (Routing table) để định tuyến một đường đi tới đích. Nếu một
định tuyến đựơc tìm thấy thì nó sẽ chuyển tiếp gói tin tới nút chuyển tiếp tiếp theo.
Nếu nút v không tìm thấy một hàng xóm cấp 1 có thông tin là nút đích thì nút v sẽ chọn một hàng xóm cấp 2 có tiêu chí là nút đỏ và cùng góc phần tư với nút đích. Nếu có nhiều hơn một lựa chọn thì nút v sẽ chọn một nút nào đó có
khoảng cách ngắn nhất đến đích. Tiêu chí lựa chọn thứ 2 được áp dụng nếu các
điều kiện phía trước không xảy ra. Nút v sẽ lựa chọn một hàng xóm cấp 2 có trạng thái là nút trắng và có cùng góc với nút đích. Nếu có nhiều hơn một lựa chọn thì v sẽ chọn nút có khoảng cách ngắn nhất tới nút đích. Tiêu chí lựa chọn cuối cùng là chọn một nút hàng xóm cấp 2 có khoảng cách ngắn nhất tới nút
đíchhơn chính nút v. Quá trình xử lý tìm nút chuyển tiếp được miêu tả trong [8]
Hình 2-5.
Trường hợp xấu nhất là nút v không tìm thấy một nút chuyển tiếp nào tới nút đích từ chính những hàng xóm cấp 2 của nó. Trong trường hợp này nút v sẽ
chặn gói tin và nó sẽ sinh ra một thông điệp phản hồi không tìm thấy đường đi
(DETOUR message) và gửi nó tới nút chuyển tiếp phía trước nút v. Khi một nút v nhận đựơc DETOUR massage cùng mới nội dung chứa thông tin về Detour_vs
là nút gửi và Detour_vd là nút nhận thì quá trình xửlý thông điệp tại nút chuyển tiếp phía trước [8] như hình 2-6.
Chương 3. GIAO THỨC “DETOUR ROUTING BASED ON COORDINATES ROTATION”
3.1. Hạn chế của giao thức định tuyến DRQC
Khi một nút xác định đường đi của gói tin tới nút đích thì nó sẽ xem xét các nút hàng xóm thuộc cùng góc phần tư với nút đích. Dựa theo điều kiện góc phần
tư này mà quá trình tìm kiếm đường đi của một gói tin sẽ giảm được chi phí
băng thông và thời gian tìm kiếm. Tuy nhiên, trong quá trình tìm hiểu về thuật
toán DRQC, tôi đã nhận thấy rằng, trong trường hợp các nút nằm gần kề với nút
đích nhưng không nằm cùng góc với nút đích thì vấn đềxác định góc theo thuật toán sẽ có thể dẫn tới việc tìm kiếm đường đi không tối ưu hoặc không thành công.
Hình 3-1. Ví dụ định tuyến DRQC không tối ưu
Ví dụ (Hình 3-1), Khi nút nguồn S gửi gói tin tới nút đích D. Theo
DRQC, nút S sẽ chọn các nút thuộc góc phần tư với nút D, vì vậy S sẽ chọn nút {3} là nút kế tiếp trong đường đi gói tin từ S tới D. Tiếp tục như vậy giao thức DRQC sẽ lần lượt chọn các nút {4, 5} trong quá trình định tuyến. Đường đi của gói tin theo DRQC sẽ là S -> 3 -> 4 -> 5 -> D. Tuy nhiên ta nhận thấy rằng nếu nút S lựa chọn đường đi S -> 1 -> 2 -> D thì chi phí gửi gói tin sẽ hiệu quảhơn.
3.1.1. Nút tối ưu không thuộc góc với nút đích
Trong luận văn tôi định nghĩa một khái niệm gọi là “Nút tối ưu không thuộc góc phần tư nút đích”. Đây là những nút mạng tối ưu trong quá trình định tuyến nhưng không thuộc góc phần tư với nút đích khi nằm trong một hệ trục toạ độ (Hình3-2, Hình 3-3).
Hình 3-2. Nút tối ưu nằm trên trục tọa độ
Trường hợp 1: nút nguồn là nút 1 (Hình 3-2):
- Các nút {2, 3, 4} nằm trên trục hoành của trục toạđộ nút 1. - Các nút {8, 15} nằm trên trục tung của trục toạđộ nút 1.
Các nút {2,3,4,8,15} gọi là các nút biên của nút 1. Vì mỗi nút chỉ có thể
nằm trong một góc phần tư duy nhất nên ta có, nếu nút {2,3,4} nằm ở góc phần
tư thứ nhất của nút 1 thì nút {5, 8} nằm ở góc phần tư thứ tư.Khi đó nút nguồn 1 muốn gửi gói tin đến nút đích nút 19 thì theo thuật toán DRQC phải đi qua các
nút {2, 9, 16, 15}. Tuy nhiên chúng ta nhận thấy nếu gói tin từ nút 1 đi qua nút 8, nút 15 thì chi phí định tuyến sẽ giảm đi rất nhiều.
Trường hợp 2: nút nguồn là nút S (hình 3-3)
- Các nút {3, 4, 5} thuộc góc phần tư thứ nhất cùng với nút đích D.
- Các nút {1,2} thuộc góc phần tư thứ 2 không cùng góc với nút đích. Theo giao thức DRQC nếu gói tin gửi từ nút S tới nút D thì sẽ đi qua các
nút S – 3 – 4 – 5 – D. Tuy nhiên chúng ta sẽ thấy nếu gói tin đi qua các nút S – 1 – 2 – D thì chi phí định tuyến gói tin sẽ giảm đi rất nhiều. Các nút {1, 2} là những nút tối ưu không thuộc cùng góc phần tư với nút đích.
3.1.2. Ví dụđịnh tuyến không tối ưu theo DRQC
Hình 3-4 minh họa một hệ thống mạng gồm có 56 nút, thực hiện việc gửi gói tin từ nút số9 đến nút số 45.
Hình 3-4. Ví dụ định tuyến không hiệu quả
Trong ví dụ hình 3-4, các nút {10,11,12,13,14} thuộc trục hoành (ox) có gốc tọa độ nút số 9, các nút {16,23,30,37} thuộc trục tung (oy) có gốc là nút số
9. Ví dụnút đích nút số 45, nút 45 sẽ có vị trí gần với trục oy. Theo thuật toán DRQC, tại nút nguồn nút số 9, sẽ lựa chọn nút số 17 là nút hàng xóm cấp 2 và có góc cùng với nút đích. Tuy nhiên nút 23 cũng là nút hàng xóm cấp 2 và có khoảng cách tới đích gần hơn so với nút số 17. Lý do DRQC không lựa chọn nút số 23 là vì nút 23 không thuộc góc phần tư với nút đích, điều này đã dẫn đến hiệu suất định tuyến không hiệu quả khi xảy ra các trường hợp tương tự như ví
3.2. Đề xuất giải pháp cải tiến giao thức DRQC