当前位置: 首页 > 专利查询>中山大学专利>正文

一种实时获取SDN交换机流表空间占有率的方法技术

技术编号:15652688 阅读:53 留言:0更新日期:2017-06-17 06:23
本发明专利技术提出一种实时获取SDN交换机流表空间占有率的方法,利用交换机控制一个计数器来准确实时地统计流表空间中已存在的流表项,结合OpenFlow通信协议的特点,使交换机统计的结果能准确实时发送给控制器。控制器接收并保存交换机计数器的统计结果,实现了控制器能准确实时的知道其管理的交换机流表空间的使用情况。本发明专利技术方法不仅可直接从控制器上面读取,同时还支持控制器下发命令来获取。该方法能减轻控制器的负担,并且具有准确实时的特性。在实际应用中,该方法可供监控交换机状态的应用使用,也可用于其它方面的应用,特别是在需要频繁获取交换机流表空间占有率或是流表空间已存在的流表项总数的应用中,该方法的优势更加突出。

【技术实现步骤摘要】
一种实时获取SDN交换机流表空间占有率的方法
本专利技术涉及软件定义网络(SDN)
,尤其涉及一种能准确实时获取SDN交换机流表空间占有率的方法。
技术介绍
随着时代的进步,在信息化浪潮的推动下,传统网络已不能满足人们的日益需求。为更好更快更灵活的部署网络以及提升用户体验,就需要对传统网络做一些改进,于是提出了软件定义网络SDN(Software-DefinedNetwork)。SDN是一种新型的网络架构,它在传统网络架构的基础上面做了这些创新:1、数据平面与控制平面解耦合;2、集中化的网络控制;3、灵活的可编程开发接口。SDN网络架构包括:SDN交换机,南向协议,SDN控制器,北向接口,上层应用等。传统网络的控制功能全部集中到远程的SDN控制器上面,而SDN交换机只负责转发,SDN网络中的转发是基于流的,控制器会下发流表项给交换机,交换机根据这些流表项来匹配转发数据流,所以控制器与交换机之间要建立安全通道来相互通信,于是就有了OpenFlow协议(南向协议)。OpenFlow协议负责建立连接,并提供相应的消息机制来控制和管理交换机。在SDN中,每当有新的数据流进入交换机,交换机会向控制器发送Packet_In消息来询问控制器,该数据流该如何处理。控制器经过计算后,会生成一条流表项,并将流表项封装入Flow_Mod消息中并下发给交换机。交换机里面的流表项都有自己的生存时间,当流表项被删除后,交换机就会向控制器发送Flow_Removed消息来通知控制器该流表项已被删除。由于数据包需要匹配的域越来越多,为了加速匹配,我们就采用TCAM,虽然匹配速度提上去了,可是由于TCAM的高成本与高功耗,导致交换机的流表空间有限,所以要动态删除部分流表项来缓解有限的流表空间资源,当网络突然出现了很多新数据流时,流表空间很有可能会溢出,并阻塞数据包,有可能造成交换机无法正常工作。此时我们需要实时的获取流表空间占有率来调整流表项删除策略,使流表项总数在一个安全的范围内波动,防止因流表溢出导致交换机出错。
技术实现思路
为了解决上述目的,本专利技术提出了一种能准确实时获取SDN交换机流表空间占有率的方法。为实现上述目的,本专利技术的技术方案为:一种实时获取SDN交换机流表空间占有率的方法,包括以下步骤:步骤1:交换机初始化,此时交换机的两个参数也会被初始化:固定不变的流表项空间总容量C(SDN交换机的容量在出厂时就已经固定了),统计流表空间中存储的流表项总数的计数器counter;步骤2:控制器与交换机建立连接,控制器中生成两个参数并初始化:控制器中记录交换机流表空间总容量的参数V和记录交换机中流表空间存储的流表项总数的参数C_counter;步骤3:控制器等待交换机发送Packet_In请求,并更新控制器中的C_counter;步骤4:交换机等待控制器下发流表项,并立即更新交换机中的counter;步骤5:在等待的同时可能会有流表项的删除,此时更新counter,并更新控制器中的C_counter;步骤6:计算流表空间占有率(C_counter/V或counter/V);在上述的准确实时获取SDN交换机流表空间占有率方法中,所述步骤1中的交换机初始化如下:每个刚接入SDN架构的交换机都会有一个自己的初始化,这个初始化过程会把统计流表空间中存储的流表项总数的参数counter置为零,容量置为C,此时交换机里面没有流表项。步骤2中控制器与交换机建立连接并初始化参数如下:当有交换机接入SDN架构时,控制器会发现有交换机接入,并与交换机建立OpenFlow安全通道用于两者通信。控制器会向交换机下发询问交换机特性的OFPT_FEATURES_REQUEST消息,交换机收到消息后会把包括容量C与流表项统计值counter等参数封装成一个OFPT_FEATURES_REPLY类型的消息反馈给控制器。控制器解析这些数据并保存,把交换机反馈的参数C值和counter值分别赋给控制器的参数V和参数C_counter,这样就完成了控制器中记录交换机总容量V和交换机流表项总数C_counter的初始化。步骤3中的更新控制器的C_counter参数如下:当有新的数据流进入交换机的时候,由于交换机的流表中没有匹配的流表项,交换机会向控制器发送一个携带counter值的Packet_In消息去询问控制器该如何处理这个数据包,控制器解析此消息后把counter的值赋给C_counter,此时控制器根据当前的拓扑图计算转发路径并向交换机发送Flow_Mod消息(消息中携带了如何处理Packet_In请求的流表项),发送成功后C_counter的值加1。步骤4中的更新交换机的counter参数如下:当交换机接收到控制器发来的Flow_Mod消息后,交换机解析消息后发现是要往流表空间增加一条流表项时,交换机会把下发的流表项存入流表中,同时counter的值加1。步骤5中的更新C_counter和counter参数如下:流表项都会被设置存活时间,满足条件时交换机会自动删除这条流表项,同时counter的值减1。在流表项被删除的同时,交换机向控制器发送一个携带counter值的Flow_Removed消息,控制器解析消息并把counter的值赋给C_counter。步骤6中的计算流表空间占有率如下:计算C_counter/V或counter/V的值都可以获得流表空间占有率,在交换机工作过程中,随着步骤3,4和5的循环交替执行,该数值是随时间变化的。与现有技术相比,本专利技术的有益技术效果体现在:1、本专利技术通过交换机控制一个计数器来统计流表空间已存在的流表项总数,对底层进行了具体的实现,方法简便。目前的应用和研究中都是通过控制器下发一个命令来获取流表空间已存在的流表项总数,且都没有提及它在底层是如何实现的;2、本专利技术结合OpenFlow协议的特点来准确实时的获取流表空间的占有率,现有技术使用的方法是通过控制器下发命令来获取,经过多次向交换机发送请求再求平均值,这种方法的缺陷是:每次询问的时间间隔难以预测;多次获取求平均值也会存在一定的误差。本专利技术提出的实现方法不仅可以直接从控制器上面读取,还可以通过控制器下发命令来读取。当直接从控制器上面读取时,可得到更加准确实时的流表项总数,从而获得准确实时的占有率;3、本专利技术不需要控制器下发命令来查询,也不用考虑查询时间间隔。当流表项总数发生变化时,交换机与控制器建立连接进行信息交互。该方法结合这个特点,会立即更新相关的参数,从而得到准确实时的值。在现有技术所使用的方法中,频繁下发命令查询不仅会增加控制器的负担,还将过多占用OpenFlow安全通道的资源。附图说明图1是本专利技术基本流程图。具体实施方式本专利技术实施主要是采用推送的方式,通过控制一个计数器来统计交换机流表空间已存储的流表项总数,分析流表项增加和减少的原因以及OpenFlow协议的特点,对统计量做一个实时的更新后推送给控制器。参照图1,本专利技术是一种能准确实时获取SDN交换机流表空间占有率的方法。步骤包括:步骤1:交换机初始化。每个刚接入SDN架构的交换机都会有一个自己的初始化,这个初始化过程会把流表项总数的参数counter置为零,容量置为C(SDN交换机的容量在出厂时本文档来自技高网
...
一种实时获取SDN交换机流表空间占有率的方法

【技术保护点】
一种实时获取SDN交换机流表空间占有率的方法,其特征在于,包括如下步骤:步骤1:交换机初始化,此时交换机中的两个参数同时被初始化,其中两个参数分别为固定不变的流表项空间总容量C和统计流表空间中存储的流表项总数的计数器counter;步骤2:控制器与交换机建立连接,控制器中生成两个参数并初始化,其中控制器中生成两个参数分别为控制器中记录交换机流表空间总容量的参数V和记录交换机中流表空间存储的流表项总数的参数C_counter;步骤3:控制器等待交换机发送Packet_In请求,并更新控制器中的C_counter;步骤4:交换机等待控制器下发流表项,并立即更新交换机中的counter;步骤5:在等待的同时当有流表项需要删除,则更新counter,并更新控制器中的C_counter;步骤6:基于更新后的counter或C_counter计算流表空间占有率,具体为C_counter/V或counter/V。

【技术特征摘要】
1.一种实时获取SDN交换机流表空间占有率的方法,其特征在于,包括如下步骤:步骤1:交换机初始化,此时交换机中的两个参数同时被初始化,其中两个参数分别为固定不变的流表项空间总容量C和统计流表空间中存储的流表项总数的计数器counter;步骤2:控制器与交换机建立连接,控制器中生成两个参数并初始化,其中控制器中生成两个参数分别为控制器中记录交换机流表空间总容量的参数V和记录交换机中流表空间存储的流表项总数的参数C_counter;步骤3:控制器等待交换机发送Packet_In请求,并更新控制器中的C_counter;步骤4:交换机等待控制器下发流表项,并立即更新交换机中的counter;步骤5:在等待的同时当有流表项需要删除,则更新counter,并更新控制器中的C_counter;步骤6:基于更新后的counter或C_counter计算流表空间占有率,具体为C_counter/V或counter/V。2.根据权利要求1所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤1中的交换机初始化的具体过程为:各个新接入SDN架构的交换机均会进行初始化,该初始化过程将统计流表空间中存储的流表项总数的参数counter置为零,容量置为C,此时交换机里面没有流表项。3.根据权利要求2所述的实时获取SDN交换机流表空间占有率的方法,其特征在于,所述步骤2中控制器与交换机建立连接并初始化参数的过程如下:当有交换机接入SDN架构时,控制器发现有交换机接入,并与交换机建立OpenFlow安全通道用于两者通信;控制器向交换机下发询问交换机特性的OFPT_FEATURES_REQUEST消息,交换机收到消息后把包括容量C与流表项统计值counter参数封装成一个OFPT_FEATURES_REPLY类型的消息反馈给控制器;控制器解析这些数据并保存,把交换机反馈的参数C值和counter值分别赋给控制器...

【专利技术属性】
技术研发人员:黄以华贺广淋
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

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

1