MPLS标签分发协议有:

1.LDP(Label Distribution Protocol)
2.TDP(CISCO私有)
3.RSVP资源预留协议
4.CE-LDP
5.MP-BGP(BGP-4的多协议扩展 )
6.Labeled BGP(带有标签分发能力的BGPV4)
LDP(Label Distribution Protocol)标签分发协议
LDP的操作主要包括以下四个阶段:
(1)        发现阶段
(2)        会话建立与维护
(3)        LSP建立与维护
(4)        会话撤销
1. 发现阶段
希望建立会话的LSR向相邻LSR周期性地发送Hello消息,通知相邻节点自己的存在。通过这一过程,LSR可以自动发现它的LDP对等体,而无需进行手工配置。
LDP有两种发现机制:
基本发现机制:
基本发现机制用于发现本地的LDP对等体,即通过链路层直接相连的LSR,并在LDP对等体之间建立LDP会话。这种方式下,LSR周期性以UDP报文形式从接口发送LDP链路Hello消息(LDP Link Hello)。链路Hello消息的目的地址为“子网内所有路由器”的组播地址224.0.0.2。LDP链路Hello消息带有LSR的LDP标识符及其他相关信息,如果LSR在某个接口收到了LDP链路Hello消息,则表明在该接口(链路层)存在LDP对等体。
扩展发现机制:
扩展发现机制用于发现远端的LDP对等体,即不通过链路层直接相连的LSR,并在LDP对等体之间建立LDP会话。这种方式下,LSR周期性以UDP报文形式向指定的IP地址发送LDP目标Hello消息(LDP Targeted Hello)。LDP目标Hello消息带有LSR的LDP标识符及其他相关信息,如果LSR收到LDP目标Hello消息,则表明在网络层存在LDP对等体。
2. 会话建立与维护
发现邻居之后,LSR开始建立会话。这一过程又可分为两步:
(1)        建立传输层连接,即在LSR之间建立TCP连接;
(2)        随后对LSR之间的会话进行初始化,协商会话中涉及的各种参数,如LDP版本、标签发布方式、Keepalive定时器值、接收路由器的LDP标识符等。
会话建立后,LDP对等体之间通过不断地发送Hello消息和Keepalive消息来维护这个会话
3. LSP建立与维护
LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系,从而建立LSP。
(1)        网络的路由改变时,边缘节点(LSR )发现自己的路由转发表中出现了新的目的地址,并且这一地址不属于任何现有的FEC,则LSR 为这一目的地址建立一个新的FEC。
(2)        如果LSR 尚有可供分配的标签,则为FEC分配标签,并向上游LSR 通告标签映射。
(3)        LSR 收到标签映射后,判断标签映射的发送者(LSR )是否为该FEC的下一跳。若是,则在其标签转发表中增加相应的条目,为FEC分配标签,并继续向上游LSR 通告标签映射。
(4)        同样地,LSR 收到标签映射后,判断标签映射的发送者(LSR )是否为该FEC的下一跳。若是,则在其标签转发表中增加相应的条目,为FEC分配标签,并继续向上游LSR A通告标签映射。
(5)        入口LSR(LSR )收到标签映射后,判断标签映射的发送者(LSR B)是否为该FEC的下一跳。若是,则在其标签转发表中增加相应的条目。
4. 会话撤销
在以下情况下,LSR将撤销LDP会话:
            LSR通过周期性发送Hello消息表明自己希望与邻居LSR继续维持这种邻接关系。如果Hello保持定时器超时仍没有收到新的Hello消息,则删除Hello邻接关系。一个LDP会话上可能存在多个Hello邻接关系。当LDP会话上的最后一个Hello邻接关系被删除后,LSR将发送Notification消息,结束该LDP会话。
             LSR通过LDP会话上传送的LDP PDU(LDP PDU中携带一个或多个LDP消息)来判断LDP会话的连通性。如果会话保持定时器(Keepalive定时器)超时仍没有收到任何LDP PDU,LSR将关闭TCP连接,结束LDP会话。如果在Keepalive定时器超时前,LDP对等体之间没有需要交互的信息,LSR将发送Keepalive消息给LDP对等体,以便维持LDP会话。
            LSR还可以发送Shutdown消息,通知它的LDP对等体结束LDP会话。
以RT5和RT3之间LDP邻居关系建立过程分析:
首先在RT5和RT3上配置了MPLS后,就会进入邻居发现阶段,RT5和RT3互相发送Discovery消息(UDP:646 目标IP:224.0.0.2 TTL=1)
Version ― 协议版本号,当前为1。  
PDU Length ― PDU 总长,不包括版本和 PDU 长字段。  
LDP Identifier ― 该字段唯一识别由 PDU 请求的发送 LSR 的标签空间。起始的4 Octet 对分配给 LSR 的 IP 地址进行编码,最后的2 Octet 表示 LSR 中的标签空间。  
LDP Messages :信息类型包括Notification、Hello、Initialization、Keep Alive、Address、Address Withdraw、Label Request、Label Withdraw、Label Release和 Unknown Message 名称。  
Message Length ― 信息 ID、命令参数和可选参数长(八位)。  
Message ID ― 32位值,提供信息识别。  
Parameters ― 参数包括 TLV。既有命令参数也有可选参数。有些信息没有命令参数,有些信息没有可选参数。 
当收到对方发来的Discovery消息就进入了会话建立阶段(TCP三次握手由LDP ID大的一方发起,端口为646)

建立TCP连接后,会话初始化,由主发起初始化信息,并携带协商参数。(LDP ID大的为主)
由从检查参数能否接受,如果能则发送初始化消息,并携带协商参数,并随后发送keepalive消息。
主检查参数能否接受,如果能则发送Keepalive消息。相互收到Keepalive消息,会话建立,状态Operational,期间收到任何差错消息,均关闭会话,断开TCP连接!
进入Operational状态后,开始为所有的IGP路由分发标签
CISCO LDP标签分发原则:下游自主分发+独立控制+自由保留
为全局路由表中的所有IGP路由分发标签(倒数第二跳弹出时分发标签3),将自己分发的标签发给所有LDP邻居,不分上下游,标签根据路由的下一跳进行优先,标签数据库中存在大量的非优选标签
Quidway/H3C LDP标签分发原则;下游自主分发+有序控制+自由保留
为自己的直连路由分发标签(倒数第二跳弹出时分发标签3),收到下游分发过来的标签且该标签生效时,向上游分发标签(生效指在全局路由表有该路由,并且标签是该路由的下一跳分发过来的标签)只为所有IGP路由分发标签,默认情况下只为32位IGP路由分发标签,标签数据库中存在大量的非优选标签