CN102413184B - 分布式架构中协议栈的实现方法和装置 - Google Patents
分布式架构中协议栈的实现方法和装置 Download PDFInfo
- Publication number
- CN102413184B CN102413184B CN201110377768.7A CN201110377768A CN102413184B CN 102413184 B CN102413184 B CN 102413184B CN 201110377768 A CN201110377768 A CN 201110377768A CN 102413184 B CN102413184 B CN 102413184B
- Authority
- CN
- China
- Prior art keywords
- resource
- line card
- module
- control unit
- card unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明提供了分布式架构中协议栈的实现方法和装置。该方法包括:控制单元中的应用模块根据需求提供对应的关键字给控制单元中的基于策略的资源分布RDBP模块;RDBP模块依据所述关键字在所述控制单元中查找到所述应用模块依赖的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元;利用接收的资源在所述线卡单元运行协议栈,以使所述线卡单元的应用模块使用标准套接字函数收发报文。
Description
技术领域
本发明涉及网络通信领域,特别涉及分布式架构中协议栈的实现方法和装置。
背景技术
在网络通信领域中,随着业务需求的增加,目前的路由/交换系统都采用分布式架构,以提供提高系统容量。其中,分布式架构分为控制单元和线卡单元,两者在物理上隔离但通过通信通道进行信息交互。控制单元包含多个模块,主要负责系统控制,而线卡单元也包含多个模块,主要负责数据转发。目前控制单元中越来越多的模块放在线卡单元上,以分担控制单元的负载、减少控制单元和线卡单元之间的通信开销、减少主/备控制单元切换造成对协议的冲击等问题。
为了减少线卡单元中模块的开发难度和加快开发速度,使运行在线卡单元的模块使用标准的套接字函数进行数据收发是关键,然而使运行在线卡单元的模块使用标准的套接字函数进行数据收发,就需要线卡单元运行协议栈。而协议栈的运行需要诸如接口、路由、地址等诸多资源,如果将这些资源全部复制到线卡单元,将会大大增加线卡单元的对内存、CPU的要求,从而增加成本,并且实现起来非常复杂,并且,现有技术中尚没有明确机制明确分布式架构中协议栈的实现方法及协议栈运行的资源如何下发至线卡单元。
发明内容
本发明提供了分布式架构中协议栈的实现方法和装置,以实现协议栈运行在线卡单元并提供标准套接字函数,使线卡单元利用标准套接字函数进行数据收发。
本发明提供的技术方案包括:
一种分布式架构中协议栈的实现方法,所述分布式架构包括控制单元和线卡单元,该方法包括:
控制单元中的应用模块根据需求提供对应的关键字给控制单元中的基于策略的资源分布(RDBP)模块;
RDBP模块依据所述关键字在所述控制单元中查找到所述应用模块依赖的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元;
利用接收的资源在所述线卡单元运行协议栈,以使所述线卡单元中的应用模块使用标准套接字函数收发报文。
一种分布式架构装置,该装置包括控制单元和线卡单元;所述控制单元包括RDBP模块、至少一个应用模块、以及多个控制模块,其中,不同控制模块控制不同资源;所述线卡单元包括:至少一个应用模块、以及协议栈;
所述控制单元中的应用模块,用于根据需求提供对应的关键字给所述RDBP模块;
所述RDBP模块,用于依据所述控制单元中应用模块发送的关键字在所述控制单元中查找到该应用模块依赖的资源,并通过控制该资源的控制模块下发该资源至线卡单元;
所述协议栈,用于利用接收的资源在线卡单元运行;
所述线卡单元中的应用模块,用于利用所述协议栈提供的标准套接字函数收发报文。
由以上技术方案可以看出,本发明中,RDBP模块根据应用模块的需求查找该应用模块依赖的资源,并通过控制该资源的控制模块下发该资源至线卡单元,如此即可利用接收的资源在线卡单元运行协议栈,以使所述线卡单元的应用模块使用标准套接字函数收发报文,这一方面实现了按需求下发资源至线卡单元,减少线卡单元中内存、CPU的消耗,另一方面通过在线卡单元运行协议栈,使所述线卡单元的应用模块使用标准套接字函数收发报文,能够减少线卡单元中模块的开发难度和加快开发速度。
附图说明
图1为本发明实施例提供的流程图;
图2为本发明实施例提供的线卡单元使用标准套接字函数收发报文的结构示意图;
图3为本发明提供的实施例流程图;
图4为本发明实施例提供的流程结构示意图;
图5为本发明实施例提供的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
基于上面描述的,为了能够在线卡单元提供标准的套接字函数进行数据收发,就需要线卡单元运行协议栈。而协议栈的运行需要如接口、路由、地址等诸多资源。一种方法是:由控制单元先获取该协议栈运行所需要的资源,之后全部复制到线卡单元。
但是,该方法为增加线卡单元的对内存、CPU的要求,导致成本增加。为了避免上述问题,本发明还提供了一种基于策略的资源分布(RDBP:ResourcesDistribution Based on Policy)的协议栈实现方法,其根据需求将协议栈的运行所需要的资源下发至线卡单元,以节省线卡单元的内存、降低CPU消耗。
参见图1,图1为本发明实施例提供的流程图。为实现本流程,需要在控制单元建立RDBP模块。基于该创建的RDBP模块,如图1所示,该流程可包括:
步骤101,控制单元中的应用模块根据需求提供对应的关键字给控制单元中的RDBP模块。
其中,应用模块发送给RDBP模块的关键字必须保证该RDBP模块能够识别。优选地,作为本发明一种举例,应用模块发送给RDBP模块的关键字可为应用模块和RDBP模块之间已确定的对应需求的关键字。比如,当前需求为路由需求,则该路由需求对应的关键字为目的地址,其他情况实现原理类似,不再赘述。
步骤102,RDBP模块依据所述关键字在所述控制单元中查找到所述应用模块依赖的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元。
在分布式结构中,控制单元还包括一些控制模块,比如用于控制路由信息的路由控制模块、用于控制接口信息的接口控制模块、用于控制地址信息的地址控制模块等,本步骤102中,RDBP模块查找到资源后,通过控制该资源的控制模块下发该资源至线卡单元,比如,查找到的资源为出接口,则通过接口控制模块下发出接口至线卡单元。
优选地,本发明中,为保证下发至线卡单元的所有资源均被识别,本步骤102中,下发查找到的资源至线卡单元包括:确定查找到的各个资源之间的依赖关系,按照被依赖的资源先发送的原则发送查找到的各个资源至线卡单元。比如,查找到的资源包括:出接口、出接口IP地址信息、路由前缀/掩码、网关等,本领域技术人员知道,出接口为最基础的资源,出接口IP地址信息次之,依赖于出接口,而路由前缀/掩码、网关依赖于出接口、以及出接口IP地址信息,基于此,就需要先通过接口控制模块下发出接口至线卡单元、之后再通过地址控制模块下发出接口IP地址信息至线卡单元、最后通过路由控制模块下发路由前缀/掩码、网关至线卡单元。
需要说明的是,在步骤102中,在控制模块将查找到的资源下发至线卡单元之后,进一步包括:
所述RDBP模块通知所述应用模块已完成资源下发分布,以使分布在线卡单元的与所述应用模块具有分布式关系的应用模块在线卡单元启动。
步骤103,利用接收的资源在所述线卡单元运行协议栈,以使所述线卡单元中的应用模块使用标准套接字函数收发报文。
为使步骤103更加清楚,图2示出了步骤103的具体结构示意图。参见图2,图2示出了线卡单元使用标准套接字函数收发报文的结构。图2中线卡单元的应用模块,其与控制单元中的至少一个应用模块具有分布式关系。比如,控制单元中存在一应用模块A1,其与线卡单元中的应用模块A2具有分布式关系,该应用模块A1和应用模块A2实质为本应放在控制单元的一个应用模块分成的,目的是降低控制单元和线卡单元之间的通信开销。
至此,完成图1所示的流程。
从图1所示的流程可以看出,本发明中,线卡单元上与所述应用模块具有分布式关系的应用模块就可在线卡单元上使用标准套接字函数收发报文。
下面以创建路由资源为例通过图3对图1所示的流程进行举例描述:
参见图3,图3为本发明提供的实施例流程图。该流程中,假如关键字为目的地址,则如图3所示,该流程可包括以下步骤:
步骤301,控制单元中的应用模块将路由的目的地址传递给控制单元中的RDBP模块。
步骤302,控制单元中的RDBP模块通过查询路由控制模块得到目的地址依赖的资源,比如路由前缀/掩码、出接口、出接口IP地址信息、网关等。
步骤303,控制单元中的接口控制模块将出接口下发到线卡单元,同时接口控制模块还下发该出接口的配置至线卡单元并添加到协议栈。
步骤304,控制单元中的地址控制模块将出接口的IP地址信息下发到线卡单元并添加到协议栈。
步骤305,控制单元中的路由控制模块将剩余的资源下发到线卡单元并添加到协议栈。
步骤304至步骤305是按照被依赖的资源先发送的原则发送查找到的各个资源至线卡单元的一种举例。
步骤306,控制单元中的RDBP模块通知所述控制单元中的应用模块已完成资源下发分布,以使分布在线卡单元的与所述应用模块具有分布式关系的应用模块在线卡单元启动。
步骤307,线卡单元中的协议栈利用接收的资源运行,以使所述线卡单元中的应用模块使用标准套接字函数收发报文。
至此,完成图3所示的流程。
本发明中,在线卡单元的协议栈添加资源后,该资源并非固定不变,当应用模块不需要该资源时,针对其依赖的资源,就可以删除。而由于该资源可能还被其他应用模块使用,为避免影响其他应用模块,可在删除之前,判断该资源当前是否被控制单元中的其他应用模块使用,如果否,则从线卡单元删除该资源,如果是,则不删除该资源。
还有,本发明中,所述RDBP模块在检测到所述应用模块依赖的资源发生变化时,根据所述变化更新已下发的资源。其中,根据变化更新已下发的资源包括:
步骤1,所述RDBP模块检测到所述控制单元中应用模块依赖的资源被删除时,判断该资源是否已下发至线卡单元,如果是,则从该线卡单元删除该资源,并依据已保存的该资源对应的关键字在控制单元中重新查找资源,如果查找到,则通过控制单元中控制该资源的控制模块下发该资源至线卡单元,否则,向已发送该关键字的应用模块通知资源不可用;比如,在路由控制模块删除路由时,RDBP模块检查该路由是否为已经下发至线卡单元的路由,如果是的话那么将执行在线卡单元删除下发资源流程,之后,重新查找路由,如果查找到,则执行通过路由控制模块下发查找到的路由至线卡单元的流程,如果查找不到,则表示没有路由可用,那么通知应用模块资源暂时不可用。
步骤2,所述RDBP模块检测到所述控制单元新添加了资源时,判断该资源是否与已保存的关键字匹配,如果是,则继续判断该新添加的资源是否优于之前依据该已保存的关键字查找到的资源,如果是,则从线卡单元删除依据该已保存的关键字查找到的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元。比如,在控制单元添加了一个路由时,RDBP模块需要检查该新添加的路由是否和已保存的关键字如目的地址匹配,如果匹配的话检查该新添加的路由是否更优,两者都满足的情况执行从线卡单元删除已下发的资源,通过路由控制模块将新添加的资源下发至线卡单元。
其中,在上述步骤1中,所述RDBP模块在检测到所述控制单元中的资源被删除时,可以延迟一段时间判断该资源是否已下发至线卡单元,以及在上述步骤2中,所述RDBP模块检测到所述控制单元新添加了资源时,延迟一段时间判断该资源是否与已接收的关键字匹配,这样能够避免资源变化频繁而导致系统处理负担增加。
需要说明的是,在本发明中,线卡单元也包含与控制单元中各个控制模块对应的控制模块,基于此,上述步骤303至步骤305中,控制单元中的各个控制模块是通过线卡单元中对应的控制模块将资源添加到协议栈。比如,步骤303中,控制单元中的接口控制模块将出接口下发到线卡单元的接口控制模块,同时还下发该出接口的配置至线卡单元的接口控制模块,通过线卡单元的接口控制模块将出接口、以及出接口的配置添加到协议栈,步骤304中,控制单元中的地址控制模块将出接口的IP地址信息下发到线卡单元的地址控制模块,通过该线卡单元的地址控制模块将出接口的IP地址信息添加到协议栈;步骤305中,控制单元中的路由控制模块将剩余的资源下发到线卡单元的路由控制模块,通过该线卡单元的路由控制模块将接收的资源添加到协议栈。图4示出了图3所示的流程对应的结构示意图,图4中的箭头为资源下发至协议栈的流程。
以上对本发明提供的方法进行了描述,下面对本发明实施例提供的装置进行描述:
参见图5,图5为本发明实施例提供的装置结构图。如图5所示,该装置为分布式架构装置,包括控制单元和线卡单元;其关键在于,所述控制单元包括基于策略的资源分布RDBP模块、至少一个应用模块、以及多个控制模块,其中,不同控制模块控制不同资源;所述线卡单元包括:至少一个应用模块、以及协议栈。
其中,所述控制单元中的应用模块,用于根据需求提供对应的关键字给所述RDBP模块;
所述RDBP模块,用于依据所述控制单元中应用模块发送的关键字在所述控制单元中查找到该应用模块依赖的资源,并通过控制该资源的控制模块下发该资源至线卡单元;
所述协议栈,用于利用接收的资源在线卡单元运行;
所述线卡单元中的应用模块,用于利用所述协议栈提供的标准套接字函数收发报文。
优选地,所述控制单元中的应用模块进一步在取消所述需求时,针对其依赖的资源,判断该资源当前是否被其他应用模块使用,如果否,则从所述线卡单元删除该资源。
本实施例中,所述RDBP模块进一步在检测到所述控制单元中应用模块依赖的资源发生变化时,根据所述变化更新已下发的资源,具体为:
所述RDBP模块检测到所述控制单元中应用模块依赖的资源被删除时,判断该资源是否已下发至线卡单元,如果是,则从该线卡单元删除该资源,并依据已保存的该资源对应的关键字在控制单元中重新查找资源,如果查找到,则通过控制单元中控制该资源的控制模块下发该资源至线卡单元,否则,向已发送该关键字的应用模块通知资源不可用;以及,
检测到所述控制单元新添加了资源时,判断该资源是否与已保存的关键字匹配,如果是,则继续判断该新添加的资源是否优于之前依据该已保存的关键字查找到的资源,如果是,则从线卡单元删除依据该已保存的关键字查找到的资源,并将该新添加的资源下发至线卡单元。
至此,完成本发明提供的装置描述。
由以上技术方案可以看出,本发明中,RDBP模块根据应用模块的需求查找该应用模块依赖的资源,并通过控制该资源的控制模块下发该资源至线卡单元,如此即可利用接收的资源在线卡单元运行协议栈,以使所述线卡单元的应用模块使用标准套接字函数收发报文,这一方面实现了按需求下发资源至线卡单元,减少线卡单元中内存、CPU的消耗,另一方面通过在线卡单元运行协议栈,使所述线卡单元的应用模块使用标准套接字函数收发报文,能够减少线卡单元中模块的开发难度和加快开发速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种分布式架构中协议栈的实现方法,所述分布式架构包括控制单元和线卡单元,其特征在于,该方法包括:
控制单元中的应用模块根据需求提供对应的关键字给控制单元中的基于策略的资源分布RDBP模块;
RDBP模块依据所述关键字在所述控制单元中查找到所述应用模块依赖的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元;
利用接收的资源在所述线卡单元运行协议栈,以使所述线卡单元中的应用模块使用标准套接字函数收发报文。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
所述控制单元中的应用模块取消所述需求时,针对其依赖的资源,判断该资源当前是否被其他应用模块使用,如果否,则从所述线卡单元删除该资源。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:所述RDBP模块在检测到所述控制单元中应用模块依赖的资源发生变化时,根据所述变化更新已下发至所述线卡单元的资源。
4.根据权利要求3所述的方法,其特征在于,所述根据变化更新已下发至线卡单元的资源包括:
所述RDBP模块检测到所述控制单元中的资源被删除时,判断该资源是否已下发至线卡单元,如果是,则从该线卡单元删除该资源,并依据已保存的该资源对应的关键字在控制单元中重新查找资源,如果查找到,则通过控制单元中控制该资源的控制模块下发该资源至线卡单元,否则,向已发送该关键字的应用模块通知资源不可用;
所述RDBP模块检测到所述控制单元新添加了资源时,判断该资源是否与已保存的关键字匹配,如果是,则继续判断该新添加的资源是否优于之前依据该已保存的关键字查找到的资源,如果是,则从线卡单元删除依据该已保存的关键字查找到的资源,并通过控制单元中控制该资源的控制模块下发该资源至线卡单元。
5.根据权利要求1至4任一所述的方法,其特征在于,所述通过控制单元中控制该资源的控制模块下发该资源至线卡单元包括:
确定查找到的各个资源之间的依赖关系,按照被依赖的资源先发送的原则通过控制单元中控制该各个资源的控制模块下发该各个资源至线卡单元。
6.一种分布式架构装置,该装置包括控制单元和线卡单元;其特征在于,所述控制单元包括基于策略的资源分布RDBP模块、至少一个应用模块、以及多个控制模块,其中,不同控制模块控制不同资源;所述线卡单元包括:至少一个应用模块、以及协议栈;
所述控制单元中的应用模块,用于根据需求提供对应的关键字给所述RDBP模块;
所述RDBP模块,用于依据所述控制单元中应用模块发送的关键字在所述控制单元中查找到该应用模块依赖的资源,并通过控制该资源的控制模块下发该资源至线卡单元;
所述协议栈,用于利用接收的资源在线卡单元运行;
所述线卡单元中的应用模块,用于利用所述协议栈提供的标准套接字函数收发报文。
7.根据权利要求6所述的装置,其特征在于,所述控制单元中的应用模块进一步在取消所述需求时,针对其依赖的资源,判断该资源当前是否被其他应用模块使用,如果否,则从所述线卡单元删除该资源。
8.根据权利要求6所述的装置,其特征在于,所述RDBP模块进一步在检测到所述控制单元中应用模块依赖的资源发生变化时,根据所述变化更新已下发的资源。
9.根据权利要求8所述的装置,其特征在于,所述RDBP模块检测到所述控制单元中的资源被删除时,判断该资源是否已下发至线卡单元,如果是,则从该线卡单元删除该资源,并依据已保存的该资源对应的关键字在控制单元中重新查找资源,如果查找到,则通过控制单元中控制该资源的控制模块下发该资源至线卡单元,否则,向已发送该关键字的应用模块通知资源不可用;以及,
检测到所述控制单元新添加了资源时,判断该资源是否与已保存的关键字匹配,如果是,则继续判断该新添加的资源是否优于之前依据该已保存的关键字查找到的资源,如果是,则从线卡单元删除依据该已保存的关键字查找到的资源,并将该新添加的资源下发至线卡单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110377768.7A CN102413184B (zh) | 2011-11-24 | 2011-11-24 | 分布式架构中协议栈的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110377768.7A CN102413184B (zh) | 2011-11-24 | 2011-11-24 | 分布式架构中协议栈的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102413184A CN102413184A (zh) | 2012-04-11 |
CN102413184B true CN102413184B (zh) | 2014-05-14 |
Family
ID=45915027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110377768.7A Active CN102413184B (zh) | 2011-11-24 | 2011-11-24 | 分布式架构中协议栈的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102413184B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547409B (zh) | 2016-06-24 | 2020-12-25 | 华为技术有限公司 | 一种路由查找方法、装置和路由设备 |
CN112672089B (zh) * | 2019-10-16 | 2024-02-06 | 中兴通讯股份有限公司 | 会议控制及与会方法、装置、服务器、终端及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064668A (zh) * | 2006-04-29 | 2007-10-31 | 上海博达数据通信有限公司 | 一种分布式路由子系统在ipv6协议栈的实现方法 |
US8954045B2 (en) * | 2006-09-29 | 2015-02-10 | Qualcomm Incorporated | Method and apparatus for managing resources at a wireless device |
CN101345698B (zh) * | 2007-07-10 | 2011-05-25 | 中兴通讯股份有限公司 | 一种优雅重启时的同步方法 |
-
2011
- 2011-11-24 CN CN201110377768.7A patent/CN102413184B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102413184A (zh) | 2012-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102316160B (zh) | 网站系统及其通信方法 | |
CN101859263B (zh) | 一种支持在线迁移的虚拟机间快速通信方法 | |
CN104125208B (zh) | 数据传输方法及装置 | |
CN103905397B (zh) | 数据同步方法和系统 | |
US9319241B2 (en) | Flow-based packet transport device and packet management method thereof | |
EP1517486A2 (en) | Metaspace: communication middleware for partially connected mobile ad hoc networks | |
CN102246489A (zh) | 对通过http的异步消息通信进行连接管理的系统和方法 | |
CN101741912A (zh) | 一种处理计算任务的方法、网络设备及分布式网络系统 | |
US10425273B2 (en) | Data processing system and data processing method | |
CN101662483A (zh) | 云计算网络的缓存系统及其方法 | |
CN103220292A (zh) | 跨安全区数据传输方法和系统 | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
CN102591717A (zh) | 外接设备和虚拟设备的业务信息处理方法、装置和系统 | |
CN102035738A (zh) | 一种获取路由信息的方法及装置 | |
CN102340410A (zh) | 集群管理系统及方法 | |
CN103188098A (zh) | 一种容灾切换方法、系统以及装置 | |
CN113553170A (zh) | 用于资源分配的系统、方法和装置 | |
CN101271458A (zh) | 一种分布式计算文件管理方法、系统及其装置 | |
CN103259869A (zh) | 一种基于分布式数据存储的集中信息管理方法 | |
CN102413184B (zh) | 分布式架构中协议栈的实现方法和装置 | |
CN101499931B (zh) | 基于分布式环境的功能扩展方法和系统 | |
Li et al. | Delivering internet-of-things services in MobilityFirst future internet architecture | |
CN106027661A (zh) | 数据集群存储终端 | |
CN103188307A (zh) | 新型云应用方法及系统 | |
Ho et al. | Mobile intercloud system and objects transfer mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |