论文部分内容阅读
摘 要 基于OpenStack云平台,构建计算机网络课程仿真实验,可满足可扩展、高逼真、开放式的实践教学需要。分析OpenStack云平台在计算机网络实验教学中面临的问题,研究虚拟路由器、虚拟链路等关键要素的构建方法。面向路由协议以及TCP协议等实践教学环节,构建典型的仿真场景,验证基于云平台仿真实验的有效性。
关键词 计算机网络课程;OpenStack云平台;仿真实验
中图分类号:TP391.9 文献标识码:B
文章编号:1671-489X(2018)02-0123-04
1 前言
计算机网络课程是高等学校计算机科学与技术专业的核心课程,具有实践性强的特点。为加深学生对计算机网络课程理论知识的理解,培养学生对计算机网络领域的实践与创新能力,各高校计算机网络课程都设置了实验与实践课程。以各种交换机、路由器等物理设备构建的实验环境存在运维成本高、灵活性低等缺点;基于各种网络模拟与仿真软件构建的虚拟仿真平台,成为计算机网络实践教学的重要支撑[1]。
基于经典的NS2、NS3等开源的网络模拟软件,可构建面向计算机网络实验的虚拟仿真场景[2],但存在真實计算机网络应用软件无法加载,仿真界面效果差等缺点,导致教学实验可操作性差;OPNET、Qualnet等网络模拟软件尽管具有良好的用户界面,但是由于是收费的商业软件,这制约了这些软件在计算机网络实验教学中的使用[3]。思科公司的Packet Tracer网络仿真软件具有良好的用户界面,被广泛应用于计算机网络实验教学与培训中[4],但仅是单机版网络仿真软件,在可扩展性与开放性方面存在不足,且存在真实计算机网络应用软件无法加载的问题。
鉴于上述问题,本文基于OpenStack[5]云计算平台,研究计算机网络课程仿真实验的构建方法。OpenStack云平台随着自身的不断完善与发展,逐渐成为主流云平台,其相关优势有助于构建可扩展、高逼真、开放式的计算机网络课程仿真实验平台。本文首先分析OpenStack在计算机网络仿真实验方面的优势与不足,接着有针对性地研究虚拟路由器、虚拟链路的构建方法,最后面向路由协议以及TCP协议等教学内容,构建相应的仿真实验,验证有效性。
2 基于OpenStack的网络仿真实验分析
OpenStack云平台介绍 OpenStack是一个开源的基础架构即服务(IaaS)云计算平台,其目标是为大规模的共有云和小规模的私有云提供一个易于扩展的、弹性云计算服务。它给用户提供一个Web交互接口的控制面板(Dash-board),管理一个或多个数据中心的所有计算资源池、存储资源池、网络资源池等硬件资源,且支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等)。OpenStack云平台的基础架构如图1所示。
Openstack云平台物理环境主要由控制节点、网络节点与若干计算节点组成。控制节点负责管控整个平台,提供包括资源分配、虚拟机管理、平台实时监管等功能,并向用户提供名为Dashboard的图形管理界面,用于管理平台中的虚拟网络和服务器集群。网络节点提供各种网络服务,其中router-namespace提供路由服务和地址转换服务(NAT),dhcp可自动为各个虚拟机分配IP地址。计算节点为虚拟机的建立提供各种资源,在一个基础架构中可以包含多个计算节点,计算节点越多,可以构建的虚拟网络的规模越大。
计算节点和网络节点均有Open vSwitch(OVS)模块,是支持软件定义功能的虚拟交换机。OVS由各个网桥构成,分别为br-tun、br-ex和br-int。br-tun作为接口用于连接分布在不同节点中的OVS,实现平台的分布式架构。br-ex只存在于网络节点的OVS中,它和网络节点外网网卡相连,用于接入外部实物网络。br-int是数据包的中继站,所有的虚拟机和OVS中其他的两种网桥都与br-int相连,保证了同一虚拟网络的连通性,待转发的数据包都会进入br-int进行流表匹配并执行相关操作。OVS支持VLAN功能,可实现虚拟网络的相互隔离。
Openstack云平台中由物理服务器网卡所连接形成的网络分为三种,分别为管理网、隧道网和外网。管理网用于控制节点对各个节点进行管控以及下达操作虚拟网络的命令;隧道网连接各个节点,用于构建分布式平台;外网即外部物理网络,可与实物网络互联。
OpenStack的网络仿真实验能力分析 基于上述介绍,对OpenStack用于网络仿真实验的优势进行分析。
1)扩展性:通过扩展OpenStack计算节点个数,可实现大规模网络拓扑的教学实验以及实现多个教学实验任务的并发展开;OpenStack平台支持轻量级虚拟化,可在单台物理服务器上构建具有上百个甚至上千个节点规模的仿真网络;通过OpenStack的br-ex,可实现虚拟网络与实物网络的互联互通,为构建半实物计算机网络实验场景提供支撑。
2)逼真性:OpenStack融合了虚拟化技术,可无缝融合各类操作系统并支持各种真实计算机网络软件加载,可为计算机网络教学实验提供逼真的终端环境;此外,Open-Stack支持三层网络,可为各类链路层与网络层教学实验提供逼真的环境。
3)开放可用性:基于云计算技术,可构建远程开放式云端计算机网络虚拟实验室[6],可为学生提供全天候实验教学服务,学生利用任意一台连接到网络的计算机,即可远程连接进行计算机网络实验场景的生成与教学实验;Open-
Stack的Dashboard提供图形管理界面,方便管理计算机网络仿真实验场景。
4)多实验隔离性:OpenStack支持VLAN等安全隔离方式,可为计算机网络课程提供多个教学实验场景间的安全隔离。 5)实验场景多样性:基于OpenStack现有的网络层与链路层基本功能,可支持诸如VLAN、NAT、DHCP、ARP、数据包捕获与解析、基本网络命令操作等计算机网络实验。
然而,尽管OpenStack具有上述优势,其本身并不是为计算机网络仿真而专门开发的,在计算机网络仿真实验上存在一定的局限性。
1)OpenStack的neutron网络组件尽管可支持三层网络,但只能满足最基础的IP报文转发服务,所提供的虚拟路由器qrouter只能够转发与其直连的网络流量,无法构建复杂的仿真网络,也不支持各类动态路由协议,这制约了复杂网络拓扑实验、路由协议实验等教学场景的构建。
2)OpenStack中各个虚拟机都被连接到OVS上,可实现虚拟网络的连通性。依靠OVS的可定义配置,可灵活构建虚拟机间的虚拟链路。但是,所构建的虚拟链路仅仅是连通性,缺乏对虚拟链路带宽、延迟等参数的仿真,这制约了与链路参数有关的教学实验场景(如TCP协议的流量控制等)的构建。
为此,针对上述问题,本文第3、4节,分别研究了虚拟路由器与虚拟链路的构建方法,实现对OpenStack相关仿真模型的扩展,满足计算机网络仿真实验的需求。
3 虚拟路由器构建方法
基于KVM虚拟机以及Quagga软件,可构建支持路由协议且支持复杂网络仿真的虚拟路由器,并可集成到OpenStack
云平台中。Quagga是一款功能强大的开源路由软件,可支持rip、ripng、ospfv2、ospfv3、bgp等协议的仿真,而且Quagga的命令行界面与主要路由器厂商思科的基本一致。
基于OpenStack的虚拟路由器的具体构建方法:
首先,基于KVM虚拟化技术,构建具有多虚拟网卡的虚拟机,每一个虚拟网卡分别连接不同的虚拟网络;
其次,基于该虚拟机,安装可仿真各类路由协议的Quagga软件,形成动态路由协议仿真引擎;
最后,构建虚拟网络,配置嗅探模块,可自动获得虚拟机的IP地址等信息,并对动态路由协议仿真引擎进行自动化配置,启动RIP、OSPF、BGP协议的仿真。
值得注意的是,上述虚拟路由器构建方法形成的虚拟机可制作成虚拟路由器镜像并存储于OpenStack镜像库中。当需要构建计算机网络仿真实验场景时,可基于镜像进行按需部署,自动化形成可支持各类路由协议仿真且可互联不同虚拟网络的虚拟路由器。
4 虚拟链路构建方法
如第2节所述,基于OVS可灵活构建虚拟机间的虚拟链路,具体构建方式:每建一个虚拟机,OpenStack会自动为该虚拟机在OVS的br-int上建立一个端口并将该虚拟机连接到这个端口上,接着在OVS中添加相关流表规则。流表规则保证了该虚拟机能够正常收发数据包。
上述操作相当于为该虚拟机建立了一条接入虚拟交换机的链路。由于所有的虚拟机都被接入OVS,因此,相当于在同一虚拟网络中,任意一对虚拟机之间都有一条虚拟链路,这保证了虚拟机之间的连通性。
基于上述方法所构建的虚拟链路,依靠Linux操作系统中的流量控制器TC(Traffic Control),可以进一步构建带有带宽、延迟特性的虚拟链路。TC通过建立处理数据包的队列,实现对流量的控制,并可仿真出复杂的互联网传输性能,诸如带宽、传输延迟、丢包等。在仿真虚拟链路的特性时,可根据实际需要,将TC仿真命令添加到虚拟链路对应的虚拟机的虚拟网卡上即可。如通过下列命令,可設置虚拟链路的带宽为100 Mbps,传播延迟为10 ms:
tc qdisc add dev eth0 handle 1: root htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100Mbps
tc qdisc add dev eth0 root netem delay 10ms
5 计算机网络仿真实验场景验证
为验证OpenStack云平台对典型计算机网络教学实验的支持能力,构建典型的路由协议实验场景以及TCP协议实验场景进行验证。值得一提的是,这两个实验场景也重点验证了新构建的虚拟路由器以及虚拟链路对仿真实验的支撑能力。
路由协议实验 所构建的虚拟网络拓扑图如图2所示,共有六个虚拟路由器(分别标志为R1、R2、R3、R4、R5、R6)以及四个虚拟主机(分别标志为H1、H2、H3、H4)。
以经典的域内路由协议OSPF为代表,进行路由协议实验,其主要实验步骤如下。
1)配置IP地址。以路由器R3为例,其IP地址具体配置过程如图3所示,其他路由器的IP地址配置过程类似。
2)配置OSPF协议。以路由器R3为例,其OSPF协议的具体配置过程如图4所示。
3)查看路由表。通过OSPF协议的一段时间学习后,可以查看新学习到的路由信息。路由器R3的路由信息查看命令与显示结果如图5所示。
4)路由路径测试。通过traceroute命令测试各个主机之间的连通性以及路由信息的正确性,其中主机H1到H3的路由路径测试结果如图6所示,表明主机H1到H3的路由路径为R1、R3、R4、R5,这验证了基于OSPF协议构建的路由表的有效性。
通过该实验,可以让学生掌握IP地址的配置、OSPF协议的配置、路由信息的查询与显示以及路由路径等相关知识,提升实践能力。此外,该实验也验证了本文所提出的虚拟路由器构建方法具备支持路由协议仿真的能力。
TCP协议实验 针对图2中的虚拟网络拓扑,进一步开展TCP协议实验。由于TCP协议的拥塞控制过程是计算机网络课程的难点和重点,为此以TCP协议拥塞控制实验为对象,进行相关实验演示。由于拥塞控制与链路的带宽、延迟等参数相关,为此基于图2首先设置所有链路的带宽和延迟:R3与R4的链路设置为瓶颈链路,其带宽设置为20 Mbps,传播延迟为160 ms;其余路由器间的所有链路带宽均设置为100 Mbps,传播延迟为160 ms;所有主机到相连路由器的链路带宽设置为100 Mbps,传播延迟为10 ms。 在主机H1、H3上安装了Iperf网络性能测试工具,启动主机H1到H3的TCP流量发送,并实时记录吞吐量,其前50秒的实时吞吐量如图7所示。
依靠图7,可以演示TCP的拥塞控制过程。
在第0~20秒之间,TCP的吞吐量急剧上升,表明此阶段为TCP的慢开始阶段和拥塞避免阶段。在这两个阶段,每经过一个轮次,TCP吞吐量就会提升,其中第0~14秒吞吐量提升较快,因为处于慢开始阶段;第14~20秒提升较慢,因为处于拥塞避免阶段。
在第20~26秒,TCP实时吞吐量维持在一个较稳定的值,接近瓶颈链路的额定带宽。
从第26秒开始,TCP的实时吞吐量急剧下降,主要是在第25~35秒,主机H2到H4通过Iperf启动UDP流量传输,传输速率为10 Mbps。因此,R3、R4间的瓶颈链路出现严重的拥塞,导致TCP分组丢失而执行了“乘法减小”策略。
在第36秒,UDP流量停止,TCP的实时吞吐量继续增加,逐渐接近瓶颈链路的额定带宽。
通过该实验,可以让学生掌握TCP协议流量控制涉及的慢开始、拥塞避免、“乘法减小”等知识,提升实践能力。此外,该实验也验证了本文所提出的虚拟链路构建方法具备支持与链路参数有关的教学实验的能力。
6 结语
本文分析了基于OpenStack云平台构建计算机网络仿真实验,具有扩展性、逼真性、开放可用性、多实验隔离性、实验场景多样性等优势,并构建了虚拟路由器、虚拟链路等仿真模块,进一步增强了OpenStack在计算机网络仿真实验方面的能力。基于OpenStack云平台,构建了路由协议仿真实验教学场景以及TCP协议仿真實验教学场景,验证了OpenStack云平台以及虚拟路由器、虚拟链路构建方法的有效性。通过云计算平台可任意灵活构建各类丰富的计算机网络课程实验场景,能让学生更加轻松地学习网络理论知识,提升学生的钻研兴趣以及创新实践能力。
参考文献
[1]李英杰.虚拟仿真实验在计算机网络教学中的有效运用[J].信息与电脑:理论版,2017(1):214-216.
[2]王晓锋,毛力.NS2在TCP协议教学中的应用研究[J].中国教育技术装备,2012(3):13-15.
[3]颜庆茁,叶添福.基于OPNET的计算机网络仿真实验教学研究[J].集美大学学报:教育科学版,2014(3):111-114.
[4]薛琴.基于Packet Tracer的计算机网络仿真实验教学[J].实验室研究与探索,2010(2):57-59.
[5]OpenStack Community. OpenStack[EB/OL].[2017-02-01].http://www.OpenStack.org/.
[6]徐林,卢广宇,杨凯,等.远程开放式云端虚拟实验室建设初探[J].教育教学论坛,2014(43):254-256.
关键词 计算机网络课程;OpenStack云平台;仿真实验
中图分类号:TP391.9 文献标识码:B
文章编号:1671-489X(2018)02-0123-04
1 前言
计算机网络课程是高等学校计算机科学与技术专业的核心课程,具有实践性强的特点。为加深学生对计算机网络课程理论知识的理解,培养学生对计算机网络领域的实践与创新能力,各高校计算机网络课程都设置了实验与实践课程。以各种交换机、路由器等物理设备构建的实验环境存在运维成本高、灵活性低等缺点;基于各种网络模拟与仿真软件构建的虚拟仿真平台,成为计算机网络实践教学的重要支撑[1]。
基于经典的NS2、NS3等开源的网络模拟软件,可构建面向计算机网络实验的虚拟仿真场景[2],但存在真實计算机网络应用软件无法加载,仿真界面效果差等缺点,导致教学实验可操作性差;OPNET、Qualnet等网络模拟软件尽管具有良好的用户界面,但是由于是收费的商业软件,这制约了这些软件在计算机网络实验教学中的使用[3]。思科公司的Packet Tracer网络仿真软件具有良好的用户界面,被广泛应用于计算机网络实验教学与培训中[4],但仅是单机版网络仿真软件,在可扩展性与开放性方面存在不足,且存在真实计算机网络应用软件无法加载的问题。
鉴于上述问题,本文基于OpenStack[5]云计算平台,研究计算机网络课程仿真实验的构建方法。OpenStack云平台随着自身的不断完善与发展,逐渐成为主流云平台,其相关优势有助于构建可扩展、高逼真、开放式的计算机网络课程仿真实验平台。本文首先分析OpenStack在计算机网络仿真实验方面的优势与不足,接着有针对性地研究虚拟路由器、虚拟链路的构建方法,最后面向路由协议以及TCP协议等教学内容,构建相应的仿真实验,验证有效性。
2 基于OpenStack的网络仿真实验分析
OpenStack云平台介绍 OpenStack是一个开源的基础架构即服务(IaaS)云计算平台,其目标是为大规模的共有云和小规模的私有云提供一个易于扩展的、弹性云计算服务。它给用户提供一个Web交互接口的控制面板(Dash-board),管理一个或多个数据中心的所有计算资源池、存储资源池、网络资源池等硬件资源,且支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等)。OpenStack云平台的基础架构如图1所示。
Openstack云平台物理环境主要由控制节点、网络节点与若干计算节点组成。控制节点负责管控整个平台,提供包括资源分配、虚拟机管理、平台实时监管等功能,并向用户提供名为Dashboard的图形管理界面,用于管理平台中的虚拟网络和服务器集群。网络节点提供各种网络服务,其中router-namespace提供路由服务和地址转换服务(NAT),dhcp可自动为各个虚拟机分配IP地址。计算节点为虚拟机的建立提供各种资源,在一个基础架构中可以包含多个计算节点,计算节点越多,可以构建的虚拟网络的规模越大。
计算节点和网络节点均有Open vSwitch(OVS)模块,是支持软件定义功能的虚拟交换机。OVS由各个网桥构成,分别为br-tun、br-ex和br-int。br-tun作为接口用于连接分布在不同节点中的OVS,实现平台的分布式架构。br-ex只存在于网络节点的OVS中,它和网络节点外网网卡相连,用于接入外部实物网络。br-int是数据包的中继站,所有的虚拟机和OVS中其他的两种网桥都与br-int相连,保证了同一虚拟网络的连通性,待转发的数据包都会进入br-int进行流表匹配并执行相关操作。OVS支持VLAN功能,可实现虚拟网络的相互隔离。
Openstack云平台中由物理服务器网卡所连接形成的网络分为三种,分别为管理网、隧道网和外网。管理网用于控制节点对各个节点进行管控以及下达操作虚拟网络的命令;隧道网连接各个节点,用于构建分布式平台;外网即外部物理网络,可与实物网络互联。
OpenStack的网络仿真实验能力分析 基于上述介绍,对OpenStack用于网络仿真实验的优势进行分析。
1)扩展性:通过扩展OpenStack计算节点个数,可实现大规模网络拓扑的教学实验以及实现多个教学实验任务的并发展开;OpenStack平台支持轻量级虚拟化,可在单台物理服务器上构建具有上百个甚至上千个节点规模的仿真网络;通过OpenStack的br-ex,可实现虚拟网络与实物网络的互联互通,为构建半实物计算机网络实验场景提供支撑。
2)逼真性:OpenStack融合了虚拟化技术,可无缝融合各类操作系统并支持各种真实计算机网络软件加载,可为计算机网络教学实验提供逼真的终端环境;此外,Open-Stack支持三层网络,可为各类链路层与网络层教学实验提供逼真的环境。
3)开放可用性:基于云计算技术,可构建远程开放式云端计算机网络虚拟实验室[6],可为学生提供全天候实验教学服务,学生利用任意一台连接到网络的计算机,即可远程连接进行计算机网络实验场景的生成与教学实验;Open-
Stack的Dashboard提供图形管理界面,方便管理计算机网络仿真实验场景。
4)多实验隔离性:OpenStack支持VLAN等安全隔离方式,可为计算机网络课程提供多个教学实验场景间的安全隔离。 5)实验场景多样性:基于OpenStack现有的网络层与链路层基本功能,可支持诸如VLAN、NAT、DHCP、ARP、数据包捕获与解析、基本网络命令操作等计算机网络实验。
然而,尽管OpenStack具有上述优势,其本身并不是为计算机网络仿真而专门开发的,在计算机网络仿真实验上存在一定的局限性。
1)OpenStack的neutron网络组件尽管可支持三层网络,但只能满足最基础的IP报文转发服务,所提供的虚拟路由器qrouter只能够转发与其直连的网络流量,无法构建复杂的仿真网络,也不支持各类动态路由协议,这制约了复杂网络拓扑实验、路由协议实验等教学场景的构建。
2)OpenStack中各个虚拟机都被连接到OVS上,可实现虚拟网络的连通性。依靠OVS的可定义配置,可灵活构建虚拟机间的虚拟链路。但是,所构建的虚拟链路仅仅是连通性,缺乏对虚拟链路带宽、延迟等参数的仿真,这制约了与链路参数有关的教学实验场景(如TCP协议的流量控制等)的构建。
为此,针对上述问题,本文第3、4节,分别研究了虚拟路由器与虚拟链路的构建方法,实现对OpenStack相关仿真模型的扩展,满足计算机网络仿真实验的需求。
3 虚拟路由器构建方法
基于KVM虚拟机以及Quagga软件,可构建支持路由协议且支持复杂网络仿真的虚拟路由器,并可集成到OpenStack
云平台中。Quagga是一款功能强大的开源路由软件,可支持rip、ripng、ospfv2、ospfv3、bgp等协议的仿真,而且Quagga的命令行界面与主要路由器厂商思科的基本一致。
基于OpenStack的虚拟路由器的具体构建方法:
首先,基于KVM虚拟化技术,构建具有多虚拟网卡的虚拟机,每一个虚拟网卡分别连接不同的虚拟网络;
其次,基于该虚拟机,安装可仿真各类路由协议的Quagga软件,形成动态路由协议仿真引擎;
最后,构建虚拟网络,配置嗅探模块,可自动获得虚拟机的IP地址等信息,并对动态路由协议仿真引擎进行自动化配置,启动RIP、OSPF、BGP协议的仿真。
值得注意的是,上述虚拟路由器构建方法形成的虚拟机可制作成虚拟路由器镜像并存储于OpenStack镜像库中。当需要构建计算机网络仿真实验场景时,可基于镜像进行按需部署,自动化形成可支持各类路由协议仿真且可互联不同虚拟网络的虚拟路由器。
4 虚拟链路构建方法
如第2节所述,基于OVS可灵活构建虚拟机间的虚拟链路,具体构建方式:每建一个虚拟机,OpenStack会自动为该虚拟机在OVS的br-int上建立一个端口并将该虚拟机连接到这个端口上,接着在OVS中添加相关流表规则。流表规则保证了该虚拟机能够正常收发数据包。
上述操作相当于为该虚拟机建立了一条接入虚拟交换机的链路。由于所有的虚拟机都被接入OVS,因此,相当于在同一虚拟网络中,任意一对虚拟机之间都有一条虚拟链路,这保证了虚拟机之间的连通性。
基于上述方法所构建的虚拟链路,依靠Linux操作系统中的流量控制器TC(Traffic Control),可以进一步构建带有带宽、延迟特性的虚拟链路。TC通过建立处理数据包的队列,实现对流量的控制,并可仿真出复杂的互联网传输性能,诸如带宽、传输延迟、丢包等。在仿真虚拟链路的特性时,可根据实际需要,将TC仿真命令添加到虚拟链路对应的虚拟机的虚拟网卡上即可。如通过下列命令,可設置虚拟链路的带宽为100 Mbps,传播延迟为10 ms:
tc qdisc add dev eth0 handle 1: root htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100Mbps
tc qdisc add dev eth0 root netem delay 10ms
5 计算机网络仿真实验场景验证
为验证OpenStack云平台对典型计算机网络教学实验的支持能力,构建典型的路由协议实验场景以及TCP协议实验场景进行验证。值得一提的是,这两个实验场景也重点验证了新构建的虚拟路由器以及虚拟链路对仿真实验的支撑能力。
路由协议实验 所构建的虚拟网络拓扑图如图2所示,共有六个虚拟路由器(分别标志为R1、R2、R3、R4、R5、R6)以及四个虚拟主机(分别标志为H1、H2、H3、H4)。
以经典的域内路由协议OSPF为代表,进行路由协议实验,其主要实验步骤如下。
1)配置IP地址。以路由器R3为例,其IP地址具体配置过程如图3所示,其他路由器的IP地址配置过程类似。
2)配置OSPF协议。以路由器R3为例,其OSPF协议的具体配置过程如图4所示。
3)查看路由表。通过OSPF协议的一段时间学习后,可以查看新学习到的路由信息。路由器R3的路由信息查看命令与显示结果如图5所示。
4)路由路径测试。通过traceroute命令测试各个主机之间的连通性以及路由信息的正确性,其中主机H1到H3的路由路径测试结果如图6所示,表明主机H1到H3的路由路径为R1、R3、R4、R5,这验证了基于OSPF协议构建的路由表的有效性。
通过该实验,可以让学生掌握IP地址的配置、OSPF协议的配置、路由信息的查询与显示以及路由路径等相关知识,提升实践能力。此外,该实验也验证了本文所提出的虚拟路由器构建方法具备支持路由协议仿真的能力。
TCP协议实验 针对图2中的虚拟网络拓扑,进一步开展TCP协议实验。由于TCP协议的拥塞控制过程是计算机网络课程的难点和重点,为此以TCP协议拥塞控制实验为对象,进行相关实验演示。由于拥塞控制与链路的带宽、延迟等参数相关,为此基于图2首先设置所有链路的带宽和延迟:R3与R4的链路设置为瓶颈链路,其带宽设置为20 Mbps,传播延迟为160 ms;其余路由器间的所有链路带宽均设置为100 Mbps,传播延迟为160 ms;所有主机到相连路由器的链路带宽设置为100 Mbps,传播延迟为10 ms。 在主机H1、H3上安装了Iperf网络性能测试工具,启动主机H1到H3的TCP流量发送,并实时记录吞吐量,其前50秒的实时吞吐量如图7所示。
依靠图7,可以演示TCP的拥塞控制过程。
在第0~20秒之间,TCP的吞吐量急剧上升,表明此阶段为TCP的慢开始阶段和拥塞避免阶段。在这两个阶段,每经过一个轮次,TCP吞吐量就会提升,其中第0~14秒吞吐量提升较快,因为处于慢开始阶段;第14~20秒提升较慢,因为处于拥塞避免阶段。
在第20~26秒,TCP实时吞吐量维持在一个较稳定的值,接近瓶颈链路的额定带宽。
从第26秒开始,TCP的实时吞吐量急剧下降,主要是在第25~35秒,主机H2到H4通过Iperf启动UDP流量传输,传输速率为10 Mbps。因此,R3、R4间的瓶颈链路出现严重的拥塞,导致TCP分组丢失而执行了“乘法减小”策略。
在第36秒,UDP流量停止,TCP的实时吞吐量继续增加,逐渐接近瓶颈链路的额定带宽。
通过该实验,可以让学生掌握TCP协议流量控制涉及的慢开始、拥塞避免、“乘法减小”等知识,提升实践能力。此外,该实验也验证了本文所提出的虚拟链路构建方法具备支持与链路参数有关的教学实验的能力。
6 结语
本文分析了基于OpenStack云平台构建计算机网络仿真实验,具有扩展性、逼真性、开放可用性、多实验隔离性、实验场景多样性等优势,并构建了虚拟路由器、虚拟链路等仿真模块,进一步增强了OpenStack在计算机网络仿真实验方面的能力。基于OpenStack云平台,构建了路由协议仿真实验教学场景以及TCP协议仿真實验教学场景,验证了OpenStack云平台以及虚拟路由器、虚拟链路构建方法的有效性。通过云计算平台可任意灵活构建各类丰富的计算机网络课程实验场景,能让学生更加轻松地学习网络理论知识,提升学生的钻研兴趣以及创新实践能力。
参考文献
[1]李英杰.虚拟仿真实验在计算机网络教学中的有效运用[J].信息与电脑:理论版,2017(1):214-216.
[2]王晓锋,毛力.NS2在TCP协议教学中的应用研究[J].中国教育技术装备,2012(3):13-15.
[3]颜庆茁,叶添福.基于OPNET的计算机网络仿真实验教学研究[J].集美大学学报:教育科学版,2014(3):111-114.
[4]薛琴.基于Packet Tracer的计算机网络仿真实验教学[J].实验室研究与探索,2010(2):57-59.
[5]OpenStack Community. OpenStack[EB/OL].[2017-02-01].http://www.OpenStack.org/.
[6]徐林,卢广宇,杨凯,等.远程开放式云端虚拟实验室建设初探[J].教育教学论坛,2014(43):254-256.