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

thuật toán dijkstra và và giải thuật link state

28 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thuật toán Dijkstra và giải thuật Link-State
Chuyên ngành Mạng máy tính
Thể loại Bài luận
Định dạng
Số trang 28
Dung lượng 4,05 MB

Nội dung

Lời nói đầuGiải thuật định tuyến tầng mạng là một khía cạnh quan trọng trong lĩnh vực mạng máy tính, giúp xác định và điều phối các tuyến đường mạng cho việc truyền tải dữ liệu hiệu quả.

Trang 2

Mục lục

Lời nói đầu 3

I Giới thiệu tổng quan 4

1 Định tuyến là gì? 5

2 Có những loại định tuyến nào? 6

3 7 giao thức định tuyến phổ biến 9

II Thuật toán Dijkstra và và giải thuật Link-State 10

1 Thuật toán Dijstra 10

2. Giải thuật Link-State: 16

III Thuật toán Bellman-Ford và giải thuật Distant-Vector 18

1 Thuật toán Bellman-Ford 18

2 Giải thuật Distant-Vector 20

IV So sánh Link-State với Distant- Vector 26

V Câu hỏi: Distant-Vector và Link-State cái nào phổ biến hơn? .27

VI.Một số giải thuật khác: 28

1 Giải thuật ngập lụt 28

2 Giải thuật tìm đường phân cấp 28

Trang 3

Lời nói đầu

Giải thuật định tuyến tầng mạng là một khía cạnh quan trọng trong lĩnh vực mạng máy tính, giúp xác định và điều phối các tuyến đường mạng cho việc truyền tải dữ liệu hiệu quả

Bài luận này sẽ giới thiệu sơ qua về giải thuật định tuyến và đi sâu vào giới thiệu 2 giải thuật Dijkstra + Link-State và Bellman-Ford + Vector Distant So sánh 2 giải thuật và trả lời cho câu hỏi giải thuật nào phổ biến nhất của cô giáo

Ngoài ra bài còn giới thiệu sơ lược một số giải thuật khác

Trang 4

I Giới thiệu tổng quan

Định tuyến tầng mạng là quá trình quyết định cách thức truyền tải dữ liệu qua một mạng có nhiều tầng Mỗi tầng mạng đại diện cho một mức độ trừu tượng và phân chia hệ thống mạng thành các lớp khác nhau Giải thuật định tuyến tầng mạng đảm bảo rằng dữ liệu được chuyển tiếp một cách chính xác từ tầng này sang tầng khác, đồng thời tối ưu hóa hiệu suất mạng bằng cách lựa chọn các tuyến đường tối ưu

Một trong những ưu điểm quan trọng của giải thuật định tuyến tầng mạng là khả năng tăng cường tính sẵn sàng và tin cậy của mạng Khi có một tuyến đường gặp sự cố, giải thuật này có thể tự động chuyển hướng dữ liệu sang tuyến đường thay thế để tránh mất kết nối hoặc giảm thiểu thời gian chờ đợi Điều này giúp đảm bảo rằng mạng vẫn hoạt động ổn định ngay cả khi xảy ra sự cố

Hơn nữa, giải thuật định tuyến tầng mạng cung cấp khả năng phân chia tài nguyên mạng một cách hiệu quả Bằng cách lựa chọn các tuyến đường tốt nhất cho từng tầng, nó

có thể phân phối tải một cách cân đối trong toàn bộ mạng, tránh tình trạng quá tải ở một

số tuyến đường cụ thể Điều này giúp tăng cường khả năng xử lý dữ liệu và đáp ứng nhanh chóng với yêu cầu từ các nguồn khác nhau

Ngoài ra, giải thuật định tuyến tầng mạng cũng cung cấp tính linh hoạt trong việc mởNgoài những ưu điểm đã đề cập, giải thuật định tuyến tầng mạng cũng cung cấp tính linh hoạt trong việc mở rộng hệ thống mạng Khi một mạng mở rộng hoặc thay đổi cấu trúc, giải thuật định tuyến tầng mạng cho phép thêm tầng mới và tích hợp nó vào mạng hiện có một cách dễ dàng Điều này đồng nghĩa với việc mạng có khả năng mở rộng linh hoạt để đáp ứng nhu cầu mở rộng của doanh nghiệp hoặc tổ chức

Bên cạnh đó, giải thuật định tuyến tầng mạng cũng hỗ trợ việc triển khai các dịch vụ mới một cách hiệu quả Với khả năng xác định các tuyến đường tối ưu, giải thuật này có thể tận dụng tối đa tài nguyên mạng để đáp ứng yêu cầu của các ứng dụng và dịch vụ mới Điều này cho phép mạng mở rộng và phát triển một cách linh hoạt mà không ảnh hưởng đến hiệu suất hoặc độ tin cậy của hệ thống

Cuối cùng, giải thuật định tuyến tầng mạng cũng giúp tăng cường bảo mật mạng Bằngcách xác định và kiểm soát lưu lượng dữ liệu trên mỗi tầng mạng, giải thuật này giúp hạn chế sự truy cập trái phép và bảo vệ thông tin quan trọng Nó có thể xác định các tuyến đường an toàn và sử dụng các biện pháp bảo mật để đảm bảo rằng dữ liệu không bị xâm phạm trong quá trình truyền tải

Tóm lại, giải thuật định tuyến tầng mạng đóng vai trò quan trọng trong việc xác định

và điều phối các tuyến đường mạng trong hệ thống mạng Với khả năng tăng cường sẵn sàng và tin cậy, phân phối tài nguyên mạng, linh hoạt mở rộng và bảo mật mạng, nó đã trở thành một công cụ quan trọng trong xây dựng và quản lý mạng máy tính hiện đại

Trang 5

1 Định tuyến là gì?

Định tuyến (Routing) là quá trình chọn đường đi qua một hoặc nhiều mạng Một mạng máy tính được tạo thành từ nhiều máy - gọi là các nút - và các đường dẫn - hoặc liên kết - để kết nối những nút đó Trong một mạng, quá trình giao tiếp giữa hai nút được kết nối có thể diễn ra qua nhiều đường dẫn khác nhau.

Định tuyến được coi là quá trình lựa chọn đường dẫn tốt nhất bằng một số quy tắc Cácquy tắc định tuyến này có thể áp dụng trên bất kỳ loại mạng nào, từ mạng điện thoại đến giao thông công cộng

Tại sao định tuyến quan trọng?

Định tuyến giúp hoạt động giao tiếp trong mạng diễn ra hiệu quả Lỗi giao tiếp mạng

là nguyên nhân khiến người dùng phải chờ lâu để tải website Nó cũng có thể khiến máy chủ website sập vì không thể xử lý số lượng người dùng lớn Định tuyến sinh ra giúp giảm lỗi mạng bằng cách quản lý lưu lượng truy cập để mạng phát huy tối đa khả năng

mà không gây ra tình trạng tắc nghẽn

Bộ định tuyến là gì?

Bộ định tuyến (Router) là một thiết bị mạng có khả năng kết nối các thiết bị máy tính, mạng với những mạng khác Ba chức năng chính của các bộ định tuyến là:

Xác định đường dẫn: Bộ định tuyến xác định đường mà dữ liệu sẽ đi khi chúng

di chuyển từ nguồn đến đích Nhiệm vụ của bộ định tuyến là tìm ra đường dẫn tốt nhất thông qua phân tích các chỉ số mạng như dung lượng, tốc độ và độ trì hoãn

Chuyển tiếp dữ liệu: Bộ định tuyến chuyển dữ liệu đến thiết bị tiếp theo qua

đường dẫn đã chọn và cuối cùng là đến đích của nó Bộ định tuyến và thiết bị máy tính cóthể cùng nằm trên một mạng hoặc các mạng khác nhau

Cân bằng tải (Load balancing): Đôi khi, bộ định tuyến có thể gửi bản sao dữ liệu

qua nhiều đường dẫn khác nhau, để giảm lỗi do tổn thất dữ liệu gây ra, tạo dự phòng và quản lý lưu lượng truy cập

Định tuyến hoạt động như thế nào?

Dữ liệu di chuyển qua các mạng dưới dạng gói dữ liệu (data packet) Mỗi gói dữ liệu

sẽ có một tiêu đề chứa thông tin liên quan đến điểm đích dự kiến của gói đó

Thông tin về đường dẫn mà các gói sẽ đi để đến mọi đích của chúng được ghi trong bảng định tuyến Bảng định tuyến giống như việc hành khách xem lịch chạy của tàu hỏa

để quyết định mình sẽ chọn tuyến nào

Trang 6

Bộ định tuyến hoạt động như sau: Khi một bộ định tuyến nhận được một gói dữ liệu,

nó sẽ đọc các tiêu đề gói để biết điểm đến dự định của gói Việc này giống như cách người kiểm soát vé có thể kiểm tra vé của hành khách trên tàu, để xác định họ có đang trên đúng chuyến tàu hay không Sau đó, nó xác định nơi định tuyến gói dữ liệu dựa trên thông tin trong bảng định tuyến của nó

Bộ định tuyến thực hiện quá trình này hàng triệu lần một giây với hàng triệu gói dữ liệu Khi một gói di chuyển đến đích, nó có thể được định tuyến nhiều lần bởi các bộ địnhtuyến khác nhau

Ví dụ: Khi bạn truy cập một website từ máy tính trong mạng văn phòng, các gói dữ liệu sẽ đi đến bộ định tuyến mạng văn phòng trước Bộ định tuyến tra cứu tiêu đề gói và xác định đích đến của gói Sau đó, bộ định tuyến sẽ tự tra cứu bảng nội bộ của nó và chuyển tiếp gói đến bộ định tuyến tiếp theo hoặc đến một thiết bị khác, chẳng hạn như máy in trong cùng mạng

2 Có những loại định tuyến nào?

Có ba loại định tuyến là:

Định tuyến tĩnh (Static routing)

Định tuyến mặc định (Dynamic routing)

Định tuyến động (Dynamic routing)

Định tuyến tĩnh

Trang 7

Định tuyến tĩnh có tên gọi khác là Định tuyến không thích ứng (Nonadaptive Routing).Định tuyến tĩnh là quá trình nối thủ công các tuyến đến bảng định tuyến.

Giả sử chúng ta muốn kết nối máy tính với một máy tính khác và giữa chúng có mười mạng khác nhau Khi này, chúng ta phải cung cấp một cách thủ công thông tin về các mạng mà mình muốn kết nối với bộ định tuyến, sau đó mới có thể trao đổi dữ liệu Quá trình này được gọi là Định tuyến tĩnh

Ưu điểm:

Quản trị viên thiết lập thủ công

Định tuyến tĩnh là phương thức an toàn và nhanh chóng

Không sử dụng băng thông giữa các bộ định tuyến

để đi được đến đích RIP và OSPF là hai ví dụ tốt nhất về các giao thức định tuyến động.Chẳng hạn như khi máy tính muốn kết nối với một máy tính khác và có mười mạng khác nhau giữa chúng Đường dẫn kết nối hai máy tính được chọn một cách tự động

Trang 8

Định tuyến động sử dụng nhiều tài nguyên hơn như CPU, RAM và băng thông, do

Ưu điểm:

Nếu không có tuyến cố định nào trong bảng định tuyến, định tuyến mặc định có thể hữu ích Định tuyến mặc định được sử dụng cho tất cả lưu lượng gói có đích không xác định trong bảng định tuyến

Phù hợp để lọc gói, tường lửa và máy chủ proxy vì được định cấu hình cho các đích không xác định

Nhược điểm:

Nếu mạng quá phức tạp, việc thiết lập sẽ khó khăn

Trang 9

3 7 giao thức định tuyến phổ biến

Trong mạng, giao thức (protocol) là tiêu chuẩn định dạng dữ liệu để mọi máy tính được kết nối đều có thể hiểu dữ liệu Giao thức định tuyến (Routing protocol) là tập hợp quy tắc cụ thể về cách bộ định tuyến xác định và chuyển tiếp các gói dữ liệu theo đường dẫn mạng

1 RIP

RIP (Routing information protocol) là giao thức cổng bên trong và là một trong những giao thức đầu tiên được tạo ra Bạn có thể sử dụng nó với mạng LAN (liên kết trong phạm vi nhỏ) hoặc mạng WAN (mạng viễn thông phạm vi lớn hơn) Có hai phiên bản khác nhau của loại giao thức này: RIPv1 và RIPv2

RIPv1, phiên bản gốc, là giao thức phân loại kiểm tra và đánh giá các đường dẫn mạngdựa trên số bước nhảy đến đích được xác định trước Trong khi đó, phiên bản mới hơn - RIPv2 - là một giao thức không phân loại, cũng có các biện pháp bảo mật nâng cao, như xác thực, để bảo vệ dữ liệu RIPv2 có lợi thế trong các mạng nhỏ vì nó chỉ hỗ trợ bộ định tuyến từ 15 bước nhảy trở xuống

2 IGRP

IGRP (Interior gateway protocol) là sản phẩm do Cisco, một công ty công nghệ quốc

tế, tạo ra Nền tảng chức năng của IGRP là RIP, nhưng tăng số bước nhảy hỗ trợ tối đa lên

100 Do đó, nó hoạt động tốt hơn trong các mạng lớn Để hoạt động, IGRP cần các số liệunhư dung lượng mạng, độ tin cậy và tải (load) để so sánh

3 EIGRP

EIGRP (Enhanced interior gateway routing protocol) hỗ trợ đến 255 bước nhảy Khi sửdụng EIGRP, bộ định tuyến có thể lấy thông tin từ các bảng của bộ định tuyến khác và ghi lại làm tài liệu tham khảo Nếu có thay đổi xảy ra, mỗi bộ định tuyến sẽ thông báo cho láng giềng của nó để đảm bảo tất cả đều biết tuyến dữ liệu nào đang được sử dụng Điều này giúp ngăn chặn giao tiếp sai tiềm ẩn giữa các bộ định tuyến

4 OSPF

OSPF (Open shortest path first) là giao thức có khả năng thu thập thông tin từ tất cả các bộ định tuyến khác trong hệ thống tự trị để xác định tuyến đường ngắn nhất và nhanh nhất đến điểm đích của một gói dữ liệu

OSPF sử dụng một thuật toán gọi là Dijkstra để tính toán các đường dẫn khi xảy ra thay đổi cấu trúc liên kết OSPF đảm bảo dữ liệu của nó được an toàn trong suốt các thay đổi hoặc vi phạm mạng (network breach) Các tổ chức mạng lớn và nhỏ đều có thể sử dụng OSPF vì nó có các tính năng có thể mở rộng

Trang 10

5 EGP

EGP (Exterior gateway protocol) là một loại giao thức rất hữu ích trong trao đổi dữ liệu giữa các máy chủ khác cổng trong các hệ thống tự trị Cụ thể, EGP cung cấp không gian cho các bộ định tuyến để chia sẻ thông tin giữa các miền, như Internet

EGP duy trì định vị chặt chẽ các cơ sở dữ liệu mạng để định tuyến dữ liệu đến đích

Cơ sở dữ liệu sau đó chia sẻ thông tin giữa các bộ định tuyến được kết nối để đảm bảo tất

cả đều cập nhật bảng của chúng Các bảng định tuyến mới có thể giúp xác định tuyến đường tốt nhất cho dữ liệu

6 BGP

Ban đầu, BGP (Border gateway protocol) là một giao thức được phát triển để thay thế EGP Nó sử dụng thuật toán chọn đường dẫn tốt nhất để thực hiện truyền gói dữ liệu.BGP cho phép quản trị viên thay đổi các tuyến tùy theo nhu cầu và cung cấp các tính năng bảo mật nâng cao, để chỉ các bộ định tuyến được ủy quyền mới có thể trao đổi dữ liệu với nhau

7 IS-IS

IS-IS (Immediate system-to-immediate system) thường được sử dụng để gửi và chia sẻthông tin định tuyến IP trên internet Thông thường, giao thức nhóm các bộ định tuyến lại, tạo các miền lớn và kết nối hơn để truyền dữ liệu IS-IS thường dùng hai loại mạng là:

Network service access point (NSAP): Tương tự như địa chỉ IP, NSAP là nhận dạng điểm truy cập dịch vụ trong các hệ thống sử dụng mô hình OSI (Open Systems Interconnection)

Network entity title (NET): giúp xác định các bộ định tuyến mạng riêng lẻ trong các mạng máy tính lớn hơn

1 Thuật toán Dijstra

1.1 Giới thiệu chung

- Dijkstra là một giải thuật tìm đường đi ngắn nhất dựa trên phương pháp tham lam (greedy algorithm) Nó được sử dụng để tìm đường đi ngắn nhất

từ một đỉnh nguồn đến tất cả các đỉnh còn lại trong đồ thị có trọng số khôngâm

- Giải thuật Dijkstra duyệt qua các đỉnh trong đồ thị dựa trên một đỉnh nguồn

đã cho, sau đó tính toán khoảng cách từ đỉnh nguồn đến các đỉnh kề của nó

và cập nhật khoảng cách ngắn nhất đã biết nếu cần thiết Các đỉnh chưa

Trang 11

được kiểm tra sẽ được duyệt qua theo thứ tự từ khoảng cách nhỏ nhất đến lớn hơn.

- Giải thuật Dijkstra hoạt động tốt trên đồ thị có trọng số không âm, và đưa rakết quả chính xác Tuy nhiên, nó có thể không hiệu quả trên đồ thị lớn hoặc

đồ thị có trọng số âm

1.2 Mô tả hoạt động

gồm current_node và passed_node Với current_node là node đang được xét đến, passed_node là các node đã được xét current_node đầu tiên sẽ là node đích của bài toán tìm đường đi ngắn nhất

trị của đường đi ngắn nhất từ N đến node đích

khoảng cách giữa node kề N và current_node Với p = d(current_node,N) +cost (current_node) Nếu p < cost(N) thì cost(N) = p Nếu không thì cost(N) giữ nguyên giá trị

passed_node

cost(current_node) là nhỏ nhất

Nếu không thì quay trở lại Bước 3

Ví dụ 1- tìm đường đi ngắn nhất từ đỉnh C tới các đỉnh khác:

- Trong quá trình thuật toán chạy, ta gọi cost(node) là khoảng cách ngắn nhất từ

mỗi node đến node C và đánh dấu nó trên hình (giá trị số màu xanh da trời) Khi

Trang 12

thuật toán mới bắt đầu, ta mặc định lưu cost(C) = 0 , cost(A) = cost(B) = cost(D)

= cost(E) = infinity

Tương tự với A và D, ta cũng tìm được cost(A) = 1 và cost(D) = 2

Thuật toán bắt đầu chạy bằng cách xét tất cả các node kề với current_node (các node được nối trựctiếp với current_node ) , ở đây là A, B

và D Ta sẽ bắt đầu với node B trước

= 7Nếu giá trị vừa tính p <

cost(B) thì cost(B) = p, ngược lại thì cost(B) giữ nguyên ( ở đây 7 < infinity nên cost(B) = 7 )Đánh dấu cost(B) lên hình

Ta cũng đánh dấu current_node (node đang xét hiện tại) bằng một dấu chấm đỏ trên hình

current_node đầu tiên sẽ là node đích của bài toán - ở đây là C

Sau khi xét hết tất cả các node

kề với current_node, ta chuyểncurrent_node thành passed_node - tức là node đã được xét rồi passed_node sẽ được đánh 1 dấu tích xanh trênhình

Trang 13

Ta tiếp tục giải thuật bằng cách xét các node kề với current_node với điều kiện node kề không được

là passed_node Như vậy ở đây ta chỉ được xét node B

Bây giờ chúng ta sẽ chọn 1 current_node mới với 2 điều kiện:

• current_node không thể là passed_node

• cost(current_node) có giá trị nhỏ nhất

Nếu xét trên hình, current_node tiếp theo sẽ là node A Ta đánh dấu node A với 1 dấu chấm đỏ

Có 2 node kề với D là B và E.Xét với node B

Đánh dấu cost(E) lên hình.Đánh dấu node D trở thành passed_node Ta tiếp tục tìm current_node mới, lần này nó là node B với cost(B) = 4 :

Trang 14

2 Giải thuật Link-State:

Ý tưởng nền tảng đằng sau các giao thức kiểu Link-state là rất đơn giản: Mọi nút đều biết đường đi đến các nút láng giềng kề bên chúng và nếu chúng ta đảm bảo rằng tổng các kiến thức này được phân phối cho mọi nút thì mỗi nút sẽ có đủ hiểu biết về mạng

để dựng lên một bản đồ hoàn chỉnh của mạng Giải thuật Link-state dựa trên hai kỹ thuật: sự phân phối một cách tin cậy thông tin về trạng thái các đường nối kết; và sự tính toán các đường đi từ kiến thức tổng hợp về trạng thái các đường nối kết

Giải thuật tìm đường trạng thái liên kết (link- state routing protocols):

1 Khám phá các láng giềng và học các địa chỉ mạng của chúng

2 Đo độ trễ (delay), hay giá (cost) tới các láng giềng

3 Xây dựng một gói tin báo cho các trạng thái/ thông tin vừa học

4 Gửi gói tin cập nhật đến tất cả các routers khác

5 Tính đường dẫn ngắn nhất cho từng routers (sử dụng giải thuật Dijkstra để tìm đường ngắn nhất tới từng routers)

1 Khám phá các láng giềng và học các địa chỉ mạng của chúng

- Khám phá các routers láng giềng bằng cách gửi 1 gói tin HELLO trên mỗi đường dẫn

- Khi 2 hay nhiều routers kết nối bởi một LAN, tình huống sẽ phức tạp hơn

2 Đo độ trễ (delay), hay giá (cost) tới các láng giềng, các routers phải có sự ước lượng về các đường dẫn tới các routers láng giếng để làm trọng số cho giải thuật định tuyến

9 routers nối qua 1 mạng LAN, mạng LAN đc xem như một nút ảo

Ngày đăng: 13/06/2024, 10:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w