Giao thức phân phối nhãn được IETF đưa ra trong RFC 3036. Vị trí của giao thức LDP và các mối liên kết chức năng cơ bản của LDP với các giao thức khác thể hiện trên hình 3.7.
Hình 3.7. Vị trí giao thức LDP trong bộ giao thức MPLS
Giao thức phân bổ nhãn là một thiết lập các thủ tục bởi một LSR cho biết một LSR khác nhãn sử dụng để chuyển hướng lưu lượng giữa và qua chúng. LDP có thể hoạt động giữa các LSR kết nối trực tiếp hay không được kết nối trực tiếp. Các LSR sử dụng LDP để hoán đổi thông tin ràng buộc FEC và nhãn được gọi là các thực thể đồng cấp LDP, chúng hoán đổi thông tin này bằng việc xây dựng các phiên LDP.
LDP định nghĩa 4 loại bản tin đó là: Bản tin thăm dò, Bản tin phiên, Bản tin phát hành, Bản tin thông báo. Bốn loại bản tin này cũng nói lên chức năng mà nó thực hiện.
- Bản tin thăm dò (Discovery): Dùng để thông báo và duy trì sự có mặt của một LSR trong mạng. Theo định kỳ, LSR gửi bản tin Hello qua cổng UDP với địa chỉ Multicast của tất cả các bộ định tuyến trên mạng con.
- Bản tin phiên (Session): Dùng để thiết lập, duy trì, và xoá các phiên giữa các LSR. Hoạt động này yêu cầu gửi các bản tin Initialization trên TCP. Sau khi hoạt động này hoàn thành các LSR trở thành các đối tượng ngang cấp LDP.
- Bản tin phát hành (Advertisement): Dùng để tạo, thay đổi và xoá các ràng buộc nhãn với các FEC. Những bản tin này cũng mang trên TCP. Một LSR có thể yêu cầu 1 ánh xạ nhãn từ LSR lân cận bất cứ khi nào nó cần. Nó cũng phát hành các ánh xạ nhãn bất cứ khi nào nó muốn một đối tượng ngang cấp LDP nào đó sử dụng ràng buộc nhãn.
- Bản tin thông báo (Notification): Dùng để cung cấp các thông báo lỗi, thông tin chẩn đoán, và thông tin trạng thái. Những bản tin này cũng mang trên TCP.
Thủ tục LSR lân cận của LDP chạy trên UDP và thực hiện như sau (hình 3.8).
- Một LSR định kỳ gửi bản tin Hello tới tất cả giao diện của nó. Những bản tin này được gửi trên UDP, với địa chỉ Multicast của tất cả bộ định tuyến trên mạng con.
- Tất cả các LSR tiếp nhận bản tin Hello này trên cổng UDP. Như vậy, tại một thời điểm nào đó LSR sẽ biết được tất cả các LSR khác mà nó có kết nối trực tiếp.
- Khi LSR nhận biết được địa chỉ của LSR khác bằng cơ chế này thì nó sẽ thiết lập kết nối TCP đến LSR đó.
- Khi đó phiên LDP được thiết lập giữa 2 LSR. Phiên LDP là phiên hai chiều có nghĩa là mỗi LSR ở hai đầu kết nối đều có thể yêu cầu và gửi ràng buộc nhãn.
Đa số các bản tin LDP chạy trên giao thức TCP để đảm bảo độ tin cậy của các bản tin (ngoại trừ bản tin thăm dò).
Trong trường hợp các LSR không kết nối trực tiếp trong một mạng con, người ta sử dụng một cơ chế bổ sung như sau:
LSR định kỳ gửi bản tin Hello trên UDP đến địa điạ chỉ IP đã được khai báo khi lập cấu hình. Phía nhận bản tin này có thể trả lời lại bằng bản tin Hello khác truyền ngược lại đến LSR gửi và việc thiết lập các phiên LDP được thực hiện như trên.
Hình 3.8. Thủ tục phát hiện LSR lân cận
Như phần đầu đã trình bày có 4 kiểu bản tin cơ bản được sử dụng trong giao thức phân phối nhãn LDP, các bản tin thông dụng là: Bản tin khởi tạo (Initialization), Bản tin giữ đường (KeepAlive), Bản tin gán nhãn (Label Mapping), Bản tin giải phóng (Release), Bản tin Thu hồi nhãn (Label Withdraw), Bản tin yêu cầu (Request), Bản tin huỷ bỏ yêu cầu (Request Abort).
Dạng bản tin (Initialization): Các bản tin thuộc loại này được gửi khi bắt đầu một phiên LDP giữa 2 LSR để trao đổi các tham số, các tuỳ chọn cho phiên. Các tham số này bao gồm:
- Chế độ phân bổ nhãn.
- Các giá trị bộ định thời.
Cả 2 LSR đều có thể gửi các bản tin Initialization và LSR nhận sẽ trả lời bằng KeepAlive nếu các tham số được chấp nhận. Nếu có một tham số nào đó không được chấp nhận thì LSR trả lời thông báo có lỗi và phiên kết thúc.
Dạng bản tin (KeepAlive): Các bản tin KeeepAlive được gửi định kỳ khi không có bản tin nào được gửi để đảm bảo cho mỗi thành phần LDP biết rằng thành phần LDP khác đang hoạt động tốt. Trong trường hợp không xuất hiện bản tin KeepAlive hay một số bản tin khác của LDP trong khoảng thời gian nhất định thì LSR sẽ xác định đối phương hoặc kết nối bị hỏng và phiên LDP bị dừng.
Dạng bản tin (Label Mapping): Các bản tin Label Mapping được sử dụng để quảng bá liên kết giữa FEC (Prefix điạ chỉ) và nhãn. Bản tin Label Withdrawal thực hiện quá trình ngược lại: Nó được sử dụng để xoá bỏ liên kết vừa thực hiện. Bản tin này được sử dụng khi có sự thay đổi trong bảng định tuyến (thay đổi Prefix địa chỉ) hay thay đổi trong cấu hình LSR làm tạm dừng việc chuyển nhãn các gói trong FEC đó.
Dạng bản tin (Label Release): Bản tin này được sử dụng bởi LSR khi nhận được chuyển đổi nhãn mà nó không cần thiết nữa. Điều đó thường xảy ra khi LSR giải phóng nhận thấy nút tiếp theo cho FEC đó không phải là LSR quảng bá liên kết nhãn/FEC đó. Trong chế độ hoạt động gán nhãn theo yêu cầu từ phía trước, LSR sẽ yêu cầu gán nhãn từ LSR lân cận phía trước sử dụng bản tin Label Request. Nếu bản tin Label Request cần phải huỷ bỏ trước khi được chấp nhận (do nút kế tiếp trong FEC yêu cầu đã thay đổi), thì LSR yêu cầu sẽ loại bỏ yêu cầu với bản tin Label Request Abort.
Tiêu đề bản tin LDP: Mỗi một bản tin LDP được gọi là đơn vị dữ liệu giao thức PDU, được bắt đầu bằng tiêu đề bản tin và sau đó là các bản tin LDP như đã trình bày trên đây. Hình 3.9 chỉ ra các trường chức năng của tiêu đề LDP và các trường này thực hiện các chức năng sau:
Hình 3.9. Tiêu đề LDP
Phiên bản: Số phiên bản của giao thức, hiện tại là phiên bản 1.
Độ dài PDU: Tổng độ dài của PDU tính theo Octet, không tính trường phiên bản và trường độ dài.
Nhận dạng LDP: Nhận dạng không gian nhãn của LSR gửi bản tin này. Bốn Octet đầu tiên chứa địa chỉ IP được gán cho LSR: Nhận dạng bộ định tuyến. Hai Octet cuối nhận dạng không gian nhãn bên trong LSR. Với LSR có không gian nhãn lớn, trường này có giá trị bằng 0.
Khuôn dạng bản tin LDP: tất cả các bản tin LDP có khuôn dạng sau:
Hình 3.10. Khuôn dạng các bản tin LDP
- Bit U: Bít bản tin chưa biết. Nếu bit này bằng 1 thì nó không thể được thông dịch bởi phía nhận, lúc đó bản tin bị bỏ qua mà không có phản hồi.
- Kiểu bản tin: Chỉ ra kiểu bản tin là gì.
- Chiều dài bản tin: Chỉ ra chiều dài của các phần nhận dạng bản tin, các thông số bắt buộc, và các thông số tuỳ chọn.
- Nhận dạng bản tin: Là một số nhận dạng duy nhất bản tin. Trường này có thể được sử dụng để kết hợp các bản tin thông báo với một bản tin khác.
3.3.2.Giao thức RSVP