Thuật toán cập nhật khuếch tán kép

Anonim

Trước khi bạn bắt đầu đọc bài viết này, chúng tôi khuyên bạn nên làm quen với tài liệu về việc tính toán đường dẫn theo thuật toán Bellman - Ford.

Thuật toán cập nhật khuếch tán (thuật toán cập nhật khuếch tán -Dual) là một trong hai thuật toán được thảo luận ở đây ban đầu dự định thực hiện trong một mạng phân tán. Nó là duy nhất ở chỗ nó cũng loại bỏ thông tin về khả năng đạt được và cấu trúc liên kết trong automata cuối cùng của thuật toán. Các thuật toán khác đã thảo luận ở đây để loại bỏ thông tin theo quyết định thực hiện giao thức và không xem xét khía cạnh này của công việc của thuật toán trong chính thuật toán.

Đến năm 1993, Bellman-Ford và Dijkstra đã được triển khai dưới dạng thuật toán phân tán trong một số giao thức định tuyến. Kinh nghiệm thu được do những triển khai và triển khai ban đầu này đã dẫn đến "Sóng thứ hai" của nghiên cứu và phản ánh về vấn đề định tuyến trong các mạng chuyển mạch mạng, dẫn đến sự xuất hiện của đường dẫn và kép.

Vì Dual được thiết kế như một thuật toán phân tán, tốt nhất là mô tả công việc của anh ấy trên mạng. Đối với mục đích này, số liệu 8 và 9 được sử dụng. Để giải thích kép, ví dụ này sẽ được theo dõi trong một luồng ba điểm đến, và sau đó các thay đổi được xử lý trong trạng thái có sẵn cho cùng một mục đích. Trong ví dụ đầu tiên, trường hợp sẽ được xem xét khi có một đường thay thế, nhưng không có hàng xóm hạ lưu, thứ hai sẽ xem xét trường hợp khi có một đường dẫn thay thế và xóm hạ lưu.

Trong Hình 8, học D từ quan điểm A:

  1. Một cách học hai cách để d:
Thuật toán cập nhật khuếch tán kép 21025_1
  1. A sẽ không nhận ra đường dẫn thông qua B, vì B sử dụng A là người kế vị của nó:
  2. Một so sánh các đường dẫn có sẵn và chọn đường dẫn ngắn nhất mà không cần vòng lặp:
  3. A Kiểm tra các đường dẫn còn lại để xác định xem có bất kỳ ai trong số họ xuôi dòng hàng xóm:

A biết điều này vì C thông báo tuyến đường đến D với số liệu địa phương bằng 3.

Một duy trì một số liệu địa phương trong bảng cấu trúc liên kết của nó.

Do đó, một biết giá trị cục bộ trong C và giá trị cục bộ trong A.

  1. 3 (Chi phí trong C) = 3 (Chi phí trong A), do đó, tuyến đường này có thể là vòng lặp, do đó, C không thỏa mãn tình trạng khả thi. C không được dán nhãn là hàng xóm ở hạ lưu.

Hàng xóm hạ lưu trong kép được gọi là người kế thừa có thể. Giả sử rằng kênh [A, H] không hoạt động. Dual không dựa vào các bản cập nhật định kỳ, vì vậy không thể chờ đợi một bản cập nhật khác với thông tin đáng tin cậy. Thay vào đó, phải chủ động phải theo một đường thay thế. Do đó, đây là một quá trình phát hiện khuếch tán của một đường thay thế. Nếu kênh [A, H] không hoạt động, chỉ xem xét D:

  1. A Kiểm tra bảng địa phương của bạn cho những người kế thừa có thể (hàng xóm hạ lưu).
  2. Không có những người kế thừa có thể, vì vậy phải tìm một đường dẫn thay thế mà không cần các vòng lặp cho D (nếu nó tồn tại).
  3. A Gửi yêu cầu cho mỗi người hàng xóm để xác định xem có bất kỳ đường dẫn thay thế nào mà không cần lặp cho D.
  4. Trong C:
  5. Trong B:
  6. Một câu trả lời này:

Trong Hình 9, mục đích (D) đã được di chuyển với H đến E. Điều này sẽ được sử dụng trong ví dụ thứ hai.

Trong ví dụ này, có một người kế nhiệm có thể (lân cận hạ lưu).

Nghiên cứu D từ quan điểm A:

  1. Một cách học hai cách để d:
  2. A sẽ không nhận ra bất kỳ cách nào thông qua B:
  3. Một so sánh các đường dẫn có sẵn và chọn đường dẫn ngắn nhất mà không cần vòng lặp:
  4. A Kiểm tra các đường dẫn còn lại để xác định xem có bất kỳ ai trong số họ xuôi dòng hàng xóm:

Nếu kênh [A, C] không hoạt động, chỉ cần xem xét A:

  1. Một bảng kiểm tra bảng cấu trúc liên kết địa phương cho một người kế nhiệm có thể.
  2. Người kế nhiệm có thể tồn tại thông qua H.
  3. Một chuyển đổi bảng cục bộ của nó trên H là cách tốt nhất.
  4. A Gửi một bản cập nhật cho hàng xóm của mình, lưu ý rằng chi phí thành tích của nó đã thay đổi từ 3 đến 4.

Như bạn có thể thấy, xử lý khi có một người kế thừa có thể, nhanh hơn nhiều và dễ dàng hơn mà không có nó. Trong các mạng nơi giao thức định tuyến được triển khai bằng cách sử dụng kép (đặc biệt, EIGRP), một trong những mục tiêu thiết kế chính sẽ giới hạn khối lượng của bất kỳ yêu cầu nào được tạo ra trong trường hợp không có người kế thừa có thể. Vùng yêu cầu là yếu tố xác định chính Làm thế nào thuật toán kép nhanh chóng hoàn thành và do đó, mạng nhanh chóng hội tụ như thế nào.

Hình 10 cho thấy máy kép hoàn thành cơ bản.

Những thứ bao gồm trong tuyến đường trở nên tồi tệ hơn (sự xuống cấp của tuyến đường) có thể là:

  • Thất bại của kênh hoặc hàng xóm được kết nối
  • Lấy một bản cập nhật cho một tuyến đường có số liệu cao hơn
  • Lấy một truy vấn từ người kế vị hiện tại
  • Lấy một lộ trình mới từ một người hàng xóm
  • Một người hàng xóm mới đã được tìm thấy, cũng như các tuyến đường mà nó có thể nhận được
  • Nhận tất cả các yêu cầu được gửi đến hàng xóm khi tuyến đường xấu đi
Thuật toán cập nhật khuếch tán kép 21025_2

Đọc thêm