Trao đổi thông điệp LDP thực hiện bằng cách gởi các LDP-PDU (Protocol Data Unit) thông qua các phiên LDP trên kết nối TCP. Mỗi LDP-PDU có thể mang một hoặc nhiều thông điệp, và các thông điệp này không nhất thiết phải có liên quan với nhau.
2.3.2.1 LDP và PDU
Hình 2-10: LDP Header
PDU Length (2 octet): số nguyên chỉ chiều dài của PDU theo octet, không tính trường Version và PDU Length. LDP Identifier (6 octet): xác định không gian nhãn được cấp phát. Bốn octet đầu là giá trị duy nhất toàn cục nhận dạng LSR, như địa chỉ IP (router ID) được gán cho LSR. Hai octets sau xác định một không gian
nhãn bên trong LSR. Hai octets này được set về 0 cho không gian nhãn “per-
platform”.
2.3.2.2 Định dạng thông điệp LDP
Tất cả các thông điệp LDP có cùng format như sau:
Hình 2-11: LDP Message
- Bit U: Bit “Unknown”, luôn là 0 vì đặc tả LDP không có kiểu bản tin Unknown.
Message ID đôi khi được dùng để liên kết một số bản tin với các bản tin khác, ví dụ một bản tin đáp ứng sẽ có cùng Message ID với bản tin yêu cầu tương
ứng. Các tham số bắt buộc và tùy chọn phụ thuộc vào các loại bản tin được gửi, chúng thường dùng kiểu mã hóa TLV (Type-Length-Value) . Nói chung, mọi thứ
xuất hiện trong một thông điệp LDP có thểđược mã hóa kiểu TLV, tuy nhiên đặc tả
LDP không phải lúc nào cũng sử dụng lược đồ TLV.
Message Length : Chiều dài của các trường sau Message Length tính theo octet (gồm Message ID, các tham số bắt buộc và tùy chọn).
Bảng 2-2: Các loại bản tin LDP
Tên bản tin Giá trị Message Type
Notification 0x0001 Hello 0x0100 Initialization 0x0200 Keepalive 0x0201 Address 0x0300 Address Withdraw 0x0301 Label Mapping 0x0400 Label Request 0x0401 Label Release 0x0403 Label Withdraw 0x0402
Label Abort Request 0x0404
2.3.2.3 Mã hóa LTV
LDP sử dụng lược đồ mã hóa kiểu - độ dài - giá trịđể mã hóa thông tin mang trong bản tin LDP.
Hình 2-12: Mã hóa LTV
- Bit U: "Unknown" bit - Bit F: forward unknown bit
- Type(14bit): Mã hóa để trường Value có thể hiểu được - Length(2 octets): Xác định độ dài của trường Value
- Value(octets): Chuỗi octets của trường độ dài có nhiệm vụ mã hóa thông tin
TLV được mã hóa thành một trường 2 octets sử dụng 14 bit đặc trưng cho kiểu, và 2 bit dự phòng cho trường hợp LSR không nhận ra được kiểu, 2 octets tiếp theo là trường độ dài và một trường giá trị có độ dài thay đổi.
Khi nhận được bit U có giá trị 0, LSR sẽ gửi thông báo ngược lại tới nơi phát và toàn bộ bản tin sẽ được bỏ qua. Nếu U có giá trị 1 thì mặc dù không nhận ra kiểu, LSR không cần gửi thông báo và vẫn xử lý phần còn lại của bản tin.
Bít F được sử dụng khi bit U được lập và bản tin không nhận dạng được kiểu
đã được truyền đi, nếu bit F bằng 0 thì TLV không nhận dạng sẽ không chuyển đi cùng bản tin và ngược lại.
Dưới đây là các tùy chọn cho tham số của TLV:
Bảng 2-3: Bảng tùy chọn cho tham số của TLV
100 FEC 101 Address List 103 Hop Count 104 Path Vector 200 Generic Label 201 ATM Label
202 Frame Relay Label
300 Status
301 Extended Status
302 Returned PDU
303 Returned Message
400 Common Hello Parameter
401 Trasnpors Address
402 Configuration Sequence Number
500 Common Session Parameters
501 ATM Session Parameters
502 Frame Relay Session Parameters
600 Label Request Message ID