Các phơng pháp định tuyến

Một phần của tài liệu Các giao thức định tuyến cổng nội trong mạng IP (Trang 67)

Định tuyến có thể phân ra làm nhiều loại và một Router có thể dùng nhiều phơng pháp định tuyến cùng lúc. Kế hoạch định tuyến phải đợc thực hiện một cách có kế hoạch ttrên toàn mạng.

Có thể phân loại phơng pháp định tuyến (phơng pháp xây dựng bảng định tuyến) trong mạng IP thành:

♦ Định tuyến tĩnh và định tuyến động

♦ Định tuyến trong miền quản trị IGP và liên miền quản trị EGP ♦ Định tuyến Distance-vector và Link-state

♦ ...

2.2.1 Định tuyến tĩnh

Thông tin về định tuyến tĩnh đợc cung cấp từ ngời quản lý mạng thông qua các thao tác nhập bằng tay vào trong cấu hình của router.Ngời quản trị phải cập nhập bằng tay đối với các mục chỉ tuyến tĩnh này bất cứ khi nào kiến trúc mạng bị thay đổi.

S0 S1 E0

L0 L1 L2

Router#show ip inter brief

Interface IP-Address OK? Method Status Protocol Serial0 192.168.1.1 YES unset up down Serial1 192.168.2.1 YES unset down down FastEthernet0 192.168.3.1 YES unset down down Loopback0 192.168.4.1 YES unset up up Loopback2 192.168.5.1 YES unset up up Loopback3 192.168.6.1 YES unset up up Router#show ip route

C 192.168.4.0 is directly connected, Loopback0 C 192.168.5.0 is directly connected, Loopback1 C 192.168.6.0 is directly connected, Loopback2

Định tuyến tĩnh có u điểm là cho phép bạn chỉ ra thông tin mà bạn muốn biểu lộ về các mạng bị giới hạn, do đó làm tăng tính bảo mật của thông tin.

Định tuyến tĩnh đợc sử dụng khi : ♦ Cấu trúc mạng đơn giản

♦ Mạng là mạng cụt “stub-network”( mạng chỉ có thể tiếp cận bằng một đờng dẫn) Cấu hình định tuyến tĩnh cho một mạng “ cụt” tránh đợc lợng overhead của định tuyến động.Khi sử dụng phơng pháp định tuyến tĩnh sẽ không làm tăng lu lợng trong mạng và không thể thích ứng với sự thay đổi topo và lu lợng của mạng.

2.2.2 Định tuyến động

Trong phơng pháp định tuyến động, các Router sẽ thu thập thông tin về tình trạng của mạng và tự động xây dựng nên thực thể trong bảng định tuyến.Các router sẽ trao đổi thông tin để chúng tự quyết định việc xây dựng thực thể trong bảng định tuyến

Phơng pháp này có lợi thế khi mạng phức tạp.Định tuyến động đem đến sự linh hoạt , có thể thích ứng với việc mạng thay đổi kiến trúc và lu lợng, tạo ra một lu lợng thông tin phục vụ trao đổi thông tin định tuyến.

Sự thành công của định tuyến động tùy thuộc vào hai chức năng router cơ bản: ♦ Duy trì một bảng định tuyến.

♦ Phân tán tri thức mạng theo định kì, dới dạng cập nhật định tuyến, cho các router khác.

Định tuyến động dựa vào một giao thức định tuyến để chia sẻ tri thức mạng cho các router.Một giao thức định tuyến định ra một tập nguyên tắc đợc áp dụng vào mỗi router khi nó thông tin với các router láng giềng.

Giao thức định tuyến là một tập các qui chế về việc trao đổi thông tin định tuyến và lựa chọn đờng đi đợc coi là “ngắn nhất”

Phạm Văn Hiến - Đ01VT

Hình2.4 Định tuyến động có thể thích nghi với sự thay đổi topo

Các tham số đợc tính đến khi chọn đờng đi ngắn nhất bao gồm: ♦ Hop count ( số lợng bớc nhảy )

♦ Bandwidth ( Băng thông ) ♦ Load ( Tải )

♦ Reliability ( Độ tin cậy ) ♦ Delay ( Độ trễ )

Căn cứ vào việc trao đổi thông tin và lựa chọn đờng đi “ngắn nhất” có thể chia định tuyến động thành các loại sau:

Hình 2.5 Khoảng cách trong các đơn vị đo lường

♦ Distance-vector ♦ Link-state

♦ Hybrid kết hợp hai loại trên

2.3 Các thuật toán chọn đờng 2.3.1 Giới thiệu

Có rất nhiều thuật toán chọn đờng khác nhau. Mỗi thuật toán có những u điểm cũng nh hạn chế riêng. Ngời thiết kế khi thiết kế mạng sẽ căn cứ vào mạng của mình (đặc điểm của mạng, các tiêu chí đối với việc truyền thông tin trong mạng...) để lựa chọn thuật toán chọn đờng cho phù hợp. Ngời ta có thể đánh giá thuật toán chọn đờng theo những khía cạnh sau :

Tối u

Có những thuật toán chọn ra đợc những đờng truyền tối u, cũng có thuật toán chỉ chọn ra đợc những đờng truyền gần tối u.. Để đánh giá đợc mức độ tối u của tuyến đ- ờng, khi triển khai thuật toán phải xác định rõ là tối u theo cái gì? Có nhiều tham số hay đợc sử dụng để đánh giá một tuyến đờng:

 Số node phải đi qua.

 Khoảng cách vật lý.  Giá thành truyền dẫn.  Độ trễ truyền lan.  Độ tin cậy.  Băng thông.  Hiệu suất sử dụng mạng.  Mức độ xử lý tại node.  .v.v…

Để đơn giản khi mô tả các thuật toán, ngời ta đa ra một khái niệm: ‘độ dài’. ‘Độ dài’ của tuyến đờng là một hàm phụ thuộc vào một hoặc nhiều tham số ở trên. Do đó, việc chọn tuyến đờng tối u cũng chính là chọn con đờng có ‘độ dài ngắn nhất’. Nhiều khi, ‘độ dài’ (length) của link còn đợc gọi là cost, hoặc weight. Các cách gọi này mang ý nghĩa nh nhau.

Lợng tài nguyên mạng sử dụng để phục vụ việc chọn đờng

Bất kỳ thuật toán chọn đờng nào, để hoạt động đợc đều phải sử dụng tài nguyên mạng. Để đánh giá lợng tài nguyên mạng sử dụng, ngời ta thờng dựa trên những thông tin nh: độ phức tạp tính toán khi xây dựng bảng chọn đờng, lợng bộ nhớ yêu cầu, lợng thông tin trao đổi để phục vụ chọn đờng.

Mạnh và ổn định

Thuật toán phải mạnh và ổn định, nghĩa là nó phải hoạt động tốt trong mọi tình huống, ngay cả trong những trờng hợp bất thờng, không thể dự báo trớc nh: lỗi truyền dẫn, lu lợng tăng cao đột ngột...

Tốc độ hội tụ ( Thời gian hội tụ)

Giải thuật định tuyến là cơ sở cho định tuyến động . Bất cứ khi nào tôpo của mạng thay đổi thì cơ sở tri thức mạng cũng phải thay đổi.Tri thức này cần đợc phản ánh qua tầm nhìn chính xác ổn định về một tôpô mới.Tầm nhìn này gọi là sự hội tụ.

Việc sử dụng một giao thức định tuyến (động) luôn đòi hỏi các Router nhận thức một cách chính xác về mạng.Khi mới khởi động hoặc có sự thay đổi về mạng, các router phải mất 1 khoảng thời gian để nhận biết chính xác về mạng. Đây là thời gian hội tụ của mạng

Khi tất cả các router trong một liên mạng đang hoạt động với cùng một tri thức, liên mạng đợc gọi là đã hội tụ.Hội tụ nhanh là một đặc tính mạng luôn đợc mong muốn bởi nó giảm đi khoảng thời gian trong đó các router sẽ tiếp tục đa ra các quyết định không chính xác và vô bổ.

Thời gian hội tụ phụ thuộc vào thời gian trao đổi thông tin và thời gian hoàn thành thuật toán. Ta cần có sự cân nhắc giữa giảm thiểu thời gian hội tụ và lu lợng định tuyến.

Đối với những mạng thay đổi liên tục, việc định tuyến cũng cần phải cập nhật thông tin thờng xuyên và sau đó thì đa ra quyết định chọn đờng mới. Do đó, nếu tốc độ hội tụ của thuật toán thấp, không đáp ứng kịp thời với sự thay đổi của mạng, có thể gây ra tình trạng có những vòng lặp đi lặp lại trong tuyến đờng, làm cho hoạt động của mạng bị đình trệ. Ta có thể xem một ví dụ đơn giản sau ( Xem Hình 2.7 )

% QJFKắQđ ÄQJFKu DFƠSQKƠW ì 5 RXWHU 5 RXWHU 5ãFK 1 RGHVDX ; 5 5 ãFK 1 RGHVDX ; 5 %RQJFKắQđ ÄQJFK FƠSQKƠW ì * ẵLWLQWầL URXWHU;

Giả sử việc chọn đờng đợc thực hiện tại từng node, mỗi lần mạng thay đổi hoặc trong một khoảng thời gian nào đó thì thông tin về mạng đợc cập nhật, và sau đó thì các bộ chọn đờng phải tính toán lại. Nhng do độ hội tụ của thuật toán thấp nên các bảng chọn đờng ở mỗi node đợc tạo ra ở những thời điểm khác nhau. Nếu ta cần chuyển một tin tới node X trong mạng, con đờng tới node X đã đợc xác định là phải qua node R1. Khi gói tin tới R1, bảng chọn đờng vừa đợc cập nhật và xác định node tiếp theo trên con đờng đi tới node X là phải qua node R2, nó sẽ đợc chuyển tới R2. Nhng khi tới node R2, do cha có bảng chọn đờng cập nhật, nên lại xác định node tiếp theo trên con đờng đi tới node X là node R1 (theo thông tin cũ), gói tin lại đợc chuyển trở lại node R1. Điều này làm cho việc chọn đờng của chúng ta bị luẩn quẩn ở hai node R1, R2 này, gói tin không thể tới đích.

Linh hoạt

Chọn đờng linh hoạt có nghĩa là mỗi khi trong mạng có sự thay đổi, việc chọn đ- ờng phải nhanh chóng phát hiện đợc thay đổi này và điều chỉnh lại các thông tin chọn đ- ờng cho phù hợp.

2.3.2 Thuật toán tìm đờng ngắn nhất

Xét một đồ thị G=(V,E,L) với V là một tập các đỉnh có N phần tử biểu thị cho các node trong mạng. E là tập các cung tợng trng cho các link trong mạng. W là tập giá trị mang độ dài của mỗi cung trong E. lijL là độ dài của cung {i,j} E nối đỉnh i với j

V. Độ dài này chính là ‘độ dài’ của link tơng ứng.

Độ dài của các cung đợc coi là cố định, hoặc giả là cố định trong một khoảng thời gian đủ để tìm ra con đờng ngắn nhất. Mặc dầu vậy, trong một số trờng hợp, độ dài của link là một hàm phụ thuộc thời gian, tức là L={lij(ij)|(i, j)∈E}.

Đờng đi ngắn nhất giữa đỉnh nguồn s và đỉnh đích d là một chuỗi liên tục các cung nối sd với khoảng cách ngắn nhất trong G. Một cách trực quan, khoảng cách ngắn nhất giữa hai đỉnh s và d thấy đợc bằng cách coi các cung trong graph là các sợi dây có độ dài tơng ứng; sau đó cầm hai đỉnh đó kéo căng ra. Khi đó, con đờng ngắn nhất sẽ là chuỗi các đoạn dây tạo thành đờng thẳng nối s với d.

Tuỳ vào đồ thị mà việc mà việc tìm con đờng ngắn nhất là đơn giản hay phức tạp. Ví dụ, với đồ thị hình cây ( Hình 2.8a), ta chỉ có một con đờng duy nhất nối hai đỉnh, nên đó tất nhiên cũng là con đờng ngắn nhất. Còn với đồ thị có chứa vòng ( Hình 2.8b ), việc tìm đờng ngắn nhất sẽ phức tạp hơn, bởi từ một đỉnh nguồn, để đến đợc đỉnh đích có thể đi qua nhiều con đờng.

Hình 2.8 Đồ thị cây và đồ thị có vòng

Thuật toán chọn đờng ngắn nhất đa ra các bớc để tìm đợc con đờng ngắn nhất giữa hai đỉnh. Với cùng một đồ thị, cùng một cặp đỉnh nguồn-đích, các thuật toán chọn đờng ngắn nhất có thể đa ra các con đờng ngắn nhất khác nhau (chuỗi các cung khác nhau), nhng độ dài của các con đờng đó chắc chắn phải bằng nhau.

Các thuật toán khác nhau có các bớc thực hiện khác nhau, nhng tất cả đều dựa trên một nguyên lý chung để thực hiện tính toán: Nếu k là một đỉnh nằm trên con đờng ngắn nhất từ i đến j thì đoạn từ i đến k của con đờng đó phải là con đờng ngắn nhất từ i đến k, và đoạn từ k đến j cũng chính là con đờng ngắn nhất từ k tới j. Từ đó, ta có công thức sau: ( ik kj) k ij d d d =min + (*)

Trong đó, dij, dik, dkj là khoảng cách ngắn nhất giữa hai đỉnh tơng ứng.

Khi thực hiện thuật toán, ta coi rằng, nếu giữa hai đỉnh i, j không có cung nối thì

∞ =

ij

l . Dựa vào tập các lij, ta tính cận trên di của khoảng cách từ đỉnh s đến tất cả các đỉnh i ∈ V. Mỗi khi phát hiện (dj +lji <di), cận trên di sẽ đợc làm tốt lên: (di =dj +lji) . (**)

Quá trình đó kết thúc khi không còn cận trên nào có thể làm tốt thêm đợc nữa. Khi đó, giá trị của di sẽ cho ta độ dài của con đờng ngắn nhất từ s đến i. Việc tính toán các cận trên đợc gọi là gán nhãn, quá trình sử dụng nhãn của một đỉnh để gán lại nhãn cho các đỉnh khác đợc gọi là quá trình quét.

Một trong những thuật toán tìm đờng ngắn nhất hoạt động hiệu quả nhất đã đợc đa ra bởi Dijkstra. Thuật toán này cần có thông tin về toàn bộ đồ thị để có thể tìm ra con đờng ngắn nhất từ một đỉnh tới các đỉnh còn lại. Một thuật toán khác rất thích hợp cho việc tính toán phân tán, thuật toán Bellman - Ford, chỉ cần thông tin về các cung từ một đỉnh tới các đỉnh lân cận.

Hầu hết các thuật toán chọn đờng ngắn nhất đợc sử dụng trên mạng thông tin hiện nay đều dựa trên thuật toán Dijkstra hoặc Bellman-Ford. Sử dụng các thuật toán

này, mỗi node trong mạng sẽ lu giữ một bảng chọn đờng, chỉ ra node tiếp theo trên con đờng ngắn nhất tới đích, và độ dài của con đờng đó. Khi mạng có sự thay đổi, các thông tin cập nhật đợc chuyển qua các node lân cận hoặc đợc quảng bá trên toàn mạng. Từ đó, các node sẽ tính lại bảng chọn đờng của mình.

Từ các bảng chọn đờng trong mỗi node, chúng ta có thể tạo đợc cây đờng ngắn nhất tới mỗi node (xem Hình 2.9)

Hình 2.9 Cây đờng đi ngắn nhất cho node đích d 2.3.3 Thuật toán Dijkstra

Thuật toán này do Dijkstra đa ra. Nó thích hợp cho việc tìm đờng đi tối u từ một đỉnh tới tất cả các đỉnh còn lại trong đồ thị. Hoạt động của thuật toán này nh sau:

Giả sử ta cần tìm đờng đi ngắn nhất từ đỉnh s đến tất cả các đỉnh còn lại trong đồ thị. Thuật toán đợc xây dựng dựa trên cơ sở gán cho các đỉnh các nhãn tạm thời. Các nhãn này đợc biến đổi theo một thủ tục lặp. Sau mỗi vòng lặp, sẽ có một nhãn tạm thời trở thành nhãn cố định, đó chính là nhãn tạm thời có giá trị nhỏ nhất. Nhãn cố định, tất nhiên, không bị biến đổi trong các vòng lặp, và chính là độ dài của con đờng ngắn nhất từ đỉnh nguồn tới đỉnh tơng ứng với nhãn đó. Đỉnh mới đợc gán nhãn cố định này sẽ đợc quét để gán lại nhãn tạm thời cho các đỉnh khác.

Ta thấy rằng, việc gán nhãn lại cho các đỉnh chỉ đợc thực hiện mỗi khi có thêm một đỉnh đợc gán nhãn cố định. Đỉnh đợc gán nhãn cố định trớc phải có giá trị của nhãn cố định nhỏ hơn nhãn cố định của đỉnh đợc gán sau. Nên, để đảm bảo một đỉnh đã có

nhãn cố định không đợc gán nhãn lại, phải có yêu cầu rằng không có cung nào trong mạng có chiều dài âm.

Thuật toán Dijkstra đợc cài đặt nh sau:

array[n]  Dijkstra(n , root , dist [n,n]) // dist[i,j] = lij

// root: node nguồn // n: số node var pre_node[n] // Node liền trớc

cur_dist[n] // Khoảng cách hiện tại

scanned[n] // nếu bằng TRUE, là đã đợc gán nhãn cố định index  Findmin( )

d_min = INFINITY for each ( i , n )

if ( !scanned[i] && (cur_dist[i] < d_min) ) i_min = i

d_min = cur_dist[i] return i_min

void  Scan( i ) for each ( j , n )

if (cur_dist [j] > cur_dist [i] + dist [i,j] ) cur_dist [j] = cur_dist [i] + dist [i,j] pre_node[j] = i cur_dist  INFINITY pre_node  -1 scanned  FALSE cur_dist [root] = 0 #_scanned = 0 while ( #_scanned < n) i ( Findmin( ) Scan ( i )

return (pre_node)

Với mảng pre_node, ta sẽ thu đợc tất cả các con đờng tối u từ các đỉnh trong mạng tới đỉnh nguồn.

2.3.4 Thuật toán Bellman-Ford

Khác với thuật toán Dijkstra, tìm và quét đỉnh có nhãn nhỏ nhất, và mỗi đỉnh chỉ phải quét một lần, thuật toán Bellman quét các đỉnh theo thứ tự gán nhãn của đỉnh, vì vậy sẽ không phải tìm đỉnh nhỏ nhất, tuy nhiên lại dẫn tới việc một đỉnh có thể phải quét nhiều lần.

Thuật toán Bellman cơ bản hoạt động bằng cách quét lần lợt tất cả các đỉnh, nhằm gán lại nhãn cho các đỉnh khác. Và cứ thực hiện lặp lại nh vậy cho đến khi sau một vòng lặp mà không có đỉnh nào đợc gán nhãn lại nữa. Tuy nhiên, làm nh vậy phải thực hiện một lợng tính toán rất lớn. Thông thờng, khi quét một đỉnh, chỉ cần kiểm tra xem có phải gán lại nhãn cho các đỉnh lân cận hay không. Và chỉ cần quét những đỉnh đợc gán nhãn lại trong vòng lặp trớc.

Để thực hiện theo cách vừa nói, có thể sử dụng một hàng đợi để lu giữ thứ tự quét

Một phần của tài liệu Các giao thức định tuyến cổng nội trong mạng IP (Trang 67)

Tải bản đầy đủ (DOC)

(113 trang)
w