Thuật toán tính toán đƣờng đi QoS xấp xỉ (Thuật toán

Một phần của tài liệu GIẢI PHÁP QoS TRONG MẠNG NGN (Trang 72)

tĩnh)

Thuật toán Dijkstra cho phép tính toán trước của các tuyến QoS cho tất cả các đích và các giá trị băng thông. Việc cho phép tính toán trước đường đi giúp giảm được sự tính toán. Tuy nhiên, bị mất chi phí trong độ chính xác của các đường đi đã được tính toán. Điều này có nghĩa là các đường đi có thể có số bước nhảy lớn hơn cần thiết. Sự mất mát này đến từ sự tin cậy vào giá trị băng thông đã lượng tử hoá mà được sử dụng khi tính toán một đường đi có số bước

nhảy tối thiểu. Nói cách khác, dải giá trị băng thông tích cực có thể được yêu cầu bởi một luồng mới đã được định sẵn trong một con số cố định của giá trị lượng tử hoá, và đường đi có số bước nhảy tối thiểu được tạo ra cho mỗi giá trị lượng tử hoá này. Sau đó, một luồng mới được chỉ đến đường đi có số bước nhảy tối thiểu có thể có giá trị lượng tử hoá nhỏ nhất lớn hơn hoặc bằng so với yêu cầu. Ví dụ, giả sử giá trị băng thông của đồ thị trong hình .... sau khi lượng tử hoá là 2,4,6 và 8. Các đường đi có số bước nhảy tối thiểu đến các đích được tính toán với mỗi giá trị trên. Một luồng mới với yêu cầu băng thông f=3 được chỉ ra với giá trị lượng tử hoá 4 mà đường đi có số bước nhảy tối thiểu được sử dụng. Cấu trúc của bảng định tuyến như sau:

 Một ma trận KxQ, K là số các đích và Q là số các giá trị băng thông lượng tử hoá.

 Mục (n,q) chứa thông tin để nhận dạng đường đi có số bước nhảy tối ưu đến đích n mà có khả năng cung cấp yêu cầu băng thông của bw[q] ít nhất (giá trị băng thông lượng tử hoá thứ q). Nó bao gồm 2 trường:

- hc (số bước nhảy): Số bước nhảy tối thiểu trên một đườgn đi giữa node nguồn và đích n mà có thể cung cấp yêu cầu của đơn vị băng thông bw[q] ít nhất.

- nb (hàng xóm): Đây là thông tin định tuyến kết hợp với đường đi có số bước nhảy tối thiểu đến đích node n mà có băng thông ít nhất là bw[q].

Các hoạt động của thuật toán trên đồ thị có hướng và metric kết hợp với mỗi cung (n,m) trên đồ thị là băng thông có thể b(n,m). Với mỗi chỉ số q, thuật toán xoá từ topo mạng gốc tất cả các kết nối (n,m) có b(n,m) < bw[q], và sau đó chạy trên topo hiện tại thuật toán số bước nhảy tối thiểu Dijkstra giữa node nguồn và tất cả các node khác trên đồ thị. Chú ý là khi thuật toán Dijkstra được sử dụng cho tính toán theo yêu cầu, sự loại trừ các kết nối có b(n,m) < bw[q] có thể được thực hiện trong khi chạy thuật toán.

Sau khi thuật toán kết thúc, cột thứ q trong bảng định tuyến được cập nhật. Để đảm bảo rằng đường đi với băng thông tối đa luôn luôn được chọn trong tất cả các đường đi có số bước nhảy tối thiểu, một bộ cập nhật nhỏ khác được sử dụng trong một vài trường hợp. Đặc biệt, khi đưa ra một dòng ( ví dụ đích node n) giá trị của trường số bước nhảy trong cột q được tìm ra từ gia trị trong cột

q+1 (ở đây chúng ta giả sử có cùng bước nhảy) sau đó thuật toán sao chép giá trị của các trường kế bên từ mục (n,q+1) vào mục (n,q).

Bảng sau đưa ra một ví dụ để miêu tả các mục của bảng định tuyến QoS ở mỗi sự lập lại của giá trị băng thông lượng tử hoá q=2 bàng việc sử dụng mô hình đồ thị trọng số trong bảng 2.3. Số lặ p lại U S Node đích

Node 2 Node 3 Node 4 Node 5 Node 6

hc nb hc nb hc nb hc nb H c nb 0 - 1,2,3,4,5,6  -  -  -  -  - 1 1 2,3,4,5,6 1 2 1 3  -  -  - 2 2 3,4,5,6 1 2 1 3 2 2  -  - 3 3 4,5,6 1 2 1 3 2 2  -  - 4 4 5,6 1 2 1 3 2 2  - 2 3 5 6 5 1 2 1 3 2 2 3 3 2 3 6 5 1 2 1 3 2 2 3 3 2 3

Bảng 2.3: Ví dụ miêu tả các mục của bảng định tuyến QoS

* Tính phức tạp tính toán

Các phương pháp được miêu tả ở trên dựa trên thuật toán Bellman-Ford hoặc thuật toán đường đi ngắn nhất Dijkstra. Thuật toán Dijkstra được xem xét đầy đủ hơn sự tính toán đường đi ngắn nhất chuẩn. Lợi nhuận của việc sử dụng thuật toán Dijkstra trong việc lựa chọn đường đi QoS lớn hơn so với sự thi hành của OSPF đã tồn tại. Sự tính toán đường đi theo yêu cầu của thuật toán Dijkstra cung cấp các tính năng tốt hơn và sự tối ưu hoá là cần thiết cho việc lưu trữ các cấu trúc dữ liệu nếu có yêu cầu cho đường đi QoS. Sự tính toán trước đường đi trong thuật toán Dijkstra giúp làm giảm được sự tính toán

nhưng lại là nguyên nhân làm mất độ chính xác của các đường đi được tính toán trước. Tiếp đó, một số sự cân nhắc được xem xét lại trong trường hợp đường đi QoS đa tiêu chuẩn, chúng khẳng định rằng phương pháp BF thường cung cấp một giải pháp tính toán đỡ phức tạp hơn.

Tính phức tạp tiệm cận trong trường hợp tồi nhất của việc thi hành một chuỗi nhị phân của thuật toán Dijkstra là O(E log V), trong đó V là số các đỉnh trên đồ thị và E là số lượng các cung. Giới hạn tiệm cận trường hợp tồi nhất của thuật toán BF là O(H E), trong đó H là số lần lặp lại lớn nhất của thuật toán và do vậy là giới hạn trên của số bước nhảy trong đường đi ngán nhất. Mặc dù về mặt lý thuyết H có thể lớn bằng V-1, trên thực tế thường nó nhỏ hơn V. Trong một số mạng thực tế, thuật toán BF đưa ra một giải pháp hiệu quả cho vấn đề đường đi ngắn nhất, và nó thường tốt hơn thuật toán Dijkstra.

Trong trường hợp chọn lựa đường đi QoS, lợi nhuận tiềm năng của thuật toán BF thậm chí còn rõ ràng hơn. Như đã đề cập ở trên, việc lựa chọn hiệu quả một đường đi phù hợp cho các luồng với QoS theo yêu cầu thường không thể được tính toán thủ công bằng việc sử dụng tiêu chuẩn tối ưu hoá mục tiêu đơn. Trong khi sự lựa chọn đường đi đa mục tiêu được biết đến là một vấn đề khó thì thuật toán BF cho phép chúng ta đưa ra một mục tiêu thứ 2, gọi là bước nhảy, được phản ánh bởi các tài nguyên mạng. Ngược lại, thuật toán Dijkstra yêu cầu một số sự thay đổi (hoặc sự xấp xỉ, ví dụ như là sự lượng tử hoá băng thông) để có thể thoả thuật với bước nhảy như là một mục tiêu thứ 2. Khi sự tính toán theo yêu cầu của các đường đi được thực hiện, thuật toán Dijkstra cung cấp một giải pháp chính xác để tính toán O(E log V). Nếu đường đi QoS được tính trước với giá trị băng thông tối ưu hoá Q, tính phức tạp tiệm cận trường hợp tồi nhất tương ứng là O(QE log V).

Một phần của tài liệu GIẢI PHÁP QoS TRONG MẠNG NGN (Trang 72)