Non-Existent
协商正确:LDP会话的最初状态,无邻居状态,完成三次握手TCP连接,进入Initialized初始化状态
协商超时/错误:收到除Init以外的报文或超时报文,回复NAK,并回退到Non-Existent状态
Initialized
初始化状态,该状态分为主动方和被动方两种情况
主动方:发送 Initialization消息,并进入到OpenSent状态,等待对方回应Initialization消息
被动方:等待主动方发给自己的Initialization消息,如果收到Initialization消息,且相关的参数可以接受,则发送Initialization消息和Keepalive消息,转向OpenRec 状态
协商超时/错误:如果主动方和被动方在此状态下收到任何非Initialization消息或等待超时,回复NAK,并回退到Non-Existent状态
OpenSent
等待被动方发送Init信息,主动方发送Initialization消息后的状态,在此状态等待被动方回应Initialization消息和 Keepalive 消息
协商正确:如果收到Initialization消息中的参数可以接受,则转向OpenRec状态
协商超时/错误:如果收到Initialization消息中的参数不能接受或Initialization消息超时,则断开TCP连接,回复NAK,并回退到Non-Existent状态
OpenRec
协商正确:收到对端发送来的KeelAlive报文进入到Openrational状态(主动方和被动方都是发送Keepalive消息后的状态,等待对方回应Keepalive消息)
协商超时/错误:收到不是KeepAlive报文或超时报文,回复NAK,并回退到Non-Existent状态
Openrational
表示LDP会话已经建立,此状态下可以发送或接收所有LDP消息,收到LDP报文,保持现有状态
Keepalive超时或收到差错Notification消息(如 Shutdown 消息),则回退到Non-Existent状态
回话建立过程
刚启用MPLS LDP都是没有邻居的状态(Non-Existent),启用LDP后,通过组播224.0.0.2,端口号为646,发现邻居(除了Hello使用UDP(端口646)外,其余LDP消息都是使用TCP(端口646)传输)
发现邻居后,由传输地址大的一方(lsr-id),主动开始建立TCP三次握手,三次握手建立成功,完成会话建立,进入Initialized初始化状态
Initialized初始化状态主动方发送Init参数信息,并进入Opensent状态,在Opensent状态收到被动方消息↓
如收到发送来的Init参数协商信息,则进入下一状态(OpenRec)
如收到LDP其他报文或超时报文则回退到Non-Existent状态
Opensent状态发送KeepAlive报文,进入Rec状态,并发送KeepAlive报文↓
如收到发送来对的KeepAlive,则进入Openrational状态
如收到LDP报文或其他超时信息报文,则回退到Non-Existent状态
Openrational状态,收到LDP报文,保持现有状态不变,如收到Shutdown或错误信息报文,回退到Non-Existent状态
长按扫码加好友,进群技术交流,相互学习,故障排错等
2025-08-22
2025-08-25
2025-08-08
2025-08-06

