设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 3287|回复: 2
收起左侧

[分享] MPLS LDP报文格式

[复制链接]
 成长值: 62305
发表于 2017-11-27 13:56:41 | 显示全部楼层 |阅读模式
本帖最后由 小乔 于 2017-11-27 13:57 编辑

网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)

MPLS LDP报文格式LDP消息头部格式
为保证LDP消息的可靠发送,除了Discovery(Hello)消息使用UDP(端口646)外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP(端口646)传输。
LDP协议消息头部格式如下(PDU,协议数据单元,每个LDP PDU有个LDP消息头,后面跟着一个或多个LDP消息内容)。
图1 LDP协议消息头部格式

                               
登录/注册后可看大图



字段长度说明
Version2字节表示版本号。目前LDP的版本号始终为1。
PDU Length2字节
表示PDU的总长度,包括LDP ID和整组LDP消息,不包括Version和PDU Length字段。
例如某个LDP报文中包含3个Hello消息,则该报文的PDU length = 3 * Message length。
LSR-ID4字节LDR-ID标识一台LSR,必须全局唯一。
LaberSpace ID2字节标识了LSR内的标签空间。对于平台范围标签空间,这些数值都应当为0。
Bunch of messages变长是一组LDP消息的集合,可以是一个或者多个LDP消息。
  • 当LDP报文以UDP方式传输时,“Bunch of messages”只能是Hello消息的集合。
  • 当LDP报文以TCP方式传输时,“Bunch of messages”可以是除Hello消息外任意类型的LDP消息的集合。


LDP消息格式
所有LDP消息的格式如下:
图2 LDP消息格式

                               
登录/注册后可看大图



字段长度说明
U1比特
未知的消息。
  • 如果对端收到的LDP消息中“Message type”字段为未知的LDP消息类型,且“U”字段的值为“0”,则向源端发送通知(Notification)消息。
  • 如果对端收到的LDP消息中“Message type”字段为未知的LDP消息类型,且“U”字段的值为“1”,则忽略该未知消息。
Message Type15比特LDP消息的类型。
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Mandatory Parameters变长LDP消息的强制参数。
Optional Parameters变长LDP消息的可选参数,包含0~n个TLV。


通告(Notification)消息
LSR发送通告消息来通知重要事件到LDP对等体。通告消息通知致命错误或提供咨询信息,如处理LDP消息的结果或LDP会话的状态。
图3 Notification消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Status TLV变长标识一个事件。
Optional Parameters变长可选参数,包含0~n个TLV。


Hello消息
用于通告和维护网络中LSR的存在。
图4 Hello消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Hold Time16比特保持时间,以秒为单位的Hello保持时间。LSR维护来自潜在同伴的Hello的记录。为0的数值意味着使用缺省值。0xffff的数值意味着无穷大。
T1比特T(Targeted Hello)值为1表示为远端Hello消息,值为0表示本地Hello消息。
R1比特R(Request Send Targeted Hellos)值为1表示请求接收者周期性发送远端Hello消息给该Hello的发送源端,值为0表示没有此需求。
Reserved14比特保留字段,必须置0,接收端忽略此字段。
Optional Parameters变长可选参数,包含0~n个TLV。


Initialization消息
LDP的Initialization消息在LDP回家建立阶段发送,格式如下:
图5 Initialization消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Protocol Version16比特表示协议版本号 = 1。
KeepAlive Time16比特TCP连接的保持时间,这个定时器的刷新并不是收到KeepAlive消息才会刷新,而是通过TCP连接收到的LDP PDU时都会刷新
A1比特表明标签分配方式 ( 0 = DU ;1 = DoD)
D1比特表明是否使能了环路检测功能(0 = Disable ; 1 = Enable)。
Reserved6比特保留字段,必须置0,接收端忽略此字段。
PVLim8比特PVLim (Path Vector Limit),LSP支持的最大跳数(只有在使能了Loop detection功能时有效,默认值为32)。
Max PDU Length16比特LDP PDU的最大长度,默认值为4096字节。
Receiver LDP Identifier6字节Initialization消息的接收者的LDP标识符(LDP ID)。
Optional Parameters变长可选参数,包含0~n个TLV。


KeepAlive消息
Keepalive消息无Mandatory Parameters字段及后面的字段,用于维护SESSION的状态,所以这里不需要什么特别的内容,只要对方知道自己还存在就好。
图6 KeepAlive消息格式

                               
登录/注册后可看大图


地址(Address)消息
Address消息用于LSR发送地址消息到LDP邻居,以公告其接口地址。
图7 Address消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Address Family16比特地址族编号。
Addresses变长指定地址族的地址列表,格式取决于地址族类型:
  • IPv4地址为4字节
  • IPv6地址为16字节
Optional Parameters变长可选参数,包含0~n个TLV。


地址撤销(Address Withdraw)消息
LSR发送Address Withdraw消息到LDP对等体,以撤销之前公告的接口地址。当接口地址被删除或接口down后,就会发送Address Withdraw消息。
图8 Address Withdraw消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Address Family16比特地址族编号。
Addresses变长指定地址族的地址列表,格式取决于地址族类型:
  • IPv4地址为4字节
  • IPv6地址为16字节
Optional Parameters变长可选参数,包含0~n个TLV。


Label Mapping消息
对于特定的FEC,下游使用Label Mapping消息为上游分配标签。
Label Mapping消息均由下游发往上游节点,Label Mapping消息的发送方式因标签分配方式或者标签控制方式的不同而不同:
  • DU模式下:下游无需等待上游的Label Request消息可以直接为某FEC向上游LDP邻居发送Label Mapping消息;
  • DoD模式下:下游必须等待上游的Label Request消息才能为指定的FEC向上游LDP邻居发送Label Mapping消息;
  • Independent模式下:中间节点无需等待收到下游为指定FEC发送的Label Mapping消息后才向它的上游LDP邻居发送Label Mapping消息;
  • Order模式下:中间节点必须等待收到下游为指定FEC发送的Label Mapping消息后才能向它的上游LDP邻居发送Label Mapping消息。
图9 Label Mapping消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FEC Element 1 to FEC Element n每个Element 1字节
表明该标签是为哪个FEC而分配的。
FEC Element的格式定义:
  • Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用。
  • Type = 0x02: 前缀。
    格式如下:
    图10 前缀FEC Element的格式

                                   
    登录/注册后可看大图

Label TLV52比特
表明下游为该FEC分配了什么标签。
图11 Label TLV的格式

                               
登录/注册后可看大图

Label字段是个20比特的标签值。
Optional Parameters变长可选参数,包含0~n个TLV。


Label Request消息
LSR发送Label Request消息给LDP对等体请求FEC对应的标签。
Label Request消息只能由作为Ingress的LSR发起,不能由作为Transit的LSR发起(Order+dod)。下游收到Label Request消息后需要向上游返回Label Mapping消息,Label Mapping消息中携带Label Request消息中的Message ID TLV。
下列情况下,下游收到Label Request消息后不会向上游返回Label Mapping消息:
  • 下游找不到与Label Request中FEC TLV中对应的路由,此时返回No Route的Notification消息;
  • 下游没有足够的标签来分配,此时返回No Label Resource的Notification消息;
  • 下游检测到有环路发生,此时返回Loop Detected的Notification消息。
图12 Label Request消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FEC Element 1 to FEC Element n每个Element 1字节
表明该标签是为哪个FEC而分配的。
FEC Element的格式定义:
  • Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用。
  • Type = 0x02: 前缀。
    格式如下:
    图13 前缀FEC Element的格式

                                   
    登录/注册后可看大图

Optional Parameters变长可选参数,包含0~n个TLV。


Label Abort Request消息
上游LSR发送了Label Request消息后但还没有收到Label Mapping消息前,发现FEC对应的下一跳变化了或者其他可能的原因需要发送新的Label Request消息时,上游会向下游发送Label Abort Request消息。
图14 Label Abort Request消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FEC Element 1 to FEC Element n每个Element 1字节
表明该标签是为哪个FEC而废弃的。
FEC Element的格式定义:
  • Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用。
  • Type = 0x02: 前缀。
    图15 前缀FEC Element的格式

                                   
    登录/注册后可看大图

Label Request Message ID TLV-要被废弃的Label Request消息的消息ID。
Optional Parameters变长可选参数,包含0~n个TLV。


Label Withdraw消息
Label Withdraw消息一般由下游LSR发往上游LSR,通知上游LSR之前通告的与某FEC对应的Label不再使用,上游LSR需要解除Label和FEC的映射关系。
下列情况下会发送Label Withdraw消息:
  • 下游节点不再有某条FEC,如果已经为该FEC发送了Label Mapping消息,则发送Label Withdraw消息;
  • 下游单方面的决定不再使用标签转发时也会发送Label Withdraw消息。
图16 Label Withdraw消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FEC Element 1 to FEC Element n每个Element 1字节
表明该标签是为哪个FEC而撤销的。
FEC Element的格式定义:
  • Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用。
  • Type = 0x02: 前缀。
    图17 前缀FEC Element的格式

                                   
    登录/注册后可看大图

Label TLV52比特
表明该FEC对应的标签。
图18 Label TLV的格式

                               
登录/注册后可看大图

Optional Parameters变长可选参数,包含0~n个TLV。


Label Release消息
Label Release消息一般由上游发往下游,通知撤销Label和FEC的邦定,该消息相当于Label Request消息的逆过程。
在下列情况下会发送Label Release消息:
  • 上游LSR的标签保持方式是保守方式,发送Label Mapping消息的LSR不再是FEC的下一跳时,上游LSR需要发送Label Release消息来撤销Label和FEC的映射关系;
  • 上游LSR的标签保持方式是保守方式,从不是FEC的下一跳收到Label Mapping消息后,上游LSR需要发送Label Release消息;
  • LSR收到Label Withdraw消息后需要发送Label Release消息。
图19 Label Release消息格式

                               
登录/注册后可看大图



字段长度说明
Message Length16比特LDP消息的长度,是Message ID、强制参数和可选参数的长度的总和。
Message ID32比特LDP消息的编号,用于唯一地标识一个LDP消息。
Length16比特LDP消息是以LDP PDU中的TLV形式定义的. 每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
FEC Element 1 to FEC Element n每个Element 1字节
表明该标签对应的FEC。
FEC Element的格式定义:
  • Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用。
  • Type = 0x02: 前缀。
    图20 前缀FEC Element的格式

                                   
    登录/注册后可看大图

Label TLV52比特图21 Label TLV的格式

                               
登录/注册后可看大图

Optional Parameters变长可选参数,包含0~n个TLV。


LDP消息示例图22 LDP Hello消息

                               
登录/注册后可看大图

图23 LDP KeepAlive消息

                               
登录/注册后可看大图


参考标准
标准描述
RFC 5036LDP Specification






发表于 2020-2-2 21:19:15 | 显示全部楼层
ddddddddddddddd
板凳 2020-2-2 21:19:15 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-11-21 22:00 , Processed in 0.061100 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表