1. Trang chủ
  2. » Luận Văn - Báo Cáo

Do An Tot Ngghiep.docx

81 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giao thức định tuyến OSPF
Tác giả Lê Quảng Đào
Người hướng dẫn PTS. Nguyễn Thị Thu Hằng
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông
Chuyên ngành Công nghệ Điện tử và Truyền thông
Thể loại Đồ án
Năm xuất bản 2014
Thành phố Thái Nguyên
Định dạng
Số trang 81
Dung lượng 888,74 KB

Cấu trúc

  • CHƯƠNG 1: ĐỊA CHỈ IP VÀ CÁC GIAO THỨC TRONG ĐỊNH TUYẾN IP (11)
    • 1.1 Giao thức IP và địa chỉ IP (0)
      • 1.1.1 Giao thức IP (11)
      • 1.1.2 Địa chỉ IP (11)
    • 1.2 Định tuyến (13)
      • 1.2.1 Khái niệm định tuyến (13)
      • 1.2.2 Phân loại định tuyến (13)
      • 1.2.3 Các thuật toán định tuyến (14)
    • 1.3 Các giao thức định tuyến (17)
      • 1.3.1 Phân loại giao thức đinh tuyến (17)
      • 1.3.2 Một số giao thức định tuyến bên trong AS (0)
      • 1.3.3 Giao thức định tuyến ngoài BGP (26)
  • CHƯƠNG 2: GIAO THỨC ĐỊNH TUYẾN OSPF (29)
    • 2.1 Giới thiệu về giao thức định tuyến OSPF (0)
    • 2.2 Một số khái niệm sử dụng trong OSPF (0)
      • 2.2.1 Láng giềng (Neighbor) và mối quan hệ liền kề (Adjacency) (0)
      • 2.2.2 Giao thức Hello (30)
      • 2.2.4 Node mạng được đề cử (DR) và Node được đề cử dự phòng (BDR) (0)
      • 2.2.5 Bảng định tuyến (32)
      • 2.2.6 Các loại đường (32)
    • 2.3 Hoạt động của giao thức OSPF (33)
      • 2.3.1 Thuật toán SPF (33)
      • 2.3.2 Phương thức hoạt động của giao thức OSPF (35)
    • 2.4 Neighbor OSPF (37)
      • 2.4.1 Cấu trúc dữ liệu Neighbor (37)
      • 2.4.2 Các trạng thái Neighbor (39)
    • 2.5 Giao diện OSPF (42)
      • 2.5.2 Các trạng thái giao diện (44)
    • 2.6 Cấu trúc gói các gói tin OSPF (44)
      • 2.6.1 Cấu trúc chung các gói tin OSPF (44)
      • 2.6.2 Cấu trúc gói tin hello (45)
      • 2.6.3 Cấu trúc gói tin Database Description (46)
      • 2.6.4 Cấu trúc gói tin Linkstate Request (47)
      • 2.6.5 Cấu trúc gói tin Link State Update (48)
      • 2.6.6 Cấu trúc gói tin Link State Acknowledgment (49)
      • 2.6.7 Cấu trúc header LSA (50)
      • 2.6.8 Cấu trúc của Node LSA (51)
      • 2.6.9 Cấu trúc gói tin Network LSA (53)
      • 2.6.10 Cấu trúc gói tin Summary LSA (53)
      • 2.6.11 Cấu trúc gói tin AS external LSA (54)
      • 2.6.12 Cấu trúc trường OPTION (55)
    • 2.7 Tràn lụt (0)
      • 2.7.1 Tràn lụt tin cậy sử dụng xác nhận (0)
      • 2.7.2 Tràn lụt tin cậy sử dụng số trình tự, tổng kiểm tra, và tuổi (0)
    • 2.8 Vùng (Area) (58)
      • 2.8.1 Area có thể phân chia (59)
      • 2.8.2 Liên kết ảo (60)
  • CHƯƠNG 3: MÔ PHỎNG VÀ ĐÁNH GIÁ GIAO THỨC OSPF (61)
    • 3.1 Tổng quan về phần mềm mô phỏng NS2 (0)
      • 3.1.1 Giới thiệu về NS2 (61)
      • 3.1.2 Các phần mềm dùng kết hợp với NS2 (0)
      • 3.1.3 Một số công cụ hỗ trợ việc phân tích và hiển thị kết quả mô phỏng (0)
    • 3.2 Mô phỏng giao thức định tuyến OSPF bằng NS2 (67)
      • 3.2.1 Xây dựng kịch bản (67)
      • 3.2.2 Mô phỏng giao thức định tuyến OSPF (67)
  • TÀI LIỆU THAM KHẢO (81)
    • Hinh 3.14: Thông lượng gói tin gửi trong trường hợp 3 (0)

Nội dung

NHIỆM VỤ CỦA ĐỒ ÁN Đề tài tập trung Nghiên giao thức định tuyến OSPF, phương thức hoạt động, cấu trúc các gói tin và giao diện của giao thức định tuyến OSPF và mô phỏng thực tế hoạt động của giao[.]

ĐỊA CHỈ IP VÀ CÁC GIAO THỨC TRONG ĐỊNH TUYẾN IP

Định tuyến

1.2.1 Khái niệm định tuyến Định tuyến (Routing) là 1 quá trình mà Router (bộ định tuyến) hoặc thiết bị mạng khác thực thi hoặc sử dụng để chuyển một gói tin (Packet) từ một địa chỉ nguồn (Soucre) đến một địa chỉ đích (Destination) trong mạng Trong quá trình này Router phải dựa vào những thông tin định tuyến để đưa ra những quyết định nhằm chuyển gói tin đến những địa chỉ đích đã định trước.

1.2.2 Phân loại định tuyến Định tuyến tĩnh (Static Routing): Là một quá trình định tuyến mà để thực hiện phải cấu hình bằng tay từng địa chỉ đích cụ thể cho Router Định tuyến tĩnh có một vài ứng dụng hữu ích cho trường hợp chỉ có một vài kết nối đơn đến mạng Loại mạng này người ta gọi là mạng cụt Cấu hình định tuyến tĩnh cho mạng cụt giúp ta tránh được sự thất thoát băng thông dành cho thông tin cập nhật giữa các Node mạng. Định tuyến động (Dynamic routing): Là quá trình mà trong đó giao thức định tuyến tìm ra đường tốt nhất trong mạng và duy trì chúng Có rất nhiều cách để xây dựng nên bảng định tuyến một cách động Nhưng tất cả đều thực hiện theo quy tắc sau: Nó sẽ khám tất cả các tuyến đường đến đích có thể và thực hiện một số quy tắc được định trước để xác định ra đường tốt nhất đến đích Ưu điểm của dynamic routing là đơn giản trong việc cấu hình và tự động tìm ra những tuyến đường thay thế nếu như mạng thay đổi Nhược điểm của dynamic routing là yêu cầu xử lý của CPU của router cao hơn là static routing Tiêu tốn một phần băng thông trên mạng để xây dựng nên bảng định tuyến.

1.2.3 Các thuật toán định tuyến

1.2.3.1 Định tuyến Vector khoảng cách Định tuyến vector khoảng cách là một phương pháp định tuyến đơn giản, hiệu quả và được sử dụng trong nhiều giao thức định tuyến.

Vector khoảng cách được thiết kế để giảm tối đa sự liên lạc giữa các Node mạng cũng như lượng dữ liệu trong bảng định tuyến Bản chất của định tuyến vector khoảng cách là một Node không cần biết tất cả các đường đi đến một phân đoạn mạng, nó chỉ cần biết phải truyền một datagram được gán địa chỉ đến một phân đoạn mạng được tính bằng số lượng các Node mà datagram phải đi qua khi truyền từ phân đoạn mạng này đến phân đoạn mạng khác Node mạng sử dụng thuật toán khoảng cách để tối ưu hóa đường đi bằng cách giảm tối đa số lượng các Node mà datagram phải đi qua Tham số khoảng cách này chính là số chặng phải qua (hop count) Thuật toán vectơ khoảng cách cung cấp những thông tin không cụ thể về các mạng khoảng cách và không chứa các thông tin về các router khoảng cách.

Các Node mạng sử dụng giao thức định tuyến vectơ khoảng cách tìm hiểu cấu hình mạng từ việc cập nhật bảng định tuyến của các Node láng giềng Độ rộng băng tần được sử dụng cao vì phải thay đổi thường xuyên việc cập nhật thông tin định tuyến, và tốc độ hội tụ mạng chậm, điều này dẫn đến các quyết định định tuyến tồi.

1.2.3.2 Định tuyến theo trạng thái liên kết Định tuyến vector khoảng cách sẽ không còn phù hợp đối với một mạng lớn gồm nhiều Node mạng Khi đó mỗi Node mạng phải duy trì một mục trong bảng định tuyến cho mỗi đích, và các mục này đơn thuần chứa các giá trị vector và hop count.Node mạng cũng không thể tiết kiệm năng lực của mình khi đã biết nhiều về cấu trúc mạng Hơn nữa toàn bộ bảng giá trị khoảng cách và hop count phải được truyền giữa các Node cho dù hầu hết các thông tin này không thực sự cần thiết trao đổi giữa cácNode Định tuyến trạng thái liên kết khắc phục được các nhược điểm của định tuyến vector khoảng cách.

Bản chất của đinh tuyến trạng thái liên kết là mỗi Node mạng xây dựng bên trong nó một sơ đồ cấu trúc mạng Định kỳ, mỗi Node cũng gửi ra mạng những thông điệp trạng thái Những thông điệp này liệt kê những Node khác trên mạng kết nối trực tiếp với Node đang xét trạng thái của liên kết Các Node sử dụng bản tin trạng thái nhận được từ các Node khác để xây dựng sơ đồ mạng Khi một Node chuyển tiếp dữ liệu, nó sẽ chọn đường đi đến đích tốt nhất dựa trên những điều kiện hiện tại.

Các giao thức định tuyến trạng thái liên kết chứa đầy đủ thông tin đường đi, điều này cho phép mọi Node có một cái nhìn tổng thể về cấu hình mạng Việc cập nhật thường xuyên cho phép sử dụng băng tần hiệu quả và tốc độ hội tụ nhanh hơn. Những thay đổi trong trạng thái liên kết được gửi đến tất cả các Node trong mạng ngay khi có bất cứ một sự thay đổi nào.

Giao thức định tuyến trạng thái liên kết thu thập thông tin đường đi từ tất cả các Node khác trong một mạng hay trong một khu vực xác định của mạng Khi tất cả các thông tin được thu thập, mỗi một Node tính toán đường đi tốt nhất đến tất cả các đích trong mạng Vì mỗi một Node có một tổng quan mạng riêng, nên nó hầu như không truyền thông tin sai lệch được cung cấp bởi bất cứ Node láng giềng nào.

Mỗi một Node gửi quảng bá (multicast ) gói tin hello để giữ những thông tin về trạng thái của các Node láng giềng Mỗi một Node sử dụng các LSA để duy trì thông tin của tất cả các Node trong một vùng mạng Các gói tin hello chứa các thông tin về mạng đi cùng với Node Các LSA cung cấp các cập nhật về trạng thái của các liên kết trên các Node khác trong mạng.

 Giao thức định tuyến trạng thái liên kết có các đặc điểm sau:

- Sử dụng thông tin hello và các LSA nhận được từ các Node khác để xây dựng cơ sở dữ liệu về mạng.

- Sử dụng thuật toán SPF để tính toán các đường đi ngắn nhất tới các mạng.

- Lưu thông tin đường đi trong bảng định tuyến.

Giao thức định tuyến trạng thái liên kết được thiết kế để khắc phục những hạn chế của giao thức định tuyến vectơ khoảng cách Ví dụ, giao thức vectơ khoảng cách chỉ trao đổi thông tin cập nhật định tuyến với các láng giềng hiện thời trong khi giao thức định tuyến trạng thái liên kết trao đổi thông tin định tuyến trên một vùng mạng lớn hơn rất nhiều.

Khi một thất bại xảy ra trong mạng, ví dụ như không thể liên lạc với một Node láng giềng, giao thức trạng thái liên kết gửi tràn lụt gói tin LSA với một địa chỉ multicast đặc biệt trên toàn khu vực Quá trình này gửi thông tin ra tất cả các port, ngoại trừ port nhận thông tin Mỗi một Node mạng trong giao thức trạng thái liên kết lấy một bản sao của LSA và cập nhật trạng thái liên kết hoặc cơ sở dữ liệu cấu hình của mình Sau đó Node mạng chuyển tiếp LSA đến tất cả các Node láng giềng Các LSA khiến tất cả các Node trong khu vực phải tính toán lại đường đi Vì lý do này, nên số lượng các Node trạng thái liên kết trong một vùng có thể được giới hạn.

Cơ sở dữ liệu trạng thái liên kết được sử dụng để tính toán những đường đi tốt nhất qua mạng Các Node mạng trong giao thức trạng thái liên kết sử dụng thuật toán đường đi ngắn nhất Dijkstra dựa trên cơ sở dữ liệu trạng thái liên kết Thuật toán này xây dựng cây SPF trong đó các Node nội hạt là Node gốc Các đường dẫn tốt nhất sau đó sẽ được lựa chọn từ cây SPF và đưa vào bảng định tuyến.

Mỗi một Node xây dựng một cơ sở dữ liệu cấu hình từ LSA mà nó nhận được. Thuật toán SPF khi đó được sử dụng để tính toán khả năng tạo kết nối với các đích. Thông tin này được sử dụng để cập nhật bảng định tuyến Quá trình này có thể phát hiện ra những thay đổi trong cấu hình mạng do sự phát triển mạng hay những thất bại của các thành phần.

Giao thức trạng thái liên kết đòi hỏi nhiều thời gian sử lí trên mỗi Node mạng, nhưng giảm được sự tiêu thụ băng thông bởi vì mỗi Node không cần gửi toàn bộ bảng định tuyến của mình Hơn nữa, Node mạng cũng dễ dàng theo dõi lỗi trên mạng vì bản tin trạng thái từ một Node không thay đổi khi lan truyền trên mạng (ngược lại, đối với phương pháp vector khoảng cách, giá trị hop count tăng lên mỗi khi thông tin định tuyến đi qua một Node khác).

 Sau đây là một số những ưu điểm giao thức định tuyến trạng thái liên kết:

Các giao thức định tuyến

1.3.1 Phân loại giao thức đinh tuyến

Một liên mạng có thể lớn đến mức một giao thức định tuyến không thể xử lý công viêc cập nhật bảng định tuyến của tất cả các Node Vì lí do này, liên mạng được chia thành nhiều hệ thống tự trị (AS-Autonomous System).

Hệ thống tự trị là một nhóm các mạng và Node chịu một quyền lực quản trị chung Nó đôi khi cũng được gọi là vùng định tuyến (routing domain) Định tuyến bên trong một hệ thống tự trị được gọi là định tuyến trong Định tuyến giữa các hệ thống tự trị được gọi là định tuyến ngoài Mỗi hệ thống có thể chọn một giao thức định tuyến trong để thực hiện định tuyến bên trong hệ thống Tuy nhiên thường chỉ có một giao thức định tuyến ngoài được chọn để thực hiện định tuyến giữa các hệ thống tự trị.

 Các giao thức định tuyến bên trong AS:

- IGRP (Internet Gateway Routing Protocol).

- OSPF (Open Shortes Past First).

- IS-IS (Intermadiate System to Intermediate System).

 Các giao thức định tuyến bên ngoài AS:

Hình 1.3: Minh họa một hệ thống tự trị.

1.3.2 Một số giao thức định tuyến bên trong AS

1.3.2.1 Giao thức định tuyến RIP

RIP là giao thức định tuyến vector khoảng cách xuất hiện sớm nhất RIP được sử dụng rộng rãi do tính đơn giản và tiện dụng của nó.

Mỗi Node giữ một bảng định tuyến trong đó có mỗi mục cho mỗi mạng đích mà Node mạng biết Mục này gồm địa chỉ IP mạng đích, khoảng cách ngắn nhất để tới đích (tính theo số bươc nhảy) và bước tiếp theo

Khởi tạo bảng định tuyến

Khi một Node được thêm vào một mạng, lúc này bảng định tuyến chỉ chứa các mạng nối trực tiếp với Node và số bước nhảy, thường được khởi tạo là 1, trường bước nhảy tiếp theo bị bỏ trống.

Hình 1.4: Bảng định tuyến ban đầu trong một hệ thống tự trị nhỏ.

 Cập nhật bảng định tuyến

Mỗi bảng định tuyến được cập nhật dựa trên việc nhận các thông báo RIP trả lời, sử dụng giải thuật được trình bày ở trên.

Hình 1.5: Minh họa bảng định tuyến cuối cùng.

RIPv1 là một giao thức định tuyến theo vetor khoảng cách nên nó quảng bá theo địa chỉ 255.255.255.255 toàn bộ bảng định tuyến của nó cho các bộ định tuyến lân cận theo chu kỳ Chu kỳ cập nhật của RIP là 30 giây Thông thường số định tuyến của RIP là số lượng hop, giá trị tối đa là 15 hop nếu lớn hơn thì gói dữ liệu đó sẽ bị hủy bỏ Thời gian giữ chậm cho một tuyến là 180 giây nếu lớn hơn thì tuyến này coi như là hết hạn.

RIPv1 định tuyến theo lớp địa chỉ Khi bộ định tuyến RIP nhận thông tin từ một mạng nào đó từ một cổng, trong thông tin định tuyến này không có thông tin từ mặt nạ mạng con đi kèm Do đó bộ định tuyến sẽ lấy mặt nạ mạng con của cổng để áp dụng cho địa chỉ mạng mà nó nhận được từ cổng này Nếu mặt nạ mạng con này không phù hợp thì nó sẽ lấy mặt nạ mạng con mặc định theo địa chỉ áp dụng cho địa chỉ mạng mà nó nhận được:

- Địa chỉ lớp A có mặt nạ mạng con mặc định là 255.0.0.0.

- Địa chỉ lớp B có mặt nạ mạng con mặc định là 255.255.0.0.

- Địa chỉ lơp C có mặt nạ mạng con mặc định là 255.255.255 0.

RIPv1 sử dụng cơ chế cắt ngang để chống vòng lặp.

RIPv1 được sử dụng khá phổ biến vì tính đơn giản và tính tương thích của nó. RIPv1 có thể chia tải ra tối đa 6 đường có chi phí bằng nhau ( mặc định là 4 đường). Một số hạn chế của RIPv1:

- Không gửi thông tin subnet mask trong thông tin định tuyến.

- Không hỗ trợ xác minh thông tin nhận được.

- Không hỗ trợ VLSM và CIDR (Class Interdomain Routing).

RIPv2 là bản đươc phát triển từ RIPv1 nên nó có các đặc điểm như RIPv1.

Bản tin IP RIPv2 cho phép mang nhiều thông tin hơn ngoài các thông tin như trong bản tin IP RIPv1 ngoài ra nó còn cung cấp một cơ chế xác thực không được hỗ trợ bởi RIP.

Một sô đặc tính được bổ sung vào RIPv2.

- Sự nhận thực của dòng tin truyền dẫn.

- Hỗ trợ mặt nạ con.

- Địa chỉ IP bước kế tiếp.

- Bản tin đa hướng RIP-2.

Trong RIPv2, kiểu bản tin xác thực được thêm vào để bảo vệ bản tin thông báo. Tuy nhiên, không cần thêm các trường mới vào thông báo.

Ngoài ra RIPv2 còn hỗ trợ phát đa hướng so với RIPv1 RIPv1 sử dụng phát quảng bá để gửi các thông báo RIP tớ tất cả các bộ định tuyến lân cận Do đó, không chỉ các bộ định tuyến trên mạng nhận được thông báo mà mọi trạm trong mạng đều có thể nhận được Trong khi đó RIPv2 sử dụng địa chỉ đa hướng 224.0.0.9 để phát đa hướng các thông báo RIP tới các bộ định tuyến sử dụng giao thức RIP trên một mạng mà thôi.

1.3.2.2 Giao thức định tuyến IGRP

Mặc dù RIP là một giao thức định tuyến đơn giản, tuy vậy nó chỉ phù hợp với các mô hình mạng có cấu trúc đơn giản và ít biến động do RIP chưa giải quyết được những nhược điểm của giao thức vector khoảng cách IGRP cũng là một giao thức định tuyến vector khoảng cách IGRP sử dụng 24 bit metric để quyết định đường đi tốt nhất với giá trị lớn nhất là 254 trạm (giá trị mặc định là 100 trạm) IGRP truyền toàn bộ bảng định tuyến mỗi lần cập nhật, mặc định là 60 giây một lần.

Một ưu điểm nổi trội của IGRP so với RIP đó là việc tiết kiệm băng thông nhờ giảm bớt thông tin mạng giữa các Node mạng với nhau Thời gian cho mỗi chu kỳ cập nhật bảng định tuyến của IGRP lâu gấp 3 lần so với thời gian cập nhật bảng định tuyến của RIP và các gói tin liên lạc cũng hợp lý và ngắn gọn hơn Tuy nhiên khác với RIP là giao thức thực hiện được với các Router của bất kỳ nhà sản xuất nào thì IGRP là giao thức mang tính nội bộ khi chỉ ứng dụng được cho các sản phẩm của Cisco.

Mặc dù có nhiều ưu điểm vượt trội chỉ ra ở trên IGRP vẫn tồn tại nhiều đặc điểm hoạt động giống RIP Nó thuộc lớp giao thức định tuyến vec tơ khoảng cách và với đặc trưng của lớp thuật toán này các thực thể của bảng định tuyến sẽ được phát quảng bá đến tất cả cac Node láng giềng Cũng giống như RIP, IRGP phát quảng bá gói tin yêu cầu (request) ra tất cả các giao diện cho phép IGRP, đồng thời nó cũng làm nhiệm vụ giới hạn vùng mạng bằng cách kiểm tra địa chỉ các gói tin cập nhật xem nó có nằm trong vùng địa chỉ mạng sử dụng IGRP hay không Một thực thể cập nhật cùng với một giá trị metric sẽ được cập nhật vào bảng định tuyến, thực thể này chỉ trở thành thực thể của bảng định tuyến khi nó nhỏ hơn giá trị của metric cũ Khi đó tuyến đến cùng một địa chỉ đích cũ sẽ được thay đổi tại nút mạng này và đi theo tuyến cập nhật metric thấp Với trường hợp tất cả các cập nhật ở một chu kỳ đều có metric quá lớn điều này đồng nghĩa với việc là bị đứt liên lạc với máy đích khi đó bộ định thời sẽ được thiết lập và trong suốt quá trình định thời mà không có cập nhật mới về metric nào thì khi đó tuyến sẽ bị treo.

Việc truy cập và xử lý giao thưc đinh tuyến RIP được xử lý ở lớp UDP còn giao thức IGRP được xử lý và truy cập ở lớp IP của bộ giao thức TCP/IP.

IGRP cho phép thiết lập một vùng đa xử lý cùng với một môi trường IGP, cô lập các thông tin mạng với các vùng khác Lưu lượng giữa các vùng có thể truyền tải qua nhau thông qua việc tái phân bố hay các bộ lọc tuyến Các bộ lọc tuyến này hoạt động căn cứ vào địa chỉ trên các gói tin để từ đó đưa ra quyết định cho qua hay chặn lại.

Căn cứ vào cách lập bảng định tuyến của lớp giao thức IGRP chúng ta chia thành ba loại tuyến như sau: Tuyến nội vùng, tuyến hệ thống và tuyến ngoại vùng.

GIAO THỨC ĐỊNH TUYẾN OSPF

Hoạt động của giao thức OSPF

Trong định tuyến OSPF thuật toán SPF được sử dụng để tìm đường đi ngắn nhất. Trong cây SPF, Dijkstra đã định nghĩa ra ba loại nhánh: I, II và III Và trong Node mạng, sẽ có ba database đại diện cho tập ba loại nhánh đó, gồm có:

- Tree database: Đại diện cho nhánh loại I Những link (nhánh) nào được thêm vào cây SPF sẽ được thêm vào đây, khi thuật toán SPF hoàn tất, thì database này chính là toàn bộ cây SPF.

- Candidate database: Database này đại diện cho nhánh loại II các link được coppy từ link state database sang database này theo một trật tự nhất định Các link trong database này sẽ lần lượt được khảo sát để thêm vào cây SPF.

- Link state database chứa tất cả các link Đại diện cho loại nhánh III.

Ngoài ra Dijkstra cũng định nghĩa ra hai loại Node A và B Loại A bao gồm tất cả các Node nối với các link trong cây SPF Loại B, gồm tất cả các Node khác Khi thuật toán SPF kết thúc thì các Node loại B sẽ không còn.

Thuật toán SPF của dijkstra gồm các bước như sau:

- Bước 1: Chọn một Node làm gốc.

- Bước 2: Tất cả các link nối giữa Node gốc với neighbor của nó sẽ được đưa vào candidate database.

- Bước 3: Cost của mỗi link trong candidate database sẽ được tính toán Link nào có cost nhỏ nhất sẽ được thêm vào tree database Nếu như có hai link có cost nhỏ nhất bằng nhau thì sẽ chọn một.

- Bước 4: Node neighbor nối với đường link đó sẽ được kiểm tra Tất cả các đường link nối với Node đó sẽ được đưa vào candidate database Ngoại trừ đường link đã có trong tree database.

- Bước 5: Nếu vẫn còn giá trị trong candidate database thì thuật toán này sẽ quay lại bước ba để thực hiện tiếp Nếu không còn thì thuật toán dừng lại.

2.3.2 Phương thức hoạt động của giao thức OSPF

Hoạt động của OSPF gồm 5 bước như sau:

- Thiết lập quan hệ giữa các Node (adjacency).

- Bầu chọn DR hoặc DBR nếu cần thiết.

- Khám phá các tuyến đường.

- Chọn đường đi thích hợp.

- Duy trì thông tin định tuyến.

2.3.2.1 Thiết lập quan hệ giữa các Node (adjacency)

OSPF thiết lập quan hệ liền kề giữa các Node láng giềng nhằm mục đích trao đổi thông tin định tuyến Trong môi trường broadcast, không phải Node nào cũng có khả năng thiết lập quan hệ liền kề với tất cả Node khác Gói tin hello sẽ chịu trách nhiệm duy trì mối quan hệ này. Đầu tiên Node OSPF sẽ gửi gói tin hello đến địa chỉ multicast 224.0.0.5 Gói tin này sẽ định kỳ gửi đến tất cả các giao diện có hỗ trợ OSPF với khoảng thời gian gửi tùy thuộc vào từng loại giao diện Trong môi trường broadcast như ethernet hay point to point, thời gian này là 10 giây Trong môi trường nonbroadcast như frame relay hay ATM thì khoảng thời gian này là 30 giây.

Gói tin hello sẽ định kỳ gửi đi tất cả các giao diện OSPF của Node Khi Node mạng phát hiện thấy có Node láng giềng nhờ vào gói tin hello nhận được, truyền thông hai chiều sẽ được thiết lập Trong môi trường broadcast và NBMA, gói tin hello còn được sử dụng để chọn ra các Node chỉ định DR/DBR.

Sau khi thiết lập truyền thông hai chiều, sẽ thiết lập quan hệ liền kề việc ra quyết định thiết lập quan hệ liền kề dựa trên trang thái của Node láng giềng và loại network Nếu network là broadcast hay nonbroadcast quan hệ liền kề sẽ được thiết lập giữa các Node chỉ định DR/DBR Các trường hợp còn lại, quan hệ liền kề sẽ được thiết lập giữa các Node láng giềng. Để thiết lập quan hệ liền kề, đầu tiên Node mạng sẽ tiến hành đồng bộ hóa database bằng cách gửi các gói tin DBD mô tả database cho nhau Tiến trình này gọi là tiến trình trao đổi database Khi đó hai Node sẽ thiết lập quan hệ chủ/tớ Mỗi mô tả cơ sở dữ liệu được gửi đi bởi Node chủ chứa số tuần tự để đánh dấu gói tin Node tớ sẽ báo nhận gói tin bằng cách gửi gói tin chứa số tuần tự này để hồi đáp.

2.3.2.2 Bầu chọn DR và DBR

Cũng giống như bất kỳ sự lựa chọn khác, quá trình chọn DR/DBR có thể được điều chỉnh để thay đổi kết quả “Những lá phiếu” là những gói tin hello packet bao gồm trường ID và priority của Node Node với độ ưu tiên cao nhất sẽ được chọn và trở thành DR và Node với độ ưu tiên thứ hai sẽ được chọn làm BDR Khi DR và DBR đã được chọn nó sẽ giữ vai trò của mình đến khi nào một trong hai cái hư hỏng kể cả khi có các Node khác với độ ưu tiên cao hơn.

Mặc định, tất cả các Node OSPF có cùng độ ưu tiên là 1 Số ưu tiên được phân công cho bất kỳ interface nào từ 0 đến 255 Nếu hai Node có cùng độ ưu tiên thì sẽ chọn ID cao nhất Node có ID cao nhất có thể được điều khiển bằng cách cấu hình một địa chỉ trên giao diện loopback mặc dù đó không phải là cách tối ưu để chọn DR/DBR Giá trị priority được dùng vì mỗi giao diện có một địa chỉ duy nhất.

Trong giai đoạn đầu tiên trong tiến trình trao đổi, thiết lập trạng thái Extart Mục đích của Extart để thiết lập master/slave giữa hai Node Node thông báo ID cao nhất trong gói hello Node master sắp đặt việc trao đổi thông tin link state, trong khi slave Node phản hồi lại.

Node báo nhận được DBD bằng các gói LSAck Mỗi Node so sánh thông tin mà nó nhận được trong DBD với thông tin mà nó đã có Nếu DBD đưa ra một trạng thái liên kết mới hoặc up date, Node sẽ bắt đầu trạng thái loading Sau khi trạng thái loading hoàn thành các Node sẽ hoàn thành full adiacency và bắt đầu trạng thái full.

2.3.2.4 Chọn đường đi thích hợp

Sau khi Node có một link state database hoàn chỉnh, nó sẽ tạo bảng định tuyến để có thể chuyển tiếp traffic OSPF sử dụng metric được gọi là cost để xác định đường đi tối ưu đến đích Giá trị cost mặc định dựa vào bandwidth Tổng quát cost giảm khi bandwidth tăng. Để tính toán cost nhỏ đến đích, Node sẽ sử dụng thuật toán SPF Mỗi Node sử dụng thuật toán này để xác định đường đi tối ưu đến mỗi mạng và tạo SPF tree mà ở trên đó được đặt ở vị trí top hoặc root Nếu có nhiều metric bằng nhau đến một mạng từ xa OSPF tính tất cả các đường và đường cân bằng tải giữa chúng.

2.3.2.5 Duy trì thông tin định tuyến

Neighbor OSPF

2.4.1Cấu trúc dữ liệu Neighbor

Các thành phần của cấu trúc dữ liệu Neighbor là:

Neighbor ID: Là địa chỉ Node của Neighbor.

Neighbor IP address: Là địa chỉ IP của giao diện nối tới mạng của Neighbor.

Khi một gói OSPF được truyền unicast tới Neighbor, địa chỉ này sẽ là địa chỉ đích.

Area ID: Để hai Node trở thành các Neighbor của nhau, Area ID trong gói Hello nhận được phải phù hợp với Area ID của giao diện nhận.

Interface: Là giao diện gắn vào mạng chứa Neighbor.

Neighbor Priority: Là Router Priority của Neighbor được chỉ ra trong gói Hello.State: Là trạng thái chức năng của Neighbor sẽ được trình bày ở phần sau.

Poll Interval: Giá trị này chỉ sử dụng đối với các Neighbor trong mạng NBMA.

Vì các Neighbor không thể được tự động khám phá trong mạng NBMA nếu các Neighbor này ở trạng thái Down, do vậy gói Hello sẽ được gửi tới các Neighbor sau mỗi khoảng thời gian nhất định Khoảng thời gian này gọi là Poll Interval.

Neighbor Options: Là các khả năng OSPF tuỳ chọn được hỗ trợ bởi Neighbor.

Các tuỳ chọn này được trình bày ở phần sau.

Inactivity Timer: Là Timer có chu kỳ là Router Dead Interval Timer được reset khi nhận được gói Hello từ Neighbor Nếu Inactivity Timer hết hiệu lực mà chưa nhận được gói Hello, Neighbor sẽ được khai báo là Down.

Designated Router: Địa chỉ này chứa trong trường DR của gói Hello.

Backup Designated Router: Địa chỉ này chứa trong trường BDR của gói Hello. Master/Slave: Quan hệ chủ-tớ (được thoả thuận trong trạng thái Exstart) thiết lập

Neighbor nào sẽ điều khiển việc đồng bộ cơ sở dữ liệu.

DD Sequence Number: Là số trình tự của gói Database Description (DD) đang được gửi tới Neighbor.

Last Received Database Description Packet: Các bít Initialize, More, Master, các Option và số trình tự của gói DD nhận được cuối cùng được ghi trong cơ sở dữ liệu Neighbor Thông tin này dùng để xác định xem gói DD tiếp theo có phải là bản sao của gói trước.

Link State Retransmission List: Là danh sách các LSA đã được tràn lụt trên

Adjacency nhưng chưa được công nhận Các LSA sẽ được truyền lại sau khoảng thời gian RouterInterval cho đến khi chúng được công nhận hoặc Adjacency bị phá vỡ.

Database Summary List: Là danh sách các LSA được gửi tới Neighbor trong gói

DD trong quá trình đồng bộ cơ sở dữ liệu Các LSA tạo nên cơ sở dữ liệu trạng thái liên kết khi Router chuyển sang trạng thái Exchange.

Link State Request List: Là danh sách các LSA trong các gói DD của Neighbor

“mới” hơn các LSA trong cơ sở dữ liệu trạng thái liên kết Các gói yêu cầu trạng thái liên kết được gửi tới Neighbor yêu cầu các bản copy của các LSA này Khi nhận được các LSA yêu cầu trong các gói cập nhật trạng thái liên kết, danh sách yêu cầu trạng thái liên kết sẽ được rút dần cho đến hết.

Một Node sẽ chuyển Neighbor qua một số trạng thái trước khi Neighbor được coi là Full Adjacency Các trạng thái đó bao gồm: Down, Attemt, Init, 2-Way, Extart, Exchange, Loading, và Full.

Down: Là trạng thái đầu tiên của Neighbor khi cuộc hội thoại giữa Node đó và Neighbor của chúng chỉ ra rằng không có gói Hello nào được gửi từ Neighbor trong Router Dead Interval cuối cùng Các gói Hello không được gửi tới Neighbor bị Down trừ trường hợp các Neighbor này thuộc mạng NBMA Trong trường hợp này, các gói Hello được gửi theo chu kỳ Poll Interval Nếu Neighbor chuyển xuống trạng thái Down từ trạng thái cao hơn thì danh sách truyền lại trạng thái liên kết, mô tả cơ sở dữ liệu, và yêu cầu trạng thái liên kết bị xoá bỏ.

Attempt: Trạng thái này chỉ ứng dụng cho các Neighbor trong mạng NBMA, ở đây các Neighbor được cấu hình bằng tay Một Node (đủ khả năng để trở thành DR) sẽ chuyển một Neighbor sang trạng thái Attempt khi giao diện nối tới Neighbor được kích hoạt đầu tiên hoặc khi Node đó là DR hoặc BDR Một Node sẽ gửi các gói tới một Neighbor ở trạng thái Attempt theo chu kỳ HelloInterval thay vì PollInterval.

Init: Trạng thái này chỉ ra rằng đã nhận được gói Hello từ Neighbor trong Router

Dead Interval cuối cùng nhưng kết nối hai chiều chưa được thiết lập Node sẽ chứa địa chỉ Node của tất cả các Neighbor ở trạng thái này hoặc trạng thái cao hơn trong trường Neighbor của gói Hello.

2-Way: Trạng thái này chỉ ra rằng Node mạng đã “nhìn thấy“ địa chỉ Node của nó trong trường Neighbor của gói Hello mà Neighbor gửi tới Điều này có nghĩa là kết nối hai chiều đã được thiết lập Trong mạng đa truy nhập, Neighbor phải ở trạng thái này hoặc cao hơn để có thể được chọn là DR hoặc BDR Việc nhận một gói DD từ một Neighbor ở trạng thái Init sẽ chuyển Neighbor này sang trạng thái 2-Way.

ExStart: Ở trạng thái này, Node và các Neighbor của nó thiết lập quan hệ Master/

Slave và xác định số trình tự DD đầu tiên để chuẩn bị cho việc trao đổi các gói DD. Neighbor có địa chỉ giao diện cao nhất sẽ là Master.

Exchange: Node mạng gửi các gói DD mô tả toàn bộ cơ sở dữ liệu trạng thái liên kết của nó tới các Neighbor đang ở trạng thái Exchange Node cũng gửi các gói yêu cầu trạng thái liên kết tới các Neighbor ở trạng thái này để yêu cầu các LSA mới nhất.

Loading: Node mạng sẽ gửi các gói yêu cầu trạng thái liên kết tới các Neighbor ở trạng thái này để yêu cầu các LSA mới hơn đã được chỉ ra ở trạng thái Exchange nhưng chưa nhận được.

Full: Neighbor ở trạng thái này là Adjacent hoàn toàn và các Adjacency sẽ xuất hiện trong các Node LSA và Network LSA.

Hình 2.1: Sự chuyển đổi trạng thái từ Down sang Full.

Hình 2.2: Sự chuyển đổi trạng thái từ Init sang Full.

Bảng 2.1: Biến cố sự chuyển đổi từ trạng thái Init sang full.

IE1 Chỉ xảy ra đối với các Neighbor kết nối với mạng NBMA IE1 xảy ra bởi một trong các điều kiện sau:

1 Giao diện nối tới mạng NBMA được kích hoạt đầu tiên, và Neighbor đủ điều kiện tham gia bầu cử DR.

2 Router là DR hoặc BDR, và Neighbor không đủ điều kiện tham gia bầu cử để trở thành DR.

IE2 Một gói Hello hợp lệ được nhận từ Neighbor.

IE3 Neighbor không thể liên lạc được nữa.

IE4 Router nhận nhìn thấy Router ID của nó đầu tiên trong gói Hello của

Neighbor hoặc nhận được gói DD từ Neighbor.

IE5 Neighbor không thể thiết lập Adjacency.

IE6 Xảy ra bởi một trong các điều kiện sau:

1 Trạng thái Neighbor chuyển trước tiên sang trạng thái 2-way.

2 Trạng thái giao diện thay đổi.

IE7 Adjacency sẽ được hình thành với Neighbor này

IE8 Quan hệ chủ tớ được thiết lập và số trình tự DD được trao đổi.

IE9 Việc trao đổi các gói DD được hoàn thành.

IE10 Các khoản mục còn tồn tại trong danh sách yêu cầu trạng thái liên kết. IE11 Danh sách yêu cầu trạng thái liên kết rỗng.

IE12 Adjacency sẽ được phá vỡ và được reset lại

IE13 Nhận được một gói Hello từ Neighbor trong đó Router ID của Router nhận không có trong trường Neighbor.

IE14 Xảy ra khi trạng thai giao diện thay đổi.

IE15 Adjacency với Neighbor này sẽ tiếp tục tồn tại hay tiếp tục hình thành.

IE16 Adjacency với Neighbor này sẽ không tiếp tục tồn tại hay không tiếp tục hình thành.

Bảng 2.2: Sự chuyển đổi trạng thái từ Init sang Full.

DP1 Một Adjacency sẽ được thiết lập với Neighbor hay không? Một

Adjacency sẽ được hình thành nếu một trong các điều kiện sau xảy ra:

1 Loại mạng là Point to Point.

2 Loại mạng là Point to Multipoint.

3 Loại mạng là liên kết ảo.

4 Router là DR trong mạng của Neighbor.

5 Router là BDR trong mạng của Neighbor.

DP2 Danh sách yêu cầu trạng thái liên kết đối với Neighbor này rỗng không?

Giao diện OSPF

2 5.1 Cấu trúc dữ liệu giao diện

Các thành phần của cấu trúc số liệu giao diện bao gồm: Địa chỉ IP và mặt nạ: Là địa chỉ và mặt nạ được cấu hình cho giao diện.

Area ID: Là Area chứa giao diện.

Process ID: Dùng để phân biệt các tiến trình OSPF chạy trên một Node.

Noder ID: Dùng để nhận dạng Node.

Network type: Là loại của mạng nối với giao diện.

Cost: Là cost của các gói đi ra từ giao diện Cost là một Metric OSPF, được diễn tả bởi 16 bit nguyên không dấu có giá trị từ 1 đến 65535

Inf Trans Delay: Là số giây các LSA ra khỏi giao diện với tuổi bị tăng lên.

State: Là trạng thái chức năng của giao diện được trình bày ở phần sau.

Router Priority: 8 bit nguyên không dấu này có giá trị từ 0 đến 255 dùng để bầu cử DR và BDR.

DR: Là DR của mạng mà giao diện gắn vào DR này được ghi bởi Node ID của nó và địa chỉ của giao diện gắn vào mạng của DR.

BDR: Là BDR của mạng mà giao diện gắn vào BDR này được ghi bởi Node ID của nó và địa chỉ của giao diện gắn vào mạng của BDR.

Hello Interval: Là khoảng thời gian tính theo giây giữa các lần truyền các gói

Router Dead Interval: Là khoảng thời gian tính theo giây mà Node mạng

(Router) sẽ chờ để nghe các gói Hello từ một Neighbor trước khi nó coi rằng Neighbor này bị Down.

Wait Time: Là khoảng thời gian Node mạng sẽ chờ DR và BDR được quảng cáo trong gói tin Hello trước khi bắt đầu lựa chọn DR và BDR Chu kì Wait Time bằng Router Dead Interval.

Rxm Interval: Là khoảng thời gian tính theo giây Node mạng sẽ chờ giữa các lần truyền lại của các gói OSPF chưa được xác nhận.

Hello Timer: Là bộ định thời được lập bằng Hello Interval Khi nó hết hiệu lực, gói Hello được truyền lại từ giao diện.

Neighboring Routers: Danh sách tất cả các Neighbor hợp lệ.

Autype: Mô tả loại nhận thực sử dụng trong mạng Autype có thể là Null (không nhận thực), Simple Password, hoặc Cryptographic (Mesage digest).

Authentication Key: Nếu chế độ nhận thực là Simple password, Au key là 64 bit.

Nếu ở chế độ nhận thực là Cryptographic và Au key là Message digest Chế độCryptographic cho phép cấu hình nhiều khoá trên một giao diện.

2.5.2 Các trạng thái giao diện

Một giao diện OSPF sẽ chuyển đổi qua một số trạng thái khác nhau trước khi nó đủ khả năng làm việc Các trạng thái đó bao gồm: Down, Point to Point.

Down: Đây là trạng thái giao diện đầu tiên Ở trạng thái này giao diện không làm việc Tất cả các tham số của giao diện được lập bằng giá trị ban đầu và không có lưu lượng được truyền hoặc nhận trên giao diện.

Point to Point: Trạng thái này chỉ thích hợp với các giao diện kết nối tới các mạng Point to Point, Point to Multipoint và Virtual Link Khi giao diện ở trạng thái này, nó đã đủ khả năng làm việc Nó sẽ bắt đầu gửi các gói Hello và thiết lập Adjacency với Neighbor.

Waiting: Trạng thái này chỉ thích hợp với các giao diện nối tới các mạng

Broadcast và NBMA Khi chuyển sang trạng thái này, nó bắt đầu gửi và nhận các gói Hello và lập Wait timer Router sẽ cố gắng xác định DR và BDR trong trạng thái này.

DR: Ở trạng thái này, Node là DR và sẽ thiết lập Adjacency với các Node khác trong mạng đa truy nhập.

Backup: Khi Ở trạng thái này, Node là BDR sẽ thiết lập Adjacency với các

DRother: Ở trạng thái này, Node không là DR hay BDR Nó sẽ thiết lập

Adjacency với chỉ DR và BDR trong khi vẫn theo dõi các Neighbor khác trong mạng.

Loopback: Ở trạng thái này, giao diện được loopback bằng phần mềm hoặc phần cứng Mặc dù các gói không thể truyền, địa chỉ giao diện vẫn được quảng cáo trongNode LSA để các gói kiểm tra có thể tìm đường tới giao diện Waiting, DR, Backup,DRother, và loopback.

Cấu trúc gói các gói tin OSPF

2.6.1 Cấu trúc chung các gói tin OSPF

Các gói tin trong giao thức OSPF luôn được bắt đầu bằng một header 24 byte cấu trúc của gói tin như sau:

1 byte 1 2 byte 4 byte 4 byte 2 byte 2 byte 8 byte Variabl

Hình 2.3: Cấu trúc gói tin OSPF.

Version number: Xác định version của giao thức định tuyến OSPF sử dụng. Tye: Xác định loại của gói tin OSPF có năm loại như sau: Hello, link staste request, link staste update, link staste acknaledgment, database descripption.

Packet length: Xác định chiểu dài của gói tin, bao gồm luôn cả header và được tính bằng byte.

Node ID: Xác định nguồn của gói tin.

Ara ID: Xác định Area của gói tin.

Check sum: Kiểm tra xem nội dung của gói tin có bị lỗi hay không trong quá trình truyền.

Authentication Type: Chứa loại chứng thực Trong giao thức OSPF mọi quá trình trao đổi thông tin đều được chứng thực Loại chứng thực này có thể cấu hình được và có thể cấu hình theo từng loại Area.

Authentication: Chứa các thông tin cho quá trình chứng thực.

2.6.2 Cấu trúc gói tin hello

Các Node muốn thiết lập quan hệ neighbor với nhau phải có cùng tham số như Network Mask, HelloInterval, RouterDearInterval chứa trong gói tin hello.

Network Mask: Mặt nạ địa chỉ IP của giao diện.

Options: Những tùy chọn mà Node mạng này hỗ trợ.

HelloInterval: Khoảng thời gian giữa các gói tin hello.

Rtr Pri: Router Priority trường này chỉ được sử dụng khi tiến hành bầu cử

Designated Router và Backup Designated Router Nếu trường này được set bằng 0 thì Router sẽ không tham gia quá trình “bầu cử”.

RouterDearInterval: Xác định khoảng thời gian để xác nhận một Node bị down Designated Router: Địa chỉ của Backup Designated Router trong mạng Nếu mạng không có Designated Router thì trường này sẽ có giá trị là 0.0.0.0.

Backup Designated Router: Địa chỉ của Back Designated Router Trường này cũng có giá trị là 0.0.0.0 nếu như trong mạng không có BDR.

Hình 2.4: Cấu trúc gói tin hello.

2.6.3 Cấu trúc gói tin Database Description

Các gói tin này được các Node trao đổi với nhau ở đầu quá trình thiết lập quan hệ liền kề và được sử dụng để mô tả link state database Việc mô tả link state database được thực hiện bằng nhiều gói tin Database Description thông qua một quá trình gọi là poll-respone Quá trình poll-respone như sau: Sẽ có một Node đóng vai trò là chủ và Node còn lại đóng vai trò là tớ Node chủ sẽ gửi một gói tin Database Description (poll) và sẽ được Node tớ trả lời bằng một gói tin Database Description (respone).

Cấu trúc của gói tin Database Description như sau:

Hình 2.5: Cấu trúc gói tin Databse Desciption.

Interface MTU: Xác định số lượng byte lớn nhất một gói có thể được gửi qua giao diện mà không bị chia nhỏ Đối với virtual link, trường này thường có giá trị là 0.

Options: Những tùy chọn mà Node mạng hỗ trợ.

I bit: Innit bit khi bit này được set lên 1 có nghĩa là gói tin này là gói tin đầu tiên.

M bit: More bit, khi bit này được set lên 1 có nghĩa là còn những gói tin tiếp theo gói tin này.

MS bit : Master/slave bit, bit này được set lên 1 khi Node này là master trong quá trình trao đổi Database, ngược lại bit này sẽ bằng 0.

DD Senquence Number: Giá tri này sẽ tăng tuần tự cho đến khi hết quá trình mô tả database.

2.6.4 Cấu trúc gói tin Linkstate Request

Sau khi kết thúc quá trình trao đổi các gói tin Database Description với neighbor, Node mạng nhận thấy một số phần trong linkstate database của nó bị lỗi thời, Node sẽ gửi gói tin Linkstate Request cho neighbor để yêu cầu cập nhật những database đó.

Khi gửi gói tin Linkstate Request, Node có thể nhận lại được nhiều phần cập nhật từ các neighbor Mỗi phần này được xác định bởi LS sequence number, LS checksum, LS age Do đó Node mạng có thể biết được thành phần nào nó cần và sẽ sử dụng để cập nhật.

Cấu trúc gói tin linkstate request như sau:

Hình 2.6: Cấu trúc gói tin Linkstate Request.

Gói tin Linkstate Request đươc gửi đến neighbor để yêu cầu các Node mạng này gửi lại phần database cập nhật mới nhất.

2.6.5 Cấu trúc gói tin Link State Update

Mỗi gói Link State Update chứa nhiều LSA và thực hiện flood ra mạng Để đảm bảo cho quá trình flood, mỗi LSA được flood sẽ được chứng thực trong gói tin Link State Acknowledgment Nếu có yêu cầu gửi lại từ một neighbor thì LSA sẽ được gửi trực tiếp đến neightbor đó

Trường # LSAs: Xác định số lượng gói tin LSA trong lần update này Trong gói tin Link State Update chứa các LSA, mỗi gói LSA bắt đầu bằng một LSA header gồm 20 byte.

Cấu trúc gói tin Link State Update như sau:

Hình 2.7: Cấu trúc gói tin Link State Update.

2.6.6 Cấu trúc gói tin Link State Acknowledgment Để đảm bảo cho quá trình flood các LSA, mỗi LSA được flood ra sẽ được chứng nhận bằng gói tin Link State Acknowledgment Nhiều LSA có thể được chứng nhận trong một gói tin Link State Acknowledgment.

Cấu trúc của gói tin Link State Acknowledgment như sau:

Hình 2.8: Cấu trúc gói tin của Link State Acknowledgment.

Mỗi LSA được mô tả bởi LSA header của nó

Hình 2.9: Cấu trúc header LSA. Ý nghĩa của các vùng như sau:

LS Age: Thời gian tồn tại của gói LSA từ khi được tạo ra được tính bằng giây giá trị của vùng này là một số nguyên 16 bit Khi một gói LSA được tạo ra giá trị này được thiết lập bằng 0 Giá trị này sẽ được tăng thêm một lượng bằng với thời gian Inftransdelay khi qua một Node và thời gian gói LSA đó được giữ tại Node Giá trị này cũng không vượt quá giá trị của MaxAge Khi một gói LSA có LS age bằng với MaxAge thì nó sẽ bị loại bỏ khỏi database Các Node xét đến vùng này khi hai gói LSA có cùng LS sequence number và LS Checksum Gói LSA nào có giá trị này khác so với MaxAgeDiff nhưng nó nhỏ hơn thì sẽ được xem như là mới hơn và sẽ được cập nhật Còn trường hợp gói LSA nào có giá trị này bằng với MaxAge thì sẽ được cập nhật ngay lập tức.

Option: Các tính chất tùy chọn Giúp các Node chỉ gửi traffic đến nhữn Node có cùng chức năng.

LS Type: Xác định dạng và chức năng của gói LSA.

Link State ID: Góp phần xác định vùng Node.

Bảng 2.3: Sự phụ thuộc của Link State ID vào LS type.

LS Type Link State ID

1 Router ID của Router tạo ra gói LSA

2 Địa chỉ IP của Interface Designated Router

3 Địa chỉ của mạng đích đến

5 Địa chỉ của mạng đích đến Đối với LSA loại 3 và loại 5 sẽ có thêm một hoặc một vài host bit của mạng đích đến được set Ví dụ, một gói LSA loại 5 được gửi đến mạng 10.0.0.0 thì link state ID của gói LSA sẽ nằm trong khoảng 10.0.0.0 đến 10.255.255.255 Việc này giúp cho Node mạng có thể tạo ra các gói LSA khác nhau đến các mạng có cùng địa chỉ nhưng khác subnet mask.

Khi gói LSA một mạng loại 2,3 và 5 chúng ta có thể biết được địa chỉ IP của mạng đó bằng cách dựa vào link state ID và subnet/network mask chứa trong gói LSA Khi gói LSA mô tả Node thì link state ID luôn là Node ID của Node đó Khi gói LSA loại 5, 6 mô tả một defoult Node thì link state ID của nó sẽ có giá tri là 0.0.0.0.

Advertissing Node: Chứa Node ID của Node tạo ra gói LSA Với gói LSA loại 1 router, vùng này giống với link state ID Với LSA loại 2 (network LSA) giá trị của vùng là mạng của Designated router Với LSA loại 3 và 4 ( Summary LSA) là ABR. LSA loại 5 là ASBR.

LS sequence number: Giá trị của vùng này là một số 32 bit tăng tuyến tính được sử dụng để phân biệt các gói LSA cũ và trùng nhau Gói LSA có giá trị sequence number càng lớn thì càng mới.

Vùng (Area)

Khi mạng phát triển, cơ sở dữ liệu của mạng tăng theo dẫn đến phải tăng dung lượng bộ nhớ Router Để giải quyết vấn đề này, người ta sử dụng giải thuật SPF. Nhưng điều này lại tăng gánh nặng sử lí cho CPU.

Lợi ích của việc sử dụng Area: OSPF sử dụng các Area để giảm các ảnh hưởng bất lợi trên OSPF định nghĩa Area là một nhóm logic các Node và các liên kết giúp phân chia hiệu quả một miền OSPF thành các miền con Các Node mạng trong một Area sẽ không biết chi tiết cấu hình bên ngoài Area của nó Do vậy:

- Một Node mạng sẽ chỉ phải chia sẻ cơ sở dữ liệu trạng thái liên kết với các Node khác trong Area của nó Việc giảm kích thước của cơ sở dữ liệu sẽ làm giảm sự va chạm trong bộ nhớ của Router.

- Cơ sở dữ liệu nhỏ hơn dẫn đến các LSA phải xử lí ít hơn và làm giảm sự va chạm trong CPU của Router.

- Các quá trình tràn lụt gói được giới hạn trong Area.

Area ID: Area được nhận dạng bởi 32 bit Area ID Area ID có thể được viết dưới dạng số thập phân hoặc số thập phân được ngăn cách bởi các dấu chấm (ví dụ như 0 và 0.0.0.0 là tương đương, hoặc16 và 0.0.0.16; 271 và 0.0.1.15 là tương đương).

Backbone: Area ID 0 được sử dụng cho mạng Backbone Mạng Backbone là mạng chịu trách nhiệm thông báo các thông tin về cấu hình tổng quát của mỗi Area cho các Area khác.

Hình 2.16: Sự phân chia Area.

2.8.1 Area có thể phân chia

Area có thể phân chia: là Area trong đó một lỗi liên kết sẽ phân chia Area thành hai phần tách biệt nhau Nếu một Area (không phải là Backbone) bị phân chia, và tất cả các Router ở hai bên phân chia vẫn có thể nhìn thấy ABR thì sẽ không có sự phá vỡ nào xảy ra Backbone sẽ xem các Area phân chia như là hai Area tách biệt.

Khi Area Backbone được phân chia, nó sẽ tạo ra các Area tách biệt và tạo ra hai miền OSPF tách biệt nhau

Liên kết ảo là một liên kết nối tới Backbone thông qua một Area khác (không phải là Backbone) Liên kết ảo sử dụng cho các mục đích sau:

- Liên kết một Area tới một Backbone thông qua một Area khác (không phải là Backbone)

- Kết nối hai phần của Backbone bị phân chia thông qua một Area (không phải là Backbone)

Liên kết ảo không gắn với một liên kết vật lí đặc biệt nào Nó là một đường hầm mà thông qua nó, các gói được định tuyến trên đường đi ngắn nhất từ nguồn đến đích

Vùng chứa đường liên kết ảo gọi là vùng chuyển tiếp. Để có đường liên kết ảo cần phải có:

- Một đường liên kết giữa hai Node mạng của một vùng.

- Một trong hai Node phải có một Node kết nối trực tiếp vào vùng Backbone.

MÔ PHỎNG VÀ ĐÁNH GIÁ GIAO THỨC OSPF

Mô phỏng giao thức định tuyến OSPF bằng NS2

Kịch bản mô phỏng trong thời gian là 1.1997 giây Mô hình được thiết lập với 9 Node các liên kết là Duplex link (liên kết truyền nhận dữ liệu diễn ra đồng thời) các Node sử dụng hàng đợi droptail Nguồn phát sử dụng giao thức TCP chạy dịch vụ FPT Trong kịch bản mô phỏng thực hiện truyền gói tin từ Node 0 đến Node 7 lựa chọn các con đường khác nhau Các kịch bản mô phỏng được thực hiện lặp lại nhiều lần với mục đích xác thực độ tin cậy của kết quả Mô phỏng gồm 3 trường hợp để tăng độ chính xác và khách quan khi đánh giá giao thức Các trường hợp sẽ thay một số thông số như: Chi phí (cost), băng thông, độ trễ để đánh giá khả năng và cách thức định tuyến của giao thức OSPF Môi trường sử dụng mô phỏng giao thức trên là công cụ NS-2, phiên bản allinone 2.34, chạy trên hệ điều hành UNIX.

Hình 3.3: Kịch bản mô phỏng.

3.2.2 Mô phỏng giao thức định tuyến OSPF

Các thông số kịch bản được cho như trong bảng sau:

Bảng 3.1: Các thông số sử dụng trong mô phỏng trường hợp 1.

Link Băng thông Độ trễ Cost

Sau khi chạy chương trình ta được kết quả sau:

Hình 3.4: Node Nguồn thực hiện truyền gói tin

Trong mô phỏng gói tin truyền từ node 0 đến node 7 Trong thuật toán OSPF là một giao thức trạng thái liên kết Giao thức trạng thái liên kết sử dụng thông số chi phí để lựa chọn đường dẫn qua mạng Trong mô phỏng này tổng chi phí từ node 0 đến node 7 là qua link n2-n3 và qua n3-n4 là 10, chi phí qua link n2-n4 là 12, nên gói tin đi qua đường n0-n2-n3-n4-n7. Đến giây 0,93 các gói tin bắt đầu rơi.

Hình 3.5: Các gói tin bắt đầu rơi trong trường hợp 1.

Hàng đợi droptail hoạt động theo nguyên tắc FIFO, gói tin vào trước được phục vụ trước nếu các gói tin đến khi hàng đợi đã đầy thì gói tin đó sẽ bị loại bỏ tại giây thứ 0,93 do lượng gói tin gửi qua mạng tăng cao nên hàng đợi bị tràn nên gói tin bị rơi nhưng số lượng gói tin bị rơi không nhiều

Dùng tracegraph chạy file ospf.res ta được kết quả sau:

Bảng 3.2: Thống kê thông tin mô phỏng trong trường hợp 1.

Number of sent Minimal Packet 402

Number of forwarded Minimal Packet 374

Number of sent Minimal bytes 135840

Number of forwarded Minimal bytes 223460

- Thời gian mô phỏng : 1.1997 giây.

- Số gói tin truyền đi là: 402 gói tin.

- Số gói tin truyền thành công là: 374 gói tin.

- Số gói tin bị mất là: 28 gói tin.

- Độ trễ trung bình là : 0,150982432 giây.

Tỉ lệ truyền thành công gói tin

Tỷ lệ chuyển tiếp gói tin thể hiện phần trăm số lượng gói tin nhận được ở nút đích so với số gói tin truyền đi ở nút nguồn Tỷ lệ này dùng để đánh giá khả năng hoạt động của mạng, thể hiện mức độ tin cậy của kênh truyền trên mạng Tỉ lệ truyền thành công gói tin càng cao thì hiệu quả của kênh truyền càng lớn.

Tỉ lệ truyền thành công gói tin=Số gói tin truyền thành công/tổng số gói tin.

Tỉ lệ truyền thành công gói tin 74/402%

Thông lượng gói tin gửi

Hình 3.6: Thông lượng gói tin gửi trong trường hợp 1.

Có thể hiểu thông thượng là lượng dữ liệu được gửi qua một liên kết, đường truyền trong 1 đơn vị thời gian Ban đầu thông lượng các gói tin truyền đi tăng dần trong khoảng thời gian từ 0 đến 1 giây Do số lượng gói tin bị rơi ít nên thông lượng ổn định cho đến giây thứ 1 Sau đó giảm dần do kết thúc thời gian truyền gói tin.

Thông lượng gói tin nhận

Hình 3.7: Thông lượng gói tin nhận trong trường hợp 1.

Trong khoảng từ giây 0 đến giây 0,9 biểu đồ thông lượng các gói tin nhận giống với biểu đồ thông lượng của các gói tin gửi Nhưng đến giây thứ 0,9 trở đi số lượng gói tin nhận thấp hơn với số lượng các gói tin gửi do lúc này bắt đầu quá trình rơi gói tin trên đường truyền Nhưng số lượng gói tin rơi không nhiều nên độ chênh lệch này cũng không đáng kể Đến giây thứ 1 số lượng các gói tin nhận giảm do lúc này kết thúc quá trình truyền gói tin số lượng các gói tin gửi đi giảm nên số lượng các gói tin nhận được cũng bị giảm.

Thông lượng gói tin bị rơi

Hình 3.8: Thông lượng các gói tin bị rơi trong trường hợp 1.

Trong khoảng thời gian từ giây thứ 0 đến giây thứ 9 không có gói tin nào bị rơi. Trong mô phỏng ta sử dụng loại hàng đợi Drotail, là hàng đợi loại bỏ những gói tin đến sau khi hàng đợi đã đầy Từ ngoài giây thứ 9 trở đi số lượng gói tin bị rơi tăng dần do số lượng gói tin gửi lúc này tăng cao hàng đợi bị tràn, các gói tin đến sau bị loại khỏi hàng đợi Đây là một trong những nguyên nhân gây mất mát gói tin.

Ta thay đổi một số thông số về giá và thông lượng của liên kết như bảng sau:

Bảng 3.3: Các thông số sử dụng trong mô phỏng trường hợp 2

Link Băng thông Độ trễ Cost

Sau khi chạy file mô phỏng ta được kết quả sau:

Hình 3.9: Gói tin truyền trong mạng trong trường hợp 2.

Trong trường hợp này tổng chi phí trong liên kết n0-n2-n4-n7 là 8 nhỏ hơn so với chi phí liên kết n0-n2-n3-n4-n7 là 10 Nên lúc này gói tin sẽ không đi theo đường như trường hợp 1 mà truyền theo liên kết n0-n2-n4-n7.

Dùng trace graph chạy file ospf3.res ta được kết quả sau:

Bảng 3.4: Thống kê thông tin mô phỏng trong trường hợp 2.

Number of sent Minimal Packet 648

Number of forwarded Minimal Packet 576

Number of sent Minimal bytes 261800

Number of forwarded Minimal bytes 248820

- Thời gian mô phỏng là : 1.1996

- Số gói tin truyền đi là: 648 gói tin.

- Số gói tin truyền thành công là: 576 gói tin.

- Số gói tin bị mất là: 25 gói tin.

- Tỉ lệ truyền thành công gói tin là : 90%

- Độ trễ trung bình là : 0,0142967576 giây

Trong trường hợp 2 tỉ lệ truyền thành công gói tin nhỏ hơn trong trường hợp 1 do số lượng gói tin truyền đi nhiều trong khi thời gian mô phỏng không đổi nên một số gói tin chưa đến được đích khi kết thúc thời gian mô phỏng Tuy nhiên tỉ lệ truyền thành công gói tin vẫn lớn.

Thông lượng gói tin gửi

Hình 3.10: Thông lượng gói tin gửi trong trường hợp 2. Đồ thị thông lượng gói tin gửi trong trường hợp 2 cũng giống như trường hợp 1. Ban đầu thông lương các gói tin truyền đi tăng dần trong khoảng thời gian từ 0 đến 1 giây Đến giây thứ 1 thông lượng gói tin gửi trên mạng vào khoảng 390 gói tin/giây

Do số lượng gói tin bị rơi ít nên thông lượng ổn định cho đến giây thứ 1 Sau đó giảm dần do kết thúc thời gian truyền gói tin.

Thông lượng gói tin nhận

Hình 3.11: Thông lượng gói tin nhận trong trường hợp 2. Đồ thị biểu diễn thông lượng gói tin nhận gần giống với đồ thị biểu diễn gói tin gửi nhưng do sự mất mát gói tin do bị rơi và do trễ truyền nên thông lượng gói tin nhận được thấp hơn so với thông lượng gói tin truyền đi.

Thông lượng gói tin bị rơi

Hình 3.12: Thông lượng gói tin bị rơi trong trường hợp 2.

Gói tin bắt đầu bị rơi từ giây thứ 0,9 Sau đó số lượng gói tin rơi tăng dần cho tới giây thứ 1 Số lượng gói tin rơi thấp hơn so với trường hợp 1 do không xảy ra hiện tượng BottleNeck (thắt cổ chai) trên đường truyền nên số lượng gói tin bị tràn trên hàng đợi nhỏ hơn so với trường hợp 1.

Ta thay đổi một số thông số về giá và thông lượng của liên kết như bảng sau:

Bảng 3.5: Các thông số sử dụng trong mô phỏng trường hợp 3.

Link Băng thông Độ trễ Cost

Sau khi chay file mô phỏng ta được kết quả sau :

Hình 3.13: Gói tin truyền trong mạng trong trường hợp 3.

Trong trường hợp này liên kết n0-n2-n3-n4-n7 có giá bằng với liên kết n0-n2-n4- n7 và đều có giá bằng 10 nên gói tin truyền theo cơ chế cân bằng tải, tức là gói tin được truyền theo cả hai đường có cost bằng nhau để tận dụng băng thông

Dùng tracegraph để phân tích kết quả ta được kết quả sau :

Bảng 3.6: Thống kê thông tin mô phỏng trong trường hợp 3.

Number of sent Minimal Packet 465

Number of forwarded Minimal Packet 427

Number of sent Minimal bytes 161400

Number of forwarded Minimal bytes 221700

- Thời gian mô phỏng trong thời gian 1.1974 giây

- Số gói tin truyền đi là: 465 gói tin.

- Số gói tin truyền thành công là: 427 gói tin.

- Số gói tin bị mất là: 9 gói tin.

- Tỉ lệ truyền thành công gói tin là : 92%

- Độ trễ trung bình là: 0,015568 giây

Trong trường hợp này tỉ lệ truyền thành công lớn hơn của trường hợp 2 là do truyền theo cơ chế cân bằng tải, nên tận dụng tốt băng thông hơn trường hợp 2 Tuy nhiên tỉ lệ truyền thành công vẫn thấp hơn trường hợp 1 là do trễ trung bình đường truyền được thiết lập vẫn lớn hơn trường hợp 1.

Thông lượng gói tin gửi :

Hinh 3.14: Thông lượng gói tin gửi trong trường hợp 3.

Ban đầu thông lương các gói tin truyền đi tăng dần trong khoảng thời gian từ 0 đến 1 giây Do số lượng gói tin bị rơi ít nên thông lượng ổn định cho đến giây thứ 1. Đến giây thứ 1 thông lượng gói tin vào khoảng 320 gói tin/giây Sau đó giảm dần do kết thúc thời gian truyền gói tin.

Thông lượng gói tin nhận

Ngày đăng: 28/03/2023, 10:46

w