Giao thức CR-LDP được sử dụng để điều khiển cưỡng bức LDP. Giao thức này là phần mở rộng của LDP cho quá trình định tuyến cưỡng bức của LSP. Cũng giống như LDP, nó sử dụng các phiên TCP giữa các LSR đồng cấp để gửi các bản tin phân phối nhãn.
• Khái niệm định tuyến cưỡng bức
Về cơ bản chúng ta có thể định nghĩa định tuyến cưỡng bức như sau. Một mạng có thể được biểu diễn đưới dạng sơ đồ theo V và E G(V,E) trong đó V là tập hợp các nút mạng và E là tập hợp các kênh kết nối giữa các nút mạng. Mỗi kênh sẽ có các đặc điểm riêng. Đường kết nối giữa nút thứ nhất đến nút thứ hai trong cặp phải thoả mãn một số điều kiện cưỡng bức. Tập hợp các điều kiện cưỡng bức này được coi là các đặc điểm của các kênh và chỉ có nút đầu tiên trong cặp đóng vai trò khởi tạo đường kết nối mới biết các đặc điểm này. Nhiệm vụ của định tuyến cưỡng bức là tính toán xác định đường kết nối từ nút này đến nút kia sao cho đường này không vi phạm các điều kiện cưỡng bức và là một phương án tối ưu theo một tiêu chí nào đó (số nút ít nhất hoặc
đường ngắn nhất). Khi đã xác định được một đường kết nối thì định tuyến cưỡng bức sẽ thực hiện việc thiết lập, duy trì và truyền trạng thái kết nối dọc theo các kênh trên đường.
Điểm khác nhau chính giữa định tuyến IP truyền thống và định tuyến cưỡng bức đó là: thuật toán định tuyến IP truyền thống chỉ tìm ra đường tối ưu ứng với một tiêu chí (ví dụ như số nút nhỏ nhất); trong khi đó thuật toán định tuyến cưỡng bức vừa tìm ra một đường tối ưu theo một tiêu chí nào đó đồng thời phương án đó phải không vi phạm điều kiện cưỡng bức. Yêu cầu không vi phạm các điều kiện cưỡng bức là điểm khác nhau cơ bản để phân biệt giữa định tuyến cưỡng bức và định tuyến thông thường. Trên đây chúng ta đã đề cập đến việc tìm đường không vi phạm các điều kiện cưỡng bức, tiếp theo chúng ta sẽ tìm hiểu thế nào là các điều kiện cưỡng bức.
Một điều kiện cưỡng bức phải là điều kiện giúp ta tìm ra một đường có các tham số hoạt động nhất định, độ rộng băng tần khả dụng của kênh truyền là một yếu tố quan trọng trong việc định tuyến cưỡng bức. Ngoài ra điều kiện cưỡng bức cũng có thể là việc quản trị. Ví dụ như một nhà quản trị mạng muốn ngăn không cho một lưu lượng loại nào đó không được đi qua một số kênh nhất định trong mạng, trong đó các kênh được xác định bởi các đặc điểm cụ thể. Cũng giống như điều kiện cưỡng bức là khả năng của kênh, điều kiện cưỡng bức là quản trị ứng với các đường khác nhau cũng có thể có các điều kiện cưỡng bức là quản trị khác nhau. Ví dụ như đối với một cặp nút, đường từ nút thứ nhất trong cặp tới nút thứ hai có thể bao gồm một tập hợp kênh có một số đặc điểm nhất định bị loại ra, trong khi đối với một cặp khác thì lại có một tập kênh khác bị loại ra
Định tuyến cưỡng bức có thể kết hợp cả hai điều kiện cưỡng bức là quản lý và tính năng của kênh chứ không nhất thiết là chỉ một trong hai điều kiện. Ví dụ như định tuyến cưỡng bức phải tìm ra đường vừa phải có một độ rộng băng tần nhất định vừa phải loại trừ một số kênh có đặc điểm nhất định.
• Các phần tử định tuyến cưỡng bức
Để một hệ thống định tuyến IP có thể hỗ trợ định tuyến cưỡng bức, nó phải thoả mãn các đặc điểm sau:
- Khả năng tính toán và xác định đường tại phía nguồn.
- Khả năng phân phối thông tin về cấu trúc mạng và đặc điểm các kênh tới tất cả các nút trong mạng.
- Hệ thống phải hỗ trợ định tuyến hiện.
Tài nguyên mạng có thể dự phòng và các thông số của kênh có thể thay đổi được khi truyền lưu lượng tương ứng trên tuyến.
• Điều kiện cưỡng bức "chọn đường ngắn nhất"
Như đã đề cập ở trên, định tuyến cưỡng bức phải tính toán xác định được đường thoả mãn các điều kiện sau:
- Là tối ưu theo một tiêu chí nào đó (ví dụ như đường ngắn nhất hoặc số nút ít nhất)
Một trong cách thoả mãn tiêu chí tối ưu là sử dụng thuật toán “trước tiên là đường ngắn nhất” (SPF). Thuật toán SPF trong định tuyến IP đơn giản, việc tính toán xác định đường phải tối ưu theo một tiêu chí nào đó (ví dụ như khoảng cách). Vì vậy để tính toán xác định đường không vi phạm các điều kiện cưỡng bức chúng ta cần sửa đổi thuật toán sao cho nó tính đến các điều kiện cưỡng bức. Chúng ta hãy xem xét một thuật toán loại này đó là: điều kiện cưỡng bức “chọn đường ngắn nhất” (CSPF).
Về tổng quát, thủ tục kiểm tra xem kênh có thoả mãn một điều kiện cưỡng bứ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 cưỡng bứ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 cưỡng bức; chỉ khi thoả mãn chúng ta mới kiểm tra nút W ở đầu kia của kênh.
Để kiểm tra kênh có thoả mãn một điều kiện cưỡng bứ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 có liên quan đến điều kiện cưỡng bức. Ví dụ như khi điều kiện cưỡng bứ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.
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à các 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 1-27. Chúng ta giả sử rằng độ dài tất cả các kênh đều bằng nhau và có 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à 45 Mb/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 100 Mb/s. Ở đây điều kiện cưỡng bứ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 ở 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à 100 Mb/s. Kết luận không kênh nào vi phạm điều kiện cưỡng bứ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 một vòng của thuật toán.
Vòng thứ 2 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 cưỡng bứ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 đườ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 nút cạnh nút LSR3 là nút LSR5. 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 (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 cưỡng bứ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, LSR5) 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 kể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 cưỡng bứ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ứ 4 của thuật toán.
Tại vòng thứ 5 của thuật toán, ta kể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 cưỡng bứ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 cử” 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ó chứa 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).
CR-LDP là giao thức mở rộng từ LDP (RFC 3212) nhằm hỗ trợ đặc biệt cho định tuyến ràng buộc, kỹ thuật lưu lượng (TE) và các hoạt động dự trữ tài nguyên. Các khả năng của CR-LDP tuỳ chọn bao gồm thương lượng các tham số lưu lượng như cấp phát băng thông, thiết lập và cầm giữ quyền ưu tiên.