Giải thuật distance vector và các giải pháp chống LOOP trong distance vector

1) Giải thuật distance vector là gì?

Distance-vector: RIP, IGRP. Hoạt động theo nguyên tắc "hàng xóm", nghĩa là mỗi router sẻ gửi bảng routing-table của chính mình cho tất cả các router được nối trực tiếp với mình . Các router đó sau đó so sánh với bảng routing-table mà mình hiện có và kiểm xem route của mình và route mới nhận được, route nào tốt hơn sẽ được cập nhất . Các routing-update sẽ được gởi theo định kỳ (30 giây với RIP , 60 giây đối với RIP-novell , 90 giây đối với IGRP) . Do đó , khi có sự thay đổi trong mạng , các router sẽ nhận biết được khúc mạng nào bị down.

Ưu điểm :
- Dễ cấu hình. Router không phải xử lý nhiều điều đó cho phép CPU và MEM có thể thực hiện thêm các công việc khác.

Nhược điểm:
- Hệ thống metric quá đơn giản (như rip chỉ là hop-count ), nên có thể xảy ra việc con đường "tốt nhất" chưa phải là tốt nhất.

- Do phải cập nhật định kỳ các routing-table, nên một lượng bandwidth (băng thông) đáng kể sẻ bị chiếm , làm trong thoughput (thông lượng) sẽ mất đi (mặc dù mạng không gì thay đổi nhiều) .

2) Routing Loop là gì?


Trước khi network 1 bị down thì thì tất cả router đều xem đường route tới network là tốt. Router C nhận định rằng muốn tới network 1 thì fải qua router B với metric là 3 (ví dụ ta chạy RIP).

Khi network 1 bị down xuống thì
router E mới gửi 1 bản update tới A là: N1 down rồi nhưng router B, C, D không biết. Nhưng B và D có thể nhận biết được N1 down 1 cách nhanh chóng vì nó connect trực tiếp tới A nên nhận update nhanh hơn. Tuy nhiên do C không nhận được update là N1 down nến vẫn gửi 1 bản update tới B và D là đường tới N1 vẫn tồn tại. Và như thế B và D update lại bản routing table của mình là N1 vẫn tốt. Muốn đến N1 hãy đi qua C. Như thế là sai và quá trình này cứ lặp đi lặp lại (vì A sẽ gửi lại 1 update nói với B và D rằng la N1 vẫn good) ===> routing loop

Nguyên nhân:

B và D có thể nhận được update từ A còn C thì không , bởi vì 1 "HÔI TỤ CHẬM" ( SLOW CONVERGENCE)

Vậy convergence là gì : sau khi topology change thì tất cả router cần 1 time để tính toán lại các đường route của mình, và quá trình và thời gian đó gọi là TIME TO CONVERGENCE

3) Các giải pháp tránh LOOP


a. SPLIT HORIZON:

Router B và D nhận update về N1(down) sẽ không gửi lại update về N1 (up, sau khi nhận được từ C) tới cho router A.

Split horizon được sử dụng để đảm bảo rằng thông tin về một route do một router phát ra không quay lại chính nó. Ví dụ, khi network 1 chưa down, router E gửi thông tin update đến router A. Router A sẽ không gửi lại thông tin update đến N1 quay lại E vì nếu làm như thế, đương nhiên E sẽ không dùng thông tin đó ==> lãng phí. Còn trong trường hợp route bị poison ==> Do có Split horizon, thông tin về route đến N1 không bị lặp đi lặp lại trên link giữa A và E (count-to-infinite)

Split horizon with Poison reverse : Bình thường, A không gửi lại cho E thông tin về route đến N1. Nhưng khi A nhận được bản tin update nói rằng route đến N1 là unreachable --> A gửi lại cho E thông tin về route đến N1 với metric là infinite.

b. HOLD DOWN TIMER :

Khi router nhận được thông tin về một route là unreachable, router sẽ đánh dấu route đó và đặt nó vào trạng thái hold-down (Router đặt bộ định thời = thời gian hold-down). Trong thời gian hold-down, router vẫn tiếp tục dùng route đó để forward gói tin, nhưng sẽ bỏ qua tất cả các thông tin về route với thông số metric bằng hoăc xấu hơn metric router đang có về route đó .

Hold-down timer bị reset khi thời gian hold-down đã hết, hoặc router nhận được thông tin về route với metric tốt hơn metric nó đang giữ.

Ví dụ: Khi A nhận được thông tin route đến N1 bị down, hold-down timer cho route đó được thiết lập. Tương tự với B, D. Do đó khi D nhận được update từ C, vì metric mà C gửi lớn hơn (xấu hơn) metric D đang có về route N1 nên D bỏ qua ==> Không còn loop

3) POSION REVERSE UPDATE :

Là bản update đặc biệt được gửi từ router connect với 1 network down tới các router neighbor của mình ( khong bao gồm router có network bị down ) rằng đường route tới network đó là infinity.

Khi một router phát hiện ra một route R bị down (router không nhận được bản tin update từ router neighbor mà từ đó nó học được route R), router sẽ đặt giá trị metric của route R bằng giá trị không xác định (infinite) và gửi đi trong bản tin cập nhật định tuyến để thông báo với các router trên mạng rằng route R unreachable.

Trong hình vẽ, router E không nhận được thông tin về route đến N1, nó đặt metric của route đến N1 là infinite rồi gửi đi trong bản tin định tuyến. Đồng thờ, E hủy bỏ route đến N1 trong bảng định tuyến của nó.

c. TRIGGER UPDATE:

Trigger updates là bản update được gửi ngay khi có route bị fail, không cần chờ đến thời gian định kỳ để gửi update.

(anhukyo)



Để bắt đầu tham gia Giao dịch tài chính:


5 comments :

  1. anh ơi, anh có bài viết về link state ko anh

    ReplyDelete
  2. Bạn tìm hiểu về link state hay muốn so sánh giữa Link State và Distance Vector

    ReplyDelete
  3. thanks anh!
    bai viet kha bo ich doi voi em

    ReplyDelete
  4. Bài viết quá hay bạn à!!!Tiếp tục chia sẻ kiến thức nha bạn!!!Mình đang cần tìm hiểu kĩ về BGP

    ReplyDelete
  5. A ơi cho e xin bài viết và ví dụ về OSPF như bài này đi a .
    E cảm ơn

    ReplyDelete

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.

Chúc các bạn tìm được những kiến thức bổ ích khi tình cờ ghé thăm blog này.