Khi đƣờng đến đích 5 bị ngắt thì giá trị cost đến Net5 trong bảng định tuyến của router D đƣợc đặt là 16, có nghĩa Net5 không thể truy cập đƣợc nữa. Sau đó D cập nhật thông tin định tuyến này cho routerC bảng định tuyến chứa danh mục này, trong đó tuyến đến Net5 có giá trị là 16 đƣợc gọi là tuyến đốc. Sau khi RouterC nhận đƣợc thông báo cập nhật từ RouterD, C sẽ gửi thông tin về tuyến độc đến tất cả các đƣờng liên kết của nó trong đó có thông tin ngƣợc lại cho D, hoạt động này đƣợc gọi là đảo ngƣợc tuyến độc.
Thông báo route poisoning kết hợp với cơ chế cập nhật tức thời làm giảm bớt thời gian hội tụ vì không phải chờ thông báo cập nhật định kỳ.
Trong khi một bộ định tuyến sử dụng kỹ thuật tách ngang chỉ đơn thuần bỏ qua không gửi trả lại thông báo các tuyến đã nhận đƣợc từ một bộ định tuyến lân cận (tức là chỉ gửi chuyển tiếp), thì trong kỹ thuật đảo ngƣợc tuyến độc nó có gửi trả lại bộ định định tuyến lân cận đó thông tin định tuyến với thông số cost lớn hơn giá trị tối đa. Cơ chế này đƣợc gọi là tách ngang kết hợp với đảo ngƣợc tuyến độc.
c. Kỹ thuật cập nhật tức thời (trigged update):
Hoạt động cập nhật định tuyến hoạt động theo chu kỳ (RIP cài đặt là 30 giây thực hiện một lần). Tuy nhiên khi trạng thái kiến trúc mạng thay đổi, nếu giữ nguyên cơ chế này sẽ làm cho tốc độ hội tụ mạng giảm. Kỹ thuật trigged update đƣợc sử dụng để thông báo ngay trạng thái của kiến trúc mạng khi router phát hiện ra thay đổi. Cơ chế này kết hợp với reverse poison đảm bảo thời gian hội tụ mạng nhanh hơn.
d. Kỹ thuật giữ thời gian (holddown):
Là cơ chế sử dụng thời gian chờ trong định tuyến. Khi một router nhận thông báo cập nhật về một mạng X nào đó không truy cập đƣợc nữa, thì nó sẽ đánh dấu tuyến đến mạng X và khởi động thời gian holddown. Trong thời gian này có các khả năng xảy ra:
- Nếu nhận lại đƣợc thông báo là mạng X đã truy cập lại đƣợc từ chính router cũ thì router mới cập nhật thông tin đó và kết thúc thời gian holddown.
- Nếu nó nhận đƣợc thông báo mạng X cập nhật đƣợc từ một router khác router thông báo cũ với thông số định tuyến tốt hơn thì nó sẽ cập nhật thông báo này và kết thúc holddown.
- Nếu nó nhận đƣợc thông báo mạng X cập nhật đƣợc từ một router khác với thông số định tuyến không tốt bằng tuyến cũ thì nó sẽ bỏ qua không cập nhật thông tin này cho đến khi kết thúc thời gian holddown.
2.2.4. Giao thức định tuyến RIP (Routing Information Procotol)
Giao thức định tuyến RIP là một giao thức định tuyến theo vector khoảng cách, có cơ chế hoạt động hoàn toàn giống với hoạt động của giao thức vector khoảng cách đã mô tả ở trên. RIP là giao thức thuộc loại IGP điển hình, hoạt động
trên nền giao thức IP. RIP đƣợc phát triển từ nhiều năm, khởi đầu là của Xerox (Xerox Procotol). Hiện tại nó có hai phiên bản, RIP v1 định tuyến theo lớp địa chỉ IP, RIP v2 là phiên bản nâng cấp từ RIP v1 có các ƣu điển hơn nhƣ: Định tuyến không theo lớp địa chỉ, cung cấp nhiều thông tin hơn, cung cấp cơ chế xác minh bảo mật giữa các router trong quá trình định tuyến, và hỗ trợ định tuyến VLSM (Variable Length Subnet Masking – Subnet mask có chiều dài thay đổi).Một số đặc trƣng thể hiện riêng nhƣ:
- Mọi bƣớc truyền thông tin trên các đƣờng link giữa các mạng (hop) đều có bƣớc truyền tính khoảng cách đo bằng 1.
- Giới hạn số bƣớc truyền là 16. Nếu khởi đầu từ một mạng nguồn, thì mạng đích truyền dữ liệu với khoảng cách tối đa cost đến đƣợc là 15. Tuyến có giá trị cost là 16 đồng nghĩa là không đến đƣợc đích.
- RIP gặp vấn đề về định tuyến lặp vòng và đếm đến vô tận, giống nhƣ mô tả trong giao thức vector khoảng cách. RIP thƣờng dùng các kỹ thuật sau để giải quyết:
Đặt giá trị tối đa: số giá trị hop tối đa là 15. Dẫn tới hạn chế là không sử dụng đƣợc trong các mạng lớn
Dùng các cơ chế split horizon, cơ chế poison reverse, giữ thời gian holddown, và cập nhật tức thời.
a. Các đặc điểm chính của RIP
Hoạt động RIP giống hoạt động mô tả trong giao thức định tuyến Vector khoảng cách. RIP dùng cho các router trao đổi thông tin định tuyến dựa trên hệ thống mạng IPv4. Đơn vị đo sử dụng trong RIP là một số nguyên nằm trong khoảng 0 đến 15. Kết hợp với đơn vị đo là các địa chỉ IPv4 và subnet mask cho mỗi đích. Mỗi router khi sử dụng RIP phải xây dựng một bảng định tuyến chứa các trƣờng thông tin sau cho mọi mạng đích:
- Địa chỉ IPv4 của mạng đích đến: thƣờng là địa chỉ IP của các mạng, các subnet, hoặc supernet, ít khi là địa chỉ IP của host. Địa chỉ supernet là lớp các địa chỉ IP có chung phần prefix.
- Đơn vị đo: mô tả tổng chi phí cho việc chuyển gói dữ liệu từ router đến mạng đích. Số đo này là tổng số của các chi phí đi qua các mạng trung gian để chuyển gói dữ liệu đến đích. Thƣờng đƣợc gọi là khoảng cách .
- Mask của địa chỉ IP mạng đích - Network interface của router
- Địa chỉ IPv4 của router kế tiếp trên đƣờng truyền đến đích (next router). - Cờ route change flag: xác định thông tin về tuyến đƣợc thay đổi gần đây. Bảng sau mô tả thông tin bảng định tuyến trong RIP Router.
Bảng 2.3: Bảng thông tin định tuyến trong RIP router
ip - Route
Dest ip-route Mask ip-route NextHop ip-route Type ip-route Procotol
0.0.0.0 0.0.0.0 128.36.0.2 indirect Rip
128.36.0.0 255.255.255.0 128.36.0.62 direct local 128.36.2.0 255.255.255.0 128.36.0.7 indirect rip 128.36.11.0 255.255.255.0 128.36.0.12 indirect rip 128.36.12.0 255.255.255.0 128.36.0.21 indirect rip
Bảng liệt kê: Các địa chỉ IP đích, địa chỉ của router nexhop để chuyển dữ liệu đến đích, và thông tin về số đo khoảng cách để giúp router chọn đƣờng đi. Nếu số đo là 0 thì đó là mạng LAN kết nối trực tiếp. Bảng sau liệt kê về các số đo khoảng cách: (nối tiếp vào bảng trên)
ip Route Dest ip Route Metric 1 ip Route Metric 2 ip Route Metric 3 ip Route Metric 4 ip Route Metric 5 ip Route If Index ip Route Age (secs) 0.0.0.0 2 -1 -1 -1 -1 1 153836 128.36.0.0 0 -1 -1 -1 -1 1 0 128.36.2.0 1 -1 -1 -1 -1 1 30 128.36.11.0 1 -1 -1 -1 -1 1 13 128.36.12.0 1 -1 -1 -1 -1 1 15
Các trƣờng thông tin trong bảng bao gồm:
- Route mask: xác định số bit dùng để đối chiếu để chọn tuyến khi cần tìm đƣờng đến đích, hay xác định độ dài của routing prefix. Nếu tìm thấy hai tuyến trở
lên đều đến một đích thì tuyến nào có số bit nhiều hơn, phần prefix hơn sẽ đƣợc chọn.
- Default route: Xác định tuyến mặc định.
- Direct và Indirect destination: Xác định đích đến kết nối trực tiếp hay không trực tiếp.
- Routing metric: RIP sử dụng làm đơn vị đo khoảng cách đến đích - Route Age: Xác nhận số giây kể từ khi mỗi tuyến đƣợc cập nhật.
b. Hoạt động của giao thức RIP:
Giao thức RIP có hai phiên bản: RIPv1 và RIPv2. Trong đó, RIPv1 hoạt động và khắc phục các sự cố định tuyến giống nhƣ giao thức định tuyến vector khoảng cách đã nêu trên. RIPv2 cung cấp thêm hoạt động xác minh thông tin gửi đi. Các bƣớc cơ bản là:
1. Số cost chi phí đƣợc gán vào các subnet, các mạng gắn trực tiếp vào router 2. Router gửi thông báo bảng định tuyến của nó đến các nút lân cận theo chu kỳ thời gian 30s.
3. Khi một router nhận đƣợc bảng định tuyến của nút lân cận, nó kiểm tra lại các danh mục vào. Chi phí đã gán cho các mạng trong quá trình cập nhật đƣợc đặt vào trong bảng định tuyến.
4. Nếu đích đến là mới, danh mục mới đƣợc thêm vào bảng định tuyến.
5. Nếu đích là danh mục đã có, nhƣng có thông tin định tuyến ngắn hơn, thì danh mục tuyến đã có đƣợc thay thế bằng tuyến mới. Nếu gói dữ liệu đến mạng đích có số đo lớn hơn 15 thì gói dữ liệu sẽ bị huỷ bỏ.
Khi có sự cố định tuyến xảy ra nhƣ: định tuyến lặp, hội tụ chậm….RIP giải quyết theo các cơ chế: Split horizon, reverse route, Trigged update, và holddown.
c. Cấu trúc gói dữ liệu của RIP:
RIP hoạt động dựa trên giao thức UDP. Các router sử dụng RIP xử lý thông tin định tuyến gửi và nhận các gói dữ liệu dựa trên cổng 520 của UDP, gọi là RIP- 1/RIP-2 port. Tất cả các thông báo cập nhật định tuyến đƣợc gửi và nhận trên các cổng này.
Khuôn dạng gói dữ liệu của RIPv1:
RIP Packet Format: Bao gồm 9 trƣờng, đƣợc mô tả nhƣ hình sau theo tài liệu RFC 1058 [5] 1-octet command field 1-octet version number field 2-octet zero field 2-octet AFI field 2-octet zero field 4-octet IP address field 4-octet Zero field 4-octet Zero field 4-octet Metric field
Mô tả về cấu trúc gói dữ liệu với các trƣờng thông tin
- Command: Chỉ định cho dù gói dữ liệu là request hay respone. Gói dữ liệu request hỏi rằng router đã gửi tất cả hay chỉ một phần của bảng định tuyến. Gói dữ liệu respone đƣợc gửi đi đều đặn bảng cập nhật định tuyến theo chu kỳ hoặc trả lời các yêu cầu. Các gói dữ liệu respone chứa các danh mục bảng định tuyến.
- Version Number: Xác định phiên bản của RIP.
- Zero: Không đƣợc sử dụng trong thực tế, chỉ dùng với các phiên bản chƣa chuẩn của RIP.
- AFI (Address-family identifier): Nhận dạng họ địa chỉ, chỉ định họ địa chỉ đƣợc dùng. Mỗi danh mục có một nhận dạng họ địa chỉ để để chỉ ra loại địa chỉ theo lý thuyết.
- Address: Xác định địa chỉ IP cho danh mục.
- Metric: Xác định số đo khoảng cách dựa trên các bƣớc truyền qua các mạng trung gian (các router) phải đi qua để gói dữ liệu đi đến đích . Giá trị này từ 1 đến 15 cho các tuyến hợp lệ, 16 cho các tuyến không hợp lệ không đến đƣợc đích.
Khuôn dạng gói dữ liệu của RIPv2: theo tài liệu RFC 2453 [6], tài liệu mô tả của tổ chức ITTF về giao thức RIPv2.
Khuôn dạng của gói dữ liệu trong RIP v2 có cấu trúc khác với gói dữ liệu của RIP v1 với một số cải tiến. Các trƣờng của gói dữ liệu bao gồm:
1-octet command field 1-octet version number field 2-octet unused field 2-octet AFI field 2-octet route flag field 4-octet network address field 4-octet Subnet mask field 4-octet next hop field 4-octet Metric field
- Trƣờng command (1-octet):Tƣơng tự nhƣ trƣờng Command của RIP v1. - Trƣờng version number (1-octet):Tƣơng tự RIP v1
- Trƣờng unused: Giá trị đặt là rỗng.
- Trƣờng AFI: Xác định họ địa chỉ đƣợc sử dụng.
- Trƣờng Route tag: Chỉ ra phƣơng thức phân biệt các tuyến khác nhau. Giữa các tuyến bên trong đƣợc nhận biết bởi RIP và các tuyến bên ngoài đƣợc nhận biết bởi các giao thức khác.
- IP address: Xác định địa chỉ IP cho mỗi danh mục.
- Subnet mask: Chứa subnet mask cho mỗi tuyến. Nếu giá trị của trƣờng này là rỗng, thì sẽ không có subnet mask nào đƣợc xác định cho danh mục này.
- Next hop: Chỉ định địa chỉ IP của bƣớc truyền kế tiếp cho các gói dữ liệu. - Metric: Tƣơng tự nhƣ trong RIPv1.
2.3. ĐỊNH TUYẾN THEO LINK -STATE:
2.3.1. Mô tả chung:
Giao thức định tuyến theo link-state hoạt động đối ngƣợc với giao thức định tuyến theo distance-vector. Một router khi cài đặt giao thức định tuyến link-state thu nhận thông tin về tất cả các router khác trong cùng một hệ thống mạng (hoặc trong cùng một vùng), tạo lập một cơ sở dữ liệu về toàn bộ kiến trúc mạng (topological database). Sau khi thu nhận đƣợc thông tin về đầy đủ các router lân cận, giao thức link-state sẽ xây dựng một cây hệ thống xác định đƣờng đi ngắn nhất đến tất cả các router trong mạng (hay vùng) với gốc là nút chính router đó theo thuật toán SPF, từ đó xác định đƣợc đƣờng đi ngắn nhất đến một nút đích.
Định tuyến theo distance-vector thì hạn chế một nút trên mạng chỉ nhận biết đƣợc các nút lân cận. Giao thức định tuyến theo link-state có nhiều ƣu điểm hơn so với giao thức định tuyến distance-vectơ nhƣ: Nhận biết tổng thể kiến trúc mạng, cập nhật thay đổi trong kiến trúc mạng nhanh hơn, giảm lƣu lƣợng đƣờng truyền…
Theo Ion Stoica [4 ], các node trong mạng (router) sẽ nhận biết về toàn bộ kiến trúc của liên mạng thông quá các đƣờng liên kết giữa các mạng, hình sau đây mô tả
Hình 2.12: trạng thái của mạng trong các router[4]
Giao thức OSPF đƣợc phát triển trên cơ sở định tuyến theo link-state. Giao thức định tuyến theo link-state có thể mô tả ngắn gọn nhƣ sau:
- Mỗi router tự xây dựng một cơ sở dữ liệu về các mạng kết nối vào các cổng giao diện interface của chính nó tạo ra bảng trạng thái liên kết.
- Mỗi router truyền thông báo về bảng trạng thái của nó đến tất cả các router trong cùng hệ thống vùng mạng hoặc trong cùng một hệ tự trị AS. Thông qua phƣơng thức làm tràn flooding. Các thông báo này đƣợc gọi là các thông báo LSA (Link State Advertisement)
- Quá trình Fooding hoàn tất khi tất cả các router trong mạng nhận đƣợc thông tin về toàn bộ kiến trúc mạng và lƣu trong cơ sở dữ liệu, thông tin này là hoàn toàn giống nhau trong mọi router.
- Các router duy trì mối liên kết với các nút lân cận của nó và sẽ cập nhật lại cơ sở dữ liệu định tuyến trong các trƣờng hợp sau đây:
Theo định kỳ với khoảng thời gian là 30 phút/ 1 lần.
Khi xảy ra sự thay đổi về kiến trúc mạng.Việc này làm giảm lƣu lƣợng thông tin trên các đƣờng truyền mạng.
- Mỗi router sau khi nhận biết đƣợc toàn bộ kiến trúc mạng thông qua cơ sở dữ liệu định tuyến, nó sẽ thực hiện tạo cây SPF với gốc là chính nó để tìm đƣờng đi
ngắn nhất đến các router khác. Bảng định tuyến để thực hiện chức năng định tuyến sẽ đƣợc xây dựng dựa trên cây này.
2.3.2. Giải thuật sử dụng trong định tuyến theo trạng thái đƣờng liên kết:
Để thuận lợi cho việc mô tả, mạng máy mính sẽ đƣợc mô hình hoá theo một đồ thị sau đây: B C A F D E 2 5 3 3 5 2 1 2 1 1 Hình 2.13: Mô phỏng các nút mạng bằng đồ thị. Trong đồ thị trên:
Các router sẽ đƣợc mô hình hoá là các nút đỉnh trên đồ thị.
Các liên kết đƣợc mô hình hoá nhƣ các cạnh của đồ thị.
Chi phí của các liên kết đƣợc mô hình hoá là các trọng số trên đồ thị.
Thuật toán Dijkstra đƣợc sử dụng trong việc tính toán các tuyến để xây dựng đƣờng đi tối ƣu. Thực hiện xây dựng, duy trì một cơ sở dữ liệu chi tiết về kiến trúc toàn bộ mạng máy tính.
a. Phát biểu bài toán:
- Cho đồ thị vô hướng G(V,E), V: tập đỉnh, E: tập cạnh với các trọng số..
- Yêu cầu tìm đường đi ngắn nhất từ đỉnh s bất kỳ, s V, đến đỉnh d bất kỳ, d V. Sao cho, chi phí là nhỏ nhất. hay tổng trọng số các cạnh trên đường đi là nhỏ nhất.
b. Tƣ tƣởng chính của giải thuật Dijkstra:
Xây dựng các đƣờng đi ngắt nhất xuất phát từ một nút gốc bất kỳ đến một nút đích xác định trong mạng:
- Bƣớc khởi đầu (bƣớc 0): Chọn nút khởi đầu là nút A nào đó. Gán nhãn cho nút này giá trị là 0, các nút khác gán nhãn với giá trị là ∞. Ký hiệu: L0(A) = 0 và L0(V) = ∞ cho tất cả các nút khác. Xác định độ dài từ A đến V, trong đƣờng đi bắt
- L: là ký hiệu xác định số đo khoảng cách từ một nút đến nút khác.