Thuật toán tràn ngập

Một phần của tài liệu Giao thức định tuyến EIGRP (Trang 25 - 29)

1.4. Một số giải thuật định tuyến điển hình 1. Giói thiệu

1.4.3. Thuật toán tràn ngập

Một giải thuật định tuyến khác nữa là tràn ngập. Trong giải thuật này mỗi một gói đến đều dược truyền đi trên mọi link nối vào nó ngoại trừ link mà nó từ đấy đến.

Cách hoạt động này của tràn ngập làm tạo ra một số lượng lớn các bản sao của gói mà trong thực tế là một lượng vô hạn trừ khi có một số phép đo nào đó được thực hiện để hạn chế quá trinh này. Một trong những phép đo như vậy là có một bộ đếm bước nhảy trong phần đầu của mỗi một gói, bộ đếm này được giảm ở mỗi bước nhảy và gói sẽ bị huỷ bỏ khi bộ đếm bằng 0. Một cách lí tưởng, bộ đếm bước nhảy cần được khởi động bằng cách nạp giá trị đầu là chiều dài của đường dẫn từ nguồn tới đích. Nếu nguồn không biết đường dẫn dài bao nhiêu, ta có thể khởi động bộ đếm bằng giá trị xấu nhất, nghĩa là đường kính của toàn mạng.

Một cỏch khỏc để hạn chế sự tràn ngập là theo dừi những gúi bị ngập, để trỏnh truyền lại các gói này lần thứ hai. Để đạt được mục đích này, bộ định tuyến nguồn phải đặt một số thứ tự trong mỗi một gói mà bộ định tuyến này nhận được từ máy host nối vào nó. Mỗi một bộ định tuyến sau đó cần có một danh sách trên mỗi bộ định tuyến nguồn cho biết số thứ tự nào khởi đầu của nguồn đó đã được nhận thấy. Nếu có một gói đến trong bảng danh sách, gói này không bị tràn ngập.

Tràn ngập không thiết thực trong hầu hết các ứng dụng, nhưng tràn ngập cũng có một số các ứng dụng. Thí dụ, các ứng dụng trong quân sự, trong đó một số lượng lớn các bộ định tuyến có thể bị hư làm trì hoãn tại một lúc bất kỳ thì sự tràn ngập là một cứu vãn tốt nhất. Trong các ứng dụng dữ liệu phân bố, đôi khi ta cần cập nhật các dữ liệu một cách đồng thời, trong trường họp này tràn ngập lại rất hữu dụng.

Tóm lại, thuật toán “tràn ngập” là một thuật toán định đường tĩnh (vì nó không có sự cập nhật thông tin trong quá trình định đường) rất đơn giản và không được ưa thích cho lắm. Tuy nhiên, khi ứong mạng có một node bị hỏng có thể gây khó khăn cho

các thuật toán định tuyến khác thì thuật toán “tràn ngập” lại làm việc tốt, mặc dù nó định đường không tối ưu và thường gây tắc nghẽn trong mạng.

1.4.4. Định tuyến theo vec-tff khoảng cách I.4.4.I. Giói thiệu

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 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.

Giải thuật định tuyến theo vec-tơ khoảng cách hoạt động trong thực tế bằng cách mỗi một bộ định tuyến duy trì một bảng (nghĩa là một vec-tơ) cung cấp khoảng cách tốt nhất được biết cho mỗi đích và đường dây nào được sử dụng để đến được đích. Các bảng này được cập nhật bằng cách hao đổi thông tin với các bộ định tuyến láng giềng.

Thuật toán chọn đường theo vec-tơ khoảng cách chọn ra 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 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.

Cơ sở của thuật toán chọn đường theo vec-tơ khoảng cách là thuật toán Bellman- Ford mà ta đã xét ở trên.

Hạn chế của thuật toán chọn đường theo vec-tơ khoảng cách là tốc độ hội tụ của thuật toán bị ảnh hưởng rất nhiều khi các link trong mạng thay đổi cost liên tục.

Sau đây là các vấn đề cần được xét của thuật toán chọn đường theo vec- tơ khoảng cách.

1.4.4.2. Tính toán lai cost

Giả sử tại thời điểm trước khi có sự thay đổi về cost của các link, tuyến đường từ node i đến node j phải đi qua lân cận với i là k, và cost của toàn tuyến đường đó là d. ẩ ế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ó tong 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 j 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ư giao thức RIP, sẽ quy đị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. ẩ ếu có 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ỷ đó.

1.4.4.3. Đếm đến vô cùng

Thuật toán chọn 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, ẩ ó đáp ứng nhanh với tin tốt 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 1.6, trong đó cost là số bước nhảy.

Hình 1.6. Mạng ví dụ 5 node

A E

Con đường tới các đích không thể tới có cost bằng ‘vô cùng’. 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 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 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 sẽ có costbằng 1.

Tất cả các node còn lại vẫn nghĩ A bị hỏng và 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 có cost đến A là 1 vì thế nó cập nhật 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.

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 ừá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) +l(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 c, D, E vẫn không thay đổi như trong bảng 1.4.

Bảng 1.4: Cost của các node trong mạng đến A

Đế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 c D E

Thời điểm ban đầu 00 00 00 00 Sau 1 lần cập nhật 1 00 00 00 Sau 2 lần cập nhật 1 2 00 00 Sau 3 lần cập nhật 1 2 3 00 Sau 4 lần cập nhật 1 2 3 4

Tại đây có một điều cần lưu ý là nếu như tuân theo phép tính thì giá trị cost sẽ tiến đến ‘vô cùng’ khi số lần cập nhật tiến đến vô cùng. Điều này là không thể được, cho nên có một cách giải quyết để tránh khỏi vướng mắc trên là giá trị cost=co sẽ được đặt ngầm định là bắng cost dài nhất cộng 1 (vì ở đây giá trị cost là có giới hạn dựa theo cấu hình mạng). Còn nếu đối tượng là thời gian trễ trung bình thì không có một giới hạn nào hoàn toàn xác định cho nên ta sẽ đặt ngầm định ở đây một giá trị lớn tương ứng với giá trị ‘vô cùng’.

Một phần của tài liệu Giao thức định tuyến EIGRP (Trang 25 - 29)

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

(109 trang)
w