MLPPP 动态绑定方法和系统 【技术领域】
本发明涉及通讯技术领域, 具体涉及一种多链路点对点协议 MLPPP 动态绑定方法和系统。 背景技术 多链路点对点协议 (MLPPP, PPP Multilink Protocol) 是从点对点协议 (PPP, Point-to-Point Protocol) 基础上发展而来的, 与 PPP 的不同之处在于 MLPPP 可将满足 “一 定” 条件的多个链路捆绑在一起, 形成一个虚拟的链路 ( 称为一个链路束 (Bundle))。用户 或者网络层将 Bundle 当做一个普通的链路, 通过它发送或接收数据包。 Bundle 中实际可由 多个物理链路捆绑而成, 数据如何在多个链路间分包 / 整合等内容对上层是透明的。多条 链路捆绑在一起形成了 Bundle 后, 发送端和接收端之间可用带宽就是 Bundle 中所有链路 的带宽之和, 如此可极大提高数据的传输效率。同时, MLPPP 可对 Bundle 中的资源进行动 态分配, 因此只要 Bundle 中有一个链路正常, 那么 Bundle 中任何一条链路的中断影响的都 只是 Bundle 的带宽、 传输的性能, 而不会导致整个 Bundle 传输的中断, 从而增加了链路的 可靠性和稳定性。
图 1 是现有的 MLPPP 应用的场景, 首先在物理 PPP 链路 link1、 link3 上静态配置 其属于 multilink1(Bundle 名称 ), 然后 PPP 链路才开始携带 MLPPP 属性进行链路控制协议 (Link Control Protocol, LCP) 协商, 待链路的 LCP 以及 Bundle 的网络控制协议 (Network Control Protocol, NCP) 协商成功后, Bundle 才正式作为一个逻辑的链路发挥作用, 在这种 模式下, 需要对 PPP 链路事先进行 MLPPP 绑定。
在对现有技术的研究和实践中, 现有技术都是事先对物理链路进行 MLPPP 静态绑 定, 然后再进行 MLPPP 属性协商。
图 2 是现有技术中, 动态创建 PPP 虚链路的一个例子, 由于 PPP 链路是动态创建 的, 无法事先将其绑到 Bundle 中, 在现有的技术下, 该动态 PPP 链路将无法应用 MLPPP 技 术。
发明内容 本发明要解决的技术问题是提供一种 MLPPP 动态绑定方法和系统, 以支持动态创 建的 PPP 链路应用 MLPPP 技术, 使得虚链路的可靠性和稳定性得到提高。
为解决以上技术问题, 本发明提供一种多链路点对点协议 (MLPPP) 动态绑定方 法, 该方法包括 :
第一通信端和第二通信端使能动态 MLPPP 绑定的功能 ;
协商时, 第一通信端获得第二通信端的端点鉴别标识 (EPD) ;
所述第一通信端根据获得的 EPD 配置参数, 生成链路束 (Bundle) 信息表, 其中, 所 述 Bundle 信息表记录所述第二通信端 EPD 和所述第一通信端的 Bundle 之间的对应关系, 并根据所述对应关系, 将协商的 PPP 链路加入所述 Bundle 中。
进一步地, 若不存在所述对应关系, 则创建一个新的 Bundle, 将协商的 PPP 链路加 入到所述新的 Bundle 中。
进一步地, 所述协商的 PPP 链路加入所述 Bundle 中后, 进行所述 Bundle 的网络控 制协议 (NCP) 协商。
进一步地, 创建一个所述新的 Bundle 后, 更新所述 Bundle 信息表, 将所述第二通 信端 EPD 与所述新的 Bundle 的对应关系更新到表中。
进一步地, 协商时, 所述第一通信端获得第二通信端的端点鉴别标识 EPD 的过程 :
所述第二通信端将已生成的端点鉴别标识 (EPD) 配置参数通过 EPD 选项通告发送 给所述第一通信端, 其中, 所述 EPD 配置参数记录了动态 PPP 链路的 EPD 值的配置信息。
进一步地, 协商为链路控制协议 (LCP) 协商时, 所述第一通信端解析收到的 LCP 包, 提取并解析 EPD 选项值, 获得所述 EPD。
为解决以上技术问题, 本发明提供一种多链路点对点协议 (MLPPP) 动态绑定系 统, 其特征在于, 该系统包括 : 第一通信端、 第二通信端 :
所述第一通信端和第二通信端的使能模块, 用于使能动态 MLPPP 绑定的功能 ;
所述第一通信端的端点鉴别标识获取模块, 用于在协商时, 获得第二通信端的端 点鉴别标识 (EPD) ;
所述第一通信端的信息表生成模块, 用于根据获得的 EPD 配置参数, 生成链路束 (Bundle) 信息表, 其中, 所述 Bundle 信息表记录所述第二通信端 EPD 和所述第一通信端的 Bundle 之间的对应关系 ;
所述第一通信端的链路管理模块, 用于根据所述对应关系, 将协商的 PPP 链路加 入所述 Bundle 中。 进一步地, 若不存在所述对应关系, 则所述第一通信端的链路管理模块还用于创 建一个新的 Bundle, 将协商的 PPP 链路加入到所述新的 Bundle 中。
进一步地, 所述第一通信端还包括协商模块, 用于在所述协商的 PPP 链路加入所 述 Bundle 中后, 进行所述 Bundle 的网络控制协议 (NCP) 协商。
进一步地, 所述第一通信端还包括信息表更新模块, 用于在创建一个所述新的 Bundle 后, 更新所述 Bundle 信息表, 将所述第二通信端 EPD 与所述新的 Bundle 的对应关系 更新到表中。
本发明充分利用现有的技术, 在不增加任何成本的情况下, 实现了 PPP 链路的自 动 MLPPP 绑定。通过让链路先发送 MLPPP 相关属性, 协商的过程中对 MLPPP 属性进行检测, MLPPP 属性一致的链路自动聚合, 从而达到 MLPPP 动态绑定的目的, 这种实现方式将大大拓 展 MLPPP 技术的使用范围。
附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 :
图 1 是现有技术中 MLPPP 应用场景示意图 ;
图 2 是现有技术中虚链路无法应用 MLPPP 技术示意图 ;
图 3 是本发明实施例中 PPP 链路动态绑定方法基本流程图 ;
图 4 是本发明实施例中 PPP 链路动态绑定方法分解流程图。具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互组合。
现有技术无法进行 PPP 链路的动态 MLPPP 绑定, 本发明实施例解决了这种技术难 题。以下分别进行详细说明。
本发明实施例提供的动态 MLPPP 绑定方法, 包括 :
第一通信端和第二通信端使能动态 MLPPP 绑定的功能 ;
协商时, 第一通信端获得第二通信端的端点鉴别标识 (EndpointDiscriminator, EPD) ;
所述第一通信端根据获得的 EPD 配置参数, 生成 Bundle 信息表, 其中, 所述 Bundle 信息表记录所述第二通信端 EPD 和所述第一通信端的 Bundle 之间的对应关系, 并根据所述 对应关系, 将协商的 PPP 链路加入所述 Bundle 中。
图 3 是本发明实施例中 PPP 链路动态绑定方法基本流程图, 包括 : 步骤 S31, 使能 MLPPP 动态绑定功能。
通信双方在通信之前, 确定是否需要开启 MLPPP 动态绑定功能。如果开启了该功 能, 那么 PPP 链路不需要事先进行静态 MLPPP 绑定, 绑定动作可以动态执行。
步骤 S32, 生成 EPD 配置参数并发送。
通信双方在通信之前, 确定 PPP 链路的 EPD 属性值。基于共同约定的原则, 任何一 方期望对方绑在同一个 Bundle 内的链路, 其 EPD 的值必须一致。EPD 配置参数用于保存链 路和 EPD 值的对应关系。当然, 这些值可以配置, 亦可以通过一定的原则自动生成, 如机架 的 MAC 地址, 或者指定端口的 IP, 只要能够保证机架上一个动态 Bundle 内 EPD 值的唯一性。
协商时, 本端将已生成的配置参数发送给对端, 其中, 所述 EPD 配置参数记录了动 态 PPP 链路的所述 EPD 值的配置信息 ;
步骤 S33, 接收 EPD 配置参数并生成 Bundle 信息表。
Bundle 信息表用来记录 Bundle 名称和本端的 EPD 的对应关系。这是一个动态更 新的表。表中, EPD 和 Bundle 是一一对应的关系。
所述对端根据收到的所述 EPD 配置参数, 生成所述 Bundle 信息表, 记录所述本端 EPD 和所述对端的 Bundle 之间的对应关系并根据所述对应关系, 将协商的 PPP 链路加入所 述 Bundle 中
步骤 S34, 动态 MLPPP 绑定策略。
LCP 协商成功后, 通过本端 EPD 查找 Bundle 信息表, 检测有无相应的 Bundle 存在, 如果存在, 将此链路绑到该 Bundle 中, 实现了 MLPPP 的动态绑定功能 ; 如果不存在, 则动态 创建与该 EPD 对应的 Bundle, 并更新 Bundle 信息表, 同时, 将此链路绑到新创建的 Bundle 中, 同样也实现了 MLPPP 的动态绑定功能。
图 4 是本发明实施例中 PPP 链路动态绑定方法分解流程图, 包括 :
步骤 S41, 通信双方首先进行 LCP 协商, 如果配置了 MLPPP 的动态绑定功能, 需从 EPD 配置参数中获取本端的 EPD, 通过 LCP 选项通告给对端 ;
步骤 S42, 在 LCP 协商的过程中, 通过解析 EPD 选项, 能够获取到对端的 EPD ;
步骤 S43, 双方经过几次握手, 最终 LCP 协商成功 ;
步骤 S44, LCP 协商成功后, 对端通过本端的 EPD, 查找 Bundle 信息表中对应的 Bundle ;
步骤 S45, 通过步骤 S44, 查找结果有两种, Bundle 信息表中存在与本端 EPD 对应 的 Bundle, 或者不存在, 从而有两个选择分支 :
Bundle 存在分支 :
步骤 S45-11, 找到与本端 EPD 对应的 Bundle, 假设其名称为 Bundle1 ;
步骤 S45-12, 将该 PPP 链路绑定到 Bundle1 中, 从而在这个存在分支完成了 PPP 链 路的 MLPPP 动态绑定过程。
Bundle 不存在分支 :
步骤 S45-21, 由于未找到对应的 Bundle, 因此需要为该链路新创建一个 Bundle, 假设新创建的 Bundle 名称为 BundleN。
步骤 S45-22, 更新 Bundle 信息表, 将该 EPD 和 BundleN 的对应关系更新到表中, 当 下一次有与 EPD 一致的链路 LCP 协商成功后, 可以走存在分支。
步骤 S45-23, 将该 PPP 链路绑定到 BundleN 中, 从而在这个不存在分支亦达到了 PPP 链路的 MLPPP 动态绑定功能。
步骤 S45-24, 由于是一个新创建的 Bundle, 该 Bundle 需要进行 NCP 协商
以上两个分支完成后, 归结的步骤 S46 :
步骤 S46, 这个结束只是代表 MLPPP 动态绑定流程的结束, 后续的流程与目前存在 的静态 MLPPP 绑定流程一致。
综 上 所 述,本 发 明 在 遵 循 PPP/MLPPP 协 议 的 基 础 上,充 分 利 用 Endpointdiscriminator 这个选项, 使其成为 Bundle 的识别标志, 让所有 EPD 相同的链路自 动聚合在一起, 无需在事先进行静态 MLPPP 绑定, 从而达到了 MLPPP 的动态绑定功能。
为了实现以上方法, 本发明还提供了一种动态 MLPPP 绑定系统, 该系统包括 : 第一 通信端、 第二通信端 :
所述第一通信端和第二通信端的使能模块, 用于使能动态 MLPPP 绑定的功能 ;
所述第一通信端的端点鉴别标识获取模块, 用于在协商时, 获得第二通信端的端 点鉴别标识 (EPD) ;
所述第一通信端的信息表生成模块, 用于根据获得的 EPD 配置参数, 生成 Bundle 信息表, 其中, 所述 Bundle 信息表记录所述第二通信端 EPD 和所述第一通信端的 Bundle 之 间的对应关系 ;
所述第一通信端的链路管理模块, 用于根据所述对应关系, 将协商的 PPP 链路加 入所述 Bundle 中。
若不存在所述对应关系, 则所述第一通信端的链路管理模块还用于创建一个新的 Bundle, 将协商的 PPP 链路加入到所述新的 Bundle 中。
所述第一通信端还包括协商模块, 用于在所述协商的 PPP 链路加入所述 Bundle 中 后, 进行所述 Bundle 的网络控制协议 (NCP) 协商。
所述第一通信端还包括信息表更新模块, 用于在创建一个所述新的 Bundle 后, 更新所述 Bundle 信息表, 将所述第二通信端 EPD 与所述新的 Bundle 的对应关系更新到表中。
以上对本发明实施例提供的 PPP 链路 MLPPP 动态绑定方法进行了详细的介绍, 本 文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施实例的说明只是用 于帮助理解本发明的方法以及核心思想 ; 同时, 对于本领域的一般技术人员, 依据本发明的 思想, 在具体实施方式及应用范围上均有改变之处, 但这些相应的改变和变形都应属于本 发明所附的权利要求的保护范围。 综上所述, 本说明书实施例不应理解为对本发明的限制。