软件定义网络中拓扑发现机制的性能改进研究_第1页
软件定义网络中拓扑发现机制的性能改进研究_第2页
软件定义网络中拓扑发现机制的性能改进研究_第3页
软件定义网络中拓扑发现机制的性能改进研究_第4页
软件定义网络中拓扑发现机制的性能改进研究_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    软件定义网络中拓扑发现机制的性能改进研究    梁陶宏才摘 要:在软件定义网络体系架构中,控制器作为核心部件需要随时获取网络的状态信息,尤其是网络的拓扑结构。因此,如何快速高效地发现网络的拓扑信息在软件定义网络中尤为重要。对目前主流的控制器平台实现拓扑发现的成本和开销进行评估,提出一种基于链路层发现协议的改进拓扑发现机制,通过减少控制器发送的packet-out消息数来降低控制负载。实验结果表明,与目前的拓扑发现机制相比,改进后的拓扑发现机制大大提高了控制器性能。关键词:软件定义网络;控制器;拓扑发现;链路层发现协议;packet-out消息:t

2、p393 文献标志码:a :2095-2945(2018)15-0045-03abstract: in the software defined network architecture, the controller as the core component needs to obtain the network state information at any time, especially the network topology. therefore, how to quickly and efficiently discover the network topology info

3、rmation is particularly important in the software definition of the network. this paper evaluates the cost and overhead of realizing topology discovery on the main controller platform, and proposes an improved topology discovery mechanism based on link layer discovery protocol, which reduces the con

4、trol load by reducing the number of packet-out messages sent by the controller. experimental results show that the improved topology discovery mechanism greatly improves the controller performance compared with the current topology discovery mechanism.keywords: software defined network; controller;

5、topology discovery; link layer discovery protocol; packet-out message引言软件定义网络(software defined networking,sdn)是一种以控制转发分离为中心思想的新型网络架构,其核心部件sdn控制器需要实时地获取网络的状态,尤其是网络的拓扑结构。拓扑发现功能作为控制器提供的一项关键服务,是sdn进行集中配置和管理网络的前提。因此,一个高效可靠的拓扑发现机制对于sdn网络至关重要,研究如何提高拓扑发现机制的性能具有十分重要的意义。1 拓扑发现机制概述1.1 机制描述目前,在sdn网络中实现拓扑发现的方法并没

6、有官方的标准。nox1是最早期的一款sdn控制器,大多数控制器平台实现拓扑发现的方法均是按照nox的实现方式衍生而来的,如pox、floodlight、ryu等。当前的拓扑发现机制主要利用链路层发现协议(link layer discovery protocol,lldp)2实现。sdn控制器使用packet-out消息周期性地向与之相连的所有openflow3交换机的每个端口发送lldp帧。当某个交换机接收到这些lldp帧后,再使用packet-in消息将两台交换机之间的链路信息发送给控制器。当控制器搜集了所在区域的所有链路信息后可建立网络的全局拓扑结构。1.2 场景示例现假设有两个open

7、flow交换机连接在控制器上,如图3所示。控制器首先为交换机s1的3个端口创建单独的lldp帧,其中chassis id为交换机s1的dpid,port id为各自的端口号。然后,通过packet-out消息指示交换机s1将该lldp帧通过port 1端口发送出去。当该帧到达交换机s2的port 3端口后,会触发交换机s2发送packet-in消息给控制器,该packet-in消息中包含了由交换机s1的port 1端口发送的lldp帧。控制器从收到的packet-in消息中可以解析得到该packet-in消息是由交换机s2的port 3端口触发的,同时可以解析出该帧是从交换机s1的port 1

8、端口发送的,此时控制器就可确定交换机s1的port 1端口和交换机s2的port 3端口是直连的。若推广到整个网络,控制器可以指示从所有交换机的所有端口发送lldp帧,从而获取全网的拓扑信息。1.3 性能评估控制器负载取决于控制器需要发送的packet-out消息的数量,以及它接收到的和需要处理的packet-in消息的數量。由传统拓扑发现机制可知,控制器所要发送的带lldp的packet-out消息的总数是所有与控制器相连的交换机总端口数。设l为交换机之间的链路数量,s为交换机的数量,pi为交换机i的端口数量。npacket-out表示控制器需发送的packet-out消息的总数,则:2 拓

9、扑发现机制改进2.1 改进思路控制器负载和性能对于软件定义网络的可伸缩性至关重要,而拓扑发现通常是所有控制器在后台持续运行的服务,因此它对控制器负载的影响也尤为显著。为了便于控制器在接收交换机的带lldp的packet-in消息时可以确定源端口,每个lldp帧都需要将port id tlv初始到相应的交换机出口端口。当前实现此功能的方法是控制器通过单独的packet-out消息为每个交换机的每个端口发送专用的lldp帧,控制器需要发送的带lldp的packet-out消息数是网络中端口的总数。一个更好的选择是只向每个交换机发送一个带lldp的packet-out消息,并要求它在所有端口上发送相

10、应的lldp帧。由于openflow不支持重写lldpdu部分,因此在将lldp帧转发到所有端口前无法重写port id tlv。根据openflow交换机和控制器之间建立连接时交换机会通知控制器其端口id和关联的mac地址,以及openflow交换机重写数据包头的能力,由此改进机制可利用mac地址作为标识符来帮助控制器确认来自交换机的带lldp的packet-in消息的源端口。2.2 具体改进与实现流程改进的拓扑发现机制对原有机制的细节作了如下更改:(1)控制器与交换机建立连接后,当交换机响应features request消息时,通过features reply消息通知控制器有关其操作端口

11、、id和mac地址的信息。控制器再根据每个交换机的mac地址和端口id建立映射关系并存入数据库中。(2)修改控制器发送packet-in消息的动作,将发送到每个交换机的带lldp的packet-in消息数限制为一个,并将lldpdu中的port id tlv字段置为0。(3)为每个交换机建立新规则,指定从控制器接收的每个lldp帧将在所有可用端口上转发,并将lldp帧的源mac地址字段置为对应端口的mac地址。(4)修改控制器接收packet-in消息的處理程序,通过对比所收到的lldp帧的源mac地址字段与步骤(1)收集的控制器数据库中相应的映射关系找到对应的端口号,以此确认链路连接关系。改

12、进后的拓扑发现机制示例如图4所示。与图3对比,有如下两个明显的区别:一是控制器给交换机s1发送的packet-out消息数,由原先的三个端口各一条修改为一个交换机仅一条;二是交换机各端口转发的lldp帧结构,port id字段由原先对应的端口id修改为0,而源mac地址由原先统一的交换机mac地址修改为各端口对应的mac地址。2.3 性能的理论分析改进后控制器所要发送的带lldp的packet-out消息的总数是所有与控制器相连的交换机数。设mpacket-out表示改进后控制器需发送的packet-out消息的总数,则:3 实验与结果分析3.1 实验环境实现实验的软件如表1所示,我们使用基于

13、linux的mininet4网络仿真平台模拟网络,将pox作为sdn控制器平台,open vswitch作为虚拟交换机,并通过python实现拓扑发现机制的更改。如表2所示,实验分别考虑了3种不同的网络拓扑结构,其中拓扑1是一个具有交换机数量为100的线性拓扑,拓扑2是一个具有深度为7、分支系数为2的树状拓扑,拓扑3是一个具有深度为4、分支系数为4的树状拓扑。3.2 结果分析实验中,我们对pox控制器进行检测,以收集所发出的packet-out消息的信息,该信息由拓扑发现组件在实验拓扑中所发出。通过公式(3)可以确认通过改进机制获得的效率增益,如表3所示。图5以直方图形式显示了表3的实验结果,

14、由图中可以清楚表明改进的机制大大减少了packet-out消息的数量,其中拓扑1和拓扑2对packet-out消息数减少了将近67%,拓扑3减少了将近80%。packet-out消息的减少可以直接影响控制器负载。实验中,我们不断运行拓扑发现服务,以pox控制器默认的时间间隔5秒重复启动新的发现回合。网络初始化完成后,我们利用python中用于采集系统基本性能信息的psutil模块,通过其中的cpu_percent()方法来获取cpu时间。每项实验的持续时间为300秒,共重复10次取平均值。图6显示了整个实验过程中pox控制器仅运行拓扑发现服务的累积cpu时间。由图观察可知,改进机制相对于传统机

15、制在节省cpu时间上有显著效果,其中最低为拓扑1的20%,最高可达到拓扑3的40%。这表明packet-out消息的处理和发送是控制器cpu负载的重要组成部分,在拓扑发现服务中这些消息的减少可直接降低控制器的负载。4 结束语本文讨论了软件定义网络中的拓扑发现问题,从控制器负载的角度分析了传统拓扑发现机制的开销,由此提出了一个改进的机制。该改进机制通过为每个交换机发送一个lldp帧代替为每个交换机上的每个端口发送lldp分组,以此减少packet-out消息的数量。通过实验证明,相较于传统机制,在我们给出的拓扑示例中改进机制对cpu负载的降低最高能达到40%,并可能更多地用于其他具有较高端口密度

16、的拓扑。控制器是软件定义网络的性能瓶颈,通过降低控制器负载使得拓扑发现这样的核心服务更有效,会对整个网络的性能和可伸缩性产生重大影响。参考文献:1pfaff b, pfaff b, pfaff b, et al. nox: towards an operating system for networksj. acm sigcomm computer communication review, 2008,38(3):105-110.2attar v z p, chandwadkar p. network discovery protocol lldp and lldp-medj. international journal of computer applications, 2011,1(9):93-97.3lara a, kolasani a, ramamurthy b. network innovation using o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论