Phần này mô tả một vài thuật toán lựa chọn đƣờng dẫn, thứ có thể đƣợc sử dụng để tạo ra các tuyến đƣờng có khả năng đảm bảo chất lƣợng dịch vụ dựa trên các sự thỏa hiệp khác nhau giữa độ chính xác, độ phức tạp tính toán, và không bị ràng buộc của việc thực thi.
3.2.1.1. Các thông số
Nhƣ đã nêu ở trên, quá trình lựa chọn một đƣờng dẫn mà có thể thỏa mãn các yêu cầu QoS của một luồng lƣu lƣợng mới dựa vào cả hai hiểu biết về các yêu cầu và các đặc điểm của luồng lƣu lƣợng đó, và thông tin về sự sẵn có của nguồn tài nguyên trong mạng. Ngoài ra, điều cũng rất quan trọng đối với thuật toán là tính toán tổng số lƣợng tài nguyên tiêu thụ để hỗ trợ một luồng lƣu lƣợng mới. Nhìn chung, mạng ƣa lựa chọn “giá thấp nhất” hơn trong số tất cả các đƣờng dẫn thích hợp cho một luồng lƣu lƣợng mới. Hơn nữa, mạng lƣới cũng có thể quyết định từ chối một luồng lƣu lƣợng mới khi mà chi phí cho đƣờng đi của
nó đƣợc cho là quá cao. Các vấn đề nhƣ vậy trong vùng chấp nhận cuộc gọi nhiều hơn trong vùng lựa chọn đƣờng dẫn, nhƣng việc cung cấp khả năng để tính toán cho các khía cạnh này ảnh hƣởng đến một vài số liệu mà các quá trình lựa chọn đƣờng dẫn dựa vào. Kết quả là, chúng ta xem xét các metric sau đây:
Băng thông khả dụng của liên kết: Đây là một tham số quan trọng, băng thông khả dụng của một liên kết liên quan đến dung lƣợng không sử dụng hay là dự phòng của liên kết đó trong 1 khoảng thời gian nhất định. Băng thông khả dụng phụ thuộc vào lƣu lƣợng đang có trên mạng tức là phụ thuộc vào độ chiếm dụng băng thông của lƣu lƣợng đang tồn tại trên mạng. Nhƣ vậy băng thông khả dụng thay đổi theo thời gian.
Tổng số chặng: Số lƣợng chặng này đƣợc sử dụng nhƣ số đo chi phí đƣờng dẫn tới mạng. Một đƣờng dẫn với một số lƣợng chặng nhỏ hơn (cái mà có thể hỗ trợ một kết nối đƣợc yêu cầu) là thích hợp hơn vì nó tiêu thụ ít tài nguyên mạng hơn.
Chính sách: Các chính sách đƣợc sử dụng để lƣợc bớt các liên kết mạng không tƣơng thích, sự thực thi hoặc mức độ mô tả đặc tính, với các nhu cầu của một luồng lƣu lƣợng. Việc sử dụng các chính sách để xử lý các yêu cầu cụ thể cho phép đơn giản hóa đáng kể trong việc tối ƣu hóa đƣợc thực hiện bằng các thuật toán lựa chọn đƣờng dẫn.
3.2.1.2. Các thuật toán lựa chọn đƣờng dẫn [13]
Có một vài hƣớng cho các thuật toán lựa chọn đƣờng dẫn. Các hƣớng chính gồm các tiêu chuẩn tối ƣu hóa mà việc chọn đƣờng dựa trên đó, topo chính xác mà trên đó nó tiến hành chọn và thời điểm nó đƣợc gọi tới. Nhƣ đã đề cập, việc gọi tới thuật toán lựa chọn đƣờng dẫn có thể là do luồng lƣu lƣợng hoặc do những thay đổi trong các trạng thái liên kết khi thuật toán sử dụng cho phép tính toán trƣớc các đƣờng dẫn. Topo mà trên đó thuật toán chạy đƣợc, nhƣ với việc lựa chọn đƣờng dẫn OSPF tiêu chuẩn, có thể là một sơ đồ có hƣớng trong đó đỉnh bao gồm các router và các mạng (các đỉnh chuyển tiếp) cũng nhƣ các stub-network (các đỉnh không chuyển tiếp). Khi tính toán một đƣờng dẫn, các stub-network đƣợc thêm vào nhƣ là một bƣớc xử lý bổ sung tƣơng tự nhƣ của thuật toán OSPF tiêu chuẩn.
Các tiêu chí tối ƣu hóa đƣợc sử dụng bởi việc lựa chọn đƣờng dẫn đƣợc phản ánh trong các chi phí liên quan đến mỗi giao diện trong topo và làm thế
nào các chi phí này đƣợc tính toán cho bản thân thuật toán. Nhƣ đã đề cập trƣớc đó, chi phí của đƣờng dẫn là một hàm của số lƣợng chặng và lƣợng băng thông khả dụng. Kết quả là, mỗi giao diện đƣợc gán một thông số tƣơng ứng với lƣợng băng thông vẫn còn có sẵn trên giao diện này. Thông số này đƣợc kết hợp với thông tin số lƣợng chặng để cung cấp một giá trị chi phí sử dụng trong thuật toán lựa chọn đƣờng dẫn. Việc nó đƣợc sử dụng nhƣ thế nào phụ thuộc vào dạng chính xác của thuật toán, nhƣng tất cả sự lựa chọn mô tả trong mục này chia sẻ một mục đích chung. Tất cả chúng nhằm mục đích chọn một đƣờng dẫn với số lƣợng chặng nhỏ nhất mà vẫn có thể hỗ trợ băng thông yêu cầu. Khi một vài đƣờng dẫn nhƣ vậy sẵn có, sự ƣu tiên dành cho đƣờng dẫn với băng thông khả dụng (nghĩa là giá trị nhỏ nhất trên bất kỳ liên kết nào trên đƣờng dẫn) là lớn nhất. Lý do cơ bản cho quy tắc trên là: ta tập trung vào những đƣờng dẫn khả thi (tính toán bởi thông số băng thông khả dụng) mà tiêu thụ một lƣợng tối thiểu các tài nguyên mạng (tính toán bởi thông số số lƣợng chặng); và quy tắc cho việc lựa chọn trong các đƣờng dẫn này nhằm mục tiêu cân bằng tải cũng nhƣ là hợp lý hóa tối đa băng thông yêu cầu sẽ thực sự có sẵn. Nó sẽ đƣợc đề cập đến trong một vài sự quan tâm cần thiết để đảm bảo một sự tƣơng ứng với các đỉnh trong cơ sở dữ liệu topo và số lƣợng chặng. Đó là bởi vì, nhƣ đã đề cập trƣớc đó, các mạng cũng tƣơng ứng với các đỉnh trong topo. Do đó, chúng đƣợc gắn kết với các cạnh nhƣng sẽ chỉ đƣợc tính nhƣ là một chặng. Vấn đề này có thể đƣợc xử lý dễ dàng thông qua việc sử dụng các cạnh zero-hop (chặng không) trong thuật toán. Cần lƣu ý rằng, các thuật toán định tuyến tiêu chuẩn thƣờng nhằm mục đích là tối ƣu hóa khách quan mục tiêu quy chuẩn riêng rẽ, tức là chúng có thể tối thiểu số lƣợng chặng, hoặc tối đa hóa băng thông đƣờng dẫn, nhƣng không phải là cả hai. Việc tối ƣu hóa đƣờng dẫn khách quan là một nhiệm vụ phức tạp hơn, và nói chung, nó là một vấn đề khó. Tuy nhiên, nhƣ chúng ta thấy, bởi vì bản chất cụ thể của hai mục tiêu là tối ƣu hóa, sự phức tạp của thuật toán đề xuất là tƣơng tự nhƣ là các thuật toán khách quan tiêu chuẩn riêng rẽ.
3.2.1.2.1. Thuật toán cho các đƣờng dẫn QoS đƣợc tính toán trƣớc chính xác
Trong phần này, ta mô tả một thuật toán lựa chọn đƣờng dẫn, thuật toán đƣa ra topo mạng và các thông số liên kết, cho phép chúng ta tính toán trƣớc tất cả các đƣờng dẫn QoS có thể, và cũng có độ phức tạp tính toán thấp hợp lý. Cụ thể, thuật toán cho phép chúng ta tính toán trƣớc cho bất cứ đích đến nào một đƣờng dẫn có tổng số chặng là tối thiểu với băng thông tối đa, và có một độ phức tạp tính toán có thể so sánh với độ phức tạp của một thuật toán đƣờng dẫn
ngắn nhất tiêu chuẩn. Các thuật toán lựa chọn đƣờng dẫn dựa trên thuật toán đƣờng dẫn ngắn nhất Bellman-Ford (BF), một thuật toán thích hợp để tính toán các đƣờng dẫn băng thông khả dụng lớn nhất cho tất cả các số chặng. Một đặc điểm của thuật toán BF chính là tại lần lặp lại thứ h của nó, nó xác định đƣờng dẫn giữa nguồn và mỗi đích tối ƣu hóa (chúng ta coi băng thông lớn nhất) trong số các đƣờng dẫn có tối đa h chặng. Vì vậy, chúng ta cũng tận dụng lợi thế là thuật toán BF xử lý bằng cách tăng số lƣợng chặng, để chủ yếu nhận đƣợc số chặng của một đƣờng dẫn nhƣ là một tiêu chí tối ƣu hóa thứ hai. Cụ thể, tại lần lặp lại thứ k của thuật toán, băng thông khả dụng tối đa cho tất cả các đích đến trên đƣờng dẫn không quá k chặng đƣợc ghi lại, cùng với các thông tin định tuyến tƣơng ứng. Sau khi thuật toán kết thúc, thông tin này cho phép chúng ta xác định tất cả các đích và các yêu cầu băng thông, đƣờng dẫn với số lƣợng chặng nhỏ nhất có thể và băng thông đủ để đáp ứng các yêu cầu mới. Hơn nữa, đƣờng dẫn này cũng là một đƣờng dẫn với một băng thông khả dụng lớn nhất trong tất cả các đƣờng dẫn khả thi với số chặng tối thiểu.
Bây giờ, chúng ta tiến hành với một mô tả chi tiết hơn của thuật toán và cấu trúc dữ liệu sử dụng để ghi lại thông tin định tuyến, nghĩa là: bảng định tuyến QoS đƣợc xây dựng khi thực hiện mã hóa giả cho thuật toán này. Nhƣ đã đề cập trƣớc đó, thuật toán này hoạt động trên một sơ đồ có hƣớng bao gồm chỉ các đỉnh chuyến tiếp (các bộ định tuyến và các mạng), với stub-networks rồi sau đó thêm vào đƣờng dẫn (hoặc các đƣờng dẫn) đƣợc tạo ra bởi thuật toán. Các số liệu kết hợp với mỗi cạnh của sơ đồ là băng thông sẵn có trên giao diện tƣơng ứng. Cho bn m, là băng thông khả dụng trên cạnh giữa các đỉnh n và m. Các đỉnh tƣơng ứng với router nơi mà thuật toán đang chạy, nghĩa là: các bộ định tuyến tính toán đƣợc ký hiệu là nút nguồn cho mục đích lựa chọn đƣờng dẫn. Thuật toán tiến hành tính toán trƣớc các đƣờng dẫn từ nút nguồn với tất cả các mạng đích khả dụng và cho tất cả các giá trị băng thông khả dụng. Tại mỗi bƣớc lặp, kết quả trung gian đƣợc ghi lại vào một bảng định tuyến QoS, bảng này có cấu trúc nhƣ mô tả dƣới đây.
Bảng định tuyến QoS:
Một ma trận KH, với K là số lƣợng đích (các đỉnh trong sơ đồ) và H là số chặng tối đa cho phép (hoặc có thể ) cho một đƣờng dẫn.
Phần tử (n; h) đƣợc xây dựng trong suốt h bƣớc lặp (giá trị tính toán chặng) của thuật toán, và bao gồm hai trƣờng:
o b là băng thông khả dụng lớn nhất trên đƣờng dẫn của tối đa h
chặng giữa nút nguồn (router) và nút đích n
o Hàng xóm: đây là thông tin định tuyến kết hợp với đƣờng dẫn có h
(hoặc ít hơn) chặng đến đích nút n, băng thông khả dụng của nó là
b. Đặc tính cụ thể của thông tin này phụ thuộc vào phạm vi của đƣờng dẫn đƣợc lựa chọn, nghĩa là nó đơn giản là một chặng kế tiếp hoặc là một tuyến nguồn hoàn chỉnh theo lý thuyết. Trong cả hai trƣờng hợp, thông tin này đƣợc xây dựng và ghi nhận tại mỗi lần lặp của thuật toán, nhƣng nó nhận đƣợc khác nhau và sử dụng khác nhau.
Khi phạm vi của đƣờng dẫn đƣợc lựa chọn thì đơn giản là bƣớc kế tiếp, tức là việc lựa chọn đƣờng dẫn hop-by-hop, thông tin hàng xóm đơn giản là số nhận dạng của các nút liền kề với nút nguồn trên đƣờng dẫn đó. Theo một quy định, nút hàng xóm phải là một router và không phải là một mạng, ngoại lệ duy nhất là trƣờng hợp mạng là nút đích (và đƣờng dẫn đã chọn là cạnh riêng rẽ nối liền nguồn này đến nó)
Khi đƣờng dẫn đƣợc lựa chọn là một tuyến nguồn hoàn chỉnh, thì thông tin hàng xóm là router đứng trƣớc.
Tiếp theo, chúng ta cung cấp thêm các chi tiết về hoạt động của thuật toán này và làm thế nào các mục trong bảng định tuyến đƣợc cập nhật khi thuật toán tiến hành. Để đơn giản, đầu tiên chúng ta mô tả trƣờng hợp đơn giản hơn, mà ở đó tất cả các cạnh nhƣ là các chặng, và sau đó giải thích làm thế nào cạnh zero- hop đƣợc xử lý.
Khi thuật toán đƣợc gọi tới, đầu tiên bảng định tuyến đƣợc khởi tạo với tất cả các trƣờng b thiết lập là 0 và các trƣờng hàng xóm đƣợc xóa đi. Tiếp theo, các mục trong cột đầu tiên (tƣơng ứng với các đƣờng dẫn chặng) của các hàng xóm của bộ định tuyến tính toán đƣợc sửa đổi theo cách sau: trƣờng b
đƣợc thiết lập giá trị của băng thông khả dụng trên cạnh trực tiếp từ nguồn. Việc sửa đổi của trƣờng hàng xóm tùy thuộc vào phạm vi của sự lựa chọn đƣờng dẫn. Đối với việc định tuyến chặng kế tiếp, nó đƣợc thiết lập để nhận dạng hàng xóm của bộ định tuyến tính toán, nghĩa là router tiếp theo trên đƣờng dẫn lựa chọn. Đối với định tuyến nguồn, nó đƣợc thiết lập để tự nhận dạng bộ định tuyến tính toán (computing router). Sau đấy, thuật toán lặp lại cho tối đa H bƣớc lặp. H có thể hoặc là số chặng tối đa có thể của bất kỳ đƣờng dẫn nào, nghĩa là một giá trị
ẩn, hoặc nó có thể đƣợc thiết lập rõ ràng để giới hạn chiều dài đƣờng dẫn đến một số giá trị lớn nhất để điều khiển tốt hơn trong trƣờng hợp phức tạp nhất.
Tại bƣớc lặp thứ h, đầu tiên chúng ta sao chép cột h-1 tới cột h. Thêm nữa, thuật toán này giữ một danh sách các nút có thay đổi giá trị b của chúng trong lần lặp trƣớc đó, nghĩa là trong suốt bƣớc lặp thứ h-1, thuật toán sau đó xem xét mỗi liên kết (n; m) và kiểm tra băng thông khả dụng lớn nhất trên một đƣờng dẫn h chặng tới nút m, với chặng cuối cùng của nút m chính là liên kết đó. Tổng số này để lấy số nhỏ nhất giữa trƣờng b trong mục vào (n; h-1) và giá trị metric liên kết bn m, giữ trong cơ sở dữ liệu topo. Nếu giá trị này cao hơn giá trị hiện tại của trƣờng b trong mục vào (m;h), thì sau đó một đƣờng dẫn tốt hơn (có giá trị b lớn hơn) đƣợc tìm thấy cho đích m và với h bƣớc nhảy. Trƣờng b
của mục vào (m;h) sau đó đƣợc cập nhật để mang lại giá trị mới. Trong trƣờng hợp định tuyến chặng kế tiếp, trƣờng hàng xóm của mục vào (m;h) đƣợc thiết lập tới giá trị nhƣ trong mục vào (n;h-1). Điều này ghi lại định danh của chặng đầu tiên (tiếp theo chặng từ nguồn) trên đƣờng dẫn tốt nhất đƣợc nhận biết cho đích đến n và với h chặng (hoặc ít hơn h). Trong trƣờng hợp định tuyến nguồn, trƣờng hàng xóm của mục vào (m;n) đƣợc thiết lập để nhận dạng nút n. Điều này ghi lại định danh của bƣớc nhảy trƣớc đó trên đƣờng dẫn tốt nhất đƣợc nhận biết cho đích m và với h chặng (hoặc ít hơn). Điều này cho phép xây dựng đệ quy định tuyến nguồn hoàn chỉnh đơn giản bằng cách lần tìm ngƣợc từ mục vào tới mục vào trong bảng.
Chúng ta kết thúc mục này bằng việc mô tả các cạnh zero-hop đƣợc xử lý nhƣ thế nào. Tại mỗi bƣớc lặp h, khi nào một mục vào (m;h) đƣợc sửa đổi, thì nó đƣợc kiểm tra xem liệu có các cạnh giá bằng không zero-cost (m;k) xuất hiện từ nút m, trong trƣờng hợp m là một mạng chuyển tiếp. Trong trƣờng hợp đó, ta cố gắng để cải thiện mục vào của nút k, nút mà tƣơng ứng với chặng thứ h, tức là: mục vào (k;h) khi cạnh (m;k) không tính là một chặng bổ sung, nhƣ với hoạt động thƣờng xuyên của thuật toán. Các số này để lấy số nhỏ nhất giữa trƣờng b
trong mục vào (m; h), và giá trị metric liên kết bm k, giữ trong cơ sở dữ liệu topo. Nếu giá trị này cao hơn giá trị hiện tại của trƣờng b trong mục vào (k;h), sau đó trƣờng b của mục vào (k;h) đƣợc cập nhật giá trị mới. Trong trƣờng hợp định tuyến chặng kế tiếp, trƣờng hàng xóm của mục vào (k;h) đƣợc thiết lập, nhƣ thƣờng lệ, tới giá trị tƣơng tự nhƣ trong mục (m;h) (cũng là giá trị trong mục (n;h-1)). Trong trƣờng hợp của định tuyến nguồn, trƣờng hàng xóm của mục vào
(k; h) đƣợc thiết lập để nhận dạng nút n. Điều này ghi lại định danh của router trƣớc đó trên đƣờng dẫn đã nhận dạng.
3.2.1.2.2. Thuật toán cho việc tính toán theo yêu cầu của các đƣờng dẫn QoS [1]
Trong phần trƣớc, chúng ta mô tả một thuật toán cho phép tính toán trƣớc các tuyến đƣờng QoS, và nó là có thể khả thi trong một số trƣờng hợp. Ví dụ, thay vì hạn chế số lƣợng các yêu cầu cho các tuyến đƣờng QoS có thể thực hiện các tính toán theo yêu cầu, tức là dựa vào mỗi khi nhận một yêu cầu cho một tuyến đƣờng QoS. Lợi ích của cách tiếp cận nhƣ vậy là tùy thuộc vào sự tính toán lại thƣờng xuyên của các tuyến đƣờng đã tính toán trƣớc, sự tính toán các tuyến đƣờng theo yêu cầu có thể mang lại các tuyến đƣờng tốt hơn bằng cách sử dụng các metric liên kết sẵn có gần nhất. Một lợi ích khác của việc tính toán đƣờng dẫn theo yêu cầu là tiết kiệm bộ nhớ, nghĩa là, không cần phải có một