Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenFlow协议超时机制简介

OpenFlow协议超时机制简介

作者头像
SDNLAB
发布于 2018-12-06 06:44:59
发布于 2018-12-06 06:44:59
1.2K0
举报
文章被收录于专栏:SDNLABSDNLAB

作者简介: 陈俞辛,福州大学数计学院2016级计算机科学与技术本科生,目前研究方向为软件定义网络SDN,邮箱multhree @163.com。

陈翔,福州大学数计学院2015级计算机科学与技术(实验班)本科生,对软件定义网络SDN,特别是对P4语言感兴趣。邮箱wasdnsxchen@gmail.com

一、背景

为支持大规模的SDN网络,OpenFlow交换机需要存储大量的流表项来处理接收到的流量。然而,受限于交换机TCAM内存容量,流表所能存储的流表项数目是有限的;同时,由于TCAM十分耗能且昂贵,为适应大规模流量场景而增加TCAM容量以容纳更多的流表项是不现实的。

OpenFlow协议通过超时机制来缓解交换机流表容量有限的问题。该机制让流表项只在一段时间内生效,并自动清理掉旧的、失效的流表项,腾出流表容量,以添加新的流表项。OpenFlow协议的流表项超时机制的核心是有效时间(timeout),用户可以为每条流表项指定一个有效时间,在控制器向交换机下发流表项时设定。如果某条流表项存在的时间或未被匹配到的时间超过预设定的有效时间,OpenFlow交换机会主动移除该流表项。

有效时间又分为硬超时(hard timeout)和空闲超时(idle timeout)。

  • 空闲超时(idle timeout),流表项的idle_timeout字段非0。在空闲超时这段时间内,如果没有任何数据报匹配到该流表项,则交换机会主动将该流表项从流表中移除。即流表项从交换机设备移除的相对时间。
  • 硬超时(hard timeout),流表项的hard_timeout字段非0。当该流表项的存在时间超过了预设置的硬超时,流表项就会被交换机从流表中移除。即流表项从交换机移除的绝对时间。
  • 在Ruckus生产的ICX 7250、ICX 7450、ICX 7750等系列设备[1]中,当某条流表项两者字段为不同取值时,交换机的处理行为如表一所示。

表一[2]

二、现有超时机制存在的问题

问题1:控制器对流表项设定哪一类型的超时能更好地缓解交换机流表容量紧张的问题呢?

  • 硬超时 vs 空闲超时

因为硬超时不够灵活,所以一般情况下控制器会为流表项设定空闲超时而非硬超时。例如,考虑以下场景,控制器为一条会被频繁匹配的流表项设定硬超时,那么该流表项添加到流表的时间超过硬超时后就会被移除;在该表项因超时被移除后,接下来本应匹配这条流表项的数据报到达交换机时就会触发packet-in事件,增加控制器的负担;相反,如果控制器设定的是空闲超时,那么这条会被频繁匹配的流表项就不会被移除。换句话说,硬超时无法区分流表项是否有效,导致交换机流表空间无法被有效利用。因此,控制器通常为流表项设置空闲超时,而非硬超时。

问题2:如何设置空闲超时的大小,以缓解交换机流表容量紧张?

  • 过小的空闲超时 vs 过大的空闲超时

较小的空闲超时能尽快腾出流表空间以容纳新的流表项,然而过小的空闲超时会导致额外的问题。

图一:过小的空闲超时和过大的空闲超时[3]

如图一所示,理想情况下,当流f1到达交换机时应该只触发一次packet-in事件,即流f1的第一个数据报到达时触发。

但是,当流f1的空闲有效时间T1小于相应的包到达的时间间隔I1时,控制器所下发的、匹配流f1的流表项总会在后续流f1的数据报到达之前删除,由于没有相应的流表项,流f1的每一个数据报到达时都会触发 packet-in 事件,这些packet-in事件会消耗大量的控制器资源。

当流f2的空闲有效时间T2大于相应的包到达的时间间隔I2时,一条流表项失效之后会在流表中多停留 T2-I2的时间,造成不必要的冗余和开销。

因此,根据不同流量特性设置合适的有效时间是十分重要的。然而OpenFlow协议本身并没有给出可行的解决方案来计算合适的有效时间。

三、现有超时机制缓解流表空间紧张问题效果不好的解决方案

当前,存在以下两种缓解流表空间紧张的解决方案:

3.1通过启发式算法或基于历史信息的算法计算得到针对不同的流量的流表项的有效时间

(1) Effective Switch Memory Management in OpenFlow Networks[4]

文章中提出一个控制器系统,该系统采用了一种自适应超时启发式算法(an adaptive timeout heuristic)来计算最合适的空闲超时,而不是将所有的有效时间都设置为相同的值。

(2) Intelligent Timeout Master: Dynamic Timeout for SDN-based Data Centers[3]

文章中提出在控制器中添加用来记录上一次超时时间的cache模块,并且使用基于历史信息的算法(history based algorithm)来预测得到合适的有效时间。同时利用流表负载作为来调节有效时间,避免流表空间溢出。

3.2提前删除无效流表项,而非在超过有效时间之后才删除

(1) FlowMaster: Early Eviction of Dead Flow on SDN

Switches[5]

文章中提出一个提前移除流表项的方法,该方法采用一种投机机制(a speculative mechanism),通过预测判断某条流表项是否已经失效,并提前移除该流表项。

(2) A Zero Flow Entry Expiration Timeout P4 Switch[6]

文章中提出一种流表项移除技术,该技术是当交换机解析完TCP数据报的头部之后查看FIN或RST字段的值,若FIN或RST位为1,则说明这个TCP连接即将关闭,交换机将会移除相应的流表项,并向控制器发送一条消息,该消息包含了所删除流表项的详细信息,包括被移除的原因、生存时间等。

四、总结

本文介绍OpenFlow协议中为提高流表空间利用率而采用的超时机制以及该机制存在的问题,并简要介绍针对该问题的两种解决方案。

五、参考文献

[1]http://docs.ruckuswireless.com/fastiron/08.0.50/fastiron-08050-commandref/GUID-D5F020DA-5D6A-4452-AC95-0A4771D0F7B2.html

[2]http://docs.ruckuswireless.com/fastiron/08.0.80/fastiron-08080-sdnguide/GUID-067D5654-2300-41CD-BFF8-16712AC071C2.html

[3]Intelligent Timeout Master: Dynamic Timeout for SDN-based Data Centers.IFIP,IEEE,2015-05

[4]Effective Switch Memory Management in OpenFlow Networks.DEBS,ACM,2014-05

[5]FlowMaster: Early Eviction of Dead Flow on SDN Switches. ICDCN,2014

[6]A Zero Flow Entry Expiration Timeout P4 Switch.SOSR,ACM,2018-05

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【重识云原生】第四章云网络4.8.2.3节——OpenFlow运行机制
        要了解OpenFlow信道的建立过程,首先需要了解OpenFlow协议目前支持的三种报文类型:
江中散人_Jun
2022/07/12
1.9K0
【重识云原生】第四章云网络4.8.2.3节——OpenFlow运行机制
思博伦OpenFlow性能测试白皮书上篇
OpenFlow性能测试目前依然处于起步阶段,虽然有少数的开源工具用于测试OpenFlow性能,但是比较OpenFlow产品的性能还没有一个标准。思博伦测试仪提出了对这些SDN产品的一个测试标准,作者
SDNLAB
2018/04/04
1.1K0
思博伦OpenFlow性能测试白皮书上篇
软件定义网络协议:OpenFlow SDN 协议标准
OpenFlow 是一种 SDN 协议,全称为 OpenFlow Switch Specification,由 ONF(Open Networking Foundation,开放网络基金会)组织开发和维护。
通信行业搬砖工
2023/09/06
1.1K0
软件定义网络协议:OpenFlow SDN 协议标准
OpenFlow会不会城头变幻大王旗?
作者简介:储子叡,资深网络爱好者 曾供职于Juniper/Brocade/VMware,对网络安全/操作系统内核/包转发/ASIC均有涉猎 “在革命的每个阶段都有人退出,这一点也不奇怪,正如大多数创业
SDNLAB
2018/06/11
8340
SDN中的LLDP和Openflow协议[通俗易懂]
OpenFlow交换机把传统网络中,完全由交换机/路由器控制的报文转换为由交换机和控制器来共同完成数据的转发操作,从而实现数据的转发与路由控制的分离。控制器则通过事先规定好的接口操作OpenFlow交换机中的流表,从而达到数据转发的目的。
全栈程序员站长
2022/08/26
1.9K0
SDN中的LLDP和Openflow协议[通俗易懂]
openflow 和 sdn (软件定义网络) 原理和教程
  通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议。OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTable进行转发,FlowTable本身的生成、维护、下发完全由外置的Controller来实现,注意这里的FlowTable并非是指IP五元组,事实上OpenFlow 1.0定义了包括端口号、VLAN、L2/L3/L4信息的10个关键字,但是每个字段都是可以通配的,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的IP进行路由,那么流表中就可以只有目的IP字段是有效的,其它全为通配。
awwewwbbb
2022/04/26
1.4K0
openflow 和 sdn (软件定义网络) 原理和教程
【干货原创必读】Openflow的红旗还能打多久?
作者简介:储子叡,互联港湾软件架构师,资深网络和☕️爱好者。曾供职于Juniper/Brocade/VMware, 对网络安全/操作系统内核/包转发/ASIC均有涉猎
港湾人儿
2019/04/19
1.6K0
【干货原创必读】Openflow的红旗还能打多久?
OpenFlow 1.3 学习笔记
因为7、8月我跟小伙伴们在备战今年的全国大学生SDN大赛,9月在全身心投入准备特殊人才保研的专家答辩,所以好久没有新文章跟大家见面啦。现在一切尘埃落定,继续卯足了劲头向前冲,弥补这几个月落下的学习进度哈! 前段时间学了OpenFlow 1.3,感觉跟1.0比起来就是改头换面,焕然一新。改进了Match,改变了Action的地位和执行方式,引入了流表流水线处理,新加了Instruction、Meter Table、Group Table等,刚开始接触的同学可能一下子都不容易把握它们的整体脉络。 我在完整地学习
SDNLAB
2018/04/03
1.2K0
OpenFlow 1.3 学习笔记
【重识云原生】第四章云网络4.8.2.2节——OpenFlow协议详解
        OpenFlow协议是基于网络中“流”的概念设计的南向接口协议。在OpenFlow引入了“流”的概念之后,控制器可以根据某次通信中“流”的第一个数据分组的特征,使用OpenFlow协议提供的接口对数据平面设备部署策略——流表,而这次通信的后续流量则按照相应流表在硬件层次上进行匹配、转发,从而实现了灵活的网络转发策略。
江中散人_Jun
2022/07/12
3K0
【重识云原生】第四章云网络4.8.2.2节——OpenFlow协议详解
源码解读ODL与OpenFlow交换机建立过程
编者按:OpenDaylight两大技术特色:1.采用了OSGi框架;2.引入了SAL,而今天我们主要介绍服务抽象层(SAL)适配的南向协议之一OF协议模块。 OF协议模块启动与消息处理 OSGi框架
SDNLAB
2018/04/03
1.2K0
源码解读ODL与OpenFlow交换机建立过程
SDNLAB技术分享(七):开源SDN控制器DCFabric及云计算高效网络
1.DCFabric控制器的由来 1.1 SDN是云计算数据中心网络技术发展的必然要求 随着以虚拟化为基础的云数据中心的发展和成熟, 应用数据猛增,虚拟服务器的迁移等要求VLAN可延展到所有汇聚层、接入层交换机。传统二层技术存在链路冗余能力、负载均衡能力、可扩展性和网络稳定性差等诸多缺陷。因此,大二层网络技术如Trill、SPB等应运而生,却存在过长收敛时间、低转发效率、有限网络规模和昂贵的专有设备等缺点。而SDN则凭借其大二层网互通、全网拓扑、以及多路径流量均衡等灵活高效的功能,使其成为构建数据中心
SDNLAB
2018/04/02
1.5K0
SDNLAB技术分享(七):开源SDN控制器DCFabric及云计算高效网络
SDN中”软件”如何定义”网络”
SDN(Software Defined Network)软件定义网络,字面释义都说了是“软件”来定义“网络”,但有心之人会想:这个“软件”到底是如何定义了我们所熟知的“网络”?字字珠玑,今天就来扒一
SDNLAB
2018/04/03
1.3K0
SDN中”软件”如何定义”网络”
DCFabric:面向云计算数据中心的开源SDN控制器
1、DCFabric:面向云计算数据中心的开源SDN控制器 ODL和ONOS等虽然在拓扑性能和应用开发便利度上有了很大进步,但是它们的灵活性、工作速度和效率仍有待提高。因此,随着大数据浪潮的到来,我们迫切需要可面向云计算数据中心的性能更完善、开发更便利、效率更突出的SDN控制器。 为了解决上述问题,我们设计了一款面向云计算数据中心开源SDN控制器——DCFabric,其从上至下依次可分为五层(见图1):第一层是控制器支持的Web应用层,第二层是北向接口层,第三层是包含SFabric模块的系统应用(Syste
SDNLAB
2018/04/02
1.8K0
DCFabric:面向云计算数据中心的开源SDN控制器
基于SDN网络的QoS机制研究(上)
蒋暕青,华东师范大学研究生学历,先后于思博伦通信、上海宽带技术及工程研究中心、九州云就职。
SDNLAB
2020/06/19
1.8K0
白话SDN和学习笔记
---- 概述 最近开发私有云产品,那么不得不提的就是VPC(虚拟专有网络)。VPC是什么且具有什么优势呢?虚拟私有云(Virtual Private Cloud,VPC)可部署一个私有的、隔离的云计算环境,用户/租户可在该VPC中的虚拟网络上创建虚拟机、服务等资源。用户/租户可在 VPC上定义一个非常类似传统网络的虚拟网络拓扑,且对该虚拟网络环境拥有完全的控制权,包括选择IP地址范围、 创建子网、配置路由表及网关等等。由于使用隧道封装技术(VXLAN)对云服务器的IP报文进行封装,所以云服务器的数据链路层
吕海峰
2018/04/03
1.4K0
白话SDN和学习笔记
揭开全球第一颗SDN交换芯片的神秘面纱
编者按:全球第一颗SDN交换芯片一直被一层神秘的面纱包围着,小编近日采访了一下盛科网络的张卫峰张总,为您揭开全球第一颗SDN交换芯片神秘的面纱,以下是采访内容。 SDN是一个很泛泛的概念,它可以有很多
SDNLAB
2018/04/03
1K0
揭开全球第一颗SDN交换芯片的神秘面纱
基于Opendaylight的packet-in flooding攻击的检测与防护
作者简介:智智方,西安电子科技大学硕士研究生,主要研究方向为SDN与网络安全,邮箱:675520574@qq.com
SDNLAB
2018/07/30
1.1K0
基于Opendaylight的packet-in flooding攻击的检测与防护
软件定义网络(SDN)基础概念学习笔记(下)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
1.1K0
软件定义网络(SDN)基础概念学习笔记(下)
【SDN软件定义网络】-1:SDN+Mininet+Ryu+OpenFlow 相关概念简介
SDN(Software-Defined Networking,软件定义网络)是一种网络架构理念,它使得网络设备(如交换机和路由器)的控制功能与数据转发功能分离。这种分离使得网络的配置和管理更加灵活和自动化,从而提高网络的可扩展性和可编程性。
程序员洲洲
2024/08/09
7650
【SDN软件定义网络】-1:SDN+Mininet+Ryu+OpenFlow 相关概念简介
OpenDaylight与Mininet应用实战之OpenFlow协议分析
1、实验目的 在实验平台上熟悉SDN原理操作,通过wireshark抓包工具可以直接看到控制器与OVS交换机的通信过程、分析OpenFlow(以下简写为OF)协议,。具体的OF官方协议及白皮书可在SDNLAB资料库栏目中下载学习。 2 实验原理 控制器与交换机之间的OpenFlow协议是应用于TCP传输层上,所以解析应用层。他们首先发送hello消息,建立初始化连接,协商使用的OpenFlow协议版本。交换机通过消息回应配置信息,回复连接控制器的交换机的一些基本设置信息,包括交换机的能力以及它的一些端口的信
SDNLAB
2018/04/03
1.8K0
OpenDaylight与Mininet应用实战之OpenFlow协议分析
推荐阅读
相关推荐
【重识云原生】第四章云网络4.8.2.3节——OpenFlow运行机制
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档