chương 11 : Thuật toán định tuyến cưỡng bức Định tuyến cưỡng bức phải tính toán xác định đường đi thoả mãn các điều kiện sau: Tối ưu theo một tiêu chuẩn nào đó ví dụ đường ngắn nhất ho
Trang 1chương 11 : Thuật toán định tuyến
cưỡng bức
Định tuyến cưỡng bức phải tính toán xác định đường đi thoả mãn các điều kiện sau:
Tối ưu theo một tiêu chuẩn nào đó (ví dụ đường ngắn nhất hoặc số chặng ít nhất)
Thoả mãn các điều kiện ràng buộc
Thuật toán “đường ngắn nhất đầu tiên” (SPF) thường được
sử dụng để tìm đường tối ưu theo tiêu chuẩn nào đó Các mạng IP truyền thống sử dụng thuật toán này để tìm đường tối ưu theo tiêu chuẩn nào đó (chẳng hạn: số hop…) mà không tính tới các yếu tố
bổ sung như trễ, biến thiên trễ…Để thoả mãn cả các điều kiện ràng buộc thì thuật toán SPF cần phải thay đổi để bao gồm các điều kiện ràng buộc Thuật toán mới này gọi là SPF cưỡng bức (CSPF)
Trước hết chúng ta tìm hiểu hoạt đông của thuật toán SPF Thuật toán SPF hoạt động khởi đầu tại một nút được gọi là gốc và bắt đầu tính toán xây đường ngắn nhất ứng với gốc là nút đó Tại mỗi vòng của thuật toán sẽ có một danh sách các nút “ứng cử” không nhất thiết phải là ngắn nhất Tuy nhiên ứng với nút “ứng cử”
ở ngay kề nút gốc thì đường nối tới nút này phải là ngắn nhất Vì vậy tại mỗi vòng, thuật toán sẽ tách nút có đường ngắn nhất tới nút gốc từ danh sách nút “ứng cử” Nút này sẽ được bổ sung vào cây đường ngắn nhất, thì các nút không nằm trên cây đường ngắn nhất nhưng liền kề ngay nút này cũng được kiểm tra để bổ sung hoặc
Trang 2sửa đổi danh sách nút “ứng cử” Sau đó thuật toán lại được thực hiện lặp lại Trong trường hợp tìm đường ngắn nhất từ một gốc đến tất cả các nút khác trong mạng thì thuật toán sẽ dừng khi nào danh sách các nút “ứng cử” là rỗng Trong trường hợp tìm đường ngắn nhất từ một gốc đến một nút cụ thể thì thuật toán sẽ dừng lại khi nào nút đó được bổ sung vào cây đường ngắn nhất Thuật toán SPF
để tính toán xác định đường ngắn nhất từ nút SPF (nguồn) đến một
số nút (đích) có thể được mô tả dưới dạng các bước như sau:
Bước 1 (khởi tạo): Đặt danh sách các nút “ứng cử” bằng
rỗng Đặt cây đường ngắn nhất chỉ có gốc S Đối với mỗi nút liền kề gốc đặt độ dài đường bằng độ dài kênh giữa gốc và nút Đối với tất cả các nút khác, đặt độ dài này bằng vô cùng
Bước 2: Đặt tên nút bổ sung vào cây đường ngắn nhất là
V Đối với mỗi kênh nối vào nút này, kiểm tra các nút phía còn lại của kênh Đánh dấu các nút này là W
Bước 2a: Nếu như nút W này đã có trong danh sách
cây đường ngắn nhất thì kiểm tra tiếp với các kênh còn laị nối với nút V
Bước 2b: Trong trường hợp ngược lại (W không nằm
trong danh sách cây đường ngắn nhất) thì tính độ dài của đường nối từ gốc đến nút W ( độ dài này bằng tổng độ dài của đường nối từ gốc đến nút V cộng với độ dài từ nút V đến nút W) Nếu như W không nằm trong danh sách các nút “ứng cử” thì giá trị độ dài đường hiện thời lớn hơn giá trị độ dài đường mới tính và gán giá trị độ dài đường từ gốc đến nút W bằng độ dài mới tính
Trang 3 Bước 3: Trong danh sách nút “ứng cử”, tìm một nút với độ
dài đường ngắn nhất Bổ sung nút này vào cây đường ngắn nhất và xoá nút này khỏi danh sách nút “ứng cử” Nếu nút này là nút D thì thuật toán kết thúc và ta được cây đường ngắn nhất từ nút nguồn SPF đến nút đích D Nếu như nút này chưa phải là nút D thì quay trở lại bước 2
Từ các bước của thuật toán SPF đơn giản trên đây, chúng ta
dễ dàng sửa đổi nó trở thành CSPF Tất cả chúng ta phải làm đó là sửa đổi bước thực hiện bổ sung sửa đổi danh sách nút “ứng cử”
Cụ thể là bước 2, khi chúng ta kiểm tra các kênh nối với nút V, đối với mỗi kênh trước hết chúng ta kiểm tra xem kênh đó có thoả mãn điều kiện ràng buộc không? Chỉ khi điều kiện này được thoả mãn, sau đó chúng ta mới kiểm tra nút W ở đầu kia của kênh Thông thường chúng ta hay gặp bài toán tìm đường từ S đến D thoả mãn một số điều kiện ràng buộc là C1, C2,…, Cn, khi đó tại bước 2 chúng ta sẽ kiểm tra tất cả các kênh nối với nút V, đối với mỗi kênh trước hết chúng ta kiểm tra xem nó có thoả mãn điều kiện C1, C2, , Cn Chỉ khi kênh thoả mãn tất cả các điều kiện ràng buộc thì chúng ta mới kiểm tra nút W ở phía đầu kia của kênh
Về tổng quát, thủ tục kiểm tra xem kênh có thoả mãn một điều kiện ràng buộc cụ thể là đặc điểm của định tuyến cưỡng bức
Ví dụ như nếu điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng, khi đó chúng ta cần kiểm tra độ rộng băng tần khả dụng của kênh có lớn hơn một giá trị độ rộng băng tần được chỉ ra trong điều kiện ràng buộc; chỉ khi thoả mãn chúng ta mới kiểm tra nút W ở đầu kia của kênh
Trang 4Để kiểm tra kênh có thoả mãn một điều kiện ràng buộc cụ thể nào đó thì chúng ta phải biết trước các thông tin của kênh tương ứng có liên quan đến điều kiện ràng buộc Ví dụ như khi điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng thì thông tin cần có là độ rộng băng tần khả dụng của từng kênh
Hình 2.30 Ví dụ về CSPF
Lưu ý rằng thuật toán tính toán xác định đường sử dụng trong CSPF, yêu cầu bộ định tuyến thực hiện việc tính toán xác định đường phải có các thông tin về tất cả các kênh trong mạng Điều
đó có nghĩa là chỉ một số loại giao thức định tuyến có thể hỗ trợ định tuyến cưỡng bức đó là giao thức định tuyến theo trạng thái kênh (ví dụ như IS-IS, OSPF) Còn các giao thức định tuyến theo vector khoảng cách (ví dụ như RIP) không hỗ trợ định tuyến cưỡng bức
Để minh hoạ cho CSPF, chúng ta hãy xem xét ví dụ trên hình 2.30 Chúng ta giả sử rằng độ dài tất cả các kênh đều bằng nhau và
Trang 5có giá trị là 1 Chúng ta cũng giả sử rằng tất cả các kênh đều có độ rộng băng tần khả dụng là 150 Mb/s, ngoại trừ kênh nối từ LSR2 đến LSR4 có độ rộng băng tần khả dụng là 45Mb/s Nhiệm vụ của chúng ta là tìm đường từ LSR1 đến LSR6 sao cho có độ dài ngắn nhất và độ rộng băng tần khả dụng phải lớn hơn hoặc bằng 100Mb/s ở đây điều kiện ràng buộc cần thoả mãn là độ rộng băng tần khả dụng
Khởi đầu cây đường ngắn nhất (có gốc là LSR1) chỉ có nút LSR1 Tiếp theo chúng ta kiểm tra hai nút bên cạnh LSR1 đó là LSR2 và LSR3 với lưu ý rằng độ rộng băng tần khả dụng của kênh (LSR1-LSR2) và (LSR1-LSR3) đều lớn hơn giá trị cần thiết là 100Mb/s Kết luận không kênh nào vi phạm điều kiện ràng buộc,
vì vậy chúng ta bổ sung LSR2 và LSR3 vào danh sách “ứng cử” Tiếp theo chúng ta tìm nút có khoảng cách ngắn nhất đến LSR1 trong danh sách các nút “ứng cử” Nút này là LSR2 (ở đây cả hai nút LSR2 và LSR3 đều có khoảng cách như nhau đến LSR1 vì vậy
có thể chọn ngẫu nhiên là LSR2), chúng ta bổ sung nó vào cây đường ngắn nhất (LSR1, LSR2) và xoá nó khỏi danh sách các nút
“ứng cử” Kết thúc vòng một của thuật toán
Vòng thứ hai chúng ta kiểm tra nút cạnh nút LSR2 là LSR4 Với nút này chúng ta thấy rằng độ rộng băng tần khả dụng trên kênh (LSR2-LSR4) nhỏ hơn độ rộng băng tần yêu cầu Vì vậy kênh này không thoả mãn điều kiện ràng buộc và chúng ta không
bổ sung LSR4 vào danh sách nút “ứng cử” Chúng ta vẫn còn LSR3 trong danh sách nút “ứng cử”, vì vậy ta bổ sung nó vào cây
Trang 6đường ngắn nhất (LSR1, LSR3) và xoá nó khỏi danh sách “ứng cử” Kết thúc vòng thứ hai của thuật toán
Tại vòng thứ 3 của thuật toán, chúng ta kiểm tra cạnh nút LSR3 là nút LSR5 Với nút này chúng ta thấy độ rộng băng tần khả dụng trên kênh (LSR3-LSR5), lớn hơn độ rộng băng tần yêu cầu
Vì vậy kênh này thoả mãn điều kiện ràng buộc và ta bổ sung nó vào danh sách nút “ứng cử” Tiếp theo chúng ta tìm trong danh sách các nút “ứng cử” nút có khoảng cách ngắn nhất tới LSR1 là nút LSR5 Vì vậy ta bổ sung LSR5 vào cây đường ngắn nhất (LSR1, LSR3, LSR 5) và xoá LSR5 khỏi danh sách “ứng cử” Kết thúc vòng thứ 3 của thuật toán
Tại vòng thứ 4 của thuật toán, ta kiểm tra nút cạnh nút LSR5
là LSR4 Với nút này chúng ta thấy rằng độ rộng băng tần khả dụng trên kênh (LSR5-LSR4) lớn hơn độ rộng băng tần yêu cầu
Vì vậy kênh này thoả mãn điều kiện ràng buộc và ta bổ sung nó vào danh sách nút “ứng cử” Tiếp theo chúng ta tìm trong danh sách các nút “ứng cử” nút có khoảng cách ngẵn nhất tới LSR1 là nút LSR4 Vì vậy ta bổ sung LSR5 vào cây đường ngắn nhất (LSR1, LSR3, LSR5, LSR4) và xoá LSR4 khỏi danh sách “ứng cử” Kết thúc vòng thứ tư của thuật toán
Tại vòng thứ 5 của thuật toán, ta kiểm tra nút cạnh nút LSR5
là LSR6 và LSR7 Với nút này chúng ta thấy rằng độ rộng băng tần khả dụng trên các kênh (LSR4-LSR6) và (LSR4-LSR7) lớn hơn độ rộng băng tần yêu cầu Vì vậy kênh này thoả mãn điều kiện ràng buộc và ta bổ sung LSR6 và LSR7 vào danh sách nút “ứng cử” Tiếp theo chúng ta nhận thấy rằng trong danh sách các nút “ứng
Trang 7cử” cú nỳt LSR6 cú khoảng cỏch ngắn nhất tới LSR1 Vỡ vậy ta bổ sung LSR6 vào cõy đường ngắn nhất (LSR1, LSR3, LSR5, LSR4, LSR6) và xoỏ LSR6 khỏi danh sỏch “ứng cử” Tại đõy chỳng ta nhận thấy cõy đường ngắn nhất đó cú nỳt LSR6 là nỳt đớch của đường cần tỡm Vỡ vậy thuật toỏn kết thỳc ở đõy Kết quả đường ngắn nhất tử LSR1 đến LSR6 là (LSR1, LSR3, LSR5, LSR4, LSR6) Chỳng ta cú thể nhận thấy đường này khỏc với đường được xỏc định theo thuật toỏn SPF cú thể là (LSR1, LSR2, LSR4, LSR6)
Cỏc bản tin và cỏc TLV sử dụng trong CR
Bản tin yêu cầu nhãn
0 Kiểu Yêu cầu
nhãn
Độ dài bản tin
Nhận dạng bản tin TLV FEC Nhận dạng LSP TLV (CR-LDP, bắt
buộc)
Định tuyến hiện TLV (CR-LDP, tùy
chọn) TLV L-u l-ợng (CR-LDP, tùy chọn) TLV Cố định (CR-LDP, tùy chọn) TLV Lớp tài nguyên (CR-LDP, tùy
Trang 8chọn) TLV Quyền -u tiên (CR-LDP, tùy
chọn)
Trong đó:
Một số tr-ờng đã đ-ợc định nghĩa trong giao thức LDP
Bản tin yêu cầu nhãn bao gồm một phần tử TLV-FEC duy nhất Tuy nhiên, các TLV khác đ-ợc sử dụng trong LDP có thể dùng để thay thế cho một ứng dụng nào đó
Các thông số tùy chọn bao gồm các định nghĩa của bất kỳ các TLV c-ỡng bức nào đ-ợc chỉ ra trong phần giao thức
Bản tin ràng buộc nhãn
0 Kiểu Ràng buộc
nhãn
Độ dài bản tin
Nhận dạng bản tin TLV FEC TLV Nhãn TLV Nhận dạng bản tin yêu cầu nhãn TLV Nhận dạng LSP (CR-LDP, tùy
chọn) TLV L-u l-ợng (CR-LDP, tùy chọn)
Hình 2.31 Bản tin yêu cầu nhãn
Trang 9Hình 2.32 Bản tin ràng buộc nhãn Bản tin thông báo
0 Kiểu Thông
báo
Độ dài bản tin
Nhận dạng bản tin TLV Trạng thái Các thông số tùy chọn
Hình 2.33 Bản tin thông báo Các bản tin hủy bỏ, thu hồi và giải phóng: các bản tin này
giống nh- các bản tin t-ơng ứng sử dụng nh- trong LDP
TLV tuyến hiện (ER-TLV)
Tuyến hiện là một chuỗi cụ thể các b-ớc từ LSR lối vào tới LSR lối ra Một tập hợp các node có thể đ-ợc trình diễn đơn giản là một node trừu t-ợng, ví dụ sử dụng tiền tố địa chỉ LSP phải định tuyến tới một vài node bên trong node trừu t-ợng này nh- là chặng tiếp theo Tuyến có thể chứa một vài chặng trong node trừu t-ợng này tr-ớc khi hiện ra tới node tiếp theo đ-ợc chỉ rõ trong tuyến hiện Một tuyến hiện cũng có thể chứa một vài nhận dạng của một
hệ thống tự quản Điều này cho phép LSP đ-ợc định tuyến qua một vùng mạng mà bên ngoài sự điều khiển quản lý của ng-ời khởi tạo LSP Tuyến cũng có thể chứa một vài chặng trong hệ tự trị này tr-ớc khi hiện ra tới node tiếp theo đ-ợc chỉ rõ trong tuyến hiện
Trang 10Một tuyến hiện có thể đ-ợc phân loại thành chặt và không chặt Tuyến chặt chỉ chứa các node, các node trừu t-ợng và hệ tự trị đ-ợc chỉ rõ trong tuyến hiện và phải sử dụng nó theo thứ tự đã cho Tuyến không chặt phải bao gồm tất cả các chặng đã chỉ rõ và phải duy trì theo thứ tự nh-ng cũng có thể thêm vào các chặng khi cần thiết để đ-a ra chặng đã chỉ rõ
ER-TLV là một đối t-ợng chỉ ra tuyến đ-ợc mang khi LSP
đang đ-ợc thiết lập Nó gồm một hoặc nhiều TLV chặng tuyến hiện
Kiểu Chặng tuyến
hiện
Độ dài
Chặng tuyến hiện 1 Chặng tuyến hiện 2
………
Chặng tuyến hiện n
Hình 2.34 ER-TLV
Kiểu: Tr-ờng 14 bit mang giá trị của ER-TLV, ở đây
Type=0x0800
Độ dài : chỉ rõ độ dài tr-ờng giá trị tính theo byte
TLV chặng tuyến hiện (ER-Hop TLV)
Nội dung của ER-TLV là một loạt các TLV ER-Hop độ dài khác nhau Một node nhận một bản tin yêu cầu nhãn bao gồm kiểu chặng ER mà không đ-ợc hỗ trợ thì node không bắt buộc phải đ-a
Trang 11bản tin này tới LSR đ-ờng xuống và bắt buộc phải gửi trả một bản tin thông báo “không có tuyến”
Mỗi TLV ER-Hop có dạng sau:
L Kiểu ER-Hop Độ dài
Nội dung
Hình 2.35 TLV ER-Hop
Kiểu ER-Hop: một tr-ờng 14 bit mang kiểu của nội dung
ER-Hop Hiện tại nó đ-ợc địng nghĩa nh- sau:
0x0801 Tiền tố IPv4 0x0802 Tiền tố IPv6 0x0803 Số hệ thống tự
trị 0x0804 Nhận dạng LSP
Độ dài: chỉ rõ độ dài của tr-ờng giá trị tính theo byte
Bit L: bit L trong ER-Hop là một giá trị thuộc tính một bit
Nếu bit L đ-ợc lập thì giá trị thuộc tính là không chặt Ng-ợc lại, giá trị thuộc tính sẽ là chặt Để cho gọn, ta nói giá trị thuộc tính của Hop là không chặt thì nó là ER-Hop không chặt Ng-ợc lại nó là ER-ER-Hop chặt Ta gọi node
định danh của một CR-Hop là chặt hay không chặt tùy theo chặng t-ơng ứng Các node chặt và không chặt luôn luôn
Trang 12đ-ợc giải thích liên quan đến các node trừu t-ợng về tr-ớc của nó Các tuyến giữa một node chặt và node tr-ớc đó của
nó bắt buộc chỉ chứa các node mạng từ node chặt và node trừu t-ợng về tr-ớc của nó
Tuyến giữa một node không chặt và node tr-ớc đó có thể chứa các node mạng khác mà không phải là một phần của node chặt hay node trừu t-ợng về tr-ớc của nó
Nội dung: Một tr-ờng có độ dài thay đổi gồm một node
hay một node định danh là một trong những node liên tiếp nhau mà tạo nên LSP định tuyến hiện
TLV tham số l-u l-ợng
Một TLV tham số l-u l-ợng đ-ợc sử dụng để đánh dấu các giá trị thông số l-u l-ợng TLV thông số l-u l-ợng chứa một tr-ờng cờ, một tr-ờng tần số, một tr-ờng trọng số và 5 tr-ờng tham
số l-u l-ợng PDR, PBS, CDR, CBS, EBS
0 0 Kiểu Tham số l-u
l-ợng
Độ dài
Tốc độ dữ liệu đỉnh (PDR) Kích cỡ burst lớn nhất (PBS) Tốc độ dữ liệu cam kết (CDR) Kích cỡ burst cam kết (CBS)
Trang 13Kích cỡ burst v-ợt quá (EBS)
Hình 2.36 TLV tham số l-u l-ợng
Kiểu: là một tr-ờng 14 bit chứa giá trị kiểu TLV thông số
l-u l-ợng là 0x0810
Độ dài: chỉ độ dài của tr-ờng giá trị tính theo byte,=24
Cờ: tr-ờng cờ đ-ợc biểu diễn nh- sau:
Res – các bit dự trữ, là 0 trong truyền dẫn và bị bỏ qua ở phía thu
F1 - T-ơng ứng với PDR
F2 - T-ơng ứng với PBS
F3 - T-ơng ứng với CDR
F4 - T-ơng ứng với CBS
F5 - T-ơng ứng với EBS
F6 - T-ơng ứng với trọng số
Mỗi cờ Fi là cờ có thể thỏa thuận cho một thông số l-u l-ợng nào đó Giá trị 0 của các cờ này tức là thông số t-ơng ứng không thể thỏa thuận và giá trị 1 tức có thể thỏa thuận
Tần số: tr-ờng tần số đ-ợc mã hóa thành một số nguyên 8
bit không dấu với các mã nh- sau:
0- không xác định
1- th-ờng xuyên
Trang 142- rất th-ờng xuyên
3-255 - dự trữ
Tần số đặc tả về bản chất CDR (tốc độ cam kết) đ-ợc cung cấp cho CR-LDP để có thể sử dụng Giá trị rất th-ờng xuyên có nghĩa là tốc độ khả dụng trung bình ít nhất đạt đ-ợc bằng CDR khi đo trong bất cứ khoảng thời gian nào lớn hơn hoặc bằng thời gian gói ngắn nhất tại CDR Giá trị th-ờng xuyên có nghĩa là tốc độ khả dụng trung bình ít nhất có thể đạt đến bằng CDR khi đo trong bất cứ khoảng thời gian nào lớn hơn hoặc bằng một số l-ợng nhỏ các khoảng thời gian gói ngắn nhất tại CDR
Trọng số: một số nguyên không dấu 8 bit chỉ thị trọng số
của CR-LDP Giá trị trọng số hợp lệ là từ 1 tới 255 giá trị
0 có nghĩa là trọng số không đ-ợc cung cấp cho CR-LDP Trọng số quyết định các sự chia sẻ t-ơng đối băng thông quá hạn có thể của CR-LSP trên tốc độ cam kết của nó
Các tham số l-u l-ợng: mỗi tham số l-u l-ợng đ-ợc mã
hóa thành một số 32 bit đơn IEEE, dạng dấu phẩy động chính xác Các giá trị PDR và CDR đ-ợc tính theo đơn vị byte/s Các giá trị PBS, CBS và EBS đ-ợc tính theo byte Giá trị của PDR phải lớn hơn hoặc bằng giá trị của CDR trong TLV thông số l-u l-ợng đ-ợc mã hóa chính xác
Tốc độ đỉnh Tốc độ đỉnh định nghĩa tốc độ tối đa
mà tại đó l-u l-ợng có thể đ-ợc gửi tới CR-LDP Tốc độ
đỉnh đựơc dùng cho mục đích cấp phát tài nguyên Nếu việc cấp phát tài nguyên trong miền MPLS phụ thuộc vào