命名数据网络中的软件定义网络控制器系统及其方法

文档序号:7806145阅读:282来源:国知局
命名数据网络中的软件定义网络控制器系统及其方法
【专利摘要】本发明公开了一种命名数据网络中软件定义网络控制器系统及其方法,该系统将命名数据网络的控制平面和数据平面分离,该软件定义网络控制器系统包括:存储模块,用于存储数据平面,维护该数据平面的拓扑结构,规则表,推送表和路由表四个数据结构,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作存储模块,以控制数据流走向。
【专利说明】命名数据网络中的软件定义网络控制器系统及其方法

【技术领域】
[0001] 本发明涉及命名数据网络,尤其涉及一种用于命名数据网络中的软件定义网络控 制器系统及其方法。

【背景技术】
[0002] 信息中心网络(Information-Centric Networking,ICN)是一类新型互联网体系 结构模型,旨在从根本上解决当前互联网面临的流量可扩展性问题、内容安全性问题和节 点的移动性问题。其中命名数据网络(Named Data Networking,NDN)是其中最具代表的一 个网络模型,NDN体系结构模型的细腰不再是网络地址,而是带名字的数据。在NDN数据网 络中,每个内容被赋予一个独一无二的名字,用户获取内容时不需要事先查询内容所在的 位置,而是直接用该内容的名字表达。NDN数据网络的最大优势就是可以针对内容进行缓 存,从而极大增加信息传输的效率;同时,针对内容本身进行安全认证,比传统网络更加安 全。
[0003] 与TCP/IP网络相比,尽管命名数据网络体系结构有着巨大的优势,但命名数据网 络系统的部署还处于初级阶段,针对实际场景的部署缺少成熟方案,尤其是在移动网络中 的转发策略还有待研究。其中一个重要的原因是由于NDN体系结构的数据平面和控制平面 高度耦合,针对控制平面的转发策略研究等工作很难直接应用到NDN网络中。
[0004] 如果将数据平面和控制平面分离开来,一方面能够独立的研究数据平面的高效存 储和快速转发,同时能够研究灵活的控制策略;另一方面,能够促进命名数据网络增量式、 迭代创新的部署。因此,为解决上述问题,本发明引入基于命名数据网络的软件定义网络技 术,软件定义网络(Software Defined Networking,SDN)技术通过将数据平面与控制平面分 离,并集中维护网络的全局视图,逐包的管理数据流的走向,从而实现对整个网络的管理和 控制。数据平面与控制平面分离的一个好处是,对于上层管控应用来说,下层的物理设备就 可以抽象出来,可以将整个网络看成是逻辑或者虚拟的一个整体,从而可以更好地对整个 网络进行配置和管理。如图1所示,软件定义网络的整个体系结构,软件定义网络控制器一 方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接 口。这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑 上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
[0005] 国内外科研院所以及企业对信息中心网络进行大量研究,国内唐超超在其毕业论 文"基于SDN的信息网络的设计与实现"中把SDN思想用到信息中心网络,它主要侧重是信 息网络,SDN的加入只是增加了网络的控制性,虽然都属于信息中心网络,但是在底层传输 上该文使用IP地址,而本发明SDN是设计在一个"变革式"的网络中,用命名的数据进行数 据的请求、寻找以及传输,完全摒弃TCP/IP技术,并且本发明详细的介绍SDN的设计及实现 方法,体现SDN控制器能使整个网络变得更加可控更加智能的思想。


【发明内容】

[0006] 为解决上述问题,本发明提供了一种命名数据网络中软件定义网络控制器系统及 方法,目的是在于,将数据平面和控制平面分离开来,一方面能够独立的研究数据平面的高 效存储和快速转发,同时能够研究灵活的控制策略。
[0007] 本发明公开了一种命名数据网络中软件定义网络控制器系统,其特征在于,用于 将该控制平面转移到软件定义网络控制器,将该数据平面抽象存储于该控制平面,该控制 平面向该数据平面的网络设备发送指令,该数据平面的网络设备接收该控制平面的指令并 进行相应的转发;
[0008] 该软件定义网络控制器包括存储模块、通信模块及功能模块API ;
[0009] 该存储模块,用于存储数据平面,维护该数据平面的拓扑结构,规则表,推送表和 路由表四个数据结构,该控制平面利用该些数据结构控制命名数据网络中数据流的转发; 以及
[0010] 该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该 数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据 流;以及
[0011] 功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存 储模块,以控制数据流走向。
[0012] 所述命名数据网络中软件定义网络控制器系统,其特征在于,该拓扑结构,用于设 置数据结构,该数据结构存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节 点的信息对;以及
[0013] 该规则表,用于存储该拓扑结构中数据的名字与其所对应的规则,该数据的名字 根据不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,该请 求信息先查询该规则类,然后调用相应的数据流规则以实现不同的负载策略;以及
[0014] 该推送表,用于存储该数据的名字对应的该数据提供者路由器标识,采用该前缀 树结构存储该推送表,利用该推送表存储的不同该数据的名字对应得到该数据提供者路由 器标识,调用路由表找到下一个地址跳转端口;以及
[0015] 该路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据 提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,返 回下一个地址跳转端口。
[0016] 所述命名数据网络中软件定义网络控制器系统,其特征在于,该规则表还包括:
[0017] 该规则类包括最优调度策略。通过提取该路由表数据结构信息,获取到达该数据 提供者路由器标识的代价,并选择最小代价的该数据提供者路由器标识进行转发;以及
[0018] 轮询调度策略,用于在该推送表每个数据节点存储一个轮询调度标识位,当有数 据请求时,就根据该轮询调度标识位选择对应的该数据提供者路由器标识进行转发;以及
[0019] 随机调度策略,根据本身生成的随机数选择相应的该数据提供者路由器标识进行 转发;以及丢弃策略,用于禁止某个数据在网络中传输,当接收到该数据的请求,就将该数 据请求丢弃;以及
[0020] 缓存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作与最优调度相 同。
[0021] 所述命名数据网络中软件定义网络控制器系统,其特征在于,所述通信模块还包 括:
[0022] 通信流程模块,当该命名数据网络有连接请求时,主线程新开通一组通道维护该 连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信 息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相 应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信 肩、。
[0023] 所述命名数据网络中软件定义网络控制器系统,其特征在于,该功能模块API还 包括:
[0024] 服务迁移支持模块,数据提供者变更地址后,用于与该软件定义网络控制器交互, 该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
[0025] 协同缓存模块,软件定义网络控制器完成各节点信息收集和缓存方案计算,该软 件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数 据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中 获得该数据。
[0026] 本发明公开了一种命名数据网络中软件定义网络控制器方法,其特征在于,包括
[0027] 步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平 面转移到软件定义网络控制器;
[0028] 步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设 备发送指令;
[0029] 步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
[0030] 该软件定义网络控制器包括如下步骤;
[0031] 步骤11,将数据平面存储起来,维护该数据平面的拓扑结构,规则表,推送表和路 由表,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;
[0032] 步骤12,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据 平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;
[0033] 步骤13,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储模 块,以控制数据流走向。
[0034] 所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤11还包括:
[0035] 步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数, 网络设备提供的数据的名字,相邻节点的信息对;
[0036] 步骤112该规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查 询该规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略;
[0037] 步骤113,该推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用 前缀树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由 器标识,并通过调用路由表找到下一个地址跳转端口;
[0038] 步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数 据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识, 提供下一个地址跳转端口。
[0039] 所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤12还包括:
[0040] 步骤121,主线程收到该命名数据网络有连接请求时,主线程新开通一组通道维护 该连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类 信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将 相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信 肩、。
[0041] 所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤13还包括:
[0042] 服务迁移支持步骤,数据提供者变更地址后,服务迁移支持模块与该软件定义网 络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开 重连;
[0043] 协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算,该软 件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数 据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中 获得该数据。
[0044] 由以上方案可知,本发明有益效果是将控制平面从数据平面中分离出来,将下层 的物理设备抽象成逻辑上的一个整体,同时实现了针对命名数据网络的软件定义网络控制 器。软件定义网络控制器维护命名数据网络的全局视图,通过与命名数据网络节点通信决 定数据流的处理流程和走向,同时为管控应用程序提供统一的接口。软件定义网络控制器 同时解放了节点的数据平面和控制平面,数据平面部分专注于提高吞吐性能,控制平面部 分专注于实现更灵活的管控策略。从而促进了命名数据网络网络的创新和增量式部署。

【专利附图】

【附图说明】
[0045] 图1为软件定义网络体系结构图
[0046] 图2为命名数据网络协议栈结构
[0047] 图3为拓扑结构图意图
[0048] 图4为规则表示意图
[0049] 图5为规则表前缀树存储结构
[0050] 图6为推送表示意图
[0051] 图7为推送表前缀树存储结构
[0052] 图8为路由表拓扑图
[0053] 图9为路由表不意图
[0054] 图10为通信模块处理流程图
[0055] 图11为通信格式
[0056] 图12功能模块API
[0057] 其中,附图标记:
[0058] R2, R3, R4, R5, R6, R7数据提供者路由器标识

【具体实施方式】
[0059] 下面给出本发明的具体实施例,结合附图对本发明做出了详细的描述。本发明通 过使用软件定义网络控制器将控制平面从数据平面中分离出来,简化了命名数据网络体系 结构的管理和控制,加快了命名数据网络体系结构的部署和测试。
[0060] 本发明针对命名数据网络中SDN控制器系统包括,用于将该控制平面转移到软件 定义网络控制器,将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络 设备发送指令,该数据平面的网络设备接收该控制平面的指令并进行相应的转发;该软件 定义网络控制器包括存储模块、通信模块及功能模块API如图2所示;
[0061] 该存储模块,是整个软件定义网络控制器的基础,用于存储该数据平面,维护该数 据平面的拓扑结构,规则表,推送表和路由表四个数据结构,该些数据结构是数据平面转发 的基础,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;以及
[0062] 该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该 数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据 流;以及
[0063] 功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存 储模块,以控制数据流走向。
[0064] 所述的一种软件定义网络控制器系统,所述的存储模块还包括:
[0065] 拓扑结构,用于设置数据结构,该数据结构存储数据提供者路由器标识,端口个 数,网络设备所提供的数据的名字,相邻节点的信息对,该拓扑结构利用某种算法例如最短 路径算法计算数据提供者路由器标识到达其他数据提供者路由器标识的代价及转发端口, 并把计算出的结果存储在路由表的数据结构中;图3为拓扑结构示意图,在拓扑结构中存 储了一组Router数据类型,拓扑结构中存储着控制平面网络设备的拓扑图,NamelD中存储 着数据提供者路由器标识;NumofPort存储着端口的个数;DataName存储着该网络设备所 提供的数据名称;Link存储着相邻节点的信息对,拓扑结构是规则表、推送表和路由表决 策的基础。
[0066] 规则表,用于存储该拓扑结构中该数据的名字与其所对应的规则,该数据的名字 根据不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,请求 信息会查询该规则类,然后调用相应的规则以实现不同的负载策略;如图4所示,该规则表 存储了不同的数据的名字对应的规则类,该规则类里面定义了所有可能的规则,用于实现 不同的负载策略,规则表存储着不同数据所对应的不同的规则,每一种规则对应一种处理 方式,例如:当某个"用户"请求data, google, gmail数据时,他的请求信息会通过best策略 (最优路径或者说最小代价)来找到数据提供者来获得数据;如图5所示,是规则表前缀树 存储结构的示意图,规则表中维护了一个默认规则defaultRule和一组不同数据对应的规 贝1J,当规则表中没有找到对应的数据时就返回defaultRule的值。而其中的规则类(Action 类)是一个枚举类型,在它里面定义了所有可能的规则,不同的规则对应着不同操作。
[0067] 推送表,用于存储所述的数据的名字对应的数据提供者路由器标识,采用前缀树 结构存储推送表,利用推送表存储的不同数据的名字对应得数据提供者路由器标识通过调 用路由表找到下一个地址跳转端口;如图6和图7所示在推送表中存储了不同的数据提供 者路由器标识,即R2, R3, R4, R5, R6, R7等,同一个数据的名字可以有多个数据提供者路由 器标识,如果用户想找data, google, gmail这个数据的名字,查询推送表可知该数据的名 字有R2、R6、R7三个数据提供者路由器标识,但是最终去哪一个网络设备找,就要查询规则 表中相应的规则。该规则类存储最优调度策略,根据提取路由表数据结构信息,获取到达每 个数据提供者路由器标识的代价,并选择最小代价的数据提供者标识进行转发;以及 [0068] 轮询调度策略,用于在推送表每个数据节点存储一个轮询调度标识位,如果有数 据请求时,就会根据所述轮询调度标识位选择对应的数据提供者的标识进行转发;以及随 机调度策略,根据本身生成的随机数选择相应的数据提供者的标识进行转发;以及丢弃策 略,禁止该数据在网络中传输,一旦接收到该数据的请求,就将这个数据请求丢弃;以及缓 存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作中与最优调度相同。
[0069] 路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据提 供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供 下一个地址跳转端口。路由表中存储着路由信息,如图9所示,sendRouterlD是发送方路 由标识,:receiveRouterlD是接收方路由标识,node存储着〈转发端口,相应代价〉值,如图 8所示,R2到R3转发端口为1,代价为25,R1想给R2发送信息,那么它要从1端口发出,代 价是10。
[0070] 所述软件定义网络控制器系统,所述的通信模块还包括:
[0071] 高并发支持模块,如图10所示,使用多线程处理模式,一个线程处理一个消息,并 让一组通道维护所有连接,并监听整个所述连接;当命名数据网络协议栈有连接请求时,主 线程新开通一组通道维护该连接,若发送通信消息时,主线程启动一个线程,并将相应的处 理和返回的任务交给该线程处理,同时主线程重新等待下一个命名数据网络协议栈信息;
[0072] 通信处理流程模块,接收命名数据网络协议栈消息时,先要判断是命名数据网络 协议栈的哪一类发来的消息,若主进程判断是路由器发来的消息后,先查询规则表,如果 所述规则表返回值是DROP,就立即给命名数据网络协议栈返回信息;如果所述规则表返回 DROP值之外其他值,所述主进程接着查询推送表,并将查询到的一组数据提供者路由器标 识缓存起来,根据规则表中不同的规则调用相应的函数从中选择一个"最合适"的数据提供 者路由器标识,然后查询路由表,查找到该数据提供者路由器标识的下一跳地址,最后将相 应的规则和下一条地址返回给命名数据网络协议栈;
[0073] 通信格式定义模块,定义通信平面和数据平面通信的消息格式,如图11所示,控 制平面和数据平面的消息格式,如下:
[0074] 消息类型标识(type),整型,是枚举类型,包含了所有可能的消息格式,ERROR是 当通信出现异常时的消息格式,当接收该格式的消息时,软件定义网络控制器就要中断相 应的连接;
[0075] 本地路由标识,32位,字符串,用于唯一标示目的路由器;
[0076] 数据名长度:4位,整型,用于存储下一个字段服务名称的长度;
[0077] 数据名称:可变位数,字符串,用于存储数据名称
[0078]目的路由标识:32位,字符串,用于唯一的标识目的路由器。
[0079] NLPM(Network Layer Packet Message)表不网络层消息;
[0080] NDLPM(Named Data Layer Packet Message)表不数据层消息;
[0081] NDM(Name Data Message)表示数据消息,当某些路由器标识所提供的数据有变动 时,便会发送该消息;
[0082] RM(Router Message)表示路由消息,当物理拓扑有变化时,便会给软件定义网络 控制器发送该消息。
[0083] 所述软件定义网络控制器系统,所述的功能模块API还包括:
[0084] 防火墙模块,NDN以带名字的数据为中心的,防火墙通过功能模块API对规则表进 行修改,从而实现了允许或阻止某些数据的请求。SDN控制器初始化后,防火墙根据用户的 需求通过规则表所提供的API对规则表中相应数据的规则进行修改,从而当相应数据再次 询问SDN控制器时,将执行修改后的规则,从而允许或阻止相应数据的请求。
[0085] 负载均衡模块,SDN控制器上的负载均衡功能是通过规则表中不同的规则体现的, 用户以通过功能模块API所提供的API对规则表和推送表中的表项进行修改,而规则表中 有BEST、R0UNDR0BIN、RANDOM三种规则用于实现不同的负载均衡策略。其中,BEST是最优 调度策略,是根据路由表获取到达每个数据提供者的代价,并选择最小代价的数据提供者 进行转发;R0UNDR0BIN是轮询调度策略,在推送表每个数据节点存储了一个轮询调度标识 位,当有一个新的数据请求时,就会根据该标识位选择对应的数据提供者进行转发;RANDOM 是随机调度策略,根据自己生成的随机数选择相应的数据提供者进行转发。
[0086] 服务迁移的支持模块,数据提供者变更地址后,用于与该软件定义网络控制器交 互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
[0087] 软件定义网络协同缓存模块,软件定义网络控制器完成各节点信息收集和缓存方 案计算,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式 哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表 从其他节点中获得该数据。
[0088] 本发明还涉及一种命名数据网络中软件定义网络控制器方法,包括
[0089] 步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平 面转移到软件定义网络控制器;
[0090] 步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设 备发送指令;
[0091] 步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
[0092] 该软件定义网络控制器包括如下步骤;
[0093] 步骤11,存储模块将数据平面存储起来,维护该数据平面的拓扑结构,规则表,推 送表和路由表,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;
[0094] 步骤12,通信模块通过利用自定义的通信格式建立该控制平面与该数据平面之间 的连接并维护该连接,接收并处理该命名数据网络发来的数据流;
[0095] 步骤13,功能模块API将该存储功能封装,应用层利用该功能模块API操作该存储 模块,以控制数据流走向。
[0096] 所述命名数据网络中软件定义网络控制器方法,该步骤1还包括:
[0097] 步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数, 网络设备提供的数据的名字,相邻节点的信息对;
[0098] 步骤112规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查询 该规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略;
[0099] 步骤113,推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用前 缀树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由器 标识,并通过调用路由表找到下一个地址跳转端口;
[0100] 步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数 据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识, 提供下一个地址跳转端口。
[0101] 所述命名数据网络中软件定义网络控制器方法,该步骤12还包括:
[0102] 步骤121,信息处理流程模块收到该命名数据网络有连接请求时,主线程新开通一 组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网 络的哪一类信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个 线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名 数据网络信息。
[0103] 所述命名数据网络中软件定义网络控制器方法,该步骤13还包括:
[0104] 防火墙步骤,NDN以带名字的数据为中心的,防火墙通过功能模块API对规则表进 行修改,从而实现了允许或阻止某些数据的请求。SDN控制器初始化后,防火墙根据用户的 需求通过规则表所提供的API对规则表中相应数据的规则进行修改,从而当相应数据再次 询问SDN控制器时,将执行修改后的规则,从而允许或阻止相应数据的请求。
[0105] 负载均衡步骤,SDN控制器上的负载均衡功能是通过规则表中不同的规则体现 的,用户以通过功能模块API对规则表和推送表中的表项进行修改,而规则表中有BEST、 R0UNDR0BIN、RAND0M三种规则用于实现不同的负载均衡策略。其中,BEST是最优调度策略, 是根据路由表获取到达每个数据提供者的代价,并选择最小代价的数据提供者进行转发; R0UNDR0BIN是轮询调度策略,在推送表每个数据节点存储了一个轮询调度标识位,当有一 个新的数据请求时,就会根据该标识位选择对应的数据提供者进行转发;RANDOM是随机调 度策略,根据自己生成的随机数选择相应的数据提供者进行转发。
[0106] 服务迁移支持步骤,软件定义网络控制器下发传输路径,数据提供者变更地址后, 与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的 路径来实现断开重连;
[0107] 协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算后,该 软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该 数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点 中获得该数据。
[0108] 以上对本发明的具体实施例进行了描述和说明,该实施例应被认为其只是示例性 的,并不用于对本发明进行限制,本发明应根据所附权利要求进行解释。
【权利要求】
1. 一种命名数据网络中软件定义网络控制器系统,其特征在于,用于将该控制平面转 移到软件定义网络控制器,将该数据平面抽象存储于该控制平面,该控制平面向该数据平 面的网络设备发送指令,该数据平面的网络设备接收该控制平面的指令并进行相应的转 发;该软件定义网络控制器包括存储模块、通信模块及功能模块API ; 该存储模块,用于存储该数据平面,维护该数据平面的拓扑结构,规则表,推送表和路 由表四个数据结构,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;以 及 该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据 平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;以 及 该功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储 模块,以控制数据流走向。
2. 根据权利要求1所述命名数据网络中软件定义网络控制器系统,其特征在于,该拓 扑结构,用于设置数据结构,该数据结构存储路由器标识,端口个数,网络设备提供的数据 的名字,相邻节点的信息对;以及 该规则表,用于存储该拓扑结构中数据的名字与其所对应的规则,该数据的名字根据 不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,该请求信 息先查询该规则类,然后调用相应的数据流规则以实现不同的负载策略;以及 该推送表,用于存储该数据的名字对应的该数据提供者路由器标识,采用该前缀树结 构存储该推送表,利用该推送表存储的不同该数据的名字对应得到该数据提供者路由器标 识,调用路由表找到下一个地址跳转端口;以及 该路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据提供 者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,返回下 一个地址跳转端口。
3. 根据权利要求2所述命名数据网络中软件定义网络控制器系统,其特征在于,该规 则表还包括: 该规则类包括最优调度策略,通过提取该路由表数据结构信息,获取到达该数据提供 者路由器标识的代价,并选择最小代价的该数据提供者路由器标识进行转发;以及 轮询调度策略,用于在该推送表每个数据节点存储一个轮询调度标识位,当有数据请 求时,就根据该轮询调度标识位选择对应的该数据提供者路由器标识进行转发;以及 随机调度策略,根据本身生成的随机数选择相应的该数据提供者路由器标识进行转 发;以及丢弃策略,用于禁止某个数据在网络中传输,当接收到该数据的请求,就将该数据 请求丢弃;以及 缓存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作与最优调度相同。
4. 根据权利要求1所述命名数据网络中软件定义网络控制器系统,其特征在于,所述 通信模块还包括: 通信流程模块,当该命名数据网络有连接请求时,主线程新开通一组通道维护该连接 并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信息,然 后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相应的处 理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
5. 根据权利要求1所述命名数据网络中软件定义网络控制器系统,其特征在于,该功 能模块API还包括: 服务迁移支持模块,软件定义网络控制器下发传输路径,数据提供者变更地址后,该服 务迁移支持模块用于与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数 据库并下发更改后的路径来实现断开重连; 协同缓存模块,用于在软件定义网络控制器完成各节点信息收集和缓存方案计算后, 该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将 该数据请求和多个缓存副本相连,当该缓存节点无法正常工作,通过分布式哈希表从其他 节点中获得该数据。
6. -种命名数据网络中软件定义网络控制器方法,其特征在于,包括 步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平面转 移到软件定义网络控制器; 步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发 送指令; 步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发; 该软件定义网络控制器包括如下步骤; 步骤11,将数据平面存储起来,维护该数据平面的拓扑结构,规则表,推送表和路由表, 该控制平面利用该些数据结构控制命名数据网络中数据流的转发; 步骤12,利用自定义的通信格式建立该控制平面与该数据平面之间的连接并维护该连 接,接收并处理该命名数据网络发来的数据流; 步骤13,将该存储功能封装,应用层利用该功能模块API操作该存储模块,以控制数据 流走向。
7. 根据权利要求6所述命名数据网络中软件定义网络控制器方法,其特征在于,该步 骤11还包括: 步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数,网络 设备提供的数据的名字,相邻节点的信息对; 步骤112该规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查询该 规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略; 步骤113,该推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用前缀 树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由器标 识,并通过调用路由表找到下一个地址跳转端口; 步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数据提 供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供 下一个地址跳转端口。
8. 如权利要求6所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤 12还包括: 步骤121,主线程收到该命名数据网络有连接请求时,该主线程新开通一组通道维护该 连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信 息,然后调用相应的处理函数,如果接收到通信信息,该主线程启动一个线程,并将相应的 处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
9.如权利要求6所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤 13还包括: 服务迁移支持步骤,软件定义控制器下发传输路径,当数据提供者路由器标示变更地 址后,与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更 改后的路径来实现断开重连; 协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算后,该软件 定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据 请求和多个缓存副本相连,当该缓存节点无法正常工作,通过分布式哈希表从其他节点中 获得该数据。
【文档编号】H04L12/743GK104104614SQ201410264130
【公开日】2014年10月15日 申请日期:2014年6月13日 优先权日:2014年6月13日
【发明者】杨延中, 武庆华, 李振宇, 谢高岗 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1