一种网络路由生成方法及系统
技术领域
本发明涉及人工智能和网络领域,具体涉及一种网络路由生成方法及系统。
背景技术
互联网的重要性已是众所周知。互联网也已成为人们无法离开的强有力的信息获取工具,在人们的工作和生活中扮演着极其重要的角色。而互联网也是依靠各种各样的网络技术和方法建立的。
分组技术是互联网的基础和核心技术。而分组技术的核心功能之一就是为封装了网络数据的数据包寻找合适的路径、能够快速有效的将数据包传送到目的地,也就是说,路由生成方法是网络的核心技术之一。
业内对网络路由生成方法的研究已持续了几十年,产生了很多路由算法和相关协议。但是,归纳起来,网络设备上的路由生成方法仍然是两大类:
1、静态路由配置方法。
2、基于路由协议的动态路由生成方法。
当前这两类方法,前者依赖于静态的、确定性的用户需求,后者则基于网络拓扑和数据包中的目的地址信息得到路由;二者均没有综合考虑到网络资源、网络状态、时间这三大因素。
静态路由不随时间变化,但实际上静态路由对应的网络流量则是动态变化的,这会导致该路由上会发生拥塞(流量超出网络资源的额定转发能力)和欠载(流量未达到网络资源的额定转发能力),降低网络的性能。
基于目的地址生成的路由,由于未考虑到网络状态和时间等因素,在网络资源不变的情况下,同样目的地址的数据包对应的路由一般也是确定的,因此静态路由存在的拥塞和欠载问题,基于目的地址的路由生成方法同样难以避免。
因此现有路由生成方法在某些时间、特定网络状态下并非最优方案,如:从同一源节点出发到同一目的节点终止的多条路由,有的路由流量超载,同时有的路由流量欠载,使得网络性能达不到最佳状态,网络资源利用率不够高。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种网络路由生成方法及系统,综合考量网络资源、网络状态和时间因素,避免网络中拥塞和欠载在源宿相同的多条路由中出现。
为达到以上目的,一方面,采取一种网络路由生成方法,包括步骤:
通过独立设置的机器学习系统获取网络设备系统的网络拓扑并生成模拟网络,并根据网络设备系统提交的规则和所述模拟网络进行自我训练;
所述机器学习系统根据来自网络设备系统的输入信息,得到多个路由集信息,并按照路由集信息的评估分数由高到低依次通过所述模拟网络进行验证,选取最优路由集信息输出给网络设备系统;
所述网络设备系统根据所述最优路由集信息修改网络设备上的路由信息。
优选的,所述规则包括作为机器学习系统输入的网络资源信息、网络状态信息、时间,还包括作为机器学习系统决策的路由集信息和评估分数;
所述网络资源信息包括所述网络拓扑;
所述网络状态信息是进入到网络中的数据流的信息;
所述路由集信息包含网络设备系统在某个时间应该使用的所有路由信息,且每条路由信息包括路由上所有的设备及相应的物理端口。
优选的,所述机器学习系统建立存储网络资源信息的网络资源数据库,并随着网络拓扑的变化而更新;
所述机器学习系统根据所述网络状态信息生成网络状态数据库,并周期性进行更新;
所述机器学习系统基于所述规则借助所述模拟网络,自我产生训练数据,并建立训练数据库,根据训练数据中的路由集信息建立路由集数据库。
优选的,所述机器学习系统借助模拟网络自我训练得到知识,或者接收网络设备系统输入的知识,根据所述知识建立知识库;
所述知识库内存储所述网络资源信息、网络状态信息和路由集信息的索引。
优选的,每个所述路由集信息的评估分数等于所有同源宿路由子集的评估分数的乘积再乘以100;每个所述同源宿路由子集的评估分数的确定方式为:
若该路由子集中只有一条路由、不存在拥塞的路由、或者存在拥塞的路由但不存在欠载的路由时,该路由子集的评估分数为100%;
若该路由子集中拥塞的路由和欠载的路由同时存在,该路由子集的评估分数由各拥塞的路由的评估分数和各欠载的路由的评估分数相乘得到;
每个拥塞的路由的评估分数=拥塞的路由中所有端口额定带宽/总流量的最小值;每个欠载的路由的评估分数=拥塞的路由中所有端口总流量/额定带宽的最大值。
优选的,所述网络设备系统包括一个或多个网络设备,还包括管理所述网络设备的网络管理系统;
所述网络设备与所述机器学习系统直接通信,或者所述网络设备通过所述网络管理系统与所述机器学习系统通信。
另一方面,提出一种网络路由生成系统,包括:
机器学习系统,其用于实时获取网络设备系统的网络拓扑并生成模拟网络,并根据收到的规则和所述模拟网络进行自我训练;还用于根据输入信息,得到多个路由集信息,并按照路由集信息的评估分数由高到低依次通过所述模拟网络进行验证,选取最优路由集信息输出;
网络设备系统,其用于向所述机器学习系统提交所述规则,还用于根据所述最优路由集信息修改网络设备上的路由信息;
且所述机器学习系统和所述网络设备系统分别独立设置。
优选的,所述规则包括作为机器学习系统输入的网络资源信息、网络状态信息、时间,还包括作为机器学习系统决策的路由集信息和评估分数;
所述网络资源信息包括所述网络拓扑;
所述网络状态信息是进入到网络中的数据流的信息;
所述路由集信息包含网络设备系统在某个时间应该使用的所有路由信息,且每条路由信息包括路由上所有的设备及相应的物理端口。
优选的,每个所述路由集信息的评估分数等于所有同源宿路由子集的评估分数的乘积再乘以100;每个所述同源宿路由子集的评估分数的确定方式为:
若该路由子集中只有一条路由、不存在拥塞的路由、或者存在拥塞的路由但不存在欠载的路由时,该路由子集的评估分数为100%;
若该路由子集中拥塞的路由和欠载的路由同时存在,该路由子集的评估分数由各拥塞的路由的评估分数和各欠载的路由的评估分数相乘得到;
每个拥塞的路由的评估分数=拥塞的路由中所有端口额定带宽/总流量的最小值;每个欠载的路由的评估分数=拥塞的路由中所有端口总流量/额定带宽的最大值。
优选的,所述网络设备系统包括一个或多个网络设备,还包括管理所述网络设备的网络管理系统;
所述网络设备与所述机器学习系统直接通信,或者所述网络设备通过所述网络管理系统与所述机器学习系统通信。
上述技术方案具有如下有益效果:
利用独立的机器学习系统,综合考量网络资源、网络状态以及时间等因素,通过机器学习生成最优路由集信息,避免网络设备系统中各条等价路由上有的路由拥塞而有的路由欠载的情况,从而提升网络的整体转发性能。
附图说明
图1为本发明实施例中规则的格式示意图;
图2为本发明实施例规则中网络资源信息的格式示意图;
图3为本发明实施例规则中网络状态信息的格式示意图;
图4为本发明实施例网络路由生成方法的流程图;
图5为本发明实施例路由集信息的格式示意图;
图6为本发明实施例知识库的格式示意图;
图7为本发明实施例输入信息的格式示意图;
图8为本发明实施例网络路由生成系统示意图;
图9为本发明实施例网络设备系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供一种网络路由生成方法的实施例,基于相互独立设置的机器学习系统和网络设备系统,方法包括如下步骤:
S1、通过机器学习系统获取网络设备系统的网络拓扑并生成模拟网络,然后并根据网络设备系统提交的规则和模拟网络进行自我训练。
S2、机器学习系统根据来自网络设备系统的输入信息,得到多个路由集信息,并按照评估分数由高到低依次通过上述模拟网络进行验证,选取最优的路由集信息输出给网络设备系统。
S3、网络设备系统根据输出的最优路由集信息修改网络设备上的路由信息。
步骤S1中,机器学习系统通过和网络设备系统之间的接口获取网络拓扑信息,并通过网络模拟器基于获取的网络拓扑信息生成模拟网络。后续如果网络拓扑有改变时,网络设备系统主动将改变上报给独立机器学习系统,独立机器学习系统再通过网络模拟器更新模拟网络。这样,模拟网络就能够实时保持和实际网络一致。
优选的,独立学习系统设置于一个单独的设备,网络模拟器可以作为外部组件存在,也可以物理上内嵌在独立机器学习系统中。
上述网络设备系统提交的规则包括作为机器学习系统输入的网络资源信息、网络状态信息、时间,还包括作为机器学习决策的路由集信息和评估分数。其中,网络资源信息主要包括网络设备信息、网络设备上的物理端口信息以及网络设备间的连接关系信息三大部分,网络设备内部的其它物理资源(如CPU、存储器等)不在考虑中;并且,连接和设备端口分别设有标识。上述网络拓扑也属于网络资源信息。网络状态信息是进入到网络中的数据流的信息;路由集信息包含网络设备系统在某个时间应该使用的所有路由信息,且每条路由信息包括路由上所有的设备及相应的物理端口。
如图1所示,提供一种规则的格式实施例,规则中依次设置了数据起始标志、数据长度、网络资源信息、网络状态信息长度、网络状态信息、时间、决策起始标志、决策长度、路由集信息长度、路由集信息、状态起始标志、状态长度和路由集信息评估分数,且规则中路由集评估分数为100%。其中,状态是指网络设备系统和机器学习系统间交换的信息格式中的三元组-“数据”、“决策”、“状态”中的第三部分,并非特指某个信息,如评估分数就是一个状态信息。
如图2所示,提供一种规则中网络资源信息的格式实施例,网络资源信息主要包含网络设备、网络设备上的物理端口以及网络设备间的连接关系三大部分,网络设备内部的物理资源不再考虑中;并且,连接和设备端口分别设有标识。网络设备系统与机器学习系统间的拓扑信息交换也使用同样的格式。图2中的设备是指网络资源系统中网络设备,连接是指网络设备间的连接关系。
如图3所示,提供一种规则中网络状态信息的格式实施例,网络状态信息主要是进入到网络中的数据流信息,包括数据流个数、数据流源地址、数据流目的地址、数据流源端口、数据流目的端口、数据流协议类型、数据流持续时间、数据流标识和数据流其他信息等。其中,对于数据流大小和时间信息(持续时间),如果网络设备系统能够直接提供,则使用网络设备系统提供的数据;如果网络设备系统不能直接提供,则由机器学习系统根据存储的历史信息估算得到。
上述机器学习系统中,建立规则库,用来存储接收到的规则;建立网络资源数据库,用来存储网络资源信息,并在网络拓扑变化后随之进行更新;建立网络状态数据库,用来存储网络状态信息,并周期性进行更新;建立训练数据库,用来存储训练数据;建立路由集数据库,用来存储根据训练数据产生的路由集信息。
机器学习系统得到上述网络状态数据的方式有两种,一种是:网络设备系统通过和机器学习系统间的接口向机器学习系统上报;另一种是:机器学习系统通过和网络设备系统件的接口直接获取,获取的过程是持续的、且周期性的。
如图4所示,基于上述各实施例,提供一种网络路由生成方法的详细流程实施例,具体包括如下步骤:
a101、网络设备系统向机器学习系统提交路由生成的规则。
a102、机器学习系统将规则存入对应的规则库。
a103、机器学习系统获取网络设备系统的拓扑信息,并根据拓扑信息生成模拟网络,并将拓扑信息存入网络资源信息库。
a104、网络设备系统向机器学习系统上报网络状态信息。
a105、机器学习系统将收到的网络状态信息存入网络状态数据库。
a106、机器学习系统基于获取的规则,借助模拟网络,自我产生训练数据并存入训练数据库中,训练数据的路由集信息存入路由集数据库。
如图5所示,为路由集信息的格式,其包括路由集条数和路由集标识,每个路由集标识包括各路由入端口的设备标识和端口标识,还包括各路由出端口的设备标识和端口标识。
a107、机器学习系统借助模拟网络自我训练得到知识,并将知识存入知识库。在其他实施例中,网络设备系统还可以通过接口为机器学习系统提供知识,机器学习系统根据得到的知识更新知识库。
如图6所示,为知识库的格式。知识库内,网络资源信息、网络状态信息以及路由集信息都只存储索引,通过索引可以从网络资源数据库、网络状态数据库和路由集数据库中得到具体的网络资源信息、网络状态信息和路由集信息。
a108、网络设备系统通过接口向机器学习系统发送输入数据。如果网络设备系统没有输入数据可发送,机器学习系统也可以检索自身的数据库得到输入数据。
在上述各实施例中,索引相当于需检索信息的地址,标识相当于对应信息的名称。
如图7所示,为输入数据的格式,包括网络资源信息、网络状态信息,以及他们的长度,还包括时间。
a109、机器学习系统检索知识库,并将得到的决策(路由集信息和评估分数)在模拟网络上进行验证。
a110、机器学习系统将最优决策信息对应的路由集信息,提交给网络设备系统。
a111、网络设备系统根据最优路由集信息,修改所有网络设备上的路由信息,其中,修改仅涉及更新的部分,没有改变的部分不用考虑。
需要说明的是,上述步骤a101-a107是一次运行的情况,具体实现时,整个过程是连续且循环执行的。
优选的,如果是网络设备系统刚启动的运行初期,网络设备上无路由,机器学习系统以网络资源信息和时间检索知识库,将检索得到最优决策信息预配置到网络设备中。
基于上述实施例,还提供一种如何得到最优路由集信息的实施例。机器学习系统检索知识库,以网络资源信息、网络状态信息和时间为输入,得到至少一个决策,决策包括路由集信息和评估分数。机器学习系统按照决策信息的评估分数,由高到低依次通过模拟网络进行验证可行性,如果某个路由集信息验证可行,则停止验证,将该路由集信息作为最优路由集信息输出给网络设备系统;如果所有路由集均没有通过验证,则将评估分数最高的路由集作为最优路由集信息输出给网络设备系统。
上述路由集信息评估分数=所有同源宿路由子集的评估分数的乘积×100;其中,同源为数据流进入网络设备系统的入设备和端口相同,同宿为数据离开网络设备系统的出设备和端口相同,路由集信息评估分数在0-100范围内。每个上述同源宿路由子集的评估分数的确定方式如表1所示,具体如下:
若该路由子集中只有一条路由(无同源宿其他路由)、或者该路由子集中不存在拥塞的路由(有同源宿路由但无拥塞)、或者该路由子集中存在拥塞的路由但不存在欠载的路由时(有同源宿路由且有拥塞但无欠载),该路由子集的评估分数为100%。
若该路由子集中拥塞的路由和欠载的路由同时存在(有同源宿路由且有拥塞且有欠载),该路由子集的评估分数由各拥塞的路由的评估分数和各欠载的路由的评估分数相乘得到。并且,上述每个拥塞的路由的评估分数=拥塞的路由中所有端口额定带宽/总流量的最小值;每个欠载的路由的评估分数=拥塞的路由中所有端口总流量/额定带宽的最大值。
表1
本发明还以供一种网络路由生成系统的实施例,用于实现上述各方法实施例。网络路由生成系统包括机器学习系统和网络设备系统,机器学习系统和网络设备系统分别独立设置。优选的,机器学习系统单独设置在一台独立的设备上,与网络机器学习系统之间通过接口相连。机器学习系统则包含有网络模拟器的功能,网络模拟器可以设置在机器学习系统中,还可以作为外部结构连接机器学习系统,网络模拟器网络设备系统中网络设备集(模拟网络)。
机器学习系统,用于实时获取网络设备系统的网络拓扑并生成模拟网络,并根据收到的规则和模拟网络进行自我训练;还用于根据输入信息,得到多个路由集信息,并按照评估分数由高到低依次通过所述模拟网络进行验证,选取最优的路由集信息输出。
网络设备系统,用于向所述机器学习系统提交所述规则,还用于根据输出的所述路由集信息修改网络设备上的路由信息。
如图8所示,网络设备系统一个或多个网络设备,还包括管理这些网络设备的网络管理系统。机器学习系统可以和网络设备系统中的网络管理系统直接通信,也可以通过网络管理系统和网络设备通信。网络管理系统可以管理一台或多台网络设备,机器学习系统就负责整个网络设备系统中路由的生成。
网络设备系统的范围可大可小,大到可以是整个网络,小到可以只是网络中很小的一部分,比如一台网络设备和对应的网络管理系统。如图9所示,就是一个子网的情形,子网内部的网络设备间通过内部连接转发数据,同时子网通过外部连接与子网外部交换数据。
近年来人工智能的重要分支——机器学习发展迅猛,对各专业领域的帮助越来越大。它同样能够给网络领域带来很大帮助。依靠成熟的机器学习算法和性能越来越强的通用计算平台,使得综合分析影响网络性能的各种因素成为可能,也使得进一步优化网络路由生成方法成为可能。
本发明将机器学习技术有效的应用在路由生成领域,综合考量网络资源、网络状态和时间因素,尽可能的避免网络中拥塞和欠载在源宿相同的多条路由中出现,换句话说,从同一源节点出发到同一目的节点终止的多条路由,避免有的路由流量超载,同时有的路由流量欠载的情况;对路由生成功能提供极大帮助,从而优化路由,提高网络性能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。