Định tuyến theo trạng thái liên kế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 83 - 89)

2.4.2.1 Giới thiệu

Định tuyến hteo trạng thái liên kết ( Link-state Routing ) dựa trên nguyên tắc trao đổi thông tin trạng thái LSA giữa các Router trong mạng.Việc trao đổi thông tin diễn ra trong một miền sử dụng giao thức định tuyến.Dựa vào việc thu thập LSA mà router có một các nhìn tổng thể về cấu trúc mạng

Cấu trúc của mạng kết hợp với thuật toán SPF đề tìm ra “Shortest Path First Tree ” và xây dựng nên bảng định tuyến

Chọn đờng theo trạng thái liên kết - một phơng pháp chọn đờng mạnh hơn, linh hoạt hơn so với chọn đờng theo vec-tơ khoảng cách - đã đợc sử dụng trong mạng ARPANET và vẫn đang tiếp tục đợc sử dụng trong mạng Internet hiện tại.

Trong thuật toán chọn đờng theo trạng thái liên kết, mỗi node trong mạng sẽ có một bản sao của cơ sở dữ liệu miêu tả trạng thái (cost) của các đờng link giữa các node trong mạng (link-state database). Cơ sở dữ liệu này đợc tạo thành từ những phần nhỏ gọi là các thông báo trạng thái liên kết (LSA). Mỗi node trong mạng có nhiệm vụ tạo ra một

LSA miêu tả về tất cả các đờng link nối tới mình. Sau đó, nó gửi LSA này cho tất cả các node còn lại trong mạng.

Việc phân phát các LSA đợc thực hiện bởi quá trình flooding. Yêu cầu đối với việc flooding này là nhanh, chính xác. Trong thuật toán chọn đờng theo trạng thái liên kết, điều quan trọng là các node phải có cơ sở dữ liệu giống nhau. Có vậy thì mới có thể chọn đợc những con đờng chính xác và không tồn tại vòng. Khi trong mạng có bất kỳ sự thay đổi về trạng thái link (thay đổi về khả năng làm việc của node cũng dẫn đến thay đổi về trạng thái link), các node có liên quan sẽ phải tạo ra những bản LSA mô tả thay đổi đó và gửi đi cho toàn mạng. Trong khi đang thực hiện flooding, các node sẽ có những cơ sở dữ liệu khác nhau. Nhng chỉ sau một khoảng thời gian ngắn (có thể nói là chỉ phụ thuộc vào trễ truyền dẫn, nếu flooding tốt), việc đồng nhất dữ liệu lại đợc đảm bảo.

Sau khi node đã có đợc dữ liệu cập nhật, nó sẽ thực hiện việc tính toán tìm đờng truyền dựa trên cơ sở dữ liệu đó. Phơng pháp tính toán phổ biến nhất là sử dụng thuật toán Dijkstra (còn đợc gọi là thuật toán chọn đờng ngắn nhất trớc tiên - SPF, nh đã nói ở trên)

Có thể mô tả thuật toán chọn đờng theo trạng thái liên kết gồm 5 bớc: ♦ Xác định các node lân cận.

♦ Đánh giá các link để xác định cost. ♦ Tạo các LSA.

♦ Phân phát các LSA. ♦ Tính toán chọn đờng.

2.4.2.2 Xác định các node lân cận

Khi một node bắt đầu làm việc, nhiệm vụ đầu tiên là gửi đi một gói tin đặc biệt ‘HELLO’ theo tất cả các hớng. Các node ở đầu kia của link khi nhận đợc gói tin này, sẽ gửi trở lại một gói tin trả lời, mang những thông tin cần thiết về node đó.

Nếu có nhiều node kết nối với nhau bởi một LAN, có thể miêu tả một cách thông thờng là các node này kết nối điểm-điểm cho mỗi cặp. Tuy nhiên, ngời ta thờng coi LAN nh một node ảo. Node ảo này kết nối điểm-điểm tới tất cả các node đó. (nh trong Hình 2.14 , mạng LAN kết nối ba node A, C, F (hình a) đợc coi nh một node N nối với cả ba node đó (hình b))

Hình 2.14 Cách mô tả LAN

2.4.2.3 Xác định cost cho mỗi link

Thuật toán chọn đờng theo trạng thái liên kết yêu cầu mỗi node phải biết đợc, hay ít nhất là ớc lợng đợc, cost của mỗi link nối tới nó. Nh đã biết, cost của mỗi link có thể đợc đánh giá theo nhiều tham số, do đó cũng có nhiều cách để xác định cost của mỗi link. Ví dụ, nếu cost của mỗi link đợc đánh giá theo trễ truyền lan trên link thì, một gói có thể xác định cost bằng cách gửi đi một gói tin ECHO, và đầu bên kia khi nhận đợc gói tin này thì ngay lập tức gửi trở lại. Khi đó, node ban đầu có thể căn cứ vào khoảng thời gian từ khi phát đến khi nhận đợc gói tin ECHO để xác định cost. Cũng có thể làm cho cost của mỗi link phụ thuộc vào cả vào lu lợng của link. Nếu muốn phụ thuộc lu l- ợng, khi tính thời gian truyền gói ECHO, ta tính cả thời gian từ khi gói này đợc đa vào hàng đợi, cho đến khi nó bắt đầu đợc truyền đi. Đánh giá cost phụ thuộc cả vào lu lợng có cái lợi là thông tin sẽ đợc truyền đi theo đờng ít bị tắc nghẽn. Tuy nhiên, cũng có lúc cách này lại dẫn đến là mạng hoạt động không hiệu quả nh trong ví dụ sau:

Hình 2.15 Mạng ví dụ

Xét mạng nh trong Hình 2.15, đợc chia thành hai phần ĐôngTây. Hai nửa này đợc kết bởi hai đờng CF và EI. Giả sử rằng, phần lớn thông tin truyền giữa hai nửa đang theo đờng CF, do đó, khi đánh giá, CF sẽ có cost lớn hơn nhiều so với EI. Sau khi lập lại bảng chọn đờng, tất nhiên, sẽ chọn EI. Từ đó, hầu hết lu lợng giữa hai nửa sẽ tập trung trên đờng EI. Đến lần đánh giá, chọn đờng sau, CF lại đợc chọn. Vậy là, bảng chọn đ- ờng liên tục thay đổi, mạng hoạt động không hiệu quả.

2.4.2.4 Thông báo trạng thái liên kết.

Mạng đợc miêu tả một cách chính xác thông qua các thông báo trạng thái liên kết - LSA (Link State Advertisement). Mỗi LSA sẽ mang thông tin về một phần nhỏ của mạng xung quanh một node. Thông thờng, LSA của một node chứa những thông tin sau:

♦ Tên, hoặc mã nhận dạng của node đó. ♦ Danh sách các link nối tới node đó. ♦ Cost của mỗi link.

♦ Node (hoặc một phần của mạng có thể quy thành một node) nối với đầu kia của mỗi link.

♦ Các dịch vụ, ứng dụng mà node đó cung cấp.

Hình 2.16 Mạng ví dụ

Ví dụ, với mạng nh Hình 2.16 , sẽ có cơ sở dữ liệu nh Hình 2.17. Cơ sở dữ liệu này đợc tạo thành từ 5 LSA (tơng ứng với 5 node). Nhìn vào LSA tơng ứng với node A, ta thấy: node A nối với ba link. Link thứ nhất nối A với B và có cost bằng 4. Link thứ

hai có cost bằng 3 nối với node C. Và link thứ ba có cost bằng 1 nối A với E. Thêm nữa, LSA của node A còn cho thấy node này có cung cấp dịch vụ cho Application 1.

Sau khi có đợc LSA của tất cả các node khác, cùng với LSA của mình tạo ra, mỗi node sẽ biết đợc mọi thông tin về cấu hình kết nối, trạng thái kết nối... của mạng. Các thông tin này sẽ đợc sử dụng để tính toán chọn đờng.

Hình 2.17 Thông báo trạng thái liên kết LSA

Thông thờng, một LSA còn chứa thêm nhiều thông tin khác nh:

Số thứ tự (Sequence Number): Khi trong mạng tồn tại nhiều LSA do cùng một node tạo ra, số thứ tự của LSA sẽ đợc dùng để chọn ra LSA mang thông tin mới nhất. ♦ Tuổi (Age) của LSA: Giá trị này đợc dùng để kiểm tra xem LSA còn có giá trị nữa

hay không.

Checksum: Dùng để kiểm tra lỗi trong khi truyền LSA trên mạng hoặc khi lu LSA trong bộ nhớ.

Ngoài ra, trong các giao thức khác nhau, LSA còn có thể có các trờng mang các thông tin chi tiết hơn, ví dụ nh: cost của link cho các dịch vụ khác nhau, tình trạng tắc nghẽn của node...

Ta thấy, việc tạo các LSA khá đơn giản. Nhng vấn đề là ở chỗ khi nào thì tạo LSA. Cách thứ nhất là tạo chúng một cách định kỳ, cứ sau một khoảng thời gian xác định sẽ thực hiện. Cách thứ hai là tạo các LSA mỗi khi trong mạng có một sự thay đổi đáng kể nh khi link, hoặc node thay đổi khả năng hoạt động: đang hoạt động tốt thì hỏng hoặc ngợc lại.

Khi phân phát các LSA, yêu cầu đặt ra là phải nhanh, và đủ tin cậy. Thông thờng, ngời ta sử dụng phơng pháp tràn lụt. Một node khi phát đi các LSA, số thứ tự sẽ đợc tăng dần lên. Mỗi node sẽ lu giữ một bản danh sách các cặp giá trị (node, số thứ tự). Khi một node nhận đợc một LSA, nó sẽ kiểm tra số thứ tự của LSA này, nếu lớn hơn so với số thứ tự lu trong bản danh sách đó, nó sẽ cập nhật cơ sở dữ liệu trạng thái liên kết của mình, đồng thời chuyển tiếp theo tất cả các link nối với nó ngoại trừ link mà qua đó LSA đợc chuyển tới. Trờng hợp ngợc lại, LSA sẽ đợc bỏ qua.

Việc sử dụng số thứ tự trong các LSA cũng gặp phải một số rắc rối:

♦ Thứ nhất, nếu việc tăng dần số thứ tự dẫn đến tràn số, hoạt động của mạng sẽ bị rối loạn. (Tràn số là điều tất yếu xảy ra khi tăng số lên vợt quá phạm vi biểu diễn của máy tính, ví dụ khi biểu diễn số tự nhiên bằng 8 bit, ta chỉ có thể có giá trị lớn nhất là 255; sau khi cộng thêm 1 vào số này, kết quả thu đợc sẽ là 0). Vấn đề này có thể đợc giải quyết bằng cách sử dụng nhiều bit để biểu diễn số thứ tự. Ví dụ, nếu sử dụng số thứ tự 32 bit, và với chu kỳ phát LSA là 1s thì phải sau 136 năm mới xảy ra tràn số.

♦ Thứ hai, nếu một node bị hỏng, nó sẽ bị mất giá trị số thứ tự hiện tại của mình. Nếu nó lại bắt đầu từ 0, tất cả các LSA nó phát đi sẽ không có giá trị. Vấn đề này có thể đợc giải quyết bằng cách: node sau khi bị hỏng và hoạt động trở lại, sẽ gửi yêu cầu tới tất cả các node khác trong mạng reset lại cặp giá trị (node, số thứ tự) t- ơng ứng.

Để tăng độ tin cậy khi flooding, tất cả các node đều phải gửi thông tin báo nhận khi nó nhận đợc một LSA, dù LSA đó mang thông tin cũ hay mới. Nếu hai node lân cận gửi cùng một LSA cho nhau thì không cần phải báo nhận. Một node sau khi gửi LSA mà cha đợc báo nhận thì sẽ tiếp tục gửi LSA sau mỗi khoảng thời quy định cho tới khi nhận đợc báo nhận.

Ví dụ, với mạng Hình 2.16 ở trên, giả sử node A gửi LSA của mình đi, quá trình flooding sẽ diễn ra nh sau:

♦ Đầu tiên, A gửi LSA của mình cho các node B, C và E.

♦ B, C và E thấy các LSA mới nhận đợc mang thông tin mới, sẽ cập nhật vào cơ sở dữ liệu của mình, và gửi báo nhận về A. Sau đó, B sẽ truyền LSA này cho D, C truyền cho D và E, còn E thì truyền cho C và D.

♦ LSA chuyển giữa C và E đợc ngầm hiểu là báo nhận. ở D, giả sử nhận đợc LSA từ C trớc tiên, sẽ gửi LSA cho B và E, và gửi báo nhận cho C. Và D cũng ngầm coi các LSA chuyển đến từ B và E là báo nhận.

♦ Các LSA nhận đợc ở B và E từ D cũng đợc ngầm hiểu là báo nhận.

Để giảm lợng tài nguyên mạng bị chiếm bởi flooding, các LSA sẽ giảm thiểu kích thớc bằng cách chỉ chứa các thông tin về những thay đổi trong mạng.

2.4.2.6 Tính toán chọn đờng.

Sau khi node đã có cơ sở dữ liệu đầy đủ, nó sẽ thực hiện việc tính toán chọn đ- ờng. Nh đã nói, hầu hết các giao thức chọn đờng theo trạng thái liên kết đều sử dụng thuật toán SPF để tính toán tìm đờng ngắn nhất. Mỗi link sẽ có hai giá trị cost tơng ứng do hai node ở hai đầu gửi đến. Thuật toán SPF có thể sử dụng cả hai giá trị này, mỗi giá trị cho một hớng, cũng có thể sử dụng giá trị trung bình cho cả hai hớng.

Khi ứng dụng giao thức định tuyến Link-state cần chú ý các đặc điểm sau:

♦ Hầu hết các giao thức định tuyến Link-state yêu cầu về tốc độ xử lý và bộ nhớ của Router nhằm lu trữ thông tin topo mạng và chạy thuật toán SPF

♦ Khi mới khởi động các phần tử trong mạng (router) yêu cầu một lợng băng thông lớn. Tuy nhiên khi mạng ổn định thì lại yêu cầu băng thông thấp cho thông tin định tuyến

2.4.2.7 So sánh Link-State và Distance-vector

Distance-vector Link-state

Nhận thức về tình trạng mạng thông qua router kế cận

Các router có cái nhìn gióng nhau về mạng thông qua trao đổi LSA

Cộng thêm khoảng cách theo từng chặng Tính toán đờng đi ngắn nhất độc lập Update đều đặn theo khoảng thời gian

cho trớc

Cập nhật theo sự kiện (mới hoạt động hoặc thay đổi trạng thái)

Chia sẻ thông tin định tuyến cho các router kế cận

Chia sẻ thông tin định tuyến cho tất cả các router trong mạng

Hình 2.18 So sánh Link State và Distance - vector

♦ Giao thức distance-vector nhận biết cấu trúc mạng thông qua việc trao đổi bảng định tuyến giữa các router kế cận. Trong khi đó link-state nhận biết thông qua việc tiếp nhận các LSA cần thiết

♦ Việc tính toán Metric trong distance-vector là việc cộng gộp. Link-state tính toán Metric từ topo mạng và thuật toán SPF

♦ Distance-vector trao đổi thông tin định theo một chu kỳ nhất định dù có dù không có sự thay đổi cấu trúc mạng

♦ Thông tin định tuyến của distance-vector là toàn bộ nội dung trong thực thể đị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 83 - 89)

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

(113 trang)
w