跳到主要内容

6.6. Demand Mode (按需模式)

6.6. Demand Mode (按需模式)

按需模式在每个方向上独立请求, 方式是系统在其 BFD 控制包中设置 Demand (D) 位。接收 Demand 位的系统停止 BFD 控制包的周期性传输。如果两个系统都在按需模式下运行, 则不会在任一方向上流动周期性 BFD 控制包。

按需模式要求使用其他机制来暗示两个系统之间的持续连接性。使用的机制不必在两个方向上相同, 并且超出了本规范的范围。一种可能的机制是从远程系统接收流量; 另一种是使用回显功能。

当处于按需模式的系统希望验证双向连接性时, 它启动轮询序列 (参见第 6.5 节)。如果没有收到对 Poll 的响应, 则重复 Poll 直到检测时间到期, 此时会话被声明为 Down。请注意, 如果按需模式仅在本地系统上运行, 则通过简单地在常规周期性 BFD 控制包中设置 Poll (P) 位来执行轮询序列, 如第 6.5 节所要求的。

按需模式中的检测时间的计算方式与异步模式不同; 它基于本地系统的发送速率, 而不是远程系统的发送速率。这确保了轮询序列机制正常工作。有关更多详细信息, 请参见第 6.8.4 节。

请注意, 除非协商的检测时间大于两个系统之间的往返时间, 否则轮询机制将始终失败。强制执行此约束超出了本规范的范围。

按需模式可以在任何时候在每个方向上独立启用或禁用, 方式是在 BFD 控制包中设置或清除 Demand (D) 位, 而不影响 BFD 会话状态。请注意, 除非两个系统都认为会话为 Up (本地系统认为会话为 Up, 并且远程系统在 BFD 控制包的 State (Sta) 字段中最后报告 Up 状态), 否则不能设置 Demand 位。

当要更改传输的 Demand (D) 位的值时, 传输系统必须在更改位的同时启动轮询序列, 以确保两个系统都知道更改。

如果按需模式在一个或两个系统上激活, 则每当要发送的下一个 BFD 控制包的内容与前一个数据包的内容不同时, 必须启动轮询序列, 但 Poll (P) 和 Final (F) 位除外。这确保了参数更改被传输到远程系统, 并且远程系统确认这些更改。

由于底层检测机制未指定, 并且可能在两个系统之间不同, 因此路径的整体检测时间特性对任一系统都不完全已知。特定系统的总检测时间是启动轮询序列之前的时间加上计算的检测时间的总和。

请注意, 如果按需模式仅在一个方向上启用, 则连续双向连接性验证将丢失 (只有从处于按需模式的系统到另一个系统的方向的连接性将被验证)。解决一个系统请求按需模式而另一个系统需要连续双向连接性验证的问题超出了本规范的范围。