一种软件定义网络虚拟映射方法及装置的制造方法
【技术领域】
[0001]本发明涉及软件定义网络领域,特别涉及一种软件定义网络虚拟映射方法及装置。
【背景技术】
[0002]软件定义网络(SDN)是解决网络僵化问题的非常有发展前景的方法。SDN中分离数据层和控制层,并简化网络管理。控制层运行自主映射算法,根据网络虚拟请求,向底层共享网络发送相应的映射方案。
[0003]虚拟网络映射问题主要涉及如何合理与高效地映射虚拟网络请求到一个共享的底层网络中。现有技术在将网络虚拟请求中的虚拟节点映射到底层网络的底层网络节点时,并没有考虑底层网络节点的所承受负载的情况,即只要判断某一底层网络节点剩余的资源量满足相应虚拟节点资源量要求,就能够将该底层网络节点与对应虚拟节点进行映射,而不考虑在底层网络中是否存在其它未被使用或未被充分使用的底层网络节点,进而造成底层网络底层网络节点未被均衡映射。
【发明内容】
[0004]本发明实施例公开了一种软件定义网络虚拟映射方法及装置,使底层网络节点能够被均衡映射。
[0005]为达到上述目的,本发明实施例公开了一种软件定义网络虚拟映射方法,应用于控制层设备,所述方法包括步骤:
[0006]A、接收虚拟网络请求,所述虚拟网络请求为一个加权无向图,其中包括:每个虚拟节点的资源要求量、每个虚拟节点之间的连接关系和具有连接关系的虚拟节点间虚拟链路的资源要求量;
[0007]B、按照第一预设规则,将虚拟网络请求中一个连接度最大的虚拟节点确定为虚拟核心节点;
[0008]C、按照第二预设规则,基于底层网络加权无向图,获得底层网络核心节点;
[0009]D、将所述虚拟核心节点映射至所述底层网络核心节点;
[0010]E、从与虚拟核心节点相连的第一跳节点开始,根据虚拟网络请求中每个虚拟节点的资源要求量、每个虚拟节点之间的连接关系和具有连接关系的虚拟节点间虚拟链路的资源要求量,对应从与底层网络核心节点相连的第一跳底层网络节点开始,在底层网络中逐一获取满足虚拟节点的资源要求量和虚拟链路的资源要求量的底层网络节点和链路进行映射,直至虚拟网络请求中所有的虚拟节点和虚拟链路映射完成。
[0011]较佳的,所述按照第一预设规则,将虚拟网络请求中一个连接度最大的虚拟节点确定为虚拟核心节点,包括:
[0012]对连接度最大的虚拟节点中的每一个虚拟节点进行AR评估,确定AR评估值最大的一个虚拟节点为虚拟核心节点。
[0013]较佳的,所述按照第二预设规则,基于底层网络加权无向图,获得底层网络核心节点,包括:
[0014]根据预设资源库中保存的底层网络加权无向图中每个底层网络节点的未使用资源量和已使用资源量的信息,确定剩余资源量占比最大的底层网络节点为底层网络核心节点;所述预设资源库中保存有底层网络中每个底层网络节点的未使用资源量和已使用资源量的信息,和每个底层网络节点之间的连接关系,以及具有连接关系的节点间底层网络节点链路的可用带宽资源量。
[0015]较佳的,所述步骤E,包括:
[0016]El、将所述虚拟核心节点作为当前父虚拟节点,将所述底层网络核心节点作为当前真父底层网络节点;
[0017]E2、确定与当前父虚拟节点经过一跳连接的所有未映射虚拟节点为子虚拟节点;确定与当前真父底层网络节点经过一跳连接的所有未映射底层网络节点为子底层网络节占.V ,
[0018]E3、取出每个子虚拟节点,执行步骤E31、E32和E33;
[0019]E31、确定待选底层网络节点,以使所述待选底层网络节点与当前父底层网络节点间底层网络链路可用资源量满足该子虚拟节点与对应的父虚拟节点间链路资源要求量;将所有待选底层网络节点与当前父底层网络节点间底层网络链路确定为可用链路;
[0020]E32、判断待选底层网络节点中,是否至少有一个待选底层网络节点的未使用资源量不小于该子虚拟节点的资源要求量,若是,则按照预设的规则,选择其中一个待选底层网络节点与该子虚拟节点建立映射关系,并将该建立映射关系的子底层网络节点标识为已映射底层网络节点,将该子虚拟节点标识为已映射虚拟节点,并确定已映射路径;所述已映射路径由连通该已映射底层网络节点与当前真父底层网络节点的可用链路构成,所述已映射路径与已映射虚拟节点到当前父虚拟节点间的虚拟链路具有映射关系,直到取尽了所有子虚拟节点,之后执行E33;若否,则将所有当前待选底层网络节点确定为伪父底层网络节点,执行 E321、E322 和 E323;
[0021]E321、确定与所述伪父底层网络节点经过一跳连接的所有未映射底层网络节点为新子底层网络节点;
[0022]E322、确定新的待选底层网络节点,以使所述新的待选底层网络节点与对应的伪父底层网络节点间底层网络链路可用资源量满足该子虚拟节点与对应的父虚拟节点间链路资源要求量,并将该底层网络链路标识为可用链路;
[0023]E323、在E322确定出的待选底层网络节点中,执行E32;
[0024]E33、判断是否完成所有虚拟节点的映射,若是则执行E4,若否,则将每个子虚拟节点确定为新的当前父虚拟节点,将与每个子虚拟节点建立映射关系的已映射底层网络节点确定为新的当前真父底层网络节点,执行E2、E3;
[0025]E4、根据虚拟节点之间的连接关系,确定未映射的虚拟链路;
[0026]E5、针对每条未映射的虚拟链路,确定其所对应的两个已映射底层网络节点,在所述两个已映射底层网络节点间确定一条满足该未映射的虚拟链路资源量要求的连通路径,与该未映射的虚拟链路建立映射关系。
[0027]较佳的,所述在所述两个已映射底层网络节点间确定一条满足该未映射的虚拟链路资源量要求的连通路径,与该未映射的虚拟链路建立映射关系,包括:
[0028]采用k_最短路径法,在所述两个已映射底层网络节点间确定一条满足该未映射的虚拟链路资源量要求的连通路径,与该未映射的虚拟链路建立映射关系。
[0029]本发明实施例还公开了一种软件定义网络虚拟映射装置,应用于控制层设备,所述装置包括:
[0030]接收模块,用于接收虚拟网络请求,所述虚拟网络请求为一个加权无向图,其中包括:每个虚拟节点的资源要求量、每个虚拟节点之间的连接关系和具有连接关系的虚拟节点间虚拟链路的资源要求量;
[0031]虚拟核心节点模块,用于按照第一预设规则,将虚拟网络请求中一个连接度最大的虚拟节点确定为虚拟核心节点;
[0032]底层网络核心节点模块,用于按照第二预设规则,基于底层网络加权无向图,获得底层网络核心节点;
[0033]核心节点映射模块,用于将所述虚拟核心节点映射至所述底层网络核心节点;
[0034]映射模块,用于从与虚拟核心节点相连的第一跳节点开始,根据虚拟网络请求中每个虚拟节点的资源要求量、每个虚拟节点之间的连接关系和具有连接关系的虚拟节点间虚拟链路的资源要求量,对应从与底层网络核心节点相连的第一跳底层网络节点开始,在底层网络中逐一获取满足虚拟节点的资源要求量和虚拟链路的资源要求量的底层网络节点和链路进行映射,直至虚拟网络请求中所有的虚拟节点和虚拟链路映射完成。
[0035]较佳的,所述虚拟核心节点模块,具体用于:
[0036]对连接度最大的虚拟节点中的每一个虚拟节点进行AR评估,确定AR评估值最大的一个虚拟节点为虚拟核心节点。
[0037]较佳的,所述底层网络核心节点模块,具体用于:
[0038]根据预设资源库中保存的底层网络加权无向图中每个底层网络节点的未使用资源量和已使用资源量的信息,确定剩余资源量占比最大的底层网络节点为底层网络核心节点,所述预设资源库中保存有底层网络中每个底层网络节点的未使用资源量和已使用资源量的信息,和每个底层网络节点之间的连接关系,以及具有连接关系的节点间底层网络节点链路的可用带宽资源量。
[0039]较佳的,所述映射模块,包括:
[0040]父节点子模块,用于将所述虚拟核心节点作为当前父虚拟节点,将所述底层网络核心节点作为当前真父底层网络节点;
[0041]子节点子模块,用于确定与当前父虚拟节点经过一跳连接的所有未映射虚拟节点为子虚拟节点;确定与当前真父底层网络节点经过一跳连接的所有未映射底层网络节点为子底层网络节点;
[0042]映射子模块,用于取出每个子节点子模块确定出的子虚拟节点,触发待选底层网络节点子模块、待选节点判断子模块和新子底层网络节点子模块;<