组网 LDP报文格式
LDP消息头部格式
为保证LDP消息的可靠发送,除Discovery(Hello)消息使用UDP(端口646)外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP(端口646)传输。
LDP协议消息头部格式以下(PDU,协议数据单元,每一个LDPPDU有个LDP消息头,后面随着一个或多个LDP消息内容)。
字段长度说明
Version2字节表示版本号。目前LDP的版本号始终为1。
PDULength2字节表示PDU的总长度,包括LDPID和整组LDP消息,不包括Version和PDULength字段。
例如某个LDP报文中包括3个Hello消息,则该报文的PDUlength=3*Messagelength。
LSRID4字节LDRID标识一台LSR,一定要全局唯一。
LaberSpaceID2字节标识了LSR内的标签空间。对平台范围标签空间,这些数值都应当为0。
Bunchofmessages变长是一组LDP消息的集合,可以是一个还是多个LDP消息。
当LDP报文以UDP方式传输时,“Bunchofmessages”只能是Hello消息的集合。
当LDP报文以TCP方式传输时,“Bunchofmessages”可以是除Hello消息外任意类型的LDP消息的集合。
LDP消息格式
所有LDP消息的格式以下:
字段长度说明
U1比特未知的消息。
如果对端收到的LDP消息中“Messagetype”字段为未知的LDP消息类型,且“U”字段的值为“0”,则向源端发送通知(Notification)消息。
如果对端收到的LDP消息中“Messagetype”字段为未知的LDP消息类型,且“U”字段的值为“1”,则疏忽该未知消息。
MessageType15比特LDP消息的类型。
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
MandatoryParameters变长LDP消息的强迫参数。
OptionalParameters变长LDP消息的可选参数,包括0~n个TLV。
通告(Notification)消息
LSR发送通告消息来通知重要事件到LDP对等体。通告消息通知致命毛病或提供咨询信息,如处理LDP消息的结果或LDP会话的状态。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
StatusTLV变长标识一个事件。
OptionalParameters变长可选参数,包括0~n个TLV。
Hello消息
用于通告和保护网络中LSR的存在。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
HoldTime16比特保持时间,以秒为单位的Hello保持时间。LSR保护来自潜伏同伴的Hello的记录。为0的数值意味着使用缺省值。0xffff的数值意味着无穷大。
T1比特T(TargetedHello)值为1表示为远端Hello消息,值为0表示本地Hello消息。
R1比特R(RequestSendTargetedHellos)值为1表示要求接收者周期性发送远端Hello消息给该Hello的发送源端,值为0表示没有此需求。
Reserved14比特保存字段,一定要置0,接收端疏忽此字段。
OptionalParameters变长可选参数,包括0~n个TLV。
Initialization消息
LDP的Initialization消息在LDP回家建立阶段发送,格式以下:
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
ProtocolVersion16比特表示协议版本号=1。
KeepAliveTime16比特TCP连接的保持时间,这个定时器的刷新其实不是收到KeepAlive消息才会刷新,而是通过TCP连接收到的LDPPDU时都会刷新
A1比特表明标签分配方式(0=DU;1=DoD)
D1比特表明是否是使能了环路检测功能(0=Disable;1=Enable)。
Reserved6比特保存字段,一定要置0,接收端疏忽此字段。
PVLim8比特PVLim(PathVectorLimit),LSP支持的最大跳数(只有在使能了Loopdetection功能时有效,默许值为32)。
MaxPDULength16比特LDPPDU的最大长度,默许值为4096字节。
ReceiverLDPIdentifier6字节Initialization消息的接收者的LDP标识符(LDPID)。
OptionalParameters变长可选参数,包括0~n个TLV。
KeepAlive消息
Keepalive消息无MandatoryParameters字段及后面的字段,用于保护SESSION的状态,所以这里不需要甚么特别的内容,只要对方知道自己还存在就好。
地址(Address)消息
Address消息用于LSR发送地址消息到LDP邻居,以公告其接口地址。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
AddressFamily16比特地址族编号。
Addresses变长指定地址族的地址列表,格式取决于地址族类型:
IPv4地址为4字节
IPv6地址为16字节
OptionalParameters变长可选参数,包括0~n个TLV。
地址撤消(AddressWithdraw)消息
LSR发送AddressWithdraw消息到LDP对等体,以撤消之前公告的接口地址。当接口地址被删除或接口down后,就会发送AddressWithdraw消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
AddressFamily16比特地址族编号。
Addresses变长指定地址族的地址列表,格式取决于地址族类型:
IPv4地址为4字节
IPv6地址为16字节
OptionalParameters变长可选参数,包括0~n个TLV。
LabelMapping消息
对特定的FEC,下游使用LabelMapping消息为上游分配标签。
LabelMapping消息均由下游发往上游节点,LabelMapping消息的发送方式因标签分配方式还是标签控制方式的不同而不同:
DU模式下:下游无需等待上游的LabelRequest消息可以直接为某FEC向上游LDP邻居发送LabelMapping消息;
DoD模式下:下游一定要等待上游的LabelRequest消息才能为指定的FEC向上游LDP邻居发送LabelMapping消息;
Independent模式下:中间节点无需等待收到下游为指定FEC发送的LabelMapping消息后才向它的上游LDP邻居发送LabelMapping消息;
Order模式下:中间节点一定要等待收到下游为指定FEC发送的LabelMapping消息后才能向它的上游LDP邻居发送LabelMapping消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FECElement1toFECElementn每一个Element1字节表明该标签是为哪一个FEC而分配的。
FECElement的格式定义:
Type=0x01:反掩码。只在LabelWithdraw和LabelRelease消息中使用。
Type=0x02:前缀。
LabelTLV52比特表明下游为该FEC分配了甚么标签。
Label字段是个20比特的标签值。
OptionalParameters变长可选参数,包括0~n个TLV。
LabelRequest消息
LSR发送LabelRequest消息给LDP对等体要求FEC对应的标签。
LabelRequest消息只能由作为Ingress的LSR发起,不能由作为Transit的LSR发起(Order+dod)。下游收到LabelRequest消息后需要向上游返回LabelMapping消息,LabelMapping消息中携带LabelRequest消息中的MessageIDTLV。
以下情况下,下游收到LabelRequest消息后不会向上游返回LabelMapping消息:
下游找不到与LabelRequest中FECTLV中对应的路由,此时返回NoRoute的Notification消息;
下游没有足够的标签来分配,此时返回NoLabelResource的Notification消息;
下游检测到有环路产生,此时返回LoopDetected的Notification消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FECElement1toFECElementn每一个Element1字节表明该标签是为哪一个FEC而分配的。
FECElement的格式定义:
Type=0x01:反掩码。只在LabelWithdraw和LabelRelease消息中使用。
Type=0x02:前缀。
OptionalParameters变长可选参数,包括0~n个TLV。
LabelAbortRequest消息
上游LSR发送了LabelRequest消息后但还没有收到LabelMapping消息前,发现FEC对应的下一跳变化了还是其他可能的缘由需要发送新的LabelRequest消息时,上游会向下游发送LabelAbortRequest消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FECElement1toFECElementn每一个Element1字节表明该标签是为哪一个FEC而废弃的。
FECElement的格式定义:
Type=0x01:反掩码。只在LabelWithdraw和LabelRelease消息中使用。
Type=0x02:前缀。
LabelRequestMessageIDTLV要被废弃的LabelRequest消息的消息ID。
OptionalParameters变长可选参数,包括0~n个TLV。
LabelWithdraw消息
LabelWithdraw消息一般由下游LSR发往上游LSR,通知上游LSR之前通告的与某FEC对应的Label不再使用,上游LSR需要消除Label和FEC的映照关系。
以下情况下会发送LabelWithdraw消息:
下游节点不再有某条FEC,如果已为该FEC发送了LabelMapping消息,则发送LabelWithdraw消息;
下游单方面的决定不再使用标签转发时也会发送LabelWithdraw消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FECElement1toFECElementn每一个Element1字节表明该标签是为哪一个FEC而撤消的。
FECElement的格式定义:
Type=0x01:反掩码。只在LabelWithdraw和LabelRelease消息中使用。
Type=0x02:前缀。
LabelTLV52比特表明该FEC对应的标签。
OptionalParameters变长可选参数,包括0~n个TLV。
LabelRelease消息
LabelRelease消息一般由上游发往下游,通知撤消Label和FEC的邦定,该消息相当于LabelRequest消息的逆进程。
在以下情况下会发送LabelRelease消息:
上游LSR的标签保持方式是守旧方式,发送LabelMapping消息的LSR不再是FEC的下一跳时,上游LSR需要发送LabelRelease消息来撤消Label和FEC的映照关系;
上游LSR的标签保持方式是守旧方式,从不是FEC的下一跳收到LabelMapping消息后,上游LSR需要发送LabelRelease消息;
LSR收到LabelWithdraw消息后需要发送LabelRelease消息。
字段长度说明
MessageLength16比特LDP消息的长度,是MessageID、强迫参数和可选参数的长度的总和。
MessageID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDPPDU中的TLV情势定义的.每一个LDPTLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FECElement1toFECElementn每一个Element1字节表明该标签对应的FEC。
FECElement的格式定义:
Type=0x01:反掩码。只在LabelWithdraw和LabelRelease消息中使用。
Type=0x02:前缀。
LabelTLV52比特图21LabelTLV的格式
OptionalParameters变长可选参数,包括0~n个TLV。
TikTok千粉号购买平台:https://tiktokusername.com/
TOP