2.4.1.1 Giới thiệu
Định tuyến theo vectơ khoảng cách ( Distance – vector ) dựa trên nguyên tắc trao đổi phiên bản copy trong các bảng định tuyến giữa các router một cách định kỳ.Việc trao đổi thông tin định tuyến chỉ diễn ra giữa 2 router kế cận .Các router tiếp nhận các bảng định tuyến đó cộng thêm “khoảng cách” và xây dựng nên thực thể định tuyến của nó.Khoảng cách đến đích sẽ là tổng khoảng cách thành phần
Các thuật toán chọn đờng theo vec-tơ khoảng cách đã đợc sử dụng phổ biến trong các mạng chuyển mạch gói từ cách đây vài thập kỷ, bắt đầu từ mạng ARPANET. Nó đ- ợc sử dụng phổ biến có thể là do đơn giản, tính toán phân tán, chỉ sử dụng những thông tin cục bộ để định ra con đờng tới đích.
Các thuật toán chọn đờng theo vec-tơ khoảng cách chọn ra các con đờng tối u theo một tiêu chuẩn tối u định trớc. Thớc đo để đánh giá có thể là các tham số về trễ, tỉ lệ lỗi, cớc phí truyền dẫn... Khi đánh giá một đờng truyền, ta dựa trên một giá trị gọi là cost của đờng truyền đó. Cost có thể là một trong những tham số ở trên, cũng có thể là một hàm phụ thuộc vào nhiều tham số. Đờng truyền tối u nghĩa là có cost nhỏ nhất. ở đây chúng ta chỉ xét trờng hợp: cost của một tuyến đờng (route) bằng tổng cost của các link. Bởi vì, có những trờng hợp, ví dụ, cost của route bằng một hàm tích của cost các link (trong trờng hợp tỉ lệ lỗi bit).
Cơ sở của các thuật toán chọn đờng theo vec-tơ khoảng cách là thuật toán Bellman-Ford đã nói ở trên.
Hạn chế của thuật toán chọn đờng theo khoảng cách là tốc độ hội tụ bị ảnh hởng rất nhiều khi các link trong mạng thay đổi cost liên tục.
Giả sử tại thời điểm trớc khi có thay đổi về cost của các link, tuyến đờng từ node i đến node j phải đi qua node lân cận với i là k, và cost của toàn tuyến đờng đó là d. Nếu sau khi thay đổi cost, node i nhận đợc thông tin từ node lân cận k’ rằng qua k’, con đ- ờng tới j có tổng cost là d’ < d, thì thông tin về con đờng tới j của i sẽ đợc cập nhật. Tr- ờng hợp khác, nếu node k thông báo với node i rằng con đờng tới j qua k tăng cost, khi đó node i sẽ thực hiện lại việc tính toán chọn đờng tới node j.
Trong trờng hợp, node k bị hỏng (hoặc link từ i tới k bị hỏng), cần phải có biện pháp để xử lý lỗi này, bởi vì theo nh hoạt động thông thờng, lỗi này không thể đợc xử lý. Bởi con đờng tới j của i chỉ có thể thay đổi khi k gửi thông tin thay đổi cost của con đờng tới j cho i. mà việc gửi này không thể thực hiện đợc. Các giao thức chọn đờng theo phơng pháp vec-tơ khoảng cách đều cần có một cơ chế xử lý trờng hợp này. Ví dụ nh đối với RIP, sẽ qui định một chu kỳ cho các node gửi thông tin cập nhật tới các node lân cận. Nếu một node, cứ sau một số hữu hạn chu kỳ đó, không nhận đợc thông tin cập nhật từ một node lân cận thì tất cả các con đờng từ node này qua node lân cận đó đều bị huỷ và phải tính toán lại những con đờng bị huỷ đó.
2.4.1.3 Đếm đến vô cùng
Thuật toán chọn đờng theo vec-tơ khoảng cách có tốc độ hội tụ khác nhau trong các trờng hợp thay đổi cost khác nhau. Nó đáp ứng nhanh với tin lành và đáp ứng chậm với tin xấu. Để thấy rõ điều này, chúng ta xem xét ví dụ sau: Một mạng có 5 node nh Hình 2.12 trong đó cost là số bớc nhảy (hop).
Hình 2.12 Mạng ví dụ
Con đờng tới các đích không thể tới có cost bằng ‘vô cùng’ (infinite) (Giá trị ‘vô cùng’ này lớn hơn bất cứ cost của con đờng ngắn nhất nào. Đối với RIP, infinite bằng 16). Giả sử, lúc đầu A bị hỏng và tất cả các node khác đều biết điều này nên có cost của con đờng tới A là ‘vô cùng’. Khi A đợc khôi phục (tin lành), ở lần trao đổi thông tin đầu tiên, B biết đợc láng giềng bên trái của nó có cost bằng 0 đến A. Theo bảng định tuyến của B, con đờng tới A sẽ có cost bằng 1. Tất cả các node còn lại vẫn nghĩ A bị hỏng và có cost của con đờng tới A bằng ‘vô cùng’ nh trong bảng 2.1, dòng thứ hai. Tại lần trao đổi sau, C biết B có cost đến A là 1 vì thế nó cập nhật trong bảng định tuyến của nó cost đến A là 2. Cứ vậy, sau 4 chu kỳ trao đổi thông tin, kết quả đúng đã có ở tất cả các node.
Bảng 2.1 Code của các node tại các thời điểm
B C D E
Thời điểm ban đầu ∞ ∞ ∞ ∞
Sau 1 lần cập nhật 1 ∞ ∞ ∞
Sau 2 lần cập nhật 1 2 ∞ ∞
Sau 3 lần cập nhật 1 2 3 ∞
Sau 4 lần cập nhật 1 2 3 4
Xét trờng hợp thứ hai, mạng đang hoạt động tốt thì đờng link từ node B đến node A bị hỏng (tin xấu). Khi B không nhận đợc thông tin gì về A từ phía bên trái, nó sẽ coi rằng cost của con đờng tới A theo hớng bên trái bằng ‘vô cùng’. Trong khi đó, con đờng tới A theo hớng bên phải sẽ là 2 (qua C) + 1 (từ B đến C) = 3. Con đờng này thực ra là không chính xác bởi nó phải đi qua B để tới A. Cost tới A của theo các node C,D,E vẫn không thay đổi (Xem bảng 2.2). Đến lần cập nhật thông tin thứ hai, C nhận đợc thông tin từ các node lân cận về con đờng ngắn nhất đến A là 3, nó sẽ có cost của con đờng đến A là 4. Đến lần cập nhật thứ ba, B lại cập nhật lại thông tin của mình theo C... Và thông tin cứ chậm chạp đợc thay đổi nh vậy cho tới khi tất cả các node đều có cost của con đờng tới A là ‘vô cùng’.
Bảng 2.2 Code của các node tại các thời điểm
B C D E
Thời điểm ban đầu 1 2 3 4
Sau 1 lần cập nhật 3 2 3 4 Sau 2 lần cập nhật 3 4 3 4 Sau 3 lần cập nhật 5 4 5 4 Sau 4 lần cập nhật 5 6 5 6 Sau 5 lần cập nhật 7 6 7 6 Sau 6 lần cập nhật 7 8 7 8 ... ... ... ... ... ∞ ∞ ∞ ∞ 2.4.1.4 Chia cắt hai hớng
Trong trờng hợp tin xấu ở trên, hai node C và B đã liên tiếp truyền những thông tin không chính xác cho nhau, tạo ra đờng đi lòng vòng. Để giải quyết tình trạng này, giải pháp chia cắt hai hớng (trong một số tài liệu, đợc gọi là giải pháp chẻ ngang), đã đ- ợc đa ra. Theo giải pháp này, một node truyền thông tin đúng về cost tới đích cho tất cả các node láng giềng trừ node mà qua đó nó sẽ đi tới đích. Đối với node này, hoặc là nó không truyền thông tin gì (theo phơng pháp chia cắt hai hớng thông thờng), hoặc nó
truyền lại thông tin rằng cost bằng ‘vô cùng’ (theo phơng pháp chia cắt hai hớng đầu độc ngợc - poison reverse). Nh trong ví dụ trên, node C chỉ truyền thông tin cập nhật đúng về con đờng tới A cho node D, còn với node B, nó không truyền thông tin gì hoặc sẽ truyền thông tin rằng cost tới A là ‘vô cùng’.
Tuy nhiên, giải pháp chia cắt hai hớng chỉ giải quyết đợc tình trạng hai node đa thông tin không chính xác cho nhau. Còn khi có ba node trở lên đa thông tin không chính xác, nó có thể sẽ lại rơi vào tình trạng tạo ra đờng vòng nh trong ví dụ sau:
Xét mạng nh Hình 2.13, cost vẫn là số bớc nhảy.
Hình 2.13 Mạng ví dụ
Tại thời điểm ban đầu, mạng hoạt động tốt. C có cost tới D là 1. Cả A và B đều có cost tới D là 2 và đi qua C. Khi đờng link giữa C và D bị hỏng, do cả A và B đều thông báo với C rằng con đờng tới D có cost bằng ‘vô cùng’ nên C sẽ đặt cost con đờng tới D bằng ‘vô cùng’ và thông báo cho A, B biết. Khi A và B biết đợc điều này, nó sẽ thay đổi con đờng tới D của mình. A tới D qua B (với cost = 2 + 1 = 3 < ‘vô cùng’) và B tới D qua A (cũng với cost = 3) và hai node này sẽ gửi thông tin là có cost bằng 3 cho C...
Vậy là, cả A, B và C cùng rơi vào tình trạng ‘đếm tới vô cùng’. (Xem bảng 2.3)
Bảng 2.3 Code của các node tại các thời điểm
A B C
từ B từ C kquả từ A từ C kquả từ A từ B kquả
Thời điểm ban đầu 2 1 2 2 1 2 ∞ ∞ 1
Sau 1 lần cập nhật 2 1 2 2 1 2 ∞ ∞ ∞ Sau 2 lần cập nhật 2 ∞ 3 2 ∞ 3 ∞ ∞ ∞ Sau 3 lần cập nhật ∞ ∞ ∞ ∞ ∞ ∞ 3 3 4 Sau 4 lần cập nhật ∞ ∞ ∞ ∞ 4 5 ∞ ∞ ∞ Sau 5 lần cập nhật 5 ∞ 6 ∞ ∞ ∞ ∞ ∞ ∞ Sau 6 lần cập nhật ∞ ∞ ∞ ∞ ∞ ∞ 6 ∞ 7 Sau 7 lần cập nhật ∞ ∞ ∞ ∞ 7 8 ∞ ∞ ∞ ... ... ... ... ... ... ... ... ... ... ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ Phạm Văn Hiến - Đ01VT 76
2.4.1.5 Cập nhật có điều kiện
Cập nhật có điều kiện là cơ chế giúp cho các mạng sử dụng phơng pháp cập nhật theo chu kỳ hoạt động hiệu quả hơn. Cập nhật có điều kiện là quá trình cập nhật cost diễn ra ngay sau khi phát hiện ra có sự thay đổi cost của tuyến đờng tới đích. Thông th- ờng, để giảm phí tổn truyền dẫn cho thông tin cập nhật, quá trình cập nhật có điều kiện chỉ thực hiện cập nhật đối với những tuyến đờng mà cost sẽ bị thay đổi. Đồng thời, quá trình cập nhật có điều kiện có thể đợc làm chậm lại một khoảng thời gian, trong khoảng thời gian đó, nếu việc cập nhật định kỳ xảy ra thì cập nhật có điều kiện sẽ không đợc tiến hành nữa.
Quá trình cập nhật có điều kiện diễn ra nh sau: Giả sử node i sau khoảng thời gian qui định không nhận đợc thông tin gì từ node j, nó sẽ coi rằng node j không thể liên lạc đợc. Khi đó, i sẽ gửi thông tin cập nhật có điều kiện đến tất cả các node lân cận của nó. Trong các node lân cận của i, chỉ những node có đờng đi tới j qua i phản ứng với thông tin cập nhật này. Các node còn lại sẽ bỏ qua thông tin cập nhật đó. Những node có liên quan sẽ tiến hành tính toán lại con đờng tới j, đồng thời lại gửi thông tin cập nhật có điều kiện đến cho các node lân cận. Kết quả là thông tin cập nhật có điều kiện đợc lan truyền từ i tới tất cả các node có đờng đi tới j qua i.
Với cơ chế cập nhật có điều kiện này, vấn đề ‘đếm đến vô cùng’ sẽ đợc loại trừ nếu trong quá trình thông tin cập nhật có điều kiện truyền lan không có thay đổi gì về tuyến đờng tới đích đang xét.