网络拓扑实机仿真方法与系统与流程

文档序号:15817713发布日期:2018-11-02 22:48阅读:289来源:国知局
本公开涉及网络仿真
技术领域
:,具体而言,涉及通过一个实际网络设备仿真网络中的节点的网络拓扑实机仿真方法与系统。
背景技术
:在架构真实网络之前,常见会先经过一连串测试,包括在特定网络拓扑下网络流量的测试、负载能力测试、传输率测试、联机布局的测试、通信协议运行测试等,还包括实体设备的安装与设定。测试的方式可以真实架构一个网络来测试,虽然这是最接近真实情况的测试方式,却有成本过高与效率不彰的问题,特别是,一旦网络拓扑改变,可能需要花很多时间重新设定。另可以软件方式仿真网络进行测试,可以随意针对不同网络拓扑执行测试,能在真实架设网络前取得测试结果,然而,软件测试的方法会受限于执行软件的计算机的处理能力,包括处理器效能与内存等的限制,使得测试结果不准确。技术实现要素:根据本公开书所公开的网络拓扑实机仿真系统与方法的实施例,网络拓扑实机仿真方法主要是运行在一实体交换器上,用以仿真一个网络拓扑,亦不排除可以将多部实体交换器链接后扩大仿真的网络拓扑,如此,不但可以节省以架构真实网络来测试某个网络拓扑的成本,还解决了现有以软件程序仿真实际网络所遇到各种限制产生的错误数据的问题。优选地,在网络拓扑实机仿真方法中,根据实施例,以一多端口的实体交换器根据一网络拓扑仿真出多个虚拟交换器,各虚拟交换器具有多个虚拟端口,各虚拟端口对应一个实体端口。进行仿真时,此实体交换器分割形成的多个虚拟交换器的其中的一个虚拟交换器接收到封包,并引用一端口对照表,以识别封包进入的虚拟交换器以及虚拟端口,虚拟端口对应一个实体交换器的一实体端口。并解析封包,以取得一目的地与是否载有虚拟区域网卷标的信息,之后引用一虚拟区域网转换表,根据封包接入的虚拟端口赋予封包一虚拟区域网卷标,其中记载了虚拟区域网标识符,再引用一输出端口对照表,进入虚拟交换器的封包套用一传输规则,使得系统可以根据封包的目的地与所赋予的虚拟区域网标识符决定一输出端口,之后在输出封包前,先卸除封包被赋予的虚拟区域网标识符,使之还原到原始状态,再由输出端口输出。进一步地,在不同的情况下,若进入虚拟交换器的封包已经载有原始虚拟区域网标识符,系统将提供取代原始虚拟区域网标识符的虚拟区域网标识符;若封包并未载有原始虚拟区域网标识符,即赋予一个此虚拟交换器内部尚未被使用虚拟区域网标识符,使得封包可以顺利运行在此虚拟交换器内。优选地,在此网络拓扑实机仿真系统中,根据实施例,提供一实体交换器,实体交换器包括多个实体端口,系统将根据一网络拓扑分割为多个虚拟交换器,各虚拟交换器具有多个虚拟端口,各虚拟端口对应一个实体端口。当仿真一个网络时,各虚拟交换器仿真网络的一个节点,各虚拟端口模拟各节点的一个端口。进一步地,系统以实体交换器仿真多个虚拟交换器的方法中,主要是提出了几种对照信息,存储在一非瞬时存储介质中,其中存储的数据报括各虚拟交换器的虚拟交换器编号,以及各虚拟端口的一虚拟端口编号,还存储了一端口对照表,用以记载虚拟交换器的多个虚拟端口的编号与所对应的实体交换器上原有实体端口的编号;一虚拟区域网转换表,用以设定封包进入虚拟交换器的虚拟区域网卷标,并记载各虚拟交换器的各虚拟端口对应的虚拟区域网标识符;一输出端口对照表,用以记载封包目的地与封包所赋予的虚拟区域网标识符对照的一输出端口,以及一卸除虚拟区域网卷标对照表,用以记载虚拟区域网标识符所对照封包的原始虚拟区域网标识符。进一步地,其中各虚拟交换器的多个虚拟端口的数量与编号依照网络拓扑为动态可变化,且用以仿真大型网络时,可以通过组合多个实体交换器扩张网络拓扑。附图说明图1显示本发明网络拓扑实机仿真系统中实体交换器仿真多个虚拟交换器的示意图;图2a与图2b显示本发明网络拓扑实机仿真系统中虚拟交换器的端口配置示意图;图3显示本发明网络拓扑实机仿真系统中实体交换器内的电路系统实施例图;图4显示封包进入虚拟交换器的网络拓扑实机仿真方法流程实施例图;图5示意描述本发明网络拓扑实机仿真系统运行的流程图;图6显示以本发明网络拓扑实机仿真系统仿真实际网络与现有软件仿真方式的目标与实现流量曲线图;图7显示以本发明网络拓扑实机仿真系统仿真实际网络与现有软件仿真方式的流量偏移曲线图;图8显示以本发明网络拓扑实机仿真系统仿真实际网络与现有软件仿真方式的中央处理器使用率曲线图。具体实施方式本发明公开书公开一种网络拓扑实机仿真方法与系统,提出一个以一实体的网络设备仿真真实网络拓扑的技术方案,主要方式是采用多端口的实体交换器(switch),根据要仿真的真实网络拓扑分割为多个虚拟交换器,虚拟交换器与相关端口数量与连接关系可以随着需要修改。在网络拓扑实机仿真方法实施例中,应用了几个对照表作为实体(交换器、端口)与虚拟(交换器、端口)之间的转换,以实现仿真真实网络拓扑的目的。如此,可以取代实际架构一个真实网络的测试方式,并克服了现行以软件仿真真实网络的方式无法真正仿真出网络封包往来的实际状态,因为以软件方式仿真网络的方式会受限于执行仿真的计算器的数据处理能力与相关硬件,使得仿真结果不准确。所述仿真网络拓扑的对象可以为一种软件定义网络(software-definednetworks,sdn),软件定义网络为一种新一代的网络架构,其利用集中式的控制器(controller)取代过往分布式网络系统中交换器(switch)的控制平面(controlplane),软件定义网络让其中的交换器只需负责数据平面(dataplane)的部分,使得集中式的控制器可以达到对控制需求的优化。软件定义网络采用的集中式控制器可以实现拓扑(topology)的优化与优选的路径规划等。此外通过一种封包转送的开放流(openflow)协议使得控制器和交换器之间的沟通有一个标准且公开的准则,如此一来就不用受限于各家开发厂商自定义的规范,进而使得网络管理者可以撰写或是优化自己想要的控制器的各种应用(applications),进而达到具多功能性的应用模块。架构一个网络拓扑实机仿真系统时,预备至少一部实体交换器,决定仿真对象的网络拓扑,根据所需节点(亦如交换器)的数量与连接关系设定多个虚拟交换器与各虚拟交换器的多个虚拟端口。基本实施方式可参考图1所示的网络拓扑实机仿真系统中的示意图。如图1所示,在仿真网络拓扑时,预备实体交换器10,此例的实体交换器10包括有4个实体端口,端口101,102,103与104编号分别为1,2,3,4,用以模拟包括有两个交换器节点的网络拓扑时,根据仿真网络拓扑的节点连接关系以端口(port)为单位分割为多台虚拟交换器(sliceswitch),如此例将实体交换器10分割为两个虚拟交换器:第一虚拟交换器10a与第二虚拟交换器10b,个别虚拟交换器(10a,10b)仿真网络中的一个节点。此例中,根据仿真网络的连接关系将4个实体端口(端口101,102,103与104)分为两组,第一虚拟交换器10a包括有端口101与102,可依照需求重新编号来设定两个虚拟端口的编号;第二虚拟交换器10b包括有端口103与104,也可重新编号来设定两个虚拟端口编号。其中每个虚拟交换器(10a,10b)的每个虚拟端口皆一对一对应到实体交换器10的其中的一个实体端口(101,102,103,104),系统并采用一个端口对照表记载了实体端口与虚拟端口的对应编号,以提供相互查询,并让系统转换使用。根据图例,第一虚拟交换器10a的端口101以实体联机111连接终端装置pc1(网络地址:00:00:01),另一端口102与第二虚拟交换器10b的端口103以实体联机112连接,第二虚拟交换器10b的端口104则是以实体联机113连接终端装置pc2(网络地址:00:00:02)。完成实体联机设定后,可以开始模拟具有两个相互联机的交换器(10a,10b)与连接两个终端装置(pc1,pc2)的网络拓扑。例如,测试时,可由终端装置pc1发出封包传送到终端装置pc2,封包经过实体交换器10所仿真的第一虚拟交换器10a与第二虚拟交换器10b,并经过实际的联机(111,112,113),最后到达终端装置pc2。值得一提的是,在封包传递的过程中,都是经过实际的网络设备与实体联机(如rj-45、光纤等),还能反映出真实网络的状况。根据实施例,一部实体交换器包括有多个实体端口,系统将根据要仿真的网络拓扑分割为多个虚拟交换器,各虚拟交换器可包括相同或不同数量的端口,每个虚拟交换器的虚拟端口都是一对一对应到原本实体交换器的某个实体端口,并在一实施例中,各虚拟交换器的多个虚拟端口的数量与编号依照网络拓扑为动态可变化,可参考图2a与图2b显示的网络拓扑实机仿真系统中实体交换器上配置虚拟端口的示意图。图2a显示有一实体交换器20,具有16端口实体端口,根据需求分割为多个虚拟交换器:第一虚拟交换器201(设有4端)、第二虚拟交换器202(设有4端)、第三虚拟交换器203(设有3端)与第四虚拟交换器204(设有5端),个别的虚拟交换器所包括的端口数量是依照要仿真的网络拓扑而定,并不一定是相同的。另设有一管理接口205,可以连接外部计算机设备,管理者可以藉此设定实体交换器20。若以仿真软件定义网络(sdn)为例,管理接口205用以连接一软件定义网络控制器(sdncontroller),图中显示为控制器22。特别的是,管理接口205根据多个虚拟交换器的数量模拟出与控制器22之间相同数量的联机,各联机具有一网络识别信息。此例以实体交换器20仿真了4部虚拟交换器(201,202,203,204),因此管理接口205与软件定义网络控制器(控制器22)之间将模拟出4条联机,个别对应了一部虚拟交换器,可以网络地址(ipaddress)或标识符(id)来识别联机。并且,从控制器22的角度来看,分别联机的每一个虚拟交换器为独立运行的交换器,联机运行在特定通信协议下,有独立的处理程序,彼此之间不会影响。当实施公开书所描述的网络拓扑实机仿真方法时,控制器22仍然运行在原本的设计中,无须更改。以软件定义网络为例,软件定义网络控制器将可运行在开放流(openflow)协议下。更者,在网络拓扑实机仿真系统架构下,具有扩充性,可以使用多台实体交换器扩大网络拓扑,仿真大型网络。不同的实体交换器仿真的多个虚拟交换器可以实体联机连接,再分别以管理接口联机控制器22,同样地,控制器22仍是直接经管理接口205仿真的多个实体联机控制不同的虚拟交换器。图2b则示意显示实体交换器20的面板,面板上设有多个实体端口,此例共有16个,可以分割为多个虚拟交换器(201,202,203,204),多个虚拟交换器(201,202,203,204)之间以一或多个端口经实体联机(以太网络或光纤)连接,表示在实际网络上两个节点的联机,且个别虚拟交换器(201,202,203,204)分别连接其他终端装置pc3,pc4,pc5与pc6。根据实施例的一个,在实体交换器20上分割形成的多个虚拟交换器(201,202,203,204)个别为独立运行的虚拟交换器,在软件定义网络的实施例中,各虚拟交换器即为仿真每个软件定义网络交换器(sdnswitch)。值得一提的是,当网络拓扑改变,只需要修改内部虚拟交换器与虚拟端口的设定,包括重新设定虚拟端口编号,以及改变一对一对照的端口对照表,不需要更改实体联机就可改变仿真的网络拓扑。相较于现行架构实际网络系统不易改变网络拓扑,或是现行软件仿真网络需要重新设定网络拓扑的测试方式,公开书所描述的网络拓扑实机仿真系统仅需改变各种转换对照表就可方便而快速改变网络拓扑。在公开书描述的网络拓扑实机仿真系统中,实体交换器内设有处理来往封包的控制电路,例如一种网络物理层(phy)控制电路,用以控制各端口的运行,可在仿真特定网络拓扑时,使得各端口传送的封包可以运行在一种传输率(linerate)下,用以在不同的虚拟交换器之间转送封包,达到仿真实际网络拓扑的目的。实体交换器内的电路系统实施例可参考图3显示的示意图,图中示意显示实体交换器30内的电路单元,包括一个处理器303,处理器303用以处理实体交换器30上多个实体端口(31,32)来往的封包数据,还是依照系统中多个虚拟交换器与相关虚拟端口的设定执行仿真特定网络拓扑。此例中,处理器303用以管理实体交换器30的控制设定与运行;包括有连接多个实体端口(31,32)的一或多个网络物理层(networkphysicallayer)控制器(301,302),此例显示有第一网络物理层控制器301与第二网络物理层控制器302,第一网络物理层控制器301涵盖了多个实体端口31,第二网络物理层控制器302涵盖了多个实体端口32,此例各组接口有8个端口。每一个实体端口(31,32)用来连接其他网络装置。第一网络物理层控制器301与第二网络物理层控制器302分别设有各自的物理层标识符(phyid),每一个实体端口(31,32)也都有各自的界面标识符(interfaceid),如端口编号(portnumber),实体交换器30运行时,来往各端口的封包将记载来源与目的物理层标识符与接口标识符,特别在分割多个虚拟交换器时,可以通过标识符使得封包可以来往于不同虚拟交换器的不同端口之间。值得一提的是,当以实体交换器30经由分割多个虚拟交换器来仿真特定网络拓扑时,虚拟交换器之间交换的网络封包是由各端口的第一网络物理层控制器301与第二网络物理层控制器302处理,包括封包匹配(matching)、转送(forwarding)与传送(transmission),并且是在实体联机上以特定传输率运行,并不涉及实体交换器30中的数据处理能力,也就是不会被处理器303的硬件效能限制所影响,而可保有测试的高准确性。在网络拓扑实机仿真方法中,将实体交换器30的实体端口(31,32)分割为分属多个虚拟交换器的虚拟端口,需要重新编号虚拟端口,这些信息将存储在内存304中。根据实施例,实体交换器30设有非瞬时(non-transitory)存储介质,这可以是交换器内的内存304,亦不排除是连接的外部存储介质。内存304电性连接处理器303,其中存储的数据报括执行网络拓扑实机仿真方法的作业程序,由处理器303执行,数据还包括了实现此方法的各种信息,包括各虚拟交换器的虚拟交换器编号,以及各虚拟端口的虚拟端口编号等。如此,可以在一个实际交换器内要运行多个虚拟交换器,提出一套转换逻辑,特别是实现网络拓扑实机仿真方法的几种对照表,避免各虚拟交换器的流程(flowrules)在运行于同一个实际交换器中的冲突。实体交换器30设有连接外部装置的管理接口305,电性连接处理器303,管理接口305用以连接网络拓扑中的控制器33,由控制器33根据虚拟交换器编号控制实体交换器30所仿真出的多个虚拟交换器。根据网络拓扑实机仿真方法的实施例,在实体交换器内仿真出的多个虚拟交换器有各自的传输规则(flowrule),传输规则记载根据封包的目的地决定输出的端口,使得系统可以根据封包的目的地与所赋予的虚拟区域网标识符决定一输出端口。如图1所示的示意图,其中有两个虚拟交换器(10a,10b),分别连接终端装置pc1与pc2,形成一个网络拓扑:终端装置pc1--第一虚拟交换器10a--第二虚拟交换器10b--终端装置pc2。当终端装置pc1要传送封包到终端装置pc2时,第一虚拟交换器10a内部需要有一个传输规则(flowrule),也就是得知目的地在连接第二虚拟交换器10b的终端装置pc2时,经端口101接收的封包要由端口102输出;当第二虚拟交换器10b经端口103接收封包后,解析封包知道目的地是终端装置pc2,就建立由端口104输出到终端装置pc2的传输规则。以上第一虚拟交换器10a的传输规则与第二虚拟交换器10b的传输规则不能存储在同一个规则表(flowtable)中,就实体交换器内的处理器而言,无法处理这些互相冲突的规则。因此,公开书所描述的网络拓扑实机仿真系统引入端口编号(portnumber)或标识符的机制,先赋予实体交换器中的每个端口一个编号,就如前述的界面标识符;还引入虚拟区域网标识符(vlanid),每个虚拟交换器被赋予一个范围的虚拟区域网标识符,使得在多个虚拟交换器内来往的封包记载了端口编号与虚拟区域网标识符,通过转换对照表在多个虚拟交换器之间实现封包转送的目的。每个虚拟交换器设有唯一而识别用的交换器标识符,即前述的虚拟交换器编号,因为虚拟交换器提供数据路径,因此这个虚拟交换器编号用于封包转送时识别路径的目的,可称数据路径标识符(datapathid),每个虚拟交换器设有一个数据路径标识符,可以让控制器识别虚拟交换器。更者,每个虚拟交换器的虚拟端口都设有虚拟端口编号(vport1,vport2…),且应用上应该重新编号而从1或0开始编号,每个虚拟端口编号对应了一个实体端口编号(port1,port2…),两者对照设有一端口对照表(port-mappingtable),用以记载虚拟端口编号与实体端口编号的对照关系。对此网络拓扑实机仿真系统中的控制器而言,如前述软件定义网络控制器,每一个联机的虚拟交换器都是独立而不同的交换器。运行时,每一个虚拟交换器设有各自的传输规则,在一个网络拓扑中,虚拟交换器之间具有一个连接关系,因此每两个虚拟交换器之间根据各自的传输规则形成一个转送传输规则(forwardingflowrule),存储在交换器内存储器记载的一桥接传输表(bridgingflowtable)中,这个桥接传输表记载了目的地地址(如ip地址、端口编号)与虚拟区域网标识符(vlanid),也就是用以比对包头(header)中记载的目的地地址(如地址、端口编号)与虚拟区域网标识符。每一个虚拟交换器被赋予一个不重叠的虚拟区域网标识符的范围(rangeofvlanid),使得系统可以分辨记载于桥接传输表中的各个虚拟交换器的传输规则。根据实际虚拟区域网标识符的使用,每个虚拟交换器的虚拟区域网标识符的范围可以弹性调整。在此一提的是,若桥接传输表与包头记载虚拟区域网标识符的字段有12位(12bits),则提供虚拟区域网标识符可达212=4096,足够用于分配虚拟区域网标识符范围。续参考图1显示在一个实体交换器中设有两个虚拟交换器(10a,10b)。举例来说,第一虚拟交换器10a的虚拟区域网标识符范围设为1到10,记载为[1,10];第二虚拟交换器10b的虚拟区域网标识符范围为11到20,记载为[11,20]。当有封包进入某个虚拟交换器却没有携带虚拟区域网标识符时(没有虚拟区域网卷标(vlantag)),系统将依照封包进入的虚拟交换器的虚拟区域网标识符范围赋予此封包一个虚拟区域网标签(提供一个虚拟区域网标识符,可称push程序),也就使得此类没有虚拟区域网标签的封包可参与上述桥接传输表中的传输规则,套用所处虚拟交换器的传输规则,以及虚拟端口与实体端口之间转换的端口对照表。由于每个虚拟交换器有不同范围的虚拟区域网标识符,传输规则也就不会有冲突的问题。虚拟交换器解析包头信息,取得封包目的地信息,据此设定输出的虚拟端口编号,依照包头记载的目的地地址转送封包而由目前虚拟交换器输出,在此封包要离开此虚拟交换器的处理流程(pipeline)之前,虚拟交换器内程序将卸除赋予此封包的虚拟区域网卷标(可称popoff程序),还原封包原有的标头内容,再输出封包。以上封包进入虚拟交换器的网络拓扑实机仿真方法流程实施例可参考图4,此例以图1显示一个实体交换器分割为两个虚拟交换器为范例。当有封包进入一个测试网络中的一个节点,也就是一个实体交换器分割形成的虚拟交换器(步骤s401)时,此时将使用系统提供的端口对照表(如表一)识别所进入的虚拟交换器以及接入的端口(步骤s403),表一用以记载虚拟交换器的多个虚拟端口的编号与所对应的实体交换器上原有实体端口的编号,此例显示为实体交换器内实体端口编号(1,2,3,4…)以及各实体端口对应到的虚拟交换器(10a,10b)中重新编号的虚拟端口编号(1/1,1/2,2/1,2/2…)。此例中,实体端口编号1,2分割为第一虚拟交换器;实体端口编号3,4分割为第二虚拟交换器。第二栏中的“1/1”的前一码“1”表示第一虚拟交换器10a,后一码“1”表示第一虚拟交换器10a的第一个端口编号;“1/2”的前一码“1”表示第一虚拟交换器10a,后一码“2”表示第一虚拟交换器10a的第两个端口编号。同理,第二栏中的“2/1”的前一码“2”表示第二虚拟交换器10b,后一码“1”表示第二虚拟交换器10b的第一个端口编号;“2/2”的前一码“2”表示第二虚拟交换器10b,后一码“2”表示第二虚拟交换器10b的第两个端口编号。实体端口编号虚拟交换器/虚拟端口编号11/121/232/142/2(表一)如步骤s405,运行于交换器内的软件程序解析封包,得到封包的目的地,以及是否载有虚拟区域网卷标的信息,在步骤s407中,判断封包有否载有虚拟区域网标签(vlantag),引用虚拟区域网转换表(如表二),此虚拟区域网转换表用以设定模拟封包进入虚拟交换器的虚拟区域网标签,其中根据封包接入的虚拟端口赋予封包符合虚拟交换器运行的虚拟区域网标签,虚拟区域网转换表并记载一个虚拟区域网标识符(vlanid),确保封包可以在系统中被顺利转送到目的地。其中,虚拟区域网转换表记载各虚拟交换器的各虚拟端口所对应的虚拟区域网标识符。表二第一栏是实体端口编号(1,2,3,4),第二栏则是描述封包由此实体端口进入时其封包表头内是否记载有虚拟区域网标识符的状态,第二栏若填“-”,表示对应封包表头内没有虚拟区域网标签(non-vlantag)的情况,第二栏其余非“-”的情况则是填入在网络中已设定存在的原始虚拟区域网标识符。以表二实施例而言,第二栏数值为“1”是对应由此实体端口进来的封包其原始虚拟区域网标识符恰好是“1”的情况。第三栏表示系统程序赋予封包的虚拟区域网标识符,此例显示,进入第一虚拟交换器的第一虚拟端口“1/1”(对应实体端口编号1)的封包原始并未有虚拟区域网标识符(第二栏标示“-”),即赋予虚拟区域网标识符“1”;若进入第一虚拟交换器的第一虚拟端口“1/1”(对应实体端口编号1)的封包原始载有虚拟区域网标识符“1”,则改赋予为虚拟区域网标识符“2”,用以取代原始的标识符。套用表二后,虚拟区域网标识符“1”和虚拟区域网标识符“2”为第一虚拟交换器内部所用;虚拟区域网标识符“11”和虚拟区域网标识符“12”为第二虚拟交换器内部所用。最后,当封包离开第一虚拟交换器和第二虚拟交换器之前,系统程序即依照表二卸除所赋予的虚拟区域网标识符或将所改变的虚拟区域网标识符还原到其原始的虚拟区域网标识符。需要一提的是,若进入某虚拟交换器的封包已经载有虚拟区域网标识符,系统提供取代原始标识符的另一虚拟区域网标识符,而又不能与已经使用中的虚拟区域网标识符重复。因此,系统需要提供每个虚拟交换器一个范围内的多个虚拟区域网标识符,且多个虚拟交换器的范围也不得重复。(表二)当封包被赋予新的虚拟区域网标识符,也就是属于某个虚拟区域网,之后,进入某个虚拟交换器的封包将套用进入对应的传输规则,例如表三记载的输出端口对照表,其中记载封包目的地与封包所属的虚拟区域网标识符所对照的输出端口,传输规则将以封包新的虚拟区域网标识符运行,如步骤s409。每个虚拟交换器的传输规则记录在实体交换器内存中的桥接传输表,传输规则记载根据解析封包得到的目的地信息决定输出的实体端口。在步骤s411中,系统解析封包取得目的地信息,目的地如图1的终端装置pc1(地址00:00:01)或终端装置pc2(地址00:00:02),套用传输规则后,例如表三(需对照表二),依照封包的目的地地址与虚拟区域网标识符决定封包输出的实体交换器上的实体端口。举例来说,参考表三显示的实施例,同时参考图1示意图,当封包的目的地地址为终端装置pc1(地址:00:00:01)且新的虚拟区域网标识符为“1”时,输出实体端口编号为“1”;当封包的目的地地址为终端装置pc1(地址:00:00:01)且新的虚拟区域网标识符为“11”时,则输出实体端口编号为“3”;当封包的目的地地址为终端装置pc2(地址:00:00:02)且新的虚拟区域网标识符为“1”时,输出实体端口编号为“2”;当封包的目的地地址为终端装置pc2(地址:00:00:02)且新的虚拟区域网标识符为“12”时,输出实体端口编号为“4”。目的地地址虚拟区域网标识符输出端口编号00:00:011100:00:012100:00:0111300:00:0112300:00:021200:00:022200:00:0211400:00:02124(表三)最后,如步骤s413,在封包通过实体输出端口之前,系统程序先卸除封包被赋予的虚拟区域网标识符,还原成封包原本有虚拟区域网卷标或没有虚拟区域网卷标的样态,并保有原本的数据。卸除虚拟区域网标签而还原原本样态的对照表可参考表四,表四为一卸除虚拟区域网卷标对照表,用以记载各封包的虚拟区域网标识符所对照的一原始虚拟区域网标识符,为表二的反向对照,第一栏记载运行于虚拟交换器的虚拟区域网标识符(vlanid),此例显示为“1,2,11,12”,卸除程序(popoff)还原封包原始虚拟区域网标识符“-,1,-,1”。针对这实施例,“-”代表卸除虚拟区域网标识符,“1”则代表要把被改变过的“2”或“12”虚拟区域网标识符还原成原始的“1”虚拟区域网标识符。虚拟区域网标识符原始虚拟区域网标识符1-2111-121(表四)最后自所决定的输出端口输出,若是进入另一虚拟交换器,重新执行图4描述的实施例流程,重新应用新的一组端口对照表、虚拟区域网转换表、输出端口对照表与卸除虚拟区域网标签对照表。图5显示为本发明网络拓扑实机仿真系统运行的流程图,此图描述了封包进入以实体交换器仿真出的多个虚拟交换器所仿真的网络的流程,所述网络为以实体交换器分割多个虚拟交换器所仿真出的一个网络拓扑,封包由一连接此网络的终端装置所发出。根据实施例,此网络拓扑实机仿真系统用以仿真软件定义网络时,整个流程由实体交换器所连接的软件定义网络控制器所控制,软件定义网络控制器分别以实体或虚拟的联机连接各虚拟交换器,控制各虚拟交换器的传输规则。一开始,终端装置产生封包,并由网络中的某一虚拟交换器输入到系统中,主要是经由虚拟交换器的一虚拟端口接入网络(步骤51),同时将解析包头,用以取得虚拟区域网、来源与目的地等信息。系统在实体交换器的电路系统中运行,此时引入端口对照表(步骤52),可以将接入的虚拟端口对照到一个实体端口。接着判断封包是否载有虚拟区域网标签(vlantag)(步骤53),此虚拟区域网标签可能为前一个网络设备所赋予的信息,在不影响封包原本样貌的前提下,系统引入一虚拟区域网转换表(步骤54),若封包没有虚拟区域网标签,则根据封包接入的虚拟端口赋予一个新的虚拟区域网标签,对照一虚拟区域网标识符;若封包已经载有虚拟区域网卷标,系统则根据连接的虚拟端口赋予一新的虚拟区域网标签,以取代封包旧有的虚拟区域网标签。相关信息先暂存于系统的内存中。此时,由软件定义网络控制器,或是实体交换器中的内存中取得桥接传输表(步骤55),套用所处虚拟交换器的传输规则,并以新赋予的虚拟区域网标识符运行。之后,参照输出端口对照表,根据封包的目的地信息与封包所赋予的虚拟区域网标识符,对照得出一输出端口(步骤56),输出前,系统程序将依照卸除虚拟区域网卷标对照表卸除所赋予的虚拟区域网标签(步骤57),还原封包原来进入虚拟交换器的数据,包括回复到原本没有虚拟区域网卷标,或是有虚拟区域网卷标的原始状态。最后,封包经输出端口输出(步骤58)。以下,以几个表格显示的实验数据描述公开书所公开的网络拓扑实机仿真系统在仿真实际网络与现有软件仿真方式的比较,藉此证明网络拓扑实机仿真系统的优点。先参考图6显示网络拓扑实机仿真系统与以软件仿真网络的目标流量与实现流量的曲线图,此例以每300秒产生六个tcp流量为实验流量。此曲线图纵轴表示网络系统设计时欲实现的流量(gbit/sec),横轴则表示目标流量(gbit/sec),图中表示公开书所公开的网络拓扑实机仿真系统的实现流量曲线61,显示当目标流量愈来愈高时,实现流量曲线61可以成几乎正比的方式增加,表示仿真系统可以正确反应出实际网络的状况。反之,软件仿真系统的实现流量曲线62虽一开始可以随着目标流量增加而增加,但是到了流量至6gbit/sec后,即逐渐成缓降的曲线,不能随着仿真网络的目标流量增加而持续增加,显示出软件仿真系统在高目标流量的限制。图7显示网络拓扑实机仿真系统仿真实际网络与现有软件仿真方式的流量偏移曲线图,此图纵轴表示流量偏移(gbit/sec),横轴表示目标流量(gbit/sec)。此图显示当仿真网络的目标流量持续增加时,网络拓扑实机仿真系统的流量偏移曲线71维持在低量偏移的状况,显示本发明提出的网络拓扑实机仿真系统在仿真网络时,不会产生过高的流量偏移问题,相较于软件仿真系统显示的流量偏移曲线72有持续攀高的问题,本发明网络拓扑实机仿真系统用有较好的模拟效果。图8接着显示以本发明网络拓扑实机仿真系统仿真实际网络与现有软件仿真方式的中央处理器使用率曲线图,此图纵轴表示中央处理器使用路(%),横轴表示目标流量(gbit/sec)。如前述讨论,软件仿真系统运行于一计算机系统中,仿真数据完全倚赖计算机系统的中央处理器的处理能力,以及相关内存、缓存器的效能,使得硬件效能会随着处理数据增加而降低,可以反映在此曲线图的中央处理器使用率曲线82上。其中,由于网络拓扑实机仿真系统以一原本就是设计用来处理封包数据的实体交换器来仿真实际网络,因此在运行上,可以不受到目标流量增加,也就反映在此图曲线81上。其中显示网络拓扑实机仿真系统在目标流量增加时,中央处理器使用率(%)没有增加的趋势,反之,软件仿真系统因为倚赖硬件的处理能力,一旦仿真网络的目标流量增加,就会增加中央处理器使用率,使得硬件效能会影响仿真数据,而产生不正确模拟结果的问题。是以,根据以上实施例所描述的网络拓扑实机仿真方法与系统,是以实体的交换器分割端口的方式模拟出多个虚拟交换器,并具有可扩充性,使得网络仿真运行在实际的网络设备上。网络拓扑实机仿真方法以实体交换器仿真网络拓扑,或以多部实体交换器链接后扩大仿真的网络拓扑,如此,根据发明目的,以及实验数据的左证,可证网络拓扑实机仿真系统不但可以节省以架构真实网络来测试某个网络拓扑的成本,还解决了现有以软件程序仿真实际网络所遇到各种限制产生的错误数据的问题。以上所述仅为本发明的优选可行实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1