LDP会话的建立

两个LSR之间交换LDP Discovery Hello以后就建立会话。建立是一个两步的过程:

  •  传输连接的建立。
  •  会话初始化。

传输连接建立:

目的:在两个LSR之间建立一个可靠的TCP连接。

为了避免建立两个TCP连接,LSR首先确定在会话建立中的主动角色和被动角色。过程是将自己的传输地址和通过HELLO交换获得的传输地址比较,地址高的是主动角色,地址底的是被动角色,由主动角色使用端口646发起TCP 连接。

说明具体过程非常复杂可以参考RFC5039.

会话初始化:

传输建立以后就进入会话初始化阶段

在此阶段,协商会话的参数。这些协商的参数包括LDP协议版本,标记分发方式,时间值,标记控制ATM的VPI/VCI范围,标记控制的帧中继的DLCI范围,等等。

下面大体叙述一下建立过程:(详细过程参考RFC5039)

1、当LSR1 扮演被动角色:
a) 如果LSR1接收到一个初始化消息,它试图把消息PDU携带的LDP标识符与一个Hello邻接相匹配。
b) 如果有一个匹配的Hello邻接,邻接指定了会话的本地标记空间。
接下来,LSR1检查在消息里面的提议的会话参数是否可以接受。如果可以接受,LSR1回应一个它希望使用的参数提议的初始化消息,并发送一个KeepAlive消息表示它接受了LSR2的参数。如果参数不可接受,LSR1回应一个Rejected/Parameters Error Notification消息,并关闭TCP连接。
c) 如果LSR1不能找到一个匹配的Hello邻接,它发送一个Session Rejected/No Hello Error Notification消息,并关闭TCP连接。
d) 如果LSR1接收到一个KeepAlive消息回应它的初始化消息,从LSR1的角度会话是可操作的了。
e) 如果LSR1接收到一个Error Notification消息,LSR2拒绝了它建议的会话,LSR1关闭TCP连接。
2、当LSR1扮演主动的角色:
a) 如果LSR1接收到一个Error Notification消息,LSR2拒绝了它建议的会话,LSR1关闭TCP连接。
b) 如果LSR1接收到一个初始化消息,它检查会话参数是否可以接受。如果可以接受,LSR1回应一个KeepAlive消息。如果参数不可接受,LSR1回应一个Session Rejected/Parameters Error Notification消息,并关闭TCP连接。
c) 如果LSR1接收到一个KeepAlive消息回应它的初始化消息,LSR2接受了它建议的会话消息。
d) 当LSR1接收到一个可接受的初始化消息和一个KeepAlive消息后,从LSR1的角度来看,会话是可操作的。

当两个LSR彼此交换了“初始化”和KEEPALIVE 消息时,就完成了会话的初始化,LDP会话被认为正在运行。

说明:此过程包括很多细节,有水平有限不能具体给出,如果需要了解可以对照RFC5039.

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值