Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.66 MB, 28 trang )
<span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">
<b><small>1.Định tuyến là gì?...5</small></b>
<b><small>2.Có những loại định tuyến nào?...6</small></b>
<b><small>3.7 giao thức định tuyến phổ biến...9</small></b>
<small>1.Thuật toán Dijstra...10</small>
<b><small>2.</small></b> <small>Giải thuật Link-State:...16</small>
<small>1.Thuật toán Bellman-Ford...18</small>
<small>2.Giải thuật Distant-Vector...20</small>
<small>1.Giải thuật ngập lụt...28</small>
<small>2.Giải thuật tìm đường phân cấp...28</small>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">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
Ngồi ra bài cịn giới thiệu sơ lược một số giải thuật khác
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>I. Giới thiệu tổng quan</b>
Đị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 tồ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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><b>1. Định tuyến là gì?</b>
<b>Đị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, q 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.</b>
Đị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.
<b>Tại sao định tuyến quan trọng?</b>
Đị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>Bộ định tuyến là gì?</b>
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à:
<b>Xác định đường dẫn: Bộ định tuyến xác định đường mà dữ liệu sẽ đi khi chúng </b>
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ì hỗn.
<b>Chuyển tiếp dữ liệu: Bộ định tuyến chuyển dữ liệu đến thiết bị tiếp theo qua </b>
đườ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.
<b>Cân bằng tải (Load balancing): Đơi khi, bộ định tuyến có thể gửi bản sao dữ liệu</b>
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.
<b>Định tuyến hoạt động như thế nào?</b>
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.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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 số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 q 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
<b>2. Có những loại định tuyến nào?</b>
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)
<b>Định tuyến tĩnh</b>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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à q 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.
<b>Ưu điểm:</b>
Quản trị viên thiết lập thủ công.
Định tuyến tĩnh là phương thức an tồn và nhanh chóng.Khơng sử dụng băng thông giữa các bộ định tuyến.Định tuyến tĩnh ít tốn kém hơn.
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.
<b>Ưu điểm:</b>
Khơng cần phải hiểu các mạng.Định tuyến động dễ dàng để thiết lập.Được sử dụng cho các tổ chức lớn.Hiệu quả xác định đường đi tốt nhất.
<b>Nhược điểm:</b>
Tiêu thụ nhiều băng thông hơn.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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đó, nó đắt hơn.
Q trình triển khai định tuyến động phức tạp hơn.
<b>Định tuyến mặc định</b>
Đây là phương pháp không hay được sử dụng. Định tuyến mặc định thiết lập bộ định tuyến để gửi tất cả các gói dữ liệu đến một bộ định tuyến duy nhất. Gói thuộc về mạng nào cũng khơng có gì khác biệt; định tuyến là mặc định. Định tuyến mặc định thường được sử dụng kết hợp với các bộ định tuyến sơ khai. Một bộ định tuyến sơ khai là bộ định tuyến chỉ có một tuyến đến tất cả các mạng khác.
<b>Ưu điểm:</b>
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.
<b>Nhược điểm:</b>
Nếu mạng quá phức tạp, việc thiết lập sẽ khó khăn.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>3. 7 giao thức định tuyến phổ biến</b>
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.
<b>1. RIP</b>
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.
<b>2. IGRP</b>
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ên100. 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.
<b>3. EIGRP</b>
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.
<b>4. OSPF</b>
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 tốn gọi là Dijkstra để tính tố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 tồ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.
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>5. EGP</b>
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ấtcả đề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.
<b>7. IS-IS</b>
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 Dijstra1.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
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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 tố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ữ ngun giá trị .
passed_node .
cost(current_node) là nhỏ nhất
<b>Nếu khơng thì quay trở lại Bước 3</b>
<b>Ví dụ 1- tìm đường đi ngắn nhất từ đỉnh C tới các đỉnh khác:</b>
- <b>Trong q trình thuật tốn chạy, ta gọi cost(node) là khoảng cách ngắn nhất từ </b>
<b>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</b>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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, Bvà D. Ta sẽ bắt đầu với node B trước và thực hiện 4 bước:
Đầu tiên ta tìm được khoảng các từ current_node đến node B: d(C,B) = 7.
Tính tốn giá trị đường đi từ node đích -> current_node -> node B : p =d(C,B) + cost(current_node) = 0 + 7 = 7
Nế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 tốn - ở đây là C.
Sau khi xét hết tất cả các nodekề 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.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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 .
d(A,B) = 3, cost(A) = 1 .p = d(A,B) + cost(A) = 4p < cost(B) ( 4 < 7 ) . Vậy cost(B) = 4
Đánh dấu cost(B) lên hìnhĐánh dấu node A trở thành passed_node. Ta tiếp tục tìm current_node mới, lần này nó là node D với cost(D) = 2:
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
d(D,B) = 5, cost(D) = 2 .p = d(D,B) + cost(D) = 7p > cost(B) ( 7 > 4 ) . Vậy cost(B)= 4
Giữ nguyên cost(B)Xét với node Ed(D,E) = 7, cost(D) = 2 .p = d(D,E) + cost(D) = 9p < cost(E) ( 7 < infinity ) . Vậy cost(E) = 9
Đá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 :
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><b>2. Giải thuật Link-State:</b>
Ý 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 tố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
</div>