Thuật toán chọn đường theo hạ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ó 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 lặp lại, 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 lặp lại để xác định cost.
Cũng có thể làm cho cost của mỗi link phụ thuộc cả vào lưu lượng của link. Neu muốn phụ thuộc vào lưu lượng, khi tính thời gian truyền gói lặp lại, 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 phu thuộc cả vào lưu lượng có cái lợi là thông tin sẽ truyền đi theo đường ít bị tắc nghẽn.
Tuy nhiên, cũng có lúc cách này dẫn đến là mạng hoạt động không hiệu quả như trong hình 1.9.
Mạng được chia thành hai phần Đông, Tây. Hai nửa này được kết nối 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 lưu lượng giữa hai nửa sẽ tập trung trên đường EI. Đen lần đánh giá, chọn đường sau, CF lại được chọn. Vậy là, bảng chọn đường lại được thay đổi liên tục, mạng hoạt động không hiệu quả.
Hình 1.9. Mạng ví dụ trạng thái tắc nghẽn I.4.5.4. Thông báo trạng thái liên kết
Mạng được miêu tả bằng cách chính xác thông qua các thông báo trạng thái liên kết. 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 của node đó cung cấp.
Ví dụ, với mạng như hình 1.10, sẽ có cơ sở dữ liệu như hình 1.11. 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 3 link. Link thứ nhất nối vớ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ằngl nối vớ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!.
Hình 1.10. Mạng ví dụ cung cấp ứng dụng
Hình 1.11. Thông báo tong thái liên kết - LSA
Sau khi có được LSA của tất cả các node khác, cùng YỚ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.
Thông thường một LSA còn chứa thêm nhiều thông tin khác như:
• Số thứ tự: Khi ứong 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 của LSA: Giá trị này được dùng để liểm to xem LSA còn có giá trị nữa hay không.
• Kiểm to lỗi: Dùng để kiểm to lỗi trong khi truyền LSA trên mạng hoặc khi lưu LSA trong bộ nhớ.
Ngoài ra, trong các giao thức khác nhau, LSA còn có thể các trường mang các thông tin chi tiết hon, 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 ra LSA khá đom giản. Nhưng 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.