CN104104614B - 命名数据网络中的软件定义网络控制器***及其方法 - Google Patents
命名数据网络中的软件定义网络控制器***及其方法 Download PDFInfo
- Publication number
- CN104104614B CN104104614B CN201410264130.6A CN201410264130A CN104104614B CN 104104614 B CN104104614 B CN 104104614B CN 201410264130 A CN201410264130 A CN 201410264130A CN 104104614 B CN104104614 B CN 104104614B
- Authority
- CN
- China
- Prior art keywords
- data
- name
- network
- software defined
- network controller
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种命名数据网络中的软件定义网络控制器***及其方法,该***将命名数据网络的控制平面和数据平面分离,该软件定义网络控制器***包括:存储模块,用于存储数据平面,维护该数据平面的拓扑结构,规则表,推送表和路由表四个数据结构,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作存储模块,以控制数据流走向。
Description
技术领域
本发明涉及命名数据网络,尤其涉及一种用于命名数据网络中的软件定义网络控制器***及其方法。
背景技术
信息中心网络(Information-Centric Networking,ICN)是一类新型互联网体系结构模型,旨在从根本上解决当前互联网面临的流量可扩展性问题、内容安全性问题和节点的移动性问题。其中命名数据网络(Named Data Networking,NDN)是其中最具代表的一个网络模型,NDN体系结构模型的细腰不再是网络地址,而是带名字的数据。在NDN数据网络中,每个内容被赋予一个独一无二的名字,用户获取内容时不需要事先查询内容所在的位置,而是直接用该内容的名字表达。NDN数据网络的最大优势就是可以针对内容进行缓存,从而极大增加信息传输的效率;同时,针对内容本身进行安全认证,比传统网络更加安全。
与TCP/IP网络相比,尽管命名数据网络体系结构有着巨大的优势,但命名数据网络***的部署还处于初级阶段,针对实际场景的部署缺少成熟方案,尤其是在移动网络中的转发策略还有待研究。其中一个重要的原因是由于NDN体系结构的数据平面和控制平面高度耦合,针对控制平面的转发策略研究等工作很难直接应用到NDN网络中。
如果将数据平面和控制平面分离开来,一方面能够独立的研究数据平面的高效存储和快速转发,同时能够研究灵活的控制策略;另一方面,能够促进命名数据网络增量式、迭代创新的部署。因此,为解决上述问题,本发明引入基于命名数据网络的软件定义网络技术,软件定义网络(Software Defined Networking,SDN)技术通过将数据平面与控制平面分离,并集中维护网络的全局视图,逐包的管理数据流的走向,从而实现对整个网络的管理和控制。数据平面与控制平面分离的一个好处是,对于上层管控应用来说,下层的物理设备就可以抽象出来,可以将整个网络看成是逻辑或者虚拟的一个整体,从而可以更好地对整个网络进行配置和管理。如图1所示,软件定义网络的整个体系结构,软件定义网络控制器一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。这样,基于网络操作***这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
国内外科研院所以及企业对信息中心网络进行大量研究,国内唐超超在其毕业论文“基于SDN的信息网络的设计与实现”中把SDN思想用到信息中心网络,它主要侧重是信息网络,SDN的加入只是增加了网络的控制性,虽然都属于信息中心网络,但是在底层传输上该文使用IP地址,而本发明SDN是设计在一个“变革式”的网络中,用命名的数据进行数据的请求、寻找以及传输,完全摒弃TCP/IP技术,并且本发明详细的介绍SDN的设计及实现方法,体现SDN控制器能使整个网络变得更加可控更加智能的思想。
发明内容
为解决上述问题,本发明提供了一种命名数据网络中的软件定义网络控制器***及方法,目的是在于,将数据平面和控制平面分离开来,一方面能够独立的研究数据平面的高效存储和快速转发,同时能够研究灵活的控制策略。
本发明公开了一种命名数据网络中的软件定义网络控制器***,其特征在于,用于将该控制平面转移到软件定义网络控制器,将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令,该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
该软件定义网络控制器包括存储模块、通信模块及功能模块API;
该存储模块,用于存储数据平面,维护该数据平面的拓扑结构,规则表,推送表和路由表四个数据结构,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;以及
该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;以及
功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
所述命名数据网络中的软件定义网络控制器***,其特征在于,该拓扑结构,用于设置数据结构,该数据结构存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节点的信息对;以及
该规则表,用于存储该拓扑结构中数据的名字与其所对应的规则,该数据的名字根据不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,该请求信息先查询该规则类,然后调用相应的数据流规则以实现不同的负载策略;以及
该推送表,用于存储该数据的名字对应的该数据提供者路由器标识,采用该前缀树结构存储该推送表,利用该推送表存储的不同该数据的名字对应得到该数据提供者路由器标识,调用路由表找到下一个地址跳转端口;以及
该路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,返回下一个地址跳转端口。
所述命名数据网络中的软件定义网络控制器***,其特征在于,该规则表还包括:
该规则类包括最优调度策略。通过提取该路由表数据结构信息,获取到达该数据提供者路由器标识的代价,并选择最小代价的该数据提供者路由器标识进行转发;以及
轮询调度策略,用于在该推送表每个数据节点存储一个轮询调度标识位,当有数据请求时,就根据该轮询调度标识位选择对应的该数据提供者路由器标识进行转发;以及
随机调度策略,根据本身生成的随机数选择相应的该数据提供者路由器标识进行转发;以及丢弃策略,用于禁止某个数据在网络中传输,当接收到该数据的请求,就将该数据请求丢弃;以及
缓存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作与最优调度相同。
所述命名数据网络中的软件定义网络控制器***,其特征在于,所述通信模块还包括:
通信流程模块,当该命名数据网络有连接请求时,主线程新开通一组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
所述命名数据网络中的软件定义网络控制器***,其特征在于,该功能模块API还包括:
服务迁移支持模块,数据提供者变更地址后,用于与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
协同缓存模块,软件定义网络控制器完成各节点信息收集和缓存方案计算,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中获得该数据。
本发明公开了一种命名数据网络中的软件定义网络控制器方法,其特征在于,包括
步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平面转移到软件定义网络控制器;
步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令;
步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
该软件定义网络控制器包括如下步骤;
步骤11,将数据平面存储起来,维护该数据平面的拓扑结构,规则表,推送表和路由表,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;
步骤12,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;
步骤13,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
所述命名数据网络中的软件定义网络控制器方法,其特征在于,该步骤11还包括:
步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节点的信息对;
步骤112该规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查询该规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略;
步骤113,该推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用前缀树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由器标识,并通过调用路由表找到下一个地址跳转端口;
步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供下一个地址跳转端口。
所述命名数据网络中的软件定义网络控制器方法,其特征在于,该步骤12还包括:
步骤121,主线程收到该命名数据网络有连接请求时,主线程新开通一组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
所述命名数据网络中的软件定义网络控制器方法,其特征在于,该步骤13还包括:
服务迁移支持步骤,数据提供者变更地址后,服务迁移支持模块与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中获得该数据。
由以上方案可知,本发明有益效果是将控制平面从数据平面中分离出来,将下层的物理设备抽象成逻辑上的一个整体,同时实现了针对命名数据网络的软件定义网络控制器。软件定义网络控制器维护命名数据网络的全局视图,通过与命名数据网络节点通信决定数据流的处理流程和走向,同时为管控应用程序提供统一的接口。软件定义网络控制器同时解放了节点的数据平面和控制平面,数据平面部分专注于提高吞吐性能,控制平面部分专注于实现更灵活的管控策略。从而促进了命名数据网络网络的创新和增量式部署。
附图说明
图1为软件定义网络体系结构图
图2为命名数据网络协议栈结构
图3为拓扑结构图意图
图4为规则表示意图
图5为规则表前缀树存储结构
图6为推送表示意图
图7为推送表前缀树存储结构
图8为路由表拓扑图
图9为路由表示意图
图10为通信模块处理流程图
图11为通信格式
图12功能模块API
其中,附图标记:
R2,R3,R4,R5,R6,R7数据提供者路由器标识
具体实施方式
下面给出本发明的具体实施例,结合附图对本发明做出了详细的描述。本发明通过使用软件定义网络控制器将控制平面从数据平面中分离出来,简化了命名数据网络体系结构的管理和控制,加快了命名数据网络体系结构的部署和测试。
本发明针对命名数据网络中的SDN控制器***包括,用于将该控制平面转移到软件定义网络控制器,将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令,该数据平面的网络设备接收该控制平面的指令并进行相应的转发;该软件定义网络控制器包括存储模块、通信模块及功能模块API如图2所示;
该存储模块,是整个软件定义网络控制器的基础,用于存储该数据平面,维护该数据平面的拓扑结构,规则表,推送表和路由表四个数据结构,该些数据结构是数据平面转发的基础,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;以及
该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;以及
功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
所述的一种命名数据网络中的软件定义网络控制器***,所述的存储模块还包括:
拓扑结构,用于设置数据结构,该数据结构存储数据提供者路由器标识,端口个数,网络设备所提供的数据的名字,相邻节点的信息对,该拓扑结构利用某种算法例如最短路径算法计算数据提供者路由器标识到达其他数据提供者路由器标识的代价及转发端口,并把计算出的结果存储在路由表的数据结构中;图3为拓扑结构示意图,在拓扑结构中存储了一组Router数据类型,拓扑结构中存储着控制平面网络设备的拓扑图,NameID中存储着数据提供者路由器标识;NumofPort存储着端口的个数;DataName存储着该网络设备所提供的数据名称;Link存储着相邻节点的信息对,拓扑结构是规则表、推送表和路由表决策的基础。
规则表,用于存储该拓扑结构中该数据的名字与其所对应的规则,该数据的名字根据不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,请求信息会查询该规则类,然后调用相应的规则以实现不同的负载策略;如图4所示,该规则表存储了不同的数据的名字对应的规则类,该规则类里面定义了所有可能的规则,用于实现不同的负载策略,规则表存储着不同数据所对应的不同的规则,每一种规则对应一种处理方式,例如:当某个“用户”请求data.***.gmail数据时,他的请求信息会通过best策略(最优路径或者说最小代价)来找到数据提供者来获得数据;如图5所示,是规则表前缀树存储结构的示意图,规则表中维护了一个默认规则defaultRule和一组不同数据对应的规则,当规则表中没有找到对应的数据时就返回defaultRule的值。而其中的规则类(Action类)是一个枚举类型,在它里面定义了所有可能的规则,不同的规则对应着不同操作。
推送表,用于存储所述的数据的名字对应的数据提供者路由器标识,采用前缀树结构存储推送表,利用推送表存储的不同数据的名字对应得数据提供者路由器标识通过调用路由表找到下一个地址跳转端口;如图6和图7所示在推送表中存储了不同的数据提供者路由器标识,即R2,R3,R4,R5,R6,R7等,同一个数据的名字可以有多个数据提供者路由器标识,如果用户想找data.***.gmail这个数据的名字,查询推送表可知该数据的名字有R2、R6、R7三个数据提供者路由器标识,但是最终去哪一个网络设备找,就要查询规则表中相应的规则。该规则类存储最优调度策略,根据提取路由表数据结构信息,获取到达每个数据提供者路由器标识的代价,并选择最小代价的数据提供者标识进行转发;以及
轮询调度策略,用于在推送表每个数据节点存储一个轮询调度标识位,如果有数据请求时,就会根据所述轮询调度标识位选择对应的数据提供者的标识进行转发;以及随机调度策略,根据本身生成的随机数选择相应的数据提供者的标识进行转发;以及丢弃策略,禁止该数据在网络中传输,一旦接收到该数据的请求,就将这个数据请求丢弃;以及缓存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作中与最优调度相同。
路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供下一个地址跳转端口。路由表中存储着路由信息,如图9所示,sendRouterID是发送方路由标识,receiveRouterID是接收方路由标识,node存储着<转发端口,相应代价>值,如图8所示,R2到R3转发端口为1,代价为25,R1想给R2发送信息,那么它要从1端口发出,代价是10。
所述命名数据网络中的软件定义网络控制器***,所述的通信模块还包括:
高并发支持模块,如图10所示,使用多线程处理模式,一个线程处理一个消息,并让一组通道维护所有连接,并监听整个所述连接;当命名数据网络协议栈有连接请求时,主线程新开通一组通道维护该连接,若发送通信消息时,主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时主线程重新等待下一个命名数据网络协议栈信息;
通信处理流程模块,接收命名数据网络协议栈消息时,先要判断是命名数据网络协议栈的哪一类发来的消息,若主进程判断是路由器发来的消息后,先查询规则表,如果所述规则表返回值是DROP,就立即给命名数据网络协议栈返回信息;如果所述规则表返回DROP值之外其他值,所述主进程接着查询推送表,并将查询到的一组数据提供者路由器标识缓存起来,根据规则表中不同的规则调用相应的函数从中选择一个“最合适”的数据提供者路由器标识,然后查询路由表,查找到该数据提供者路由器标识的下一跳地址,最后将相应的规则和下一条地址返回给命名数据网络协议栈;
通信格式定义模块,定义通信平面和数据平面通信的消息格式,如图11所示,控制平面和数据平面的消息格式,如下:
消息类型标识(type),整型,是枚举类型,包含了所有可能的消息格式,ERROR是当通信出现异常时的消息格式,当接收该格式的消息时,软件定义网络控制器就要中断相应的连接;
本地路由标识,32位,字符串,用于唯一标示目的路由器;
数据名长度:4位,整型,用于存储下一个字段服务名称的长度;
数据名称:可变位数,字符串,用于存储数据名称
目的路由标识:32位,字符串,用于唯一的标识目的路由器。
NLPM(Network Layer Packet Message)表示网络层消息;
NDLPM(Named Data Layer Packet Message)表示数据层消息;
NDM(Name Data Message)表示数据消息,当某些路由器标识所提供的数据有变动时,便会发送该消息;
RM(Router Message)表示路由消息,当物理拓扑有变化时,便会给软件定义网络控制器发送该消息。
所述命名数据网络中的软件定义网络控制器***,所述的功能模块API还包括:
防火墙模块,NDN以带名字的数据为中心的,防火墙通过功能模块API对规则表进行修改,从而实现了允许或阻止某些数据的请求。SDN控制器初始化后,防火墙根据用户的需求通过规则表所提供的API对规则表中相应数据的规则进行修改,从而当相应数据再次询问SDN控制器时,将执行修改后的规则,从而允许或阻止相应数据的请求。
负载均衡模块,SDN控制器上的负载均衡功能是通过规则表中不同的规则体现的,用户以通过功能模块API所提供的API对规则表和推送表中的表项进行修改,而规则表中有BEST、ROUNDROBIN、RANDOM三种规则用于实现不同的负载均衡策略。其中,BEST是最优调度策略,是根据路由表获取到达每个数据提供者的代价,并选择最小代价的数据提供者进行转发;ROUNDROBIN是轮询调度策略,在推送表每个数据节点存储了一个轮询调度标识位,当有一个新的数据请求时,就会根据该标识位选择对应的数据提供者进行转发;RANDOM是随机调度策略,根据自己生成的随机数选择相应的数据提供者进行转发。
服务迁移的支持模块,数据提供者变更地址后,用于与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
软件定义网络协同缓存模块,软件定义网络控制器完成各节点信息收集和缓存方案计算,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中获得该数据。
本发明还涉及一种命名数据网络中的软件定义网络控制器方法,包括
步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平面转移到软件定义网络控制器;
步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令;
步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
该软件定义网络控制器包括如下步骤;
步骤11,存储模块将数据平面存储起来,维护该数据平面的拓扑结构,规则表,推送表和路由表,该控制平面利用该些数据结构控制命名数据网络中数据流的转发;
步骤12,通信模块通过利用自定义的通信格式建立该控制平面与该数据平面之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;
步骤13,功能模块API将该存储功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
所述命名数据网络中的软件定义网络控制器方法,该步骤1还包括:
步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节点的信息对;
步骤112规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查询该规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略;
步骤113,推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用前缀树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由器标识,并通过调用路由表找到下一个地址跳转端口;
步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供下一个地址跳转端口。
所述命名数据网络中的软件定义网络控制器方法,该步骤12还包括:
步骤121,信息处理流程模块收到该命名数据网络有连接请求时,主线程新开通一组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该信息是命名数据网络的哪一类信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
所述命名数据网络中的软件定义网络控制器方法,该步骤13还包括:
防火墙步骤,NDN以带名字的数据为中心的,防火墙通过功能模块API对规则表进行修改,从而实现了允许或阻止某些数据的请求。SDN控制器初始化后,防火墙根据用户的需求通过规则表所提供的API对规则表中相应数据的规则进行修改,从而当相应数据再次询问SDN控制器时,将执行修改后的规则,从而允许或阻止相应数据的请求。
负载均衡步骤,SDN控制器上的负载均衡功能是通过规则表中不同的规则体现的,用户以通过功能模块API对规则表和推送表中的表项进行修改,而规则表中有BEST、ROUNDROBIN、RANDOM三种规则用于实现不同的负载均衡策略。其中,BEST是最优调度策略,是根据路由表获取到达每个数据提供者的代价,并选择最小代价的数据提供者进行转发;ROUNDROBIN是轮询调度策略,在推送表每个数据节点存储了一个轮询调度标识位,当有一个新的数据请求时,就会根据该标识位选择对应的数据提供者进行转发;RANDOM是随机调度策略,根据自己生成的随机数选择相应的数据提供者进行转发。
服务迁移支持步骤,软件定义网络控制器下发传输路径,数据提供者变更地址后,与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算后,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作通过分布式哈希表从其他节点中获得该数据。
以上对本发明的具体实施例进行了描述和说明,该实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附权利要求进行解释。
Claims (7)
1.一种命名数据网络中软件定义网络控制器***,其特征在于,用于将命名数据网络的控制平面转移到软件定义网络控制器,并将命名数据网络的数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令,该数据平面的网络设备接收该控制平面的指令并进行相应的转发;该软件定义网络控制器包括存储模块、通信模块及功能模块API;
该存储模块,用于存储该数据平面,维护该数据平面的拓扑结构、规则表、推送表和路由表四个数据结构,该控制平面利用该拓扑结构、该规则表、该推送表和该路由表控制命名数据网络中数据流的转发,其中该拓扑结构,用于设置数据结构,该数据结构存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节点的信息对;以及
该规则表,用于存储该拓扑结构中数据的名字与其所对应的规则,该数据的名字根据不同字段命名的,使用前缀树数据结构来存储,当用户请求查询该数据的名字时,先查询该规则表存储的数据的名字对应的规则类,然后调用相应的数据流规则以实现不同的负载策略;以及
该推送表,用于存储该数据的名字对应的该数据提供者路由器标识,采用前缀树结构存储该推送表,利用该推送表存储的不同该数据的名字对应得到该数据提供者路由器标识,调用路由表找到下一个地址跳转端口;以及
该路由表,用于存储该拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,返回下一个地址跳转端口;以及
该通信模块,利用自定义的通信格式建立该控制平面的软件定义网络控制器与该数据平面的网络设备之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;以及
该功能模块API,用于将该存储模块功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
2.根据权利要求1所述命名数据网络中软件定义网络控制器***,其特征在于,该规则表还包括:
该规则类包括最优调度策略,通过提取该路由表数据结构信息,获取到达该数据提供者路由器标识的代价,并选择最小代价的该数据提供者路由器标识进行转发;以及
轮询调度策略,用于在该推送表每个数据节点存储一个轮询调度标识位,当有数据请求时,就根据该轮询调度标识位选择对应的该数据提供者路由器标识进行转发;以及
随机调度策略,根据本身生成的随机数选择相应的该数据提供者路由器标识进行转发;以及丢弃策略,用于禁止某个数据在网络中传输,当接收到该数据的请求,就将该数据请求丢弃;以及
缓存策略,用于决定哪个数据需要缓存;以及推送操作,实际操作与最优调度相同。
3.根据权利要求1所述命名数据网络中软件定义网络控制器***,其特征在于,所述通信模块还包括:
通信流程模块,当该命名数据网络有连接请求时,主线程新开通一组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该消息是命名数据网络的哪一类信息,然后调用相应的处理函数,如果接收到的是通信信息,该主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
4.根据权利要求2所述命名数据网络中软件定义网络控制器***,其特征在于,该功能模块API还包括:
服务迁移支持模块,软件定义网络控制器下发传输路径,数据提供者变更地址后,该服务迁移支持模块用于与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
协同缓存模块,用于在软件定义网络控制器完成各节点信息收集和缓存方案计算后,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将该数据请求和多个缓存副本相连,当该缓存节点无法正常工作,通过分布式哈希表从其他节点中获得该数据。
5.一种命名数据网络中软件定义网络控制器方法,其特征在于,包括
步骤1将命名数据网络中功能紧密耦合的控制平面和数据平面分离,将该控制平面转移到软件定义网络控制器;
步骤2将该数据平面抽象存储于该控制平面,该控制平面向该数据平面的网络设备发送指令;
步骤3该数据平面的网络设备接收该控制平面的指令并进行相应的转发;
该软件定义网络控制器包括如下步骤;
步骤11,通过存储模块将数据平面存储起来,维护该数据平面的拓扑结构、规则表、推送表和路由表,该控制平面利用该拓扑结构、该规则表、该推送表和该路由表控制命名数据网络中数据流的转发,其中该步骤11还包括步骤111、步骤112、步骤113、步骤114:
步骤111该拓扑结构设置数据结构,该数据结构包括存储路由器标识,端口个数,网络设备提供的数据的名字,相邻节点的信息对;
步骤112该规则表将该拓扑结构中该数据的名字与其所对应的规则存储起来,查询该规则表提供的数据流规则,然后调用相应的规则以实现不同的负载策略;
步骤113,该推送表将该数据的名字对应的数据提供者路由器标识存储起来,采用前缀树结构存储推送表,利用该推送表存储的不同数据的名字对应得到该数据提供者路由器标识,并通过调用路由表找到下一个地址跳转端口;
步骤114,该路由表存储拓扑结构中计算出的数据提供者路由器标识到达其他数据提供者路由器标识的代价和转发端口,接收该推送表返回的该数据提供者路由器标识,提供下一个地址跳转端口;
步骤12,利用自定义的通信格式建立该控制平面与该数据平面之间的连接并维护该连接,接收并处理该命名数据网络发来的数据流;
步骤13,通过功能模块API将该存储模块功能封装,应用层利用该功能模块API操作该存储模块,以控制数据流走向。
6.如权利要求5所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤12还包括:
步骤121,主线程收到该命名数据网络有连接请求时,该主线程新开通一组通道维护该连接并监听整个连接,当主线程接收到消息时,先判断该消息是命名数据网络的哪一类信息,然后调用相应的处理函数,如果接收到通信信息,该主线程启动一个线程,并将相应的处理和返回的任务交给该线程处理,同时该主线程重新等待下一个命名数据网络信息。
7.如权利要求5所述命名数据网络中软件定义网络控制器方法,其特征在于,该步骤13还包括:
服务迁移支持步骤,软件定义控制器下发传输路径,当数据提供者路由器标示变更地址后,与该软件定义网络控制器交互,该软件定义网络控制器更改本身的数据库并下发更改后的路径来实现断开重连;
协同缓存步骤,软件定义网络控制器完成各节点信息收集和缓存方案计算后,该软件定义网络控制器将计算出的缓存方案下发给需要缓存的节点,通过分布式哈希表将数据请求和多个缓存副本相连,当该缓存节点无法正常工作,通过分布式哈希表从其他节点中获得该数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264130.6A CN104104614B (zh) | 2014-06-13 | 2014-06-13 | 命名数据网络中的软件定义网络控制器***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264130.6A CN104104614B (zh) | 2014-06-13 | 2014-06-13 | 命名数据网络中的软件定义网络控制器***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104104614A CN104104614A (zh) | 2014-10-15 |
CN104104614B true CN104104614B (zh) | 2018-05-01 |
Family
ID=51672422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410264130.6A Active CN104104614B (zh) | 2014-06-13 | 2014-06-13 | 命名数据网络中的软件定义网络控制器***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104104614B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468351B (zh) * | 2014-11-13 | 2018-02-16 | 北京邮电大学 | 基于sdn辅助ccn路由的管理方法、ccn转发装置及网络控制器 |
CN104836737A (zh) * | 2015-03-27 | 2015-08-12 | 北京邮电大学 | 以命名数据为中心的物联网通信方法 |
CN105516998B (zh) * | 2016-01-20 | 2018-12-07 | 西安交通大学 | 一种无线异构网络中可编程物理平面设计方法 |
CN107147507A (zh) * | 2016-03-01 | 2017-09-08 | 中卫大河云联网络技术有限公司 | 一种软件定义网络的控制平面构架以及控制方法 |
CN105681193A (zh) * | 2016-03-02 | 2016-06-15 | 付宏伟 | 一个软件定义网络控制器*** |
CN105763438B (zh) * | 2016-04-29 | 2018-08-28 | 清华大学 | 一种基于软件定义网络与名字路由技术的内容分发方法 |
CN106411736B (zh) * | 2016-11-17 | 2020-06-09 | 中国电子科技集团公司第五十四研究所 | 一种面向软件定义卫星网络的节点资源发现策略优化方法 |
CN106790617B (zh) * | 2016-12-30 | 2019-07-16 | 北京邮电大学 | 协同内容缓存控制***和方法 |
CN108268564B (zh) * | 2017-01-04 | 2020-08-14 | 珠海金山办公软件有限公司 | 电子表格中网络函数的异步计算方法及装置 |
CN106970936B (zh) * | 2017-02-09 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、数据查询方法及装置 |
EP3610384A4 (en) * | 2017-04-13 | 2020-11-25 | Nokia Technologies Oy | CONFIDENTIALITY MANAGEMENT DEVICE, METHOD AND COMPUTER PROGRAM PRODUCT |
CN107135268B (zh) * | 2017-05-22 | 2020-02-18 | 南京大学 | 基于信息中心网络的分布式任务计算方法 |
CN108289062B (zh) * | 2017-12-21 | 2020-07-28 | 北京邮电大学 | 一种基于软件定义的信息中心网络*** |
CN108306976B (zh) * | 2018-02-22 | 2021-01-15 | 付宏伟 | 一种用于云计算网络虚拟化中的sdn控制器架构 |
CN108401040B (zh) * | 2018-03-01 | 2021-01-15 | 北京邮电大学 | 用于ndn的内容接收方法、内容发送方法、装置及*** |
CN110636000B (zh) * | 2018-06-22 | 2021-07-27 | 贵州白山云科技股份有限公司 | 一种虚拟云网络控制方法、***和网络装置 |
CN109257276B (zh) * | 2018-09-14 | 2020-10-27 | 常熟理工学院 | 一种高效的命名数据网络实现方法 |
CN110417662B (zh) * | 2019-07-04 | 2021-07-23 | 东南大学 | 一种面向智慧建筑的命名数据网络传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及***、控制器、交换设备 |
CN103428771A (zh) * | 2013-09-05 | 2013-12-04 | 迈普通信技术股份有限公司 | 通信方法、软件定义网络sdn交换机及通信*** |
CN103782553A (zh) * | 2013-09-03 | 2014-05-07 | 华为技术有限公司 | 一种链路发现方法、sdn控制器及设备 |
CN103841056A (zh) * | 2014-03-13 | 2014-06-04 | 北京邮电大学 | 一种基于软件定义网络的开放存储管理调度方法和*** |
-
2014
- 2014-06-13 CN CN201410264130.6A patent/CN104104614B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051557A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 数据流处理方法及***、控制器、交换设备 |
CN103782553A (zh) * | 2013-09-03 | 2014-05-07 | 华为技术有限公司 | 一种链路发现方法、sdn控制器及设备 |
CN103428771A (zh) * | 2013-09-05 | 2013-12-04 | 迈普通信技术股份有限公司 | 通信方法、软件定义网络sdn交换机及通信*** |
CN103841056A (zh) * | 2014-03-13 | 2014-06-04 | 北京邮电大学 | 一种基于软件定义网络的开放存储管理调度方法和*** |
Non-Patent Citations (1)
Title |
---|
基于SDN的信息网络的设计与实现;唐超超;《中国优秀硕士学位论文全文数据库信息科技辑》;20131115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104104614A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104104614B (zh) | 命名数据网络中的软件定义网络控制器***及其方法 | |
CN104247371B (zh) | 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现 | |
CA2882535C (en) | Control device discovery in networks having separate control and forwarding devices | |
US9621642B2 (en) | Methods of forwarding data packets using transient tables and related load balancers | |
CN102726021B (zh) | 灵活的数据中心网络体系结构 | |
US20140369204A1 (en) | Methods of load balancing using primary and stand-by addresses and related load balancers and servers | |
US20140372616A1 (en) | Methods of forwarding/receiving data packets using unicast and/or multicast communications and related load balancers and servers | |
CN100505692C (zh) | 高性能路由器bgp路由协议分布并行实现方法 | |
US10554555B2 (en) | Hash-based overlay routing architecture for information centric networks | |
CN114090244B (zh) | 一种服务编排方法、装置、***及存储介质 | |
CN104272708A (zh) | 带有到服务器群组的无状态第一级分组分布和到群组内某个服务器的有状态第二级分组分布的二级分组分布 | |
JP5429179B2 (ja) | ネットワークノードおよびその負荷分散方法 | |
CN104380289B (zh) | 服务感知分布式散列表路由 | |
EP2487844B1 (en) | Control unit and method for dynamically controlling the routing within a network | |
CN109905251A (zh) | 网络管理方法、装置、电子设备和存储介质 | |
US20040042469A1 (en) | Method and apparatus for self-learning of call routing information | |
JP5869041B2 (ja) | ネットワークトポロジ要求を物理ネットワークにマッピングする方法、コンピュータプログラム製品、モバイル通信システム及びネットワーク構成プラットフォーム | |
CN105812257B (zh) | 业务链路由管理***及其使用方法 | |
CN113612688B (zh) | 分布式软件定义网络控制***及其构建方法 | |
CN108449269A (zh) | 基于sdn的数据中心网络负载均衡方法 | |
CN105391635A (zh) | 一种基于sdn的网络虚拟化方法 | |
CN106209563A (zh) | 一种云计算平台网络虚拟化实现方法及相应插件和代理 | |
CN100556048C (zh) | 一种向量数据通信网上建立向量连接的方法 | |
CN105791402A (zh) | 一种云计算平台网络虚拟化实现方法及相应插件和代理 | |
Xiao et al. | DMSSM: A Decision-Making Scheme of Switch Migration for SDN Control Plane |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |