一种面向分布式网络仿真平台的子网识别方法技术

技术编号:15767658 阅读:47 留言:0更新日期:2017-07-06 16:15
本发明专利技术提供一种面向分布式网络仿真平台的子网识别方法,步骤包括:1.预处理阶段:根据输入文件中所含的每块网卡的对端节点的nodeid找到对端网卡的interfaceid,并将该interfaceid写入该文件中;2.子网识别阶段:2‑1.读取经上述步骤处理的输入文件,获取所有节点的网络类型及网卡信息;2‑2.从节点的网络类型及网卡信息中获取每条链路的两端节点的网络类型,识别两端网卡所属的子网。本发明专利技术能够提高IP地址利用率和IP地址分配效率,确保IP地址分配在支持节点网络类型和节点连接关系方面灵活可扩展,解决分布式网络仿真平台中IP地址合理且高效分配的问题。

A subnet identification method for distributed network simulation platform

The present invention provides a platform for distributed network simulation method, sub network recognition steps include: 1. pretreatment stage: according to each card contained in the input file to the end node nodeid found to end the card interfaceid, and the interfaceid will be written to the file; 2. subnet identification: 2 1. read the input file above processing steps, the information network type and card access to all nodes; both ends of node 2 2. from the information network and network node types obtain each link of network type, identification card belongs to the sub network ends. The invention can improve the utilization rate of IP address and IP address allocation efficiency, ensure that the IP address allocation in support of network node types and node connections on the flexible and extensible, reasonable and efficient solution of IP address allocation problem in distributed network simulation platform.

【技术实现步骤摘要】
一种面向分布式网络仿真平台的子网识别方法
本专利技术涉及计算机网络子网识别领域,尤其涉及面向分布式网络仿真平台中虚拟化网络子网识别和节点地址分配相关领域,具体为一种基于网络拓扑结构的可扩展的子网识别方法。
技术介绍
在传统的计算机网络环境中,为网络中节点分配IP地址的方法最初是根据网络节点的数量分配有类IP地址。但随着IP地址短缺的情况越来越严重,开始将一个有类的网络地址划分成若干个小的网段,将这些小的网段称为子网。此时的IP地址分配方法也变成了首先找到网络中的所有子网并根据子网中节点的数量确定子网掩码的位数,然后为每个子网分配一个专门的网段。子网的存在能够缩减网络流量、优化网络性能、简化管理、灵活地形成大规模网络。在分布式网络仿真平台中,虚拟网络的规模少则上千节点,多则千万甚至上亿节点,如何为虚拟网络合理分配IP地址成为问题。而解决该问题的关键就在于子网识别,通过找到所有子网,并根据每个子网中需要分配IP地址的网卡数量,即可完成分布式网络仿真平台中的虚拟网络IP地址分配。
技术实现思路
本专利技术的目的在于提供一种面向分布式网络仿真平台的子网识别方法,以提高IP地址利用率和IP地址分配效率,确保IP地址分配在支持节点网络类型和节点连接关系方面灵活可扩展,解决分布式网络仿真平台中IP地址合理且高效分配的问题。为解决上述技术问题,本专利技术采用如下技术方案:一种面向分布式网络仿真平台的子网识别方法,步骤包括:1.预处理阶段:根据输入文件中所含的每块网卡的对端节点的nodeid(节点编号)找到对端网卡的interfaceid(网卡编号),并将该interfaceid写入该文件中;2.子网识别阶段:2-1.读取经上述步骤处理的输入文件,获取所有节点的网络类型及网卡信息;2-2.从节点的网络类型及网卡信息中获取每条链路的两端节点的网络类型,识别两端网卡所属的子网。进一步地,步骤1)具体方法为:1.遍历输入文件中每块网卡,获取当前节点nodeid及其网卡interfaceid和对端节点nodeid,并根据当前节点nodeid和对端节点nodeid组成的字符串(当前节点nodeid在前,对端节点nodeid在后,中间以逗号分隔)作为索引关键字,以当前网卡interfaceid作为对应值,存储于名为nisMap的map中(此处及后面出现的map为计算机编程语言C++中的STL容器);2.再次遍历每块网卡,根据每一网卡中当前节点nodeid和对端节点nodeid组成的字符串(对端节点nodeid在前,当前节点nodeid在后,中间以逗号分隔)创建索引关键字,从nisMap中找到对端节点的interfaceid;将从当前网卡中获取的linknode指针地址作为关键字,对端节点的interfaceid作为对应值的键值对存储于名为linknodes的map中;3.遍历linknodes中的每个键值对,获取其关键字linknode及对应值,为每个linknode创建属性dst_if(目的网卡编号)。进一步地,输入文件为以xml格式描述的拓扑文件。进一步地,步骤2-1中获取网络类型信息的方法是:注册节点类型识别器,根据每个节点的xml格式nodename找到该节点的网络类型。进一步地,网络类型包括:主机、服务器、交换机、路由器、防火墙、入侵防御系统(IPS,IntrusionPreventionSystem)、入侵检测系统(IDS,IntrusionDetectionSystems)以及其他后期根据需要添加的新节点网络类型。进一步地,步骤2-2中识别子网的方法是:注册子网识别器,根据每条链路两端节点的网络类型找到对应的子网识别器。进一步地,将获取的节点信息保存到名为NodeMap的map中,将获得的网卡信息保存到名为InterfaceMap的map中。与现有方法相比,本方法的创新之处在于:针对分布式网络仿真平台中虚拟网络拓扑的结构信息,实现在节点网络类型和节点连接关系方面灵活扩展的子网识别方法,具体体现在:1.本方法只需要在输入文件中增加针对新增节点网络类型的识别接口,即可实现新节点网络类型的支持,对于节点连接关系同理,增加节点连接关系的子网查找接口(子网识别器)并实现简单的处理即可完成新增节点连接关系的支持。2.针对分布式网络仿真平台中支持的虚拟网络规模从个位数到上亿这个范围,本方法将子网识别过程的时间复杂度从O(n2)降为O(nlogn)级别,有效降低了处理过程对虚拟网络规模的敏感性,处理时间也明显缩短。本方法解决了分布式网络仿真平台环境中虚拟网络的子网识别问题,并为虚拟网络IP地址自动分配提供了直接结果。当然子网划分的结果也可以用于其他方面,而不是局限于网络节点IP地址分配。在网络拓扑规模较大或者非常大的情况下,本方法仍然能够高效地完成子网识别处理过程,经测试,在分布式网络仿真平台中,十万节点的拓扑其子网识别处理过程耗时仅为数秒。在扩展性方面,本方法能够通过简单的扩展,即可支持新的节点网络类型或者节点连接关系,在分布式网络仿真平台的完善过程中,这点尤为重要。附图说明图1为实施例中的子网识别方法流程图。图2为判断链路两端网络类型并进行子网识别的流程图。具体实施方式为使本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。本实施例提供一种面向分布式网络仿真平台的子网识别方法,其实际处理过程分为两个阶段:第一个阶段为预处理阶段,此阶段解决输入文件中节点之间连接关系的查找问题;第二个阶段为子网识别阶段,此阶段根据预处理的结果,找到给定拓扑中所有节点的所有网卡以及网卡之间的连接关系信息,并根据这两部分信息,针对每条链路两端网卡所属节点网络类型的不同,为这些网卡找到所属的子网,如图1所示。本方法的输入文件为拓扑文件,以XML格式描述,交换机的描述格式如下:主机的描述格式如下所示:路由器节点的拓扑格式如下所示:一、预处理阶段由于输入文件中只给出了每个节点的网卡连接的某个对端节点nodeid,但并未给出对端网卡interfaceid。预处理阶段根据每块网卡的对端节点nodeid,找到其对端网卡的interfaceid,并将此信息写入输入文件中对应的网卡中。也就是在<linktype="emu_switch">405703</link>这个xml标签中添加一个属性dst_if,修改之后为<linktype="emu_switch"dst_if="0">405703</link>。如此,能够减少后续处理过程中对端网卡interfaceid的查找时间。预处理阶段分为三个步骤:第一步,扫描输入文件中的所有interface的xml标签,获取每块网卡的nodeid、interfaceid和对端节点的nodeid,并将两节点nodeid作为索引,网卡interfaceid作为数据存储到内存中,处理过程如下伪代码描述:第二步,遍历所有interface节点,同样获取当前网卡的nodeid、interfaceid和对端节点的nodeid,以和第一步相反的顺序,即对端节点nodeid和当前节点nodeid组成的字符串从nisMap中找到对端节点的interfaceid,以当前节点的l本文档来自技高网...
一种面向分布式网络仿真平台的子网识别方法

【技术保护点】
一种面向分布式网络仿真平台的子网识别方法,步骤包括:1.预处理阶段:根据输入文件中所含的每块网卡的对端节点的nodeid找到对端网卡的interfaceid,并将该interfaceid写入该文件中;2.子网识别阶段:2‑1.读取经上述步骤处理的输入文件,获取所有节点的网络类型及网卡信息;2‑2.从节点的网络类型及网卡信息中获取每条链路的两端节点的网络类型,识别两端网卡所属的子网。

【技术特征摘要】
1.一种面向分布式网络仿真平台的子网识别方法,步骤包括:1.预处理阶段:根据输入文件中所含的每块网卡的对端节点的nodeid找到对端网卡的interfaceid,并将该interfaceid写入该文件中;2.子网识别阶段:2-1.读取经上述步骤处理的输入文件,获取所有节点的网络类型及网卡信息;2-2.从节点的网络类型及网卡信息中获取每条链路的两端节点的网络类型,识别两端网卡所属的子网。2.根据权利要求1所述的子网识别方法,其特征在于,步骤1具体方法为:1.遍历输入文件中每块网卡,获取当前节点nodeid及其网卡interfaceid和对端节点nodeid,并根据当前节点nodeid和对端节点nodeid组成的字符串作为索引关键字,以当前网卡interfaceid作为对应值,存储于名为nisMap的map中;2.再次遍历每块网卡,根据每一网卡中当前节点nodeid和对端节点nodeid组成的字符串创建索引关键字,从nisMap中找到对端节点的interfaceid;将从当前网卡中获取的linknode指针地址作为...

【专利技术属性】
技术研发人员:孙振喜郝志宇费海强李伦邓鑫
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1