CN115865844B - 基于sdn与ndn的虚实结合动态流量调度方法及装置 - Google Patents
基于sdn与ndn的虚实结合动态流量调度方法及装置 Download PDFInfo
- Publication number
- CN115865844B CN115865844B CN202211483627.8A CN202211483627A CN115865844B CN 115865844 B CN115865844 B CN 115865844B CN 202211483627 A CN202211483627 A CN 202211483627A CN 115865844 B CN115865844 B CN 115865844B
- Authority
- CN
- China
- Prior art keywords
- ndn
- data packet
- packet
- virtual
- producer
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SDN与NDN的虚实结合动态流量调度方法及装置,基于网络拓扑构建NDN网络,将虚拟交换机、可编程交换机、SDN控制器、生产者主机、消费者主机建立连接;当生产者主机接入或离开网络时,向控制器发送请求数据包,控制器根据请求数据包更新生产者数据;在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发;如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发,当转发信息表匹配失败时,交换机发送请求给控制器,由控制器决策转发路径;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。
Description
技术领域
本发明属于计算机网络技术领域和移动通信技术领域,尤其涉及一种基于SDN(软件定义网络,Software-Defined Networking)与NDN(命名数据网络,Named DataNetworking)的虚实结合动态流量调度方法及装置。
背景技术
传统的网络设备中控制平面和转发平面被整合在一个硬件中运行,作为数据转发大脑的控制平面被分配到各个网络节点中,很难实现全网把控。SDN将控制管理平面和数据转发平面进行解耦,网络由控制层集中管理,无需依赖底层的网络设备,具有“控制与转发分离”、“设备资源虚拟化”和“通用硬件及软件可编程”三大特性。
IP网络主要被用来作为通信网络,点对点传送数据包,随着电子商务、数字媒体、社交网络和智能手机应用的快速增长,分布式网络比通信网络更加普遍,点对点通信协议解决分布式问题既复杂又容易出错。NDN(Named Data Networking)提出了一种IP架构的演进,它有两种类型数据包:兴趣包和数据包。其天然支持缓存和多播的特性可以广泛应用于视频流传输、实时会议、车载网络等场景。消费者将所需数据块的内容名放在一个兴趣包中,并转发至网络,一旦兴趣包到达有被请求数据的节点,则返回一个包含内容名和内容的数据包,以及由生产者秘钥绑定的签名。兴趣包和数据包转发依赖三个表:PIT表(PendingInterest Table,请求兴趣表)、FIB表(Forwarding Information Base,转发信息表)、CS表(Content Store,内容存储表)。PIT表存储了已经转发但还没收到数据包的兴趣包内容名以及输入端口。当一个数据包到达时,NDN路由器会检查CS表的匹配数据,如果存在,路由器根据PIT表对应的所有端口号转发数据包;如果不存在,路由器会查找PIT表对应兴趣包的内容名,如果有匹配条目,路由器只会在这个匹配条目上添加端口号,否则,路由器根据FIB转发表项将兴趣包转发给数据生产者,并将端口号信息插入到PIT表。当数据包到达路由器时,首先匹配PIT表,如果匹配成功,将数据包转发至PIT表对应的所有端口,然后删除PIT条目,并将数据包缓存在CS表,如果匹配PIT表不成功,则丢弃数据包。
虚拟网络是由Mininet仿真平台虚拟的局部网络,包括虚拟交换机和虚拟主机,可根据用户需求,灵活的模拟各种网络拓扑,但囿于资源限制,不能达到很好的转发性能。可编程交换机拥有较好的转发性能,但构建大规模网络环境时,设备维护和购置成本巨大,因此,构建虚实结合的大规模转发网络可同时满足规模性和真实性需求。
由于NDN内容名相较于IP地址种类更丰富,兴趣包转发依赖FIB的内容名查找匹配,需占用大量SRAM资源和TCAM资源。FIB表通过链路状态路由协议(NLSR)使用泛洪方式维护全网路由,其处理时延随着拓扑增大急剧增加,易造成FIB表更新不及时导致的兴趣包丢弃等问题。且NDN路由器上存在的链路状态数据库(LSDB)只能以同步周期间隔更新数据,当生产者移动时,不能立刻被NDN路由器发现,导致FIB表的更新存在滞后性。
发明内容
本发明目的是针对“传统NDN架构的路由器需使用链路状态路由协议NLSR通过泛洪方式维护全网路由,处理时延过长,易造成FIB更新不及时导致的兴趣包丢弃”、“FIB表的更新存在滞后性,当生产者移动时不能立刻被NDN路由器发现”、“构建大规模网络环境时很难满足规模性和真实性需求”的技术缺陷,提出了一种基于SDN与NDN的虚实结合动态流量调度方法,用于计算机网络技术领域,解决传统NDN架构存在的上述问题。
为了达到上述目的,本发明的技术方案如下:本发明实施例的第一方面提供了一种基于SDN与NDN的虚实结合动态流量调度方法,所述方法包括:
基于网络拓扑构建NDN网络:将若干虚拟交换机组成虚拟网络拓扑,若干可编程交换机组成实体网络拓扑,将若干虚拟网络拓扑与实体网络拓扑连接,且均与SDN控制器通信;运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机;
生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,SDN控制器根据请求数据包更新生产者数据;
在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发;如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。
本发明实施例的第二方面提供了一种基于SDN与NDN的虚实结合动态流量调度装置,包括一个或多个处理器,用于上述的基于SDN与NDN的虚实结合动态流量调度方法。
本发明实施例的第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的基于SDN与NDN的虚实结合动态流量调度方法。
本发明的有益效果为:
本发明提出的基于SDN与NDN的虚实结合动态流量调度方法,通过控制面与数据面分离,使网络的转发决策由拥有全局视图的控制面决定,数据面只需根据PIT表、FIB表和CS表转发,解决了传统NDN架构的路由器需使用NLSR通过泛洪方式维护全网路由,处理时延过长,易造成FIB更新不及时导致的兴趣包丢弃问题。
采用本发明的方法实现兴趣包和数据包的转发过程中,生产者接入或离开NDN网络时,会向控制器发送请求包。当FIB表查找失败后,交换机会发送输入(packet in)请求给控制器,确定兴趣包转发路径。解决了FIB的更新存在滞后性,当生产者移动时不能立刻被NDN路由器发现导致的通信失败问题。
通过搭建可编程交换机与虚拟交换机相结合的虚实结合网络环境,解决了构建大规模网络环境时很难满足规模性和真实性需求问题。
附图说明
图1为本发明提供的基于SDN与NDN的虚实结合网络部署图。
图2为本发明提供的基于SDN与NDN的虚实结合动态流量调度方法的示意性框图。
图3为本发明提供的基于SDN与NDN的虚实结合动态流量调度方法的流程图。
图4为SDN控制器的示意图。
图5为本发明提供的基于SDN与NDN的虚实结合动态流量调度装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
基于现有技术存在的问题,本发明提出了一种基于SDN与NDN的虚实结合动态流量调度方法,如图1所示,依托的网络架构包含SDN控制器、若干可编程交换机、虚拟交换机、若干运行NDN协议栈的生产者主机和消费者主机。具体地,本发明实施例中,数据平面的可编程交换机采用Tofino交换机,SDN控制器使用ONOS控制器,虚拟交换机通过运行Mininet仿真平台的服务器搭建。其中,控制器通过控制链路连接所有可编程交换机和虚拟交换机,可编程交换机、虚拟交换机与运行NDN协议栈的生产者主机、消费者主机连接。
所述基于SDN与NDN的虚实结合动态流量调度方法包含若干节点;其中,节点包括运行NDN协议栈的生产者主机、运行NDN协议栈的消费者主机、运行Mininet虚拟网络仿真平台的服务器、P4可编程交换机以及SDN控制器。该方法将原分布式的NDN架构与SDN架构结合,借助SDN“数控分离”的思想,数据面只需完成数据包转发,路由决策交给中心控制器完成。
如图2和图3所示,本发明实施例提出了一种基于SDN与NDN的虚实结合动态流量调度方法,具体实施步骤如下:
步骤1、基于网络拓扑构建NDN网络:将若干虚拟交换机组成虚拟网络拓扑,若干可编程交换机组成实体网络拓扑,将若干虚拟网络拓扑与实体网络拓扑连接,再通过P4runtime南向接口与SDN控制器通信;并将若干运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机。
虚拟交换机依据自定义的网络拓扑,通过运行Mininet仿真平台的服务器构建虚拟网络。可编程交换机通过网线与服务器建立连接,服务器通过PCI网卡透传的方式将网卡从宿主机解绑,直连到运行Mininet仿真平台的虚拟机中。运行NDN协议栈的生产者和消费者主机通过网线直连方式与可编程交换机与虚拟交换机相连。
所述SDN控制器通过调用Netconf协议接口,将包含可编程交换机和Mininet仿真平台的虚拟交换机设备、链路、设备配置信息添加到SDN控制器的网络视图中。示例性地,所述SDN选用ONOS控制器,ONOS控制器调用Netconf协议接口的REST API,所述REST API接口函数由控制器的用户名和密码、控制器的实例IP地址、网络配置文件组成。示例性地,其中,ONOS控制器的用户名和密码组合配置为onos:rocks,ONOS控制器的实例IP地址配置为192.168.56.111,网络配置文件设置为json格式的/tmp/cfg.json,网络配置文件通过指定pipeconf、driver等属性,将包含可编程交换机和虚拟交换机、链路、交换机设备配置信息添加到ONOS控制器的网络视图中。
如图4所示,所述控制器包含网络发现模块、主机服务模块、NDN管理模块、网络配置模块。网络发现模块负责维护交换机间的链路视图,控制器通过LLDP和BDDP协议完成链路发现。主机服务模块负责主机发现,确定全局视图中的主机位置,控制器通过监听ARP报文和DHCP报文,为其提供主机发现和定位功能。NDN管理模块负责维护生产者数据表。生产者数据表负责记录生产者主机信息,包含主机MAC地址、主机直连的交换机ID、数据包内容名的哈希值。网络配置模块负责向各网络组件注入属性和配置信息,包括设备名称、管理地址、设备位置、拥有者信息、硬件和软件版本、设备端口类型和名称。
步骤2、生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,控制器根据请求数据包更新生产者数据。
运行NDN协议栈的的生产者主机连上NDN网络后,主动向SDN控制器发送请求数据包。所述请求数据包中包括生产者主机可以提供服务的数据包内容名、生产者主机对应MAC地址。所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。其中,源MAC地址为生产者主机网卡的MAC地址,目的MAC地址为组播地址01:00:5e:00:17:aa,包类型为0x8625,载荷为请求数据包的TLV信息(type-length-value)。与运行NDN协议栈的的生产者主机直连的可编程交换机或虚拟交换机收到请求数据包会输入(packet in)到SDN控制器,SDN控制器的NDN管理模块会根据请求数据包中的生产者主机MAC地址拿到与生产者主机直连的交换机ID,并将生产者主机MAC地址、与生产者主机直连的交换机ID、数据包内容名的哈希值更新并存储在生产者数据中。在本实例中,以生产者数据表的形式存储生产者数据,在ONOS控制器中的NDN管理模块维护的生产者数据表如下表1所示:
表1:生产者数据表
主机MAC地址 | 主机直连的交换机ID | 数据包内容名的哈希值 |
62:f6:67:88:de:21(第一生产者) | device:p4-dev-2 | 0x850c(/NDN1/SWP/PCA/DATA1) |
62:f6:67:88:de:21(第一生产者) | device:p4-dev-2 | 0x6b29(/NDN1/SWP/PCB/VIDEO) |
62:f6:67:88:de:21(第一生产者) | device:p4-dev-2 | 0x65a3(/NDN1/SWP/SWV/DATA2) |
4e:c5:57:69:47:fe(第二生产者) | device:vir-dev-6 | 0x12af(/NDN2/SWP/DATA3) |
4e:c5:57:69:47:fe(第二生产者) | device:vir-dev-6 | 0x850c(/NDN1/SWP/PCA/DATA1) |
当运行NDN协议栈的的生产者主机断开与NDN网络连接,或不提供相应服务时,主动向SDN控制器发送请求数据包,告诉SDN控制器删除生产者数据表中对应的表项,以更新生产者数据表。所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。其中,源MAC地址为生产者主机网卡的MAC地址,目的MAC地址为组播地址01:00:5e:00:17:aa,包类型为0x8626,载荷为请求数据包的TLV信息。与运行NDN协议栈的的生产者主机直连的可编程交换机或虚拟交换机收到请求数据包会输入(packet in)到ONOS控制器,ONOS控制器根据生产者主机网卡的MAC地址和数据包内容名的哈希值在生产者数据表中查找这两项数据,若找到则在生产者数据表中删除这两项数据,以此更新生产者数据表。
步骤3、在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发(L2/L3转发);如果数据包为NDN兴趣包,则根据内容存储表(CS表,Content Store)、请求兴趣表、(PIT表,PendingInterest Table)和转发信息表(FIB表,Forwarding Information Base)进行转发;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发。
可编程交换机或虚拟交换机判断数据包的类型的过程包括:当包类型为0x0806或0x0800,则数据包为IP数据包,可编程交换机或虚拟交换机做二三层转发(L2/L3转发)。当包类型为0x8624,可编程交换机或虚拟交换机做NDN包解析,如果包类型为0x05,则数据包为NDN兴趣包转发,如果包类型为0x06,则数据包为NDN数据包转发,否则丢弃。
其中,NDN包中包括NDN兴趣包和NDN数据包,NDN兴趣包/NDN数据包进入与其直连的交换机,首先根据TLV嵌套信息循环获取兴趣包/数据包的内容名并输出。
所述NDN兴趣包/NDN数据包的内容名采用分层结构,在本实例中设置NDN兴趣包/NDN数据包的格式为:/NDN1/SWP/PCA/DATA1,代表NDN兴趣包/NDN数据包的内容名有四段,每段分别为NDN1、SWP、PCA、DATA1。与NDN兴趣包/NDN数据包直连的交换机通过哈希算法(HashAlgorithm.crc16),将内容名依次哈希为一个32比特的值。具体地,当一个NDN兴趣包/NDN数据包到达交换机后,交换机根据TLV嵌套信息依次读取NDN包的内容名/NDN1/SWP/PCA/DATA1,将NDN1哈希为0xa36d,NDN1、SWP哈希为0x12af,NDN1、SWP、PCA哈希为0x2ce4,NDN1、SWP、PCA、DATA1哈希为0x850c,并作为元数据存在交换机中,做后续处理。
具体地,接下来对数据包分别为IP数据包、NDN兴趣包、NDN数据包时的转发过程进行详细描述。
(A)如果数据包为IP数据包,则进行二三层转发(L2/L3转发)。
当包类型为0x0806或0x0800,则数据包为IP数据包,可编程交换机或虚拟交换机做二三层转发(L2/L3转发)。
(B)如果数据包为NDN兴趣包,则根据内容存储表(CS表,Content Store)、请求兴趣表(PIT表,Pending Interest Table)和转发信息表(FIB表,Forwarding InformationBase)进行转发。
具体包括以下步骤:
根据兴趣包内容名的哈希值,从内容存储表(CS表)查找匹配记录,如果与内容存储表匹配成功,说明有满足NDN兴趣包的数据包,则将NDN兴趣包封装成NDN格式报文,根据内容名查找请求兴趣表(PIT表)的转发端口集合,将NDN格式报文从转发端口转发,同时丢弃该兴趣包。
如果查找CS表没有匹配记录,则将兴趣包内容名的哈希值作为key键与转发信息表(FIB表)进行匹配,如果匹配成功,则从转发信息表表项对应的转发端口转发NDN兴趣包,并将入端口号插入到请求兴趣表(PIT表)中,具体格式为键值对形式,即将NDN兴趣包的内容名的哈希值作为key键,入端口集合作为value键值。
示例性地,如图1所示,如果第一消费者发送内容名为/NDN1/SWP/PCA/DATA1的NDN兴趣包,该NDN兴趣包从3号端口到达s2虚拟交换机,NDN兴趣包中的源MAC地址为第一消费者主机的网卡地址00:0c:29:1e:6f:d4,目的MAC地址为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN兴趣包的TLV信息。此时s2虚拟交换机有FIB表项:匹配域为/NDN1/SWP/PCA/DATA1的哈希值0x850c,动作域为从1号端口转发。FIB表匹配成功后,查询PIT表,key键为/NDN1/SWP/PCA/DATA1的哈希值0x850c,此时查询到value键值为00000100,说明之前有从2号端口发到s2虚拟交换机的NDN兴趣包,通过移位操作将value置为00001100,最后将value写回PIT表。此后,如果收到内容名为/NDN1/SWP/PCA/DATA1的数据包,s2虚拟交换机将从2号和3号端口转发数据包。
如果匹配FIB表不成功,将出端口号设置为控制器端口号,将NDN兴趣包转发至SDN控制器,SDN控制器收到输入(packet in)请求后通过主机服务模块根据兴趣包的源MAC地址查询消费者主机的信息,再查询该消费者主机的接入交换机ID。SDN控制器查询生产者数据表,找到该NDN兴趣包内容名对应的生产者主机MAC地址、与生产者主机直连的交换机ID集合,从交换机ID集合中选取路径最短的一条,沿该路径下发FIB匹配流表,并发送输出(Packet out)消息到与生产者主机直连的交换机,设置该兴趣包的出端口。
示例性地,如果第一消费者发送内容名为/NDN1/SWP/PCA/DATA1的兴趣包,从3号端口到达s2虚拟交换机,源MAC为第一消费者的网卡地址00:0c:29:1e:6f:d4,目的MAC为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN兴趣包的TLV信息。若此时交换机未匹配FIB表项,则执行如下操作:将出端口设置为控制器端口号255,入端口设置为虚拟交换机s2的入端口号3,请求包的packet in头字段设为生效。控制器收到输入packet in请求后,会查询兴趣包的源MAC地址,根据主机服务模块,查询源MAC地址对应的接入交换机ID为device:vir-dev-2,再根据兴趣包内容名/NDN1/SWP/PCA/DATA1对应的哈希值0x850c,ONOS控制器的NDN管理模块从生产者数据表找到主机直连的交换机ID,分别为device:p4-dev-2和device:vir-dev-6。最后通过拓扑管理模块,计算交换机device:vir-dev-2到device:p4-dev-2和device:vir-dev-6的路径代价,选取最优路径为S2-S1-P4_1-P4_2。接着,ONOS控制器需要对入口交换机device:vir-dev-2下发packet out消息,设置出端口为1,然后依次在虚拟交换机S2、虚拟交换机S1、可编程交换机P4_1上下发FIB流表。最后,根据主机服务模块,确定第一生产者所连接入交换机P4_2的端口号,在可编程交换机P4_2上下发FIB流表。ONOS控制器下发的FIB流表如表2所示。
表2:ONOS控制器下发FIB流表
交换机ID | 匹配域 | 动作域 |
device:vir-dev-2 | meta.name_hash=0x850c | egress_spec=1 |
device:vir-dev-1 | meta.name_hash=0x850c | egress_spec=1 |
device:p4-dev-1 | meta.name_hash=0x850c | egress_spec=2 |
device:p4-dev-2 | meta.name_hash=0x850c | egress_spec=3 |
(C)如果数据包为NDN数据包,则根据内容存储表(CS表,Content Store)和请求兴趣表(PIT表,Pending Interest Table)进行转发。
当判断为一个NDN数据包时,交换机首先会查询PIT表是否有对应NDN数据包的内容名,如果查询成功,则将NDN数据包转发到该PIT表中列出的所有转发端口,删除该PIT条目,接着根据NDN数据包的内容名的哈希值0x850c查找CS表,如果找到CS表对应表项,说明内容库已有相应数据,不做处理。否则,在CS表中插入对应的键值对,并将数据缓存在内容库中。如果查询PIT表失败,则丢弃该NDN数据包。
示例性地,当第一生产者收到第一消费者发来内容名为/NDN1/SWP/PCA/DATA1的请求包时,会发送数据包给第一消费者。其中,源MAC地址为第一生产者的网卡地址00:0c:29:ea:85:b2,目的MAC地址为组播地址01:00:5e:00:17:aa,类型为0x8624,载荷为NDN数据包的TLV信息。当可编程交换机P4_2收到数据包后,首先根据PIT表查询NDN数据包的内容名,如果在PIT表中找到对应表项,其中key键为0x850c,value键值为00000110,则将数据包分别从可编程交换机P4_2的出端口1和2转发。接着根据内容名哈希值0x850c查找CS表,如果找到CS表对应表项,其中key键为0x850c,value键值为1,说明内容库已有相应数据,不做处理。否则,在CS表中插入key为0x850c,value为1的表项,同时将数据缓存在内容库中。如果在PIT表中没有找到对应表项,丢弃数据包。
与前述基于SDN与NDN的虚实结合动态流量调度方法的实施例相对应,本发明还提供了基于SDN与NDN的虚实结合动态流量调度装置的实施例。
参见图5,本发明实施例提供的一种基于SDN与NDN的虚实结合动态流量调度装置,包括一个或多个处理器,用于实现上述实施例中的基于SDN与NDN的虚实结合动态流量调度方法。
本发明基于SDN与NDN的虚实结合动态流量调度装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明基于SDN与NDN的虚实结合动态流量调度装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于SDN与NDN的虚实结合动态流量调度方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (10)
1.一种基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述方法包括:
基于网络拓扑构建NDN网络:将虚拟交换机组成虚拟网络拓扑,可编程交换机组成实体网络拓扑,将虚拟网络拓扑与实体网络拓扑连接,且均与SDN控制器通信;运行NDN协议栈的生产者主机、消费者主机随机连接至某一可编程交换机或某一虚拟交换机;
生产者主机接入或离开NDN网络时,向SDN控制器发送请求数据包,SDN控制器根据请求数据包更新生产者数据;
在可编程交换机或虚拟交换机间转发数据包时,可编程交换机或虚拟交换机判断数据包的类型;如果数据包为IP数据包,则进行二三层转发;如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发,当转发信息表匹配失败时,交换机发送请求给SDN控制器,由SDN控制器决策转发路径;如果数据包为NDN数据包,则根据内容存储表、请求兴趣表进行转发;
如果数据包为NDN兴趣包,则根据内容存储表、请求兴趣表和转发信息表进行转发的过程包括:
根据兴趣包内容名的哈希值,从内容存储表查找匹配记录;如果与内容存储表匹配成功,则从交换机的内容库中根据内容名的哈希值找到NDN数据包,根据内容名查找请求兴趣表的转发端口集合,从转发端口转发,同时丢弃NDN兴趣包;
如果与内容存储表匹配不成功,则将兴趣包内容名的哈希值作为key键与转发信息表进行匹配,如果匹配成功,则从转发信息表中对应的转发端口转发NDN兴趣包,并将入端口号插入到请求兴趣表;
如果与转发信息表匹配不成功,将出端口号设置为SDN控制器端口号,然后将NDN兴趣包转发至SDN控制器,SDN控制器收到输入请求后根据NDN兴趣包的源MAC地址查询消费者主机的信息,再查询消费者主机的接入交换机ID;SDN控制器查询生产者数据,找到NDN兴趣包内容名对应的生产者主机MAC地址、与生产者主机直连的交换机ID集合,从交换机ID集合中选取路径最短的一条,沿路径为虚拟交换机或可编程交换机下发转发信息表匹配流表,并发送输出消息到与生产者主机直连的交换机,设置NDN兴趣包的出端口;
如果数据包为NDN数据包,则根据请求兴趣表和内容存储表进行转发的过程包括:
当判断为一个NDN数据包时,交换机首先会查询请求兴趣表是否有对应NDN数据包的内容名,如果查询成功,则将NDN数据包转发到请求兴趣表中列出的所有转发端口,删除请求兴趣表中对应的条目,接着根据NDN数据包的内容名的哈希值查找内容存储表,如果找到内容存储表中的对应表项,则不做处理;否则,在内容存储表中插入对应的键值对,并在交换机内容库中缓存NDN数据包;如果查询请求兴趣表失败,则丢弃该NDN数据包。
2.根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,基于网络拓扑构建NDN网络的过程还包括:
SDN控制器通过调用Netconf协议接口,将包含可编程交换机和虚拟交换机对应的链路、设备配置信息添加到SDN控制器的网络视图中;SDN控制器通过P4runtime南向接口与可编程交换机、虚拟交换机通信。
3.根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述SDN控制器包含:
网络发现模块,用于维护可编程交换机、虚拟交换机间的链路视图,并通过LLDP协议和BDDP协议完成链路发现;
主机服务模块,负责主机发现,确定全局视图中的生产者主机和消费者主机的位置,并通过监听ARP报文和DHCP报文,为其提供主机发现和定位功能;
NDN管理模块,用于负责维护生产者数据;其中生产者数据包括生产者主机的MAC地址、生产者主机直连的交换机ID、数据包内容名的哈希值;
网络配置模块负责向各网络组件注入属性和配置信息,包括设备名称、管理地址、设备位置、拥有者信息、硬件和软件版本、设备端口类型和名称。
4.根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,生产者主机接入NDN网络时,向控制器发送请求数据包,控制器根据请求数据包更新生产者数据的过程包括:
运行NDN协议栈的生产者主机接入NDN网络后,主动向SDN控制器发送请求数据包,与生产者主机直连的可编程交换机或虚拟交换机收到请求数据包后将请求数据包转发至SDN控制器,SDN控制器根据请求数据包中的生产者主机MAC地址得到与生产者主机直连的交换机ID,将生产者主机MAC地址、与生产者主机直连的交换机ID、数据包内容名的哈希值更新并存储在生产者数据中。
5.根据权利要求1所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,生产者主机离开NDN网络时,向控制器发送请求数据包,控制器根据请求数据包更新生产者数据的过程包括:
运行NDN协议栈的生产者主机断开与NDN网络的连接前,主动向SDN控制器发送一个请求数据包,与生产者主机直连的可编程交换机或虚拟交换机收到请求数据包后将请求数据包转发至SDN控制器,SDN控制器根据生产者主机的MAC地址和数据包内容名的哈希值在生产者数据表中查找对应的条目并删除,以此更新生产者数据。
6.根据权利要求4或5所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,所述请求数据包的格式为:源MAC地址、目的MAC地址、包类型、载荷。
7.根据权利要求4或5所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,可编程交换机或虚拟交换机判断数据包的类型的过程包括:
当包类型为0x0806或0x0800,则数据包为IP数据包;当包类型为0x8624,可编程交换机或虚拟交换机做NDN包解析,如果包类型为0x05,则数据包为NDN兴趣包,如果包类型为0x06,则数据包为NDN数据包。
8.根据权利要求7所述的基于SDN与NDN的虚实结合动态流量调度方法,其特征在于,可编程交换机或虚拟交换机判断数据包类型的过程还包括:通过哈希算法对NDN兴趣包和/或NDN数据包的内容名进行哈希,得到内容名的哈希值。
9.一种基于SDN与NDN的虚实结合动态流量调度装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-8中任一项所述的基于SDN与NDN的虚实结合动态流量调度方法。
10.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时,用于实现权利要求1-8中任一项所述的基于SDN与NDN的虚实结合动态流量调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483627.8A CN115865844B (zh) | 2022-11-24 | 2022-11-24 | 基于sdn与ndn的虚实结合动态流量调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483627.8A CN115865844B (zh) | 2022-11-24 | 2022-11-24 | 基于sdn与ndn的虚实结合动态流量调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115865844A CN115865844A (zh) | 2023-03-28 |
CN115865844B true CN115865844B (zh) | 2023-09-15 |
Family
ID=85665943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211483627.8A Active CN115865844B (zh) | 2022-11-24 | 2022-11-24 | 基于sdn与ndn的虚实结合动态流量调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865844B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117955908A (zh) * | 2024-03-27 | 2024-04-30 | 之江实验室 | 基于sdn控制器的ndn网络切片方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810287A (zh) * | 2021-09-10 | 2021-12-17 | 北京理工大学 | 一种基于ndn和sdn的数据检索与推送方法 |
CN115225508A (zh) * | 2022-04-06 | 2022-10-21 | 郑州信大先进技术研究院 | 一种互联网靶场场景构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771590B2 (en) * | 2018-03-07 | 2020-09-08 | Ciena Corporation | Systems and methods for intelligent routing and content placement in information centric networks |
-
2022
- 2022-11-24 CN CN202211483627.8A patent/CN115865844B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810287A (zh) * | 2021-09-10 | 2021-12-17 | 北京理工大学 | 一种基于ndn和sdn的数据检索与推送方法 |
CN115225508A (zh) * | 2022-04-06 | 2022-10-21 | 郑州信大先进技术研究院 | 一种互联网靶场场景构建方法 |
Non-Patent Citations (2)
Title |
---|
基于SDN集中控制的NDN网络路由策略研究;黄涛;高文哲;;数字技术与应用(第02期);第2-3节 * |
黄涛 ; 高文哲 ; .基于SDN集中控制的NDN网络路由策略研究.数字技术与应用.2020,(第02期),第2-3节. * |
Also Published As
Publication number | Publication date |
---|---|
CN115865844A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199897B (zh) | 一种支持缓存管理的opc ua多服务器聚合方法 | |
WO2022037322A1 (zh) | 一种家庭组网网络拓扑管理的系统和方法 | |
US9705799B2 (en) | Server-side load balancing using parent-child link aggregation groups | |
US7684352B2 (en) | Distributed storage of routing information in a link state protocol controlled network | |
US8923293B2 (en) | Adaptive multi-interface use for content networking | |
US8116289B2 (en) | Internetworking nodes based on connections, membership, and location | |
US10164910B2 (en) | Method and apparatus for an information-centric MAC layer | |
US20160036773A1 (en) | Internet protocol address resolution | |
WO2011150830A1 (zh) | 获取内容的方法、节点及内容网络 | |
CN106059921B (zh) | 一种基于sdn技术和ccn框架的网络层的内容路由系统及其工作方式 | |
US10291510B2 (en) | Topology structure discovery method and device | |
CN104184663A (zh) | 基于软件定义网络和一体化标识网络的通信方法和装置 | |
US10585943B2 (en) | Network-wide, location-independent object identifiers for high-performance distributed graph databases | |
CN105072030A (zh) | 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法 | |
US20240171509A1 (en) | Method and device for identification management and optimized forwarding in large-scale polymorphic network | |
CN115865844B (zh) | 基于sdn与ndn的虚实结合动态流量调度方法及装置 | |
US20140317271A1 (en) | Method and node apparatus for collecting information in content network based on information-centric networking | |
WO2018001339A1 (zh) | 虚拟可扩展局域网vxlan中报文转发方法及装置 | |
US8819295B2 (en) | Information communication system, first information processing device, method for processing information, and computer readable storage medium | |
CN111565117A (zh) | 一种基于snmp的拓扑发现方法和系统 | |
US9628368B2 (en) | Method and apparatus for compressing content name | |
CN114222209A (zh) | 混合协议交换网络路由实现方法、装置及网络交换设备 | |
CN113285894B (zh) | 基于可编程交换机的身份标识网络移动性控制方法及系统 | |
CN102546419B (zh) | 一种路由方法和装置、分组转发方法和系统 | |
US9853891B2 (en) | System and method for facilitating communication |
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 |