CN108712458B - 支持内容控制的软件定义网络控制器 - Google Patents
支持内容控制的软件定义网络控制器 Download PDFInfo
- Publication number
- CN108712458B CN108712458B CN201810290895.5A CN201810290895A CN108712458B CN 108712458 B CN108712458 B CN 108712458B CN 201810290895 A CN201810290895 A CN 201810290895A CN 108712458 B CN108712458 B CN 108712458B
- Authority
- CN
- China
- Prior art keywords
- layer
- equipment
- message
- connection
- information
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Abstract
本发明提供一种支持内容控制的软件定义网络控制器,控制器包括核心服务提供层,核心服务提供层包括:网络内容路由控制服务模块,用于通过南向控制接口层采集和管理设备的内容路由控制信息以及通过北向接口层接收上层应用发送的内容路由控制策略添加/删除消息,并将内容路由控制策略解析为相应内容路由控制添加/删除消息发送至设备;网络内容管理服务模块,用于通过南向控制接口层采集设备的存储内容信息、根据接收到的存储内容信息查询消息返回相应的存储内容信息以及主动推送及删除设备的指定存储内容。本发明实现对内容节点和交换机的软件定义化控制,并实现对网络七层的数据面控制的可编程能力,为软件定义化的内容网络控制面提供承载。
Description
技术领域
本发明涉及软件定义网络技术领域,更具体地,涉及支持内容控制的软件定义网络控制器。
背景技术
目前,随着软件定义网络技术在网络设计、构建与部署中的广泛应用,作为软件定义网络控制面承载实体的控制器方案与产品大量涌现,从早期的NOX、POX、Floodlight、Ryu控制器,到目前最受业界关注并迅速向商用化发展的OpenDaylight,ONOS以及OpenContrail控制器等,均是通过开放面向网络控制面的可编程接口,提供网络控制面的可编程能力。其中,早期控制器如Floodlight,Ryu等仅支持单一的主流软件定义网络南向控制面协议OpenFlow,提供基本网络数据执行发控制,属于OpenFlow控制器,而目前正逐步商用化的OpenDaylight,ONOS控制器等,则通过支持如NETCONF,SNMP,OVSDB等更加丰富的南向网络控制面协议,提供更加灵活多样的可编程化的网络数据执行发控制,属于综合性控制器。
随着互联网时代的到来,网络中内容流量迎来了前所未有的大爆发,使得内容控制能力已经成为影响网络性能、服务交付质量及终端用户体验质量的重要因素,甚至在部分特定业务场景下,其重要性已经超过网络控制本身。因此,灵活、敏捷的网络内容控制能力也必将成为未来网络重要的基础能力之一。虽然随着技术成熟度的不断提高与商用化进程的不断推进,被认为是提供灵活、敏捷的网络控制能力的最重要承载的软件定义网络控制器不断发展,并已经产生了如OpenDaylight及ONOS这样功能丰富、综合性能强大的方案,但目前已有的软件定义网络控制器方案均缺乏对网络中内容(七层数据)控制能力的支持,核心功能仍然提供针对网络二层到四层的数据面执行发控制能力,无法对网络七层数据的感知与控制提供有效支持。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的支持内容控制的软件定义网络控制器。该控制器应用于软件定义化的内容分发网络中,该内容分发网络中还包括与所述控制器的北向接口层连接的上层应用以及与所述控制器的南向控制接口层连接的设备,所述控制器还包括核心服务提供层,所述核心服务提供层进一步包括:
网络内容路由控制服务模块,用于通过所述南向控制接口层采集和管理所述设备的内容路由控制信息以及通过所述北向接口层接收上层应用发送的内容路由控制策略添加/删除消息,并将所述内容路由控制策略解析为相应内容路由控制添加/删除消息发送至所述设备;
网络内容管理服务模块,用于通过所述南向控制接口层采集所述设备的存储内容信息、根据接收到的存储内容信息查询消息返回相应的存储内容信息以及主动推送及删除所述设备的指定存储内容。
优选地,所述的控制器还包括:
南向连接管理层,用于对接入所述控制器的每个设备的连接进行管理,并向设备管理层通知连接建立/连接关闭,以及将连接对象的引用传递给设备管理层;
所述设备管理层,用于为接入到控制器的每个设备生成设备对象,并通过所述设备对象对设备进行管理,并将设备对象引用表传递给南向消息传递层;
所述南向消息传递层用于通过所述设备对象引用表从设备对象接收设备传递的消息对象,并采用并发方式将接收到的消息对象传递给核心服务提供层,同时向所述核心服务提供层提供消息下发接口。
优选地,所述南向控制接口层具体用于执行以下步骤:
监听软件定义网络控制面的传输层的连接建立请求,响应监听到的连接建立请求并建立传输层连接;
若根据设备所使用的南向协议判断获知允许设备接入,则完成与所述设备的握手过程,并向所述南向连接管理层发送接入的通知,并将传输层的信息、所述设备使用的南向协议以及在所述握手过程中获取的设备特征传递至南向连接管理层;
若监听所述传输层连接未断开,则设置传输层连接的计时器,等待接入的设备后续发送的消息或接收所述南向连接管理层的消息对象;
在计时未超过预设时长内,若接收到所述消息对象,则将消息对象序列化为相应消息字节流发送至网络设备;若接收到所述消息,且判断该消息不为设备退出的请求消息,则将所述消息转换为控制器中的所述消息对象并传递至所述南向连接管理层。
优选地,所述南向连接管理层具体用于执行以下步骤:
接收所述南向控制接口层发送的所述通知,并根据所述传输层的信息、所述设备使用的南向协议以及设备特征,建立连接对象以在控制器中对新的设备连接进行表示与引用;
根据新建立的连接对象相应信息根据特定哈希算法计算哈希值,获得第一哈希值,并以所述第一哈希值作为索引,将新建立的连接对象存入连接对象哈希表;
向所述设备管理层发送开启设备连接的通知,并将相应的连接对象的引用传递给设备管理层;
若监测到来自所述南向控制接口层的设备连接断开通知,则通知设备管理层断开设备连接,待所述设备管理层释放断开的连接对象的引用后,从所述连接对象哈希表中删除相应连接对象,并释放连接对象所占资源,之后继续监听允许接入设备的通知。
优选地,所述设备管理层具体用于执行以下步骤:
获取来自所述南向连接管理层的开启设备连接的通知,根据传递来的连接对象的引用建立设备对象,
根据所述设备对象包含的信息,根据特定哈希算法计算哈希值,获得第二哈希值,并以所述第二哈希值作为索引将新建立的设备对象存入设备对象哈希表,同时更新包含有所有设备引用的设备对象引用表;
通知所述南向消息传递层所述设备对象引用表已更新,向设备消息交互接口输入设备状态以查询消息对象,设置设备对象的状态更新周期,启动状态更新计时器;
若监测存在来自南向连接管理层的设备连接断开的通知,则从设备对象哈希表将断开连接设备的对应设备对象删除,并释放设备对象所占资源,同时对设备对象引用表进行更新,并通知南向消息传递层更新设备对象引用表。
优选地,所述设备管理层还用于,若未监测存在来自南向连接管理层的设备连接断开的通知,则监测设备消息交互接口;
若收到设备状态更新的消息对象,则根据该消息对象包含信息,对设备对象状态信息进行更新,重置状态更新计时器,并继续监测是否存在来自南向连接管理层的设备连接断开的通知。
优选地,所述南向信息传递层具体用于执行以下步骤:
若监测到设备对象引用表为空,则监测是否存在来自所述设备管理层的更新设备对象引用表的通知;
若监测到来自所述设备管理层的更新设备对象引用表的通知,则根据更新信息对设备对象引用表进行更新,并继续监测是否存在来自所述设备管理层的更新设备对象引用表的通知。
优选地,所述南向信息传递层还用于执行以下步骤:
若未监测到来自所述设备管理层的更新设备对象引用表的通知,并发监测设备对象引用表中所有设备对象引用的设备消息交互接口;
若检测到设备消息交互接口有接收消息对象到达,判断各设备消息交互接口到达的接收消息对象类型,并通过并发的方式将接收消息对象传递至核心服务提供层,并将接收消息对象对应的设备消息交互接口对象与接收消息对象一起传递给相应核心服务提供层。
优选地,所述核心服务提供层还包括:
网络拓扑管理服务模块,用于监听并存储拓扑信息和链路状态信息以及链路状态查询信息、接收拓扑信息查询消息,并返回相应拓扑信息以及接收链路状态信息查询消息,并返回相应链路状态信息。
优选地,所述核心服务提供层还包括:
网络二层至四层转发控制服务模块,用于采集与管理设备上的二层至四层转发控制信息以及接收二层至四层转发控制策略添加/删除消息,并将转发控制策略解析为相应转发控制添加/删除消息发送至所述南向消息传递层。
本发明提出的支持内容控制的软件定义网络控制器,具有支持传统网络二层至四层南向控制协议的南向控制接口层以及同时提供网络二层至四层以及网络内容控制管理开放服务接口的北向接口层,在支持针对网络二层到四层的数据面执行并发控制的可编程能力的同时,实现对内容节点的软件定义化控制,并实现对网络七层的数据面控制的可编程能力,为软件定义化的内容网络控制面提供承载。本发明的控制器统一调度网络内的设备,实现网络集中控制,使网络控制与具体的设备(交换机、内容节点设备)相分离,实现了将网络控制与物理网络拓扑分离,从而摆脱硬件对网络架构的限制。这样使用者可以像升级、安装软件一样对网络架构进行修改,满足企业对整个网站架构进行调整、扩容或升级。而底层的交换机、路由器等硬件则无需替换,节省大量的成本的同时,网络架构迭代周期将大大缩短。
附图说明
图1为根据本发明实施例的核心服务提供层的功能框图;
图2为根据本发明实施例的控制器的功能框图;
图3为根据本发明实施例的南向控制接口层的工作流程示意图;
图4为根据本发明实施例的南向连接管理层的工作流程示意图;
图5为根据本发明实施例的设备管理层的工作流程示意图;
图6为根据本发明实施例的南向信息传递层的工作流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
为了克服现有技术的上述问题,本发明实施例提供一种支持网络控制的内容分发网络,该内容分发网络中应用了软件定义网络中的控制器(简称控制器),还包括与控制器的北向接口层连接的上层应用以及与控制器的南向控制接口层连接的设备,上层应用用于向控制器配置内容路由策略,设备的种类包括内容节点和交换节点,交换节点可以向客户端提供具有其所需要内容资源的内容节点,以使得客户端向该内容节点获取内容资源,而控制器可以向交换节点和内容节点下发相应的内容路由策略和内容资源管理策略,可以理解的是,内容路由策略确定了当消息到达支持内容控制的软件定义网络中的设备时,执行模块的后续处理动作,而内容资源管理策略则表示设备对于内容资源的管理策略,例如删除内容资源、添加内容资源、查询内容资源等等。通过在内容分发网络中引入本发明实施例的软件定义网络控制器,实现了对网络的集中控制,并且支持内容识别。
在本发明实施例中,控制器包括核心服务提供层,图1示出了核心服务提供层的功能框图,如图所示,核心服务提供层包括:
网络内容路由控制服务模块101,用于通过所述南向控制接口层采集和管理所述设备的内容路由控制信息以及通过所述北向接口层接收上层应用发送的内容路由控制策略添加/删除消息,并将所述内容路由控制策略解析为相应内容路由控制添加/删除消息发送至所述设备。
需要说明的是,内容路由控制信息就是控制器对设备下发的路由信息,内容路由控制信息包括根据网络数据包七层信息指定的数据包路由信息、数据包二层至四层标记信息以及数据包速率控制信息,数据包路由信息是指数据包发送的路径信息,即去往目的地的一条信息,数据包速率控制信息的作用在于控制数据包传输速率。内容路由控制策略添加/删除消息即添加/删除内容路由控制策略的消息,显然,内容路由控制策略添加/删除信息中记录了待添加/待删除的内容路由控制策略,设备根据接收到的信息就可以相应地添加或删除内容路由控制策略。
网络内容管理服务模块102,用于通过所述南向控制接口层采集所述设备的存储内容信息、根据接收到的存储内容信息查询消息返回相应的存储内容信息以及主动推送及删除所述设备的指定存储内容。
具体地,存储内容信息包括内容节点的存储内容总数、存储内容总大小、各存储内容大小、各存储内容类型、各存储内容存储起始时间、各存储内容上次被访问时间、各存储内容被访问次数、存储内容被访问日志信息。在本发明实施例中内容节点会在某些时刻(例如自身未存储所需的内容时)向控制器发送存储内容信息查询信息,网络内容管理服务模块接收到该查询信息时,会向内容节点返回相应的存储内容信息,例如,内容节点需要获得内容:电影《疯狂的石头》,那么就向控制器发送查询电影《疯狂的石头》存储地址的查询信息,若控制器中的网络内容管理服务模块查询到该存储地址,那么就把该存储地址回复给内容节点。网络内容管理服务模块还能够主动推送或主动删除内容节点的指定内容,这样就可以进一步增加网络中内容控制的灵活性。
图2为本发明实施例的控制器的功能框图,如图2所示,控制器包括:
南向控制接口层201,支持如OpenFlow等目前主流传统软件定义网络南向控制协议以及某些特定的网络南向控制协议,并根据设备的南向控制协议判断是否运行设备接入连接,并向南向连接管理层202通知允许接入的设备。
需要说明的是,当设备接入网络后,控制器即可实现对设备的调度和集中控制,对设备(例如交换机和内容节点)下发内容路由策略、对内容节点主动推送或删除内容等。
南向连接管理层202,用于对接入所述控制器的每个设备的连接进行管理,包括连接对象建立、连接对象维护以及连接对象删除,并向设备管理层通知连接建立/连接关闭,以及将连接对象的引用传递给设备管理层203.
所述设备管理层203,用于为接入到控制器的每个设备生成设备对象,并通过所述设备对象对设备进行管理,包括设备对象的建立,设备状态的收集与更新以及设备对象的删除,并将设备对象引用表传递给南向消息传递204。
需要说的是,设备对象,用于在控制器对设备进行表示与引用,设备对象信息包括:设备标识,用于唯一标识设备;设备类型,表示设备的种类,如OpenFlow交换机,OpenContent交换机,传统SNMP交换机,OpenContent内容存储节点等;设备所使用南向协议类型;设备连接传输层地址;设备消息交互接口,使用设备对应的连接对象引用中的消息管道对象构建,用于与设备的消息交互;设备属性信息,如设备静态存储空间,设备端口数目,设备端口物理带宽等;设备状态信息,如设备当前可用存储空间,设备内存使用率,设备CPU占用率,设备活动端口数目,设备端口累计发送/接收数据量等。
所述南向消息传递层204,用于通过所述设备对象引用表从设备对象接收设备传递的消息对象,并采用并发方式将接收到的消息对象传递给核心服务提供层205,同时向所述核心服务提供层205提供消息下发接口。
核心服务提供层205,用于使用南向消息传递层205提供的消息服务,具体实现网络二层到四层控制以及网络七层内容控制功能,并通过北向接口提供层206开放可编程的网络与内容控制接口服务。其中,消息服务即利用设备消息交互接口进行的一整套消息交互机制。
所述北向接口提供层206,将上层应用调用北向接口发送来的信息传递给核心服务提供层205,并将核心服务提供层205的响应信息返回给上层应用。上层应用通过控制器北向接口提供层206配置路由策略,进而实现支持网络控制的内容分发网络。
在上述各实施例的基础上,所述南向控制接口层具体用于执行以下步骤:
监听软件定义网络控制面的传输层的连接建立请求,响应监听到的连接建立请求并建立传输层连接。
需要说明的是,控制面传输层属于SDN网络中的公知常识。本发明实施例的控制器以及设备均具有两个面:一个是数据面(又叫转发面),一个是控制面,就是控制器向设备下发路由信息的数据交换过程。控制面并不针对于某一网络功能实体来说,他是针对于网络整体来说的,实质上就是控制器对整个网络的调度层次。至于传输层,即网络体系中的传输层,在建立连接时,主要是通过传输层中的TCP协议的三次握手来建立连接。
若根据设备所使用的南向协议判断获知允许设备接入,则完成与所述设备的握手过程,并向所述南向连接管理层发送接入的通知,并将传输层的信息、所述设备使用的南向协议以及在所述握手过程中获取的设备特征传递至南向连接管理层。
握手过程是TCP中的连接管理机制。设备特征就是具体到设备(交换机、内容节点等)的特征信息,比如:设备型号以及设备的状态等,设备特征也可以自行定义。获取设备特征用于对设备进行标识,掌握设备状态等。这一套接入机制与现有技术中的SDN机制略有不同,比如判断接入的南向协议。
若监听所述传输层连接未断开,则设置传输层连接的计时器,等待接入的设备后续发送的消息或接收所述南向连接管理层的消息对象。
在计时未超过预设时长内,若接收到所述消息对象,则将消息对象序列化为相应消息字节流发送至网络设备;若接收到所述消息,且判断该消息不为设备退出的请求消息,则将所述消息转换为控制器中的所述消息对象并传递至所述南向连接管理层。
图3为本发明实施例的南向控制接口层的工作流程示意图,如图所示,该流程包括:
步骤301:南向控制接口层监听到控制面传输层连接建立请求,响应并建立传输层连接后接收设备接入请求消息,转步骤302;
步骤302:南向控制接口层解析设备接入请求消息,判断设备接入所使用的南向协议类型,并决定是否允许设备接入,若否,则转步骤303,若允许,则转步骤304;
步骤303:南向控制接口层依据接入请求所使用的南向协议,向设备反馈拒绝接入消息,转步骤310;
步骤304:南向控制接口层依据接入请求所使用的南向协议,完成与设备的握手过程,并通知南向连接管理层新设备接入,并将传输层连接信息、南向协议信息以及握手过程中获取的设备特征信息传递给南向连接管理层,转步骤305;
步骤305:南向控制接口层监测传输层连接是否断开,若是,则转步骤311,若否,则转步骤306;
步骤306:南向控制接口层设置传输层连接计时器及心跳包计数器nc,计时长度为Tt,计数器初始值为0,最大值为Nc,并等待接入设备的后续消息或来自南向连接管理层103的消息的到达,若超过Tt无消息到达,则转步骤307,若有消息到达,则转步骤309;
步骤307:南向控制接口层判断nc是否大于Nc,若否,则向设备发送心跳包,心跳包计数器nc加1,转步骤208,若是,则转步骤310;
步骤308:南向控制接口层监听是否有来自设备的心跳包回应,若是,则转步骤306,若否,则转步骤307;
步骤309:若收到来自南向连接管理层的消息对象,南向控制接口层将消息对象序列化为相应消息字节流发送至设备,若收到来自同一设备的消息,南向控制接口层消息是否为设备退出请求消息,若是,则转步骤310,若否,将消息字节流转换为控制器中的消息对象并传递给南向连接管理层,并转步骤305;
需要说明的是,消息对象,用于在控制器中对特定南向协议的特定消息种类进行表示与引用,消息对象包含相应消息的各字段种类以及相应的字段取值,同时包含必要的消息对象标识信息及消息构造接口;
步骤310:南向控制接口层断开设备相关传输层连接,转步骤311;
步骤311:南向控制接口层通知南向连接管理层设备连接断开,继续监听后续设备接入请求。
在上述实施例的基础上,南向连接管理层具体用于执行以下步骤:
接收所述南向控制接口层发送的所述通知,并根据所述传输层的信息、所述设备使用的南向协议以及设备特征,建立连接对象以在控制器中对新的设备连接进行表示与引用;
根据新建立的连接对象相应信息根据特定哈希算法计算哈希值,获得第一哈希值,并以所述第一哈希值作为索引,将新建立的连接对象存入连接对象哈希表;
向所述设备管理层发送开启设备连接的通知,并将相应的连接对象的引用传递给设备管理层;
若监测到来自所述南向控制接口层的设备连接断开通知,则通知设备管理层断开设备连接,待所述设备管理层释放断开的连接对象的引用后,从所述连接对象哈希表中删除相应连接对象,并释放连接对象所占资源,之后继续监听允许接入设备的通知。
以内容节点为例,将内容节点接入网络是一个过程,整个经过就是:南向控制接口层==>南向连接管理层==>设备管理层==>南向消息传递层==>核心服务提供层。创建连接对象的引用是为了让后续模块进行引用(引用:一般是地址),这一部分的连接对象的引用的最终目的是将设备引入网络,将连接对象引用传递给设备管理层只是节点接入的一个步骤。
图4为本发明实施例的南向连接管理层的工作流程示意图,如图4所示,该流程包括:
步骤401:南向连接管理层获取来自南向控制接口层的新设备接入通知(步骤304),根据同时获得的传输层连接信息、南向协议信息以及设备特征信息,建立连接对象以在控制器中对新的设备连接进行表示与引用,转步骤402;
需要说明的是,连接对象,包括:连接的传输层信息,例如连接远端IP地址、连接远端TCP/UDP端口等,唯一确定一个连接;连接的消息管道对象,用于与南向控制接口层102进行消息交互,即发送/接收消息对象;连接远端设备属性摘要。
步骤402:南向连接管理层根据新建立的连接对象相应信息根据特定哈希算法计算哈希值,并以此哈希值作为索引将新建立的连接对象存入连接对象哈希表,转步骤403;
步骤403:南向连接管理层通知设备管理层新设备连接打开,并将相应连接对象的引用传递给设备管理层,转步骤404;
步骤404:南向连接管理层监测是否收到来自南向控制接口层102的设备连接断开通知(步骤311),若否,则继续监测,若是,则转步骤405;
步骤405:南向连接管理层通知设备管理层设备连接断开,待设备管理层释放断开的连接的对应连接对象的引用后,从连接对象哈希表删除相应连接对象,并释放连接对象所占资源,继续监听新设备接入通知。
在上述实施例的基础上,设备管理层具体用于执行以下步骤:
获取来自所述南向连接管理层的开启设备连接的通知,根据传递来的连接对象的引用建立设备对象,
根据所述设备对象包含的信息,根据特定哈希算法计算哈希值,获得第二哈希值,并以所述第二哈希值作为索引将新建立的设备对象存入设备对象哈希表,同时更新包含有所有设备引用(即设备对象引用)的设备对象引用表;
通知所述南向消息传递层所述设备对象引用表已更新,向设备消息交互接口输入设备状态以查询消息对象,设置设备对象的状态更新周期,启动状态更新计时器;
若监测存在来自南向连接管理层的设备连接断开的通知,则从设备对象哈希表将断开连接设备的对应设备对象删除,并释放设备对象所占资源,同时对设备对象引用表进行更新,并通知南向消息传递层更新设备对象引用表。需要说明的是,设备对象哈希表的作用是存储设备对象;而设备对象引用表的作用是指示当前网络使用的设备对象(例如交换机、内容节点等),设备对象引用表不需要存储整个设备对象信息,只需存储能标识设备对象的信息即可,例如:设备标识符、存储地址等等。
若未监测存在来自南向连接管理层的设备连接断开的通知,则监测设备消息交互接口;
若收到设备状态更新的消息对象,则根据该消息对象包含信息,对设备对象状态信息进行更新,重置状态更新计时器,并继续监测是否存在来自南向连接管理层的设备连接断开的通知。
图5为本发明实施例的设备管理层的工作流程示意图,如图5所示,设备管理层的工作流程包括:
步骤501:设备管理层获取来自南向连接管理层的新设备连接打开通知(步骤403),并根据传递来的连接对象引用建立设备对象,转步骤502;
其中,设备对象用于在控制器对设备进行表示与引用,设备对象信息包括:设备标识,用于唯一标识设备;设备类型,表示设备的种类,如OpenFlow交换机,OpenContent交换机,传统SNMP交换机,OpenContent内容存储节点等;设备所使用南向协议类型;设备连接传输层地址;设备消息交互接口,使用设备对应的连接对象引用中的消息管道对象构建,用于与设备的消息交互;设备属性信息,如设备静态存储空间,设备端口数目,设备端口物理带宽等;设备状态信息,如设备当前可用存储空间,设备内存使用率,设备CPU占用率,设备活动端口数目,设备端口累计发送/接收数据量等。
步骤502:设备管理层根据新建立的设备对象相应信息根据特定哈希算法计算哈希值,并以此哈希值作为索引将新建立的设备对象存入设备对象哈希表,同时更新包含所有设备引用的设备对象引用表,转步骤503;
步骤503:设备管理层通知南向消息传递层设备对象引用表更新,转步骤504;
步骤504:设备管理层为设备对象设置状态更新周期为Ts,设备管理层启动状态更新计时器ts,ts初始值为0,转步骤405;
步骤505:设备管理层向设备对象消息交互接口输入设备状态查询消息对象,转步骤506;
步骤506:设备管理层监测是否有来自南向连接管理层的设备连接断开通知,若是,则转步骤511,若否,则转步骤507;
步骤507:设备管理层监测设备对象消息交互接口,等待是否有设备返回消息,若是,则转步骤508,若否则转步骤510;
步骤508:设备管理层检查是否收到设备状态更新上报消息对象,若是,则转步骤509,若否,则转步骤510;
步骤509:设备管理层根据收到的设备状态更新上报消息对象包含信息,对设备对象状态信息进行更新,并将状态更新计时器ts重置为0,转步骤506;
步骤510:设备管理层检查状态更新计时器是否超时,即ts是否大于Ts,若是,则转步骤505,若否,则转步骤506;
步骤511:设备管理层从设备对象哈希表将断开连接设备的对应设备对象删除,并释放设备对象所占资源,同时对设备对象引用表进行更新,并向南向消息传递层通知设备对象引用表更新,继续监听新设备连接打开。
在上述实施例的基础上,所述南向信息传递层具体用于执行以下步骤:
若监测到设备对象引用表为空,则监测是否存在来自所述设备管理层的更新设备对象引用表的通知;
若监测到来自所述设备管理层的更新设备对象引用表的通知,则根据更新信息对设备对象引用表进行更新,并继续监测是否存在来自所述设备管理层的更新设备对象引用表的通知。
若未监测到来自所述设备管理层的更新设备对象引用表的通知,并发监测设备对象引用表中所有设备对象引用的设备消息交互接口;
若检测到设备消息交互接口有接收消息对象到达,判断各设备消息交互接口到达的接收消息对象类型,并通过并发的方式将接收消息对象传递至核心服务提供层,并将接收消息对象对应的设备消息交互接口对象与接收消息对象一起传递给相应核心服务提供层。
需要说明的是,南向信息传递层实质上通过对象引用表获得对象的地址(或标识符、别名等),即知道设备对象在何处,其具体操作的肯定是哈希表中的设备对象。而设备对象引用更像是设备对象的一种表示,而不是设备对象。
图6为本发明实施例的南向信息传递层的工作流程图,如图所示,南向信息传递层具体执行以下步骤:
步骤601:核心服务提供层中的服务提供模块通过南向消息传递层提供的消息监听注册接口注册,以监听并接收指定类型消息,转步骤602;
步骤602:南向消息传递层监测是否收到来自设备管理层的设备对象引用表更新通知,若是,则转步骤603,若是,则转步骤604;
步骤603:南向消息传递层根据更新信息对设备对象引用表进行更新,转步骤602;
步骤604:南向消息传递层检测设备对象引用表是否为空,若是,则转步骤602,若否,则转步骤605;
步骤605:南向消息传递层并发监测设备对象引用表中所有设备对象引用的设备消息交互接口,检测是否有接收消息对象到达,若否,则转步骤602,若是,则转步骤606;
步骤606:南向消息传递层判断各设备消息交互接口到达的接收消息对象类型,并通过并发的方式分类将接收消息对象传递给注册监听相应消息对象类型的核心服务提供层的服务提供模块,并同时将接收消息对象对应的设备消息交互接口对象与接收消息对象一起传递给相应核心服务提供层服务提供模块,转步骤607;
步骤607:核心服务提供层中的服务提供模块收到接收消息对象并处理后,可以使用对应传递来的设备消息交互接口对象或直接使用南向消息传递层提供的设备交互接口/访问功能向指定设备消息交互接口/发送消息对象。
在上述各实施例的基础上,所述核心服务提供层还包括:
网络拓扑管理服务模块,用于监听并存储拓扑信息和链路状态信息以及链路状态查询信息、接收拓扑信息查询消息,并返回相应拓扑信息以及接收链路状态信息查询消息,并返回相应链路状态信息。具体地,拓扑信息包括接入控制器的网络设备节点属性信息、网络设备节点状态信息以及网络设备节点间的连接关系信息;链路状态信息包括链路上行固定带宽、链路下行固定带宽、链路瞬时上行流量、链路瞬时下行流量、链路累计上行传输数据包数、链路累计下行传输数据包数、链路累计上行传输数据量、链路累计下行传输数据量、链路上行累计丢包数、链路下行累计丢包数、链路上行瞬时丢包率、链路下行瞬时丢包率、链路上行时延以及链路下行时延信息。
在上述各实施例的基础上,所述核心服务提供层还包括:
网络二层至四层转发控制服务模块,用于采集与管理设备上的二层至四层转发控制信息以及接收二层至四层转发控制策略添加/删除消息,并将转发控制策略解析为相应转发控制添加/删除消息发送至所述南向消息传递层。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种支持内容控制的软件定义网络控制器,其特征在于,该控制器应用于软件定义化的内容分发网络中,所述内容分发网络中还包括与所述控制器的北向接口层连接的上层应用以及与所述控制器的南向控制接口层连接的设备,所述控制器还包括核心服务提供层,所述核心服务提供层用于使用南向消息传递层提供的消息服务,具体实现网络二层到四层控制以及网络七层内容控制功能,并通过北向接口提供层开放可编程的网络与内容控制接口服务;所述核心服务提供层进一步包括:
网络内容路由控制服务模块,用于通过所述南向控制接口层采集和管理所述设备的内容路由策略以及通过所述北向接口层接收上层应用发送的内容路由控制策略添加/删除消息,并将所述内容路由控制策略解析为相应内容路由控制添加/删除消息发送至所述设备;
网络内容管理服务模块,用于通过所述南向控制接口层采集所述设备的存储内容信息、根据接收到的存储内容信息查询消息返回相应的存储内容信息以及主动推送及删除所述设备的指定存储内容;
还包括:
南向连接管理层,用于对接入所述控制器的每个设备的连接进行管理,并向设备管理层通知连接建立/连接关闭,以及将连接对象的引用传递给设备管理层;
所述设备管理层,用于为接入到控制器的每个设备生成设备对象,并通过所述设备对象对设备进行管理,并将设备对象引用表传递给南向消息传递层;
所述南向消息传递层用于通过所述设备对象引用表从设备对象接收设备传递的消息对象,并采用并发方式将接收到的消息对象传递给核心服务提供层,同时向所述核心服务提供层提供消息下发接口;
所述南向控制接口层具体用于执行以下步骤:
监听软件定义网络控制面的传输层的连接建立请求,响应监听到的连接建立请求并建立传输层连接;
若根据设备所使用的南向协议判断获知允许设备接入,则完成与所述设备的握手过程,并向所述南向连接管理层发送接入的通知,并将传输层的信息、所述设备使用的南向协议以及在所述握手过程中获取的设备特征传递至南向连接管理层;
若监听所述传输层连接未断开,则设置传输层连接的计时器,等待接入的设备后续发送的消息或接收所述南向连接管理层的消息对象;
在计时未超过预设时长内,若接收到所述消息对象,则将消息对象序列化为相应消息字节流发送至网络设备;若接收到所述消息,且判断该消息不为设备退出的请求消息,则将所述消息转换为控制器中的所述消息对象并传递至所述南向连接管理层。
2.如权利要求1所述的控制器,其特征在于,所述南向连接管理层具体用于执行以下步骤:
接收所述南向控制接口层发送的所述通知,并根据所述传输层的信息、所述设备使用的南向协议以及设备特征,建立连接对象以在控制器中对新的设备连接进行表示与引用;
根据新建立的连接对象相应信息根据特定哈希算法计算哈希值,获得第一哈希值,并以所述第一哈希值作为索引,将新建立的连接对象存入连接对象哈希表;
向所述设备管理层发送开启设备连接的通知,并将相应的连接对象的引用传递给设备管理层;
若监测到来自所述南向控制接口层的设备连接断开通知,则通知设备管理层断开设备连接,待所述设备管理层释放断开的连接对象的引用后,从所述连接对象哈希表中删除相应连接对象,并释放连接对象所占资源,之后继续监听允许接入设备的通知。
3.如权利要求1所述的控制器,其特征在于,所述设备管理层具体用于执行以下步骤:
获取来自所述南向连接管理层的开启设备连接的通知,根据传递来的连接对象的引用建立设备对象,
根据所述设备对象包含的信息,根据特定哈希算法计算哈希值,获得第二哈希值,并以所述第二哈希值作为索引将新建立的设备对象存入设备对象哈希表,同时更新包含有所有设备引用的设备对象引用表;
通知所述南向消息传递层所述设备对象引用表已更新,向设备消息交互接口输入设备状态以查询消息对象,设置设备对象的状态更新周期,启动状态更新计时器;
若监测存在来自南向连接管理层的设备连接断开的通知,则从设备对象哈希表将断开连接设备的对应设备对象删除,并释放设备对象所占资源,同时对设备对象引用表进行更新,并通知南向消息传递层更新设备对象引用表。
4.如权利要求3所述的控制器,其特征在于,所述设备管理层还用于,若未监测存在来自南向连接管理层的设备连接断开的通知,则监测设备消息交互接口;
若收到设备状态更新的消息对象,则根据该消息对象包含信息,对设备对象状态信息进行更新,重置状态更新计时器,并继续监测是否存在来自南向连接管理层的设备连接断开的通知。
5.如权利要求4所述的控制器,其特征在于,所述南向消息传递层具体用于执行以下步骤:
若监测到设备对象引用表为空,则监测是否存在来自所述设备管理层的更新设备对象引用表的通知;
若监测到来自所述设备管理层的更新设备对象引用表的通知,则根据更新信息对设备对象引用表进行更新,并继续监测是否存在来自所述设备管理层的更新设备对象引用表的通知。
6.如权利要求5所述的控制器,其特征在于,所述南向消息传递层还用于执行以下步骤:
若未监测到来自所述设备管理层的更新设备对象引用表的通知,并发监测设备对象引用表中所有设备对象引用的设备消息交互接口;
若检测到设备消息交互接口有接收消息对象到达,判断各设备消息交互接口到达的接收消息对象类型,并通过并发的方式将接收消息对象传递至核心服务提供层,并将接收消息对象对应的设备消息交互接口对象与接收消息对象一起传递给相应核心服务提供层。
7.如权利要求6所述的控制器,其特征在于,所述核心服务提供层还包括:
网络拓扑管理服务模块,用于监听并存储拓扑信息和链路状态信息以及链路状态查询信息、接收拓扑信息查询消息,并返回相应拓扑信息以及接收链路状态信息查询消息,并返回相应链路状态信息。
8.如权利要求7所述的控制器,其特征在于,所述核心服务提供层还包括:
网络二层至四层转发控制服务模块,用于采集与管理设备上的二层至四层转发控制信息以及接收二层至四层转发控制策略添加/删除消息,并将转发控制策略解析为相应转发控制添加/删除消息发送至所述南向消息传递层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810290895.5A CN108712458B (zh) | 2018-03-30 | 2018-03-30 | 支持内容控制的软件定义网络控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810290895.5A CN108712458B (zh) | 2018-03-30 | 2018-03-30 | 支持内容控制的软件定义网络控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108712458A CN108712458A (zh) | 2018-10-26 |
CN108712458B true CN108712458B (zh) | 2021-06-18 |
Family
ID=63866986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810290895.5A Active CN108712458B (zh) | 2018-03-30 | 2018-03-30 | 支持内容控制的软件定义网络控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108712458B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112838940B (zh) * | 2019-11-25 | 2024-03-01 | 中兴通讯股份有限公司 | 一种网络控制器框架和数据处理方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016058392A1 (zh) * | 2014-10-13 | 2016-04-21 | 中兴通讯股份有限公司 | 一种基于软件定义网络实现内容分发网络的方法及系统 |
WO2016058417A1 (zh) * | 2014-10-13 | 2016-04-21 | 中兴通讯股份有限公司 | 基于软件定义网络实现内容分发网络的方法及系统 |
CN105681438A (zh) * | 2016-01-26 | 2016-06-15 | 南京航空航天大学 | 内容中心网络中一种集中式的缓存决策策略 |
CN105763438A (zh) * | 2016-04-29 | 2016-07-13 | 清华大学 | 一种基于软件定义网络与名字路由技术的内容分发方法 |
CN106027555A (zh) * | 2016-06-30 | 2016-10-12 | 中国科学院计算技术研究所 | 一种采用sdn技术改善内容分发网络安全性的方法及系统 |
CN106162209A (zh) * | 2016-06-30 | 2016-11-23 | 中国科学院计算技术研究所 | 一种基于sdn技术的内容分发网络直播系统与方法 |
CN106385641A (zh) * | 2016-10-08 | 2017-02-08 | 中山大学 | 一种基于sdn的直播视频流媒体分发方法 |
CN106789648A (zh) * | 2016-12-15 | 2017-05-31 | 南京邮电大学 | 基于内容存储与网络状况的软件定义网络路由决策方法 |
-
2018
- 2018-03-30 CN CN201810290895.5A patent/CN108712458B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016058392A1 (zh) * | 2014-10-13 | 2016-04-21 | 中兴通讯股份有限公司 | 一种基于软件定义网络实现内容分发网络的方法及系统 |
WO2016058417A1 (zh) * | 2014-10-13 | 2016-04-21 | 中兴通讯股份有限公司 | 基于软件定义网络实现内容分发网络的方法及系统 |
CN105681438A (zh) * | 2016-01-26 | 2016-06-15 | 南京航空航天大学 | 内容中心网络中一种集中式的缓存决策策略 |
CN105763438A (zh) * | 2016-04-29 | 2016-07-13 | 清华大学 | 一种基于软件定义网络与名字路由技术的内容分发方法 |
CN106027555A (zh) * | 2016-06-30 | 2016-10-12 | 中国科学院计算技术研究所 | 一种采用sdn技术改善内容分发网络安全性的方法及系统 |
CN106162209A (zh) * | 2016-06-30 | 2016-11-23 | 中国科学院计算技术研究所 | 一种基于sdn技术的内容分发网络直播系统与方法 |
CN106385641A (zh) * | 2016-10-08 | 2017-02-08 | 中山大学 | 一种基于sdn的直播视频流媒体分发方法 |
CN106789648A (zh) * | 2016-12-15 | 2017-05-31 | 南京邮电大学 | 基于内容存储与网络状况的软件定义网络路由决策方法 |
Non-Patent Citations (3)
Title |
---|
基于SDN的CDN体系架构及关键技术研究;韩晓梅;《互联网天地》;20140815(第8期);全文 * |
基于SDN的CDN技术研究;陈锐;《电信技术》;20140625;全文 * |
面向OpenFlow 的内容分发网络视频流传输策略;郭俊杰;《福州大学学报(自然科学版)》;20170228;第45卷(第1期);第59-60页,图1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN108712458A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108833166B (zh) | 边缘云报文转发方法及系统、网络报文转发方法及系统 | |
KR101595527B1 (ko) | 넷스토어 기반의 서비스 네트워크 동적 구성 시스템 및 서비스 네트워크 동적 구성 방법 | |
CN103731307B (zh) | 一种针对多业务的标准化数据面动态重构方法 | |
KR20140106235A (ko) | 오픈플로우 스위치 및 그 패킷 처리 방법 | |
EP2405608A1 (en) | Performing path-orientated systems management | |
EP2996292B1 (en) | Method for processing message and forwarder | |
US10462048B2 (en) | Virtual cluster establishment method and network device | |
US20180124168A1 (en) | Load balancing server for forwarding prioritized traffic from and to one or more prioritized auto-configuration servers | |
CN113660316B (zh) | 基于容器云平台的网络资源自适应配置方法、系统及介质 | |
CN107645394B (zh) | 一种sdn网络中的交换机配置方法 | |
WO2017197983A1 (zh) | 流量处理方法及系统、存储介质、交换机 | |
US20170033978A1 (en) | Method and device for processing communication path | |
CN106850803B (zh) | 一种基于sdn的加权轮询系统及算法 | |
CN107979498A (zh) | 一种mesh 网络集群及基于所述集群的大文件传输方法 | |
KR101478944B1 (ko) | 복수의 컨트롤러를 구비한 소프트웨어 정의 네트워크에서 스위치 접속 변경 방법 | |
CN108712458B (zh) | 支持内容控制的软件定义网络控制器 | |
JP5673057B2 (ja) | 輻輳制御プログラム、情報処理装置および輻輳制御方法 | |
TWI740210B (zh) | 終端設備管理方法及伺服器 | |
CN109510717A (zh) | 节点设备的信息的获取方法、装置、设备及存储介质 | |
EP2608452A1 (en) | Customer premises equipment device and system and method for controlling a customer premises equipment device | |
RU2612610C1 (ru) | Устройство управления, система связи, способ передачи управляющей информации и программа | |
KR20210016802A (ko) | 소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 sdn 스위치 | |
JP5523599B1 (ja) | ネットワークシステムの資源管理システムおよび方法 | |
CN104852963B (zh) | 一种面向可重构网的Agent系统 | |
WO2024004102A1 (ja) | キューに格納されている性能指標値データに基づく通信システムの状態判定 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |