[发明专利]一种多线程边界网关协议并行处理方法有效

专利信息
申请号: 201110310369.9 申请日: 2011-10-13
公开(公告)号: CN102394809A 公开(公告)日: 2012-03-28
发明(设计)人: 赖明澈;高蕾;王志英;肖侬;陆洪毅;马胜;任珊珊 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: H04L12/56 分类号: H04L12/56;H04L29/06
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种多线程边界网关协议并行处理方法,目的是加快BGP处理路由更新报文速度。技术方案是构建由一个主控线程和L个协议执行线程组成的BGP多线程结构,主控线程由邻居分配模块与路由表重构模块组成,协议执行线程由邻居管理模块、选路模块与路由广播模块组成;路由表重构模块对全局路由信息进行动态重构;邻居分配模块计算出每个邻居对应的协议执行线程,将BGP邻居划分为L个邻居束,并将与邻居进行通信的端口地址传递给对应的协议执行线程;由邻居管理模块、选路模块与路由广播模块相互配合进行邻居会话交互。采用本发明能降低线程间通信开销,降低线程间同时访问路由表时引发的竞争,提高BGP运行速度。
搜索关键词: 一种 多线程 边界 网关 协议 并行 处理 方法
【主权项】:
1.一种多线程边界网关协议并行处理方法,其特征在于包括以下步骤:步骤1、构建BGP多线程结构,BGP多线程结构采用主从处理方式,由一个主控线程和L个协议执行线程组成,L为可变自然数,L根据公式L=C×D-1来确定,其中C为多核处理器的核数,D为多核处理器每个核可支持的最大线程数;主控线程是执行BGP邻居分配、全局路由信息动态组织的软件线程,由邻居分配模块与路由表重构模块组成,邻居分配模块是用于计算邻居与协议执行线程对应关系的软件代码,路由表重构模块是用于动态更新全局路由表结构的软件代码;协议执行线程是完成与邻居束的具体会话关系的软件线程,由邻居管理模块、选路模块与路由广播模块组成,邻居管理模块是用于完成与邻居束中各邻居的会话建立与通信的软件代码,选路模块是执行最优路径选择的软件代码,路由广播模块是用于向其他协议执行线程发布本地最优路径的软件代码;步骤2、路由表重构模块设置路由表重构定时器,对全局路由信息进行周期性动态重构,方法是:2.1启动路由表重构定时器,若路由表重构定时器未超时,由邻居分配模块执行步骤3;若路由表重构定时器超时,路由表重构模块执行2.2;2.2重构路由表结构:当路由表重构定时器超时时,首先设置超时标识,然后路由表重构模块将传统路由表逻辑划分成若干个子树集合,并构建快速索引树,具体方法是:2.2.1路由表重构模块对路由表进行后序遍历,统计路由表在定时器计时周期内各路由节点被访问总次数T,T为自然数;路由表以二叉树结构组织,每访问一个路由节点时累计路由表重构定时器计时期间该节点及它的左右子树被访问的次数,左右子树是以左右子节点为根的二叉树;2.2.2对路由表执行层次遍历,将路由表逻辑地划分为若干个路由表子树,且子树数量上限为U,U为自然数,U根据公式U=μ×M确定,其中μ为子树数量参考系数,为大于等于4且小于等于64的偶数,M为划分子树集合数量,M为可变自然数,M根据公式M=2×L来确定,具体方法是:2.2.2.1如果当前路由节点的左右子节点与左右子树访问次数均大于T×U-1,则路由表重构模块对该节点的左右子树执行剪枝操作,将左右子树逻辑地划分为独立的子树,转2.2.2.2;否则,直接执行2.2.2.2;2.2.2.2如果当前路由节点所在的路由表二叉树分层中还有其他未遍历的节点,则路由表重构模块继续按由左至右的顺序遍历下一个节点,转2.2.2.1;否则执行2.2.2.3;2.2.2.3如果已遍历路由表二叉树中所有分层及节点,则执行2.2.3;否则,路由表重构模块跳至路由表二叉树的下一个分层中继续遍历,转2.2.2.1;2.2.3路由表重构模块将子树归类为M个子树集合Q1,......,QM,方法是:2.2.3.1路由表重构模块将划分后子树按照访问次数进行降序排列后得到子树序列a1,a2,…,au;2.2.3.2累加子树集合Qi中所有子树的访问次数,1≤i≤M,计算出Qi访问总次数,再将所有子树集合按照子树集合访问总次数降序排列,获得访问总次数最小和最大的子树集合Qα和Qβ,Qα表示访问次数最小的子树集合,Qβ表示访问次数最大的子树集合,α为子树集合的下标,1≤α≤M,β为子树集合的下标,1≤β≤M;2.2.3.3从子树序列a1,a2,…,au中取出头子树as,1≤s≤U,s初始值为1,放入子树集合Qt中,1≤t≤M,方法为:判断条件是否满足,即子树集合Qβ去除顶部子树rβ[pβ]之后的访问次数是否仍大于F(Qα),如果满足,则进行Qα与Qβ的子树置换操作,即将rβ[pβ]放入Qα中,而把子树as放入到Qβ中;如果不满足,则路由表重构模块将子树as放入Qα中,其中函数F(Qα)表示子树集合Qα的访问次数,表示子树rβ[pβ]的访问次数,rβ表示Qβ中子树,pβ表示子树rβ在Qβ中的位置,1≤pβ≤U,rβ[pβ]是当前Qβ中最晚放入的子树;2.2.3.4如果s小于U,则s增加1,转2.2.3.2;否则执行2.2.4;2.2.4路由表重构模块按照构建二叉树的方法将所有划分子树的根节点组织成索引树,每一项索引由该节点的前缀地址、前缀长度及子树所属集合进行标识;继而,转步骤2.1;步骤3、邻居分配模块采取RoundRobin方式计算出与路由器连接的每个邻居进行会话通信的协议执行线程,根据协议执行线程数量L将BGP邻居划分为L个邻居束,并将与邻居进行通信的端口地址传递给对应的协议执行线程,具体方法为:如果路由表重构定时器超时,转2.2;如果路由表重构定时器未超时,当有新的邻居会话请求到达,邻居分配模块根据邻居的前缀地址为该邻居会话分配协议执行线程k,并将邻居会话通信端口地址以消息方式发送给协议执行线程k,继而执行步骤4,k为自然数且1≤k≤L;如果路由表重构定时器未超时且没有新邻居会话请求到达,则继续执行步骤3,等待新的邻居会话请求到达;步骤4、邻居会话交互,方法为:4.1建立会话关系:协议执行线程k接收到邻居分配模块发送的携带邻居通信端口地址的消息,邻居管理模块根据通信端口地址与该邻居建立会话关系;4.2解析报文:当邻居管理模块接收到路由更新报文,邻居管理模块解析出路由更新报文中的路由项,每个路由项都由目的地址和多个路由属性组成;4.3邻居管理模块查询路由表重构定时器超时标识,如果超时标识被置位表明路由表重构定时器已超时,转2.2;否则执行4.4;4.4选路模块根据4.2解析出的目的地址和路由属性在全局路由信息中选择最优路径,方法为:选路模块首先在路由表的索引树中查找前缀最长匹配的节点,继而在索引到的子树中查找与目的地址完全匹配的节点,如果查找到则采用选路计算方法计算最优路径;如果未查找到匹配节点,则在该子树中添加该目的节点及相应路由信息,并将新路由作为最优路径;4.5路由更新广播:路由广播模块将选路模块选择的最优路径发送给除该路由广播模块所属协议执行线程之外的所有协议执行线程,并接收来自其他协议执行线程选择的最优路径,当路由更新广播操作完成,执行4.6;4.6最优路径播报:邻居管理模块根据邻居束b中每个邻居的出口过滤策略对步骤4.5获得的全部最优路径进行过滤,将已过滤的最优路径封装成路由更新报文,向各邻居发送,b为自然数且1≤b≤L;4.7如果BGP进程结束,则转步骤5;否则,当有新的路由更新报文到达,转4.2;步骤5、主控线程与所有协议执行线程运行终止。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201110310369.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top