3.2. Các cơ chế thực hiện mở rộng QoS cho OSPF
3.2.1. Các thuật tốn và thơng tin lựa chọn đường dẫn
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 tố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 tốn là tính tố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 tố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 u cầu) là thích hợp hơn vì nó tiêu thụ ít tài ngun 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 tốn trước các đường dẫn. Topo mà trên đó thuật tố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 tố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 tốn cho bản thân thuật tố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 tố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 tố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 tố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 tố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 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 tố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 tố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 tốn trước chính xác
Trong phần này, ta mơ tả một thuật tố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 tốn trước tất cả các đường dẫn QoS có thể, và cũng có độ phức tạp tính tốn thấp hợp lý. Cụ thể, thuật toán cho phép chúng ta tính tố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 tố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 tốn thích hợp để tính tố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 tố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 tố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 tố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 tốn này. Như đã đề cập trước đó, thuật tố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 tố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 tốn
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 tố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 hồ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 tố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 tố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 tốn (computing router). Sau đấy, thuật toán lặp lại cho tối đa H bước lặp. H có
ẩ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 tố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 tốn cho việc tính tốn theo 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 tốn cho phép tính tố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 tố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 tốn lại thường xun của các tuyến đường đã tính tốn trước, sự tính tố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 tố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