本站小编为你精心准备了基于NetMagic的网络拓扑论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1SDN原理介绍
软件定义网络由于能支持新型网络协议和新型网络体系结构,而得到广泛发展[3]。在学术界,美国GENI、Internet2[4]、欧洲OFELIA和日本的JGN2plus[5]先后开展了对SDN的研究和部署,IETF(internetengineeringtaskforce),ITU(internationaltelecommuni-cationunion),ETS(Ieuropeantelecommunicationsstan-dardsinstitute)等标准组织也开始关注SDN,讨论SDN在各自领域可能的发展场景和架构应用。图1为软件定义网络原理图。图中,网络控制平面与数据转发平面相分离。网络控制逻辑和状态被转移到一个集中控制器上,因此,网络控制平面(SDN控制器)能以一个全局网络的视野去管理和控制网络。数据转发平面(SDN交换机)只专注于报文的转发。SDN控制器通过配置SDN交换机中的规则表来控制交换机的行为,和SDN交换机之间通过特定的通信协议传递消息。也就是说,SDN控制器相当于人的大脑,SDN交换机类似于人的手脚和肌肉,整个思想活动全由SDN控制器控制,SDN交换机根据SDN控制器下发的特定指令执行相应的动作行为,其行为完全是傻瓜式的状态。本文所提算法就是采用上述思想。通过SDN控制器来定义SDN交换机的存储和行为。在网络拓扑发现过程中,只需对NetMagic平台内部的FPGA编程,将其配置成SDN交换机即可(如何通过FPGA编程将硬件配置成SDN交换机在此不详细讲述)。
2网络拓扑发现算法设计
网络拓扑发现算法中的探测过程采用主动探测,发现过程工作在数据链路层和网络层之上。主动探测是指探测节点为获取拓扑信息主动向网络中发送路径探测包,并通过收集到的返回信息,分析网络的拓扑结构,最终形成网络拓扑。对于小规模局域网来说,一般是数据链路层的拓扑发现。其主要利用ARP(addressresolutionprotocol)协议。本课题组采用自主开发的一套NMAC(NetMagicaccessandcontrolprotocol)协议,将探测信息封装在以太网帧中,而后在软硬件之间进行通信。本文以SDN思想的控制和转发分离架构的设计理念为基础来设计算法。以图2所示的实验环境为例,对算法进行描述。本实验共有3台PC机和4台NetMagic网络实验平台。1台PC机充当SDN控制器,主要功能为向NetMagic下发拓扑探测报文、处理生成的响应报文和生成网络拓扑结构。另外2台PC机作为连接在网络中的终端设备,目的在于模拟网络中的真实环境,其是否接入网络环境,不影响整个实验过程。通过硬件逻辑设计,将4台NetMagic配置成SDN交换机,其对控制器下发的拓扑探测报文进行处理,每个交换机的功能和行为完全相同。网络运行时,SDN交换机以报文转发为基础,内部并不含CPU,不运行任何操作系统。对于网络拓扑发现的应用,还需要一台外部主机对NetMagic的FPGA进行编程配置。外部主机利用自主开发的NMAC协议,通过以太网报文的形式传到NetMagicFPGA的管理配置接口,然后由NetMagicFPGA对这些命令和配置报文进行解析,改变NetMagic的转发行为。网络拓扑发现算法的具体流程如下:1)网络拓扑发现开始。SDN控制器首先向1号交换机发出跳数为0的拓扑探测报文,1号交换机收到跳数为0的探测报文后,生成响应报文并返回至控制器。2)根据返回报文,SDN控制器配置目的Mac地址表,并将其发送给1号交换机。3)SDN控制器发送一个跳数为1的拓扑探测报文,1号交换机发现报文的跳数为1,将该报文跳数减1并附上自己本机ID号和输出端口号后广播。4)交换机2号、3号收到跳数为0的报文,生成响应报文并返回至控制器。SDN控制器收到2号、3号交换机的返回报文,将配置目的Mac地址表发送至2号、3号交换机。5)SDN控制器发送一个跳数为2的拓扑探测报文,1号交换机判断报文跳数为2,对报文跳数减1后直接进行广播转发;2号、3号交换机收到跳数为1的报文,其发现报文跳数为1,将报文跳数减1并附上自己本机ID号及输出端口号后广播。6)交换机4号收到跳数为0的报文,将响应报文返回至SDN控制器。SDN控制器收到4号交换机的返回报文后,将配置目的Mac地址表发送至4号交换机。7)SDN控制器再发送一个跳数为3的拓扑探测报文。各交换机重复上述工作,最后控制器发现没有返回的响应报文,整个网络拓扑发现过程结束。下面对本算法作如下几点说明:1)广播是指向连接交换机的所有活跃端口发送报文(接收到此报文的输入端口除外,活跃端口指的是已经连通且能够通信的端口)。2)根据算法设计,需要定义2类报文,并将NMAC命令进行以太网报文封装。报文定义和封装格式如下。定义1拓扑探测报文是目的Mac地址全为1,Type类型为0x09,协议号为253的NMAC报文。探测报文在以太网报文中的封装格式见图3。定义2响应报文是携带本机ID号,Type类型为0x10,port为收到跳数为0的输入端口号,Flag为SDN交换机是否连接其它设备标识的NMAC报文。响应报文在以太网报文中的封装格式见图4。在图3和图4中,加颜色部分为NMAC报文,规定NMAC协议号为253,从图中可以看出每个字段的位宽。
3仿真分析
Jade(Javaagentdevelopmentframework)是一种人工智能,其agent可以用来模拟交换机之间的逻辑关系。为论证本拓扑发现算法的逻辑可行性和有效性,利用Java语言构造了不同的拓扑关系进行仿真测试。
3.1仿真方案设计仿真方案如下。1)交换机的功能有:记录探测报文从“父节点”(上一个节点)进来的端口号(一般为1号端口);当接收到跳数为0的探测报文时,发出响应报文。2)初始化。初始化交换机的的层数为一个充分大的值(如256)。若收到的探测报文中的Req_Seq/Ack_Seq域的值小于自己当前的层数,则更新交换机的层数,并记录报文进入的端口号,该端口将作为自己通往“父节点”的端口。3)响应机制。①当交换机收到的探测报文跳数大于1时,将跳数减1,然后向所有活跃端口(除了收到报文的端口)转发报文。②当交换机收到的探测报文跳数等于1时,构造新的探测报文,将本交换机的ID号和Port端口号添加到新的探测报文当中,并将跳数减1,然后向所有活跃端口(除了收到报文的端口)转发出报文。③当交换机收到的探测报文跳数等于0时,分为3种情况:情况一Req_Seq/Ack_Seq中的值大于自己当前层数,则层数加1,丢弃报文;否则跳转到情况二。情况二构造响应报文。将收到的报文添加Dest_ID号和Dest_Port端口号,并将自己的ID号和收到报文的端口号分别写入Src_ID和Src_Port中,然后将响应报文转发给“父节点”。情况三当收到的报文为响应报文,直接向“父节点”转发,直到返回给控制器。
3.2仿真结果与分析为了验证了所提算法的逻辑可行性和有效性,本文进行了2组测试实验,即算法在简单拓扑结构和复杂拓扑结构下的运行情况。简单的网络拓扑结构图如图5所示。通过Java语言编写算法程序,从各个节点收集拓扑信息,归类整理,再调用画图软件绘出拓扑结构图。从图5可以看出,算法仿真得到的拓扑结构图和本文真实的实验环境完全相同。图6是图5的仿真结果过程图。虚拟机软件VMware平台上有个sniffer可以进行全局抓包,能够看到控制器与各个交换机之间的报文交换过程。从图中可以看出,报文交换过程完全与本文算法预期的报文发送过程一样。该仿真结果验证了所提算法的逻辑可行性和有效性。图7~9是3种复杂情况下的拓扑结构图。从3个拓扑结构中都可以得到本机ID号、本机连父的端口号、父ID号和父连本机的端口号这些关键的拓扑信息,通过这些信息可以获得全网交换机和控制主机的拓扑图。进一步验证了所提算法的逻辑可行性和有效性。
4结语
本文以SDN思想的控制和转发分离架构的设计理念为基础,提出了一种新型的基于netmagic的网络拓扑发现算法。先对算法进行了描述,定义了探测和响应报文在以太网帧中的封装格式,并通过软件对算法进行仿真实验,验证了所提算法的逻辑可行性和有效性。实验结果表明:该算法通过本机ID号、本机连父的端口号、父ID号和父连本机的端口号关键四元组拓扑信息,可以主动探测获得全网交换机和控制器主机之间的拓扑结构视图。
作者:廖飞龙永新钟海单位:湖南工业大学计算机与通信学院