OpenFlow协议1.0讲解

合集下载

OpenFlow协议1.0及1.3版本分析

OpenFlow协议1.0及1.3版本分析

OpenFlow协议1.0及1.3版本分析OpenFlow是SDN控制器和交换之间交流的协议,在SDN领域有着⼗分重要的地位。

OpenFlow协议发展到现在已经经过了1.0、1.3、1.4等版本。

其中1.0和1.3版本使⽤的是最为⼴泛的。

本篇博⽂主要分析1.0版本和1.3版本OpenFLow协议在控制器和交换机之间的交互流程。

OpenFlow1.0协议交互OpenFlow协议1.0的交互过程如下:交互过程:交换机或控制器⾸先发送hello报⽂,确定openflow通信版本。

交换机或控制器收到hello报⽂之后,回复⼀个hello报⽂,协商版本。

控制器发送feature_request报⽂,查询交换机具体信息。

交换机收到feature_request报⽂之后,回复feature_reply,报告⾃⼰的详细信息给控制器。

⼯作过程中控制器会不断发送echo_request给交换机,交换机回复echo_reply消息给控制器,确认连接。

OpenFlow协议1.0版本在交换机和控制器信息交互过程中,⼀共有如下的消息类型:1. Enum ofp_type {1. /* Immutable messages. */2. OFPT_HELLO, /* Symmetric message */3. OFPT_ERROR, /* Symmetric message */4. OFPT_ECHO_REQUEST, /* Symmetric message */5. OFPT_ECHO_REPLY, /* Symmetric message */6. OFPT_VENDOR, /* Symmetric message *//* Switch configuration messages. */7. OFPT_FEATURES_REQUEST, /* Controller/switch message */8. OFPT_FEATURES_REPLY, /* Controller/switch message */9. OFPT_GET_CONFIG_REQUEST, /* Controller/switch message10. OFPT_GET_CONFIG_REPLY, /* Controller/switch message *11. OFPT_SET_CONFIG, /* Controller/switch message *//* Asynchronous messages. */12. OFPT_PACKET_IN, /* Async message */13. OFPT_FLOW_REMOVED, /* Async message */14. OFPT_PORT_STATUS, /* Async message *//* Controller command messages. */15. OFPT_PACKET_OUT, /* Controller/switch message */16. OFPT_FLOW_MOD, /* Controller/switch message */17. OFPT_PORT_MOD, /* Controller/switch message *//* Statistics messages. */18. OFPT_STATS_REQUEST, /* Controller/switch message */19. OFPT_STATS_REPLY, /* Controller/switch message *//* Barrier messages. */20. OFPT_BARRIER_REQUEST, /* Controller/switch message */21. OFPT_BARRIER_REPLY, /* Controller/switch message *//* Queue Configuration messages. */22. OFPT_QUEUE_GET_CONFIG_REQUEST, /* Controller/switch m23. OFPT_QUEUE_GET_CONFIG_REPLY /* Controller/switch mess24. };其中红⾊为常⽤消息,整理如下:HelloFeature_requestFeature_replyStats_requestStats_replyFlow_modSet_configPacket_inPacket_out下⾯分别介绍以上报⽂信息。

OpenFlow协议1.0讲解

OpenFlow协议1.0讲解
openflow网络结构图openflow交换机进行数据层的转发flowvisor对网络进行虚拟化controller对网络进行集中控制实现控制层的功能二openflow宏观介绍
Openflow 1.0.0 报告
余显 2013年7月11日
YOUR LOGO
目录
1、SDN简介
2、openflow介绍
三、OF协议:控制器控制 流表修改的数据结构
• • • • • • • • • • • • • • • • 1、控制修改命令: enum ofp_flow_mod_command { OFPFC_ADD, /* New flow. */ OFPFC_MODIFY, /* Modify all matching flows. */ OFPFC_MODIFY_STRICT, /* Modify entry strictly matching wildcards */ OFPFC_DELETE, /* Delete all matching flows. */ OFPFC_DELETE_STRICT /* Strictly match wildcards and priority. */ }; 2、flags域的取值: enum ofp_flow_mod_flags { OFPFF_SEND_FLOW_REM = 1 << 0, /* Send flow removed message when flow * expires or is deleted. */ OFPFF_CHECK_OVERLAP = 1 << 1, /* Check for overlapping entries first. */ OFPFF_EMERG = 1 << 2 /* Remark this is for emergency. */ };

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议一、引言SDN(Software Defined Networking)软件定义网络是一种新兴的网络架构,它通过将网络控制平面与数据平面分离,以及通过中央控制器对网络设备进行集中管理和编程,实现了网络的灵活性和可编程性。

而南向协议则是指控制器与网络设备之间的通信协议,用于实现控制器与网络设备之间的信息交换和指令传递。

本协议旨在规范SDN软件定义网络中的南向协议——OpenFlow协议的标准格式和内容,以确保不同厂商的控制器和网络设备之间可以进行有效的通信和互操作。

二、协议目的本协议的目的是定义OpenFlow协议的消息格式、交互过程、指令集和状态管理,以及相关的安全机制,以便实现SDN软件定义网络中的控制器与网络设备之间的有效通信和互操作。

三、术语定义1. SDN(Software Defined Networking):软件定义网络,一种通过将网络控制平面与数据平面分离,以及通过中央控制器对网络设备进行集中管理和编程的网络架构。

2. 南向协议:控制器与网络设备之间的通信协议,用于实现控制器与网络设备之间的信息交换和指令传递。

3. OpenFlow协议:一种用于SDN软件定义网络中的南向协议,定义了控制器与网络设备之间的消息格式、交互过程、指令集和状态管理。

四、协议内容1. 消息格式OpenFlow协议中的消息格式由消息头和消息体组成。

消息头包括版本号、消息类型、消息长度和事务标识等字段,用于标识和解析消息。

消息体包含具体的指令或状态信息,根据消息类型的不同而有所差异。

2. 交互过程OpenFlow协议中的交互过程分为控制器初始化和消息交换两个阶段。

控制器初始化阶段用于建立控制器与网络设备之间的连接,并进行握手协商。

消息交换阶段用于控制器向网络设备发送指令,或者网络设备向控制器报告状态信息。

3. 指令集OpenFlow协议定义了一系列指令,用于控制器对网络设备进行编程和管理。

SDN软件定义网络之南向协议——OpenFlow协议 (3)

SDN软件定义网络之南向协议——OpenFlow协议 (3)

SDN软件定义网络之南向协议——OpenFlow协议一、协议背景随着网络规模的不断扩大和网络服务的不断增加,传统的网络架构面临着诸多挑战。

为了应对这些挑战,软件定义网络(SDN)应运而生。

SDN通过将网络控制平面与数据平面分离,使得网络的管理和控制更加灵活和可编程。

南向协议作为SDN架构中的一部分,负责控制器与网络设备之间的通信,其中OpenFlow协议是目前应用最广泛的南向协议之一。

二、协议目的本协议的目的是规定OpenFlow协议的标准格式,以确保不同厂商的SDN设备之间能够实现互操作性,并提供一致的网络管理和控制能力。

三、协议内容1. 协议版本本协议适用于OpenFlow协议的各个版本,包括但不限于OpenFlow 1.0、OpenFlow 1.1、OpenFlow 1.2等。

各个版本的协议应根据实际需求进行选择和实施。

2. 协议消息格式OpenFlow协议主要通过消息进行控制器与网络设备之间的通信。

协议消息包括控制消息和数据消息两种类型。

控制消息用于控制器向网络设备发送指令或查询信息,包括以下几种类型:- Hello消息:用于建立控制器与网络设备之间的连接。

- Echo消息:用于测试控制器与网络设备之间的连接是否正常。

- Feature Request/Reply消息:用于查询和回复网络设备的特性和能力。

- Configuration消息:用于配置网络设备的参数和属性。

- Flow Mod消息:用于向网络设备下发流表规则。

- Packet Out消息:用于向网络设备发送数据包。

数据消息用于网络设备向控制器上报事件或状态信息,包括以下几种类型:- Packet In消息:用于向控制器上报收到的数据包。

- Port Status消息:用于向控制器上报端口状态变化。

- Flow Removed消息:用于向控制器上报流表规则的删除或超时。

3. 协议数据结构OpenFlow协议中定义了一系列数据结构,用于描述网络设备的特性、流表规则、数据包等信息。

openflow协议1.0中文版

openflow协议1.0中文版

第一章Openflow1.0第1.1节概述官方网站:。

本部分内容按照Openflow规范1.0版本撰写。

1.0之前版本都是草案,从1.0版本开始是正式版本,生产商们理论上应该都参照这个版本。

1.0版本的下载地址为http:// /documents/openflow-spec-v1.0.0.pdf。

目前最新规范版本为1.3,但现有实现多以1.0版本为主。

第1.2节交换机组成每个of交换机(switch)都有一张流表,进行包查找和转发。

交换机可以通过of 协议经一个安全通道连接到外部控制器(controller),对流表进行查询和管理。

图表一-1展示了这一过程。

图表一-1 of交换机通过安全通道连接到控制器流表中包括一些流表项,每个表项包括若干个域:包头域(header fileds,匹配包头多个域)、活动计数器(counters)、0个或多个执行行动(actions)。

交换机对每一个包在流表中进行查找,如果匹配则执行相关行动,否则通过安全通道将包转发到控制器,控制器来决策如何处理无匹配流表的网包,并添加或者删除流表项。

流表项可以将包转发到一个或者多个端口。

一般来说,可以指定物理端口,协议并没有预先规定一些抽象集合(包括端口聚合或vlan端口)。

of端口状态有限,包括up、down或是否生成树洪泛从此端口转发。

端口配置可以通过of配置协议进行处理。

of 虚拟端口包括洪泛和入口等。

第1.3节流表流表是交换机进行转发策略控制的核心数据结构。

交换芯片通过查找流表表项来决策对进入交换机的网络流量采取合适的行为。

每个表项包括三个域,包头域(header field),计数器(counters),行动(actions)。

如表格一-1所示。

表格一-1 流表项结构1.3.1包头域包头域包括12个域,如表格一-2所示,包括:进入接口,Ethernet源地址、目标地址、类型,vlan id,vlan优先级,IP源地址、目标地址、协议、IP ToS位,TCP/UD P目标端口、源端口。

Openflow协议入门

Openflow协议入门

保 IP VL 目的IP
源IP
留服A
务N
类优
型先

目 源 IP 以 目 源 VL 入
的端协太的M A 端
端口议网M A N 口

字类A C 标
段型C

除源IP和目的IP以外,掩码位为0表示对应匹配项需要精确匹配,掩码为为1表示忽略 匹配项。
源IP和目的IP字段的掩码表示32bitIP地址可以忽略匹配的长度。 如果源IP的掩码为8(wildcard的8‐13bit为001000),表示源IP字段的高24bit需要精确 匹配,源IP字段的低8bit可以忽略。
dst port)
数据包处理方法: • 转发 • 修改包头
Openflow1.0对数据包匹配特征的描述方法
ofp_match1 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ‐ 31
传统网络设备工作方式
Hub • 工作原理:基于物理端口转发 • 策略:Flood
L2Switch • 工作原理:基于MAC地址表转发 • 策略:STP+MAC地址学习
Router • 工作原理:基于路由表转发 • 策略:静态路由+动态路由协议
共同点:分布式策略(策略的制定者为设备本身)
转发表的结构:
交换机:交换机不 知道任何网络信息, 只会按照控制器的 指挥工作
软件定义网络的网络设备之间不运行任何协议,网络设备 的转发表由控制器配置生成。 控制器与网络设备之间需要一种协议来互相通信
基于Openflow协议的软件定 义网络
SDN网络分为两张网 1、数据网(数据平面):Traffic 2、信令网(控制平面):Openflow Protocol

openflow1.0消息格式总结

openflow1.0消息格式总结

OpenFlow1.0消息格式总结—NEU_张旭OpenFlow1.0消息格式总结:Controller OpenvswitchOFPT_HELLO OFPT_HELLOOFPT_ERROROFPT_ERROROFPT_ECHO_REQUEST OFPT_ECHO_REPLYOFPT_VENDOR OFPT_VENDOROFPT_FEATURES_REQUEST OFPT_FEATURES_REPLYOFPT_GET_CONFIG_REQUEST OFPT_GET_CONFIG_REPLYOFPT_SET_CONFIGOFPT_PACKET_OUTOPPT_FLOW_MODOFPT_PORT_MODOFPT_PACKET_INOFPT_FLOW_REMOVEDOFPT_PORT_STATUSOFPT_STATS_REQUEST OFPT_STATS_REPLYOFPT_QUEUE_GET_CONFIG_REQUEST OFPT_QUEUE_GET_CONFIG_REPLY OFPT_BARRIER_REQUEST OFPT_BARRIER_REPLY1、OFPT_FEATURES_REQUEST(8B)消息格式uint8_t version:OFP_VERSIONuint8_t type: One of the OFPT_ constantsuint16_t length: Length including this ofp_headeruint32_txid: Transaction id associated with this packet. Replies use the same id as was in the requestto facilitate pairing2、OFPT_FEATURES_REPLY(32B)=ofp_switch_featuresuint64_t datapath_id:Datapath unique ID.The lower 48-bits are fora MAC address, while the upper 16-bits areimplementer-defineduint32_t n_buffers:Max packets buffered at onceuint8_t n_tables:Number of tables supported by datapathuint32_t capabilities:Bitmap of support ofp_capabilitiesuint32_t actions:Bitmap of supported ofp_action_typeuint16_t port_no:标明绑定到物理接口的datapath值uint8_t hw_addr[6]:该物理接口的mac地址char name[16]:该接口的名称字符串Null-terminateduint32_t config:Bitmap of OFPPC_* flagsuint32_t state:Bitmap of OFPPS_* flagsuint32_t curr:Current featuresuint32_t advertised:Features being advertised by the port uint32_t supported:Features supported by the portuint32_t peer:Features advertised by peer3、OFPT_GET_CONFIG_REQUEST(8B)4、OFPT_SET_CONFIG(12B)=ofp_switch_configOFPT_GET_CONFIG_REPLY(12B)uint16_t flags:OFPC_* flagsuint16_t miss_send_len:Max bytes of new flow that datapath shouldsend to the controller5、OFPT_PACKET_OUT(16B)uint32_t buffer_id:ID assigned by datapath (-1 if none) uint16_t in_port:Packet's input port (OFPP_NONE if none) uint16_t actions_len:Size of action array in bytesuint16_t type:One of OFPAT_*.uint16_tlen:Length of action,including thisheader.This is the length of action,including any padding to make it64-bit aligneduint8_t data[0]:Packet data.The length is inferredfrom thelength field in the header.(Only meaningful if buffer_id == -1.)在这里总结所有类型的action ,我认为对于OFPT_PACKET_OUT 应该用ofp_action_output来替换ofp_action_headerofp_action_output(8B)uint16_t type:OFPAT_OUTPUTuint16_tlen:Length is 8uint16_t port:Output portuint16_t max_len:Max length to send to controllerofp_action_vlan_vid(8B)uint16_t type:OFPAT_SET_VLAN_VIDuint16_tlen:Length is 8uint16_t vlan_vid:VLAN idofp_action_vlan_pcp(8B)uint16_t type:OFPAT_SET_VLAN_PCPuint16_tlen:Length is 8uint8_t vlan_pcp:VLAN priorityofp_action_dl_addr(16B)uint16_t type:OFPAT_SET_DL_SRC/DST uint16_tlen:Length is 16uint8_t dl_addr[6]:Ethernet address ofp_action_nw_addr(8B)uint16_t type:OFPAT_SET_TW_SRC/DST uint16_tlen:Length is 8uint32_t nw_addr:IP addressofp_action_tp_port(8B)uint16_t type:OFPAT_SET_TP_SRC/DST uint16_tlen:Length is 8uint16_t tp_port:TCP/UDP portofp_action_nw_tos(8B)uint16_t type:OFPAT_SET_TW_SRC/DST uint16_tlen:Length is 8uint8_t nw_tos:IP ToS (DSCP field, 6 bits)ofp_action_enqueue(16B)uint16_t type:OFPAT_ENQUEUEuint16_tlen:Length is 16uint16_t port:Port that queue belongs. Shouldrefer to a valid physical port(i.e. < OFPP_MAX) or OFPP_IN_PORT uint32_t queue_id:Where to enqueue the packetsofp_action_vendor_header(8B)uint16_t type:OFPAT_VENDORuint16_tlen:Length is a multiple of 8uint32_t vendor:Vendor ID, which takes the same formas in "structofp_vendor_header"6、OFPT_PORT_MOD(32B)uint16_t port_no:标明绑定到物理接口的datapath值uint8_t hw_addr[6]:The hardware address is notconfigurable.This is used tosanity-check the request, so it mustbe the same as returned in anofp_phy_portstruct uint32_tconfig:Bitmap of OFPPC_* flagsuint32_t mask:Bitmap of OFPPC_* flags to be changeduint32_t advertise:Bitmap of "ofp_port_features"s.Zero allbits to prevent any action taking place7、OFPT_FLOW_MOD(72B)uint32_t wildcards:Wildcard fieldsuint16_t in_port:Input switch portuint8_t dl_src[6]: Ethernet source addressuint8_t dl_dst[6]: Ethernet destination addressuint16_t dl_vlan: Input VLAN iduint8_t dl_vlan_pcp: Input VLAN priorityuint16_t dl_type: Ethernet frame typeuint8_t nw_tos:IP ToS (actually DSCP field, 6 bits)uint8_t nw_proto:IP protocol or lower 8 bits ofARP opcode uint32_t nw_src:IP source addressuint32_t nw_dst:IP destination addressuint16_t tp_src: TCP/UDP source portuint16_t tp_dst: TCP/UDP destination portuint64_t cookie: Opaque controller-issued identifier uint16_t command: One of OFPFC_*uint16_t idle_timeout: Idle time before discardingseconds uint16_t hard_timeout: Max time before discarding seconds uint16_t priority: Priority level of flow entryuint32_t buffer_id: Buffered packet to apply to (or -1) Not meaningful for OFPFC_DELETE*uint16_t out_port:For OFPFC_DELETE* commands,requirematching entries to include this as anoutput port.A value of OFPP_NONEindicates no restrictionuint16_t flags:One of OFPFF_*8、OFPT_FLOW_REMOVED(88B)uint64_t cookie:Opaque controller-issued identifieruint16_t priority:Priority level of flow entryuint8_t reason:One of OFPRR_*uint32_t duration_sec:Time flow was alive in seconds uint32_t duration_nsec:Time flow was alive in nanoseconds beyondduration_secuint16_t idle_timeout:Idle timeout from original flow mod uint64_t packet_count:计数与该流表项相关的包信息uint64_t byte_count:计数与该流表项相关的流量信息9、OFPT_PORT_STATUS(64B)uint8_t reason:One of OFPPR_*10、OFPT_PACKET_IN(20B)uint32_t buffer_id:ID assigned by datapathuint16_t total_len:Full length of frameuint16_t in_port:Port on which frame was receiveduint8_t reason:Reason packet is being sent (one of OFPR_*)uint8_t data[0]:Ethernet frame,halfway through 32-bit word,so the IP header is 32-bit aligned.Theamount of data is inferred from the lengthfield in the header.Because of padding,offsetof(structofp_packet_in,data)==sizeof(structofp_packet_in) - 2.11、OFPT_QUEUE_GET_CONFIG_REQUEST(12B)uint16_t port:Port to be queried. Should referto a valid physical port (i.e. < OFPP_MAX)12、OFPT_QUEUE_GET_CONFIG_REPLY(16B)uint32_t queue_id:id for the specific queueuint16_tlen:Length in bytes of this queue descuint16_t property:One of OFPQT_uint16_tlen:Length of property, including this header 13、OFPT_BARRIER_REQUEST(8B)OFPT_BARRIER_REPLY(8B)交换机一旦收到OFPT_BARRIER_REQUEST消息,则需要先执行完该消息前到达的所有指令,然后再执行其后的。

阅读笔记-OpenFlow协议

阅读笔记-OpenFlow协议

VLan、虚拟端口。

VLAN、MPLS标签或数据包QoSPriority仅跟设置了通配符(wildcard)的域相关。

Priority域指明了流表的优先级,数字越大则优先级越高。

因此,高优先级的带通配符的流表项必须要放到低编号的流表中。

交换机负责正确的顺序,避免高优先级规则覆盖掉低优先级的。

Metadata : a maskable register value that is used to carry information from one table to the next.OpenFlow Specification 1.1和1.0较大的变化就是对匹配域的元组进行了更改,增加了元组数,提高了多种转发规则制定,提高了功能,同时在1.1版本中还增加了组表概念。

OpenFlow是一种交换技术,刚开始它是2008年斯坦福大学的一个研究项目。

使用OpenFlow协议建立软件定义网络,可以将网络作为一个整体而不是无数的独立设备进行管理。

传统交换机使用生成树协议或其他一些新标准(如多链路透明互连,TRILL)来确定数据包转发路径。

而OpenFlow将转发决策从各个交换机转移到控制器上,这一般是服务器或工作站。

管理应用程序执行控制器,负责与所有网络交换机进行交互,配置数据转发路径,从而提高带宽利用率。

这个应用程序与云管理软件进行交互,保证有足够的带宽支持负载的创建和变化。

OpenFlow协议操作OpenFlow标准定义了控制器与交换机之间的交互协议,以及一组交换机操作。

这个控制器—交换机协议运行在安全传输层协议(TLS)或无保护TCP连接之上。

控制器向交换机发送指令,控制数据包的转发方式,以及配置参数,如VLAN优先级。

交换机会在链路中断或出现未指定转发指令的数据包时,发送消息通知控制器。

转发指令基于流,这个流由所有数据包共享的通用特性组成。

定义流需要指定许多参数,其中可能包括:数据包到达的交换机端口、来源以太网端口、来源IP端口、VLAN标签、目标以太网或IP端口及许多其他数据包特性。

OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析

OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析

OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析继本专题基本环境搭建(一)之后,本文在此基础上熟悉平台操作,以及通过wireshark 抓包工具分析OpenFlow(以下简写为OF)协议。

具体的OF官方协议及白皮书可在资料库栏目中下载阅读。

注:此文涉及的环境仅支持OF1.0版本,对于OF1.2、OF1.3版本可用其他平台测试,后续会另做专题讨论。

1打开wireshark并创建拓扑按照章节一搭建平台,启动ODL,并打开wireshark。

进入装有Mininet的VM,通过mn命令指定网络拓扑及指定此ODL控制器。

Mininet创建网络拓扑命令:此命令通过Mininet模拟创建一个含有两个交换机(Open vSwitch,以下简写为OVS)和两个主机的网络拓扑,其中192.168.5.203为ODL的IP,6633为ODL的默认端口,网络拓扑如下图所示:2查看网络在Mininet中通过操作网络命令,可以查看OVS间及OVS与主机间的连接关系,也可以查看Mininet是否远程连接控制器。

例如,通过nodes命令可以查看网络中所有的节点。

通过net命令可以查看并确认网络连接关系是否与预期一致以及节点信息,且可以了解具体的连接端口信息。

通过下面的dump命令可以看出,交换机通过远程方式连接到控制器,且能看到控制器的IP 和PORT。

3抓包并分析协议通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,下面分析该流程中的OF消息。

此专题应用的是直接支持OpenFlow协议的wireshark官网Stable Release(1.12.1)版本。

3.1建立连接控制器与交换机之间的OpenFlow协议是应用于TCP传输层上,所以解析应用层。

他们首先发送hello消息,建立初始化连接,协商使用的OpenFlow协议版本。

由下图可知,ODL与Mininet之间应用的是OpenFlow1.0版本协议(其他1.2、1.3协议会在协议OpenFlow 后面标识)。

OpenFlow协议解读

OpenFlow协议解读

OpenFlow协议解读OpenFlow通信流程解读前⾔接触了这么久的SDN,OpenFlow协议前前后后也读过好多遍,但是⼀直没有时间总结⼀下⾃⼰的⼀些见解。

现在有时间了,就写⼀写⾃⼰对OpenFlow协议通信流程的⼀些理解。

SDN中Switch和controller在SDN中很重要的两个实体是Switch跟Controller。

Controller在⽹络中相当于上帝,可以知道⽹络中所有的消息,可以给交换机下发指令。

Switch就是⼀个实现Controller指令的实体,只不过这个交换机跟传统的交换机不⼀样,他的转发规则由流表指定,⽽流表由控制器发送。

switch组成与传统交换机的差异switch组成switch由⼀个Secure Channel和⼀个flow table组成,of1.3之后table变成多级流表,有256级。

⽽of1.0中table只在table0中。

Secure Channel是与控制器通信的模块,switch和controller之间的连接时通过socket 连接实现。

Flow table⾥⾯存放这数据的转发规则,是switch的交换转发模块。

数据进⼊switch 之后,在table中寻找对应的flow进⾏匹配,并执⾏相应的action,若⽆匹配的flow 则产⽣packet_in(后⾯有讲)of中sw与传统交换机的差异匹配层次⾼达4层,可以匹配到端⼝,⽽传统交换机只是2层的设备。

运⾏of协议,实现许多路由器的功能,⽐如组播。

求补充!!(如果你知道,请告诉我,⾮常感谢!)OpenFlow的switch可以从以下⽅式获得实体of交换机,⽬前市场上有⼀些⼚商已经制造出of交换机,但是普遍反映价格较贵!性能最好。

在实体机上安装OVS,OVS可以使计算机变成⼀个OpenFlow交换机。

性能相对稳定。

使⽤mininet模拟环境。

可以搭建许多交换机,任意拓扑,搭建拓扑具体教程本博客有⼀篇。

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议一、引言SDN(Software Defined Networking)软件定义网络是一种新兴的网络架构,通过将网络控制平面和数据平面分离,实现了网络的集中管理和灵活性。

南向协议是SDN中的一种重要协议,用于控制器与交换机之间的通信。

OpenFlow协议是目前应用最广泛的南向协议,定义了控制器与交换机之间的通信接口和消息格式。

二、协议目的本协议旨在规范OpenFlow协议的格式和功能,确保控制器能够与OpenFlow兼容的交换机进行有效的通信,并实现网络的灵活管理和控制。

三、协议范围本协议适用于使用OpenFlow协议的SDN网络中的控制器和交换机之间的通信。

四、术语和定义1. SDN(Software Defined Networking):软件定义网络,一种通过将网络控制平面和数据平面分离的网络架构。

2. 南向协议:用于控制器与交换机之间的通信的协议。

3. OpenFlow协议:一种SDN中广泛使用的南向协议,定义了控制器与交换机之间的通信接口和消息格式。

五、协议要求1. OpenFlow协议必须支持交换机与控制器之间的双向通信。

2. OpenFlow协议必须支持交换机与控制器之间的消息交互,包括控制器向交换机发送指令和交换机向控制器发送状态信息。

3. OpenFlow协议必须支持交换机的流表管理,包括流表的添加、修改、删除等操作。

4. OpenFlow协议必须支持交换机与控制器之间的事件通知,包括端口状态变化、链路断开等事件的通知。

5. OpenFlow协议必须支持交换机与控制器之间的统计信息交互,包括流量统计、端口统计等。

六、消息格式1. 控制器向交换机发送的消息格式:a) 控制器发起连接请求消息(OFPT_HELLO):用于建立控制器与交换机之间的连接。

b) 控制器发送特征请求消息(OFPT_FEATURES_REQUEST):用于获取交换机的特征信息。

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议一、引言软件定义网络(Software-Defined Networking,SDN)是一种新兴的网络架构,通过将网络控制平面(control plane)与数据转发平面(data plane)分离,实现网络的灵活性和可编程性。

南向协议(Southbound Protocol)是SDN架构中控制器与网络设备之间的通信协议,用于实现控制器对网络设备的管理和控制。

本协议旨在详细描述SDN中最常用的南向协议之一——OpenFlow协议。

二、OpenFlow协议概述OpenFlow协议是SDN架构中最具代表性的南向协议之一,由Open Networking Foundation(ONF)开发和维护。

该协议定义了控制器与交换机之间的通信方式,使得控制器可以直接控制和管理交换机的数据转发行为。

三、OpenFlow协议架构1. 控制平面(Control Plane):控制器负责管理和控制网络设备,向交换机发送控制指令,并接收交换机的状态信息。

2. 数据平面(Data Plane):交换机负责实际的数据包转发和处理,根据控制器的指令进行相应的操作。

3. OpenFlow通道(OpenFlow Channel):控制器与交换机之间的双向通信通道,用于传输控制消息和状态信息。

四、OpenFlow协议消息格式OpenFlow协议定义了多种消息类型,用于控制器与交换机之间的通信。

每个消息由消息头和消息体组成。

1. 消息头(Message Header):包含消息类型、消息长度等信息,用于标识和解析消息。

2. 消息体(Message Body):根据消息类型的不同,包含不同的字段和参数,用于传递具体的控制指令或状态信息。

五、OpenFlow协议交互过程1. 握手阶段(Handshake):控制器与交换机建立连接,进行协议版本的协商和能力的交换。

2. 特征请求阶段(Features Request):控制器向交换机发送特征请求消息,获取交换机的基本信息和能力。

SDN软件定义网络之南向协议——OpenFlow协议 (2)

SDN软件定义网络之南向协议——OpenFlow协议 (2)

SDN软件定义网络之南向协议——OpenFlow协议一、引言1.1 背景随着云计算、大数据、物联网等技术的快速发展,传统网络架构面临着许多挑战,例如网络管理复杂、可扩展性差、灵便性不足等。

为了解决这些问题,软件定义网络(Software Defined Networking,SDN)应运而生。

SDN通过将网络控制平面与数据转发平面分离,实现了网络的集中控制和灵便管理。

1.2 目的本协议的目的是定义SDN中南向协议的标准格式,特殊是OpenFlow协议的相关规范和要求,以便确保各厂商和组织在实施SDN时能够达到互操作性和兼容性。

二、OpenFlow协议概述2.1 定义OpenFlow是一种开放的、基于标准化的南向协议,用于在SDN架构中实现控制器与数据平面之间的通信。

OpenFlow协议定义了控制器和交换机之间的消息格式和交互方式,允许控制器对数据平面进行直接编程和控制。

2.2 功能OpenFlow协议提供了以下主要功能:- 控制器与交换机之间的通信:控制器可以通过OpenFlow协议与交换机进行通信,发送命令和配置信息。

- 流表管理:控制器可以通过OpenFlow协议向交换机下发流表项,实现流量的转发和处理。

- 路由控制:控制器可以通过OpenFlow协议向交换机下发路由信息,实现网络的路由控制和优化。

- QoS管理:控制器可以通过OpenFlow协议向交换机下发QoS策略,实现对流量的优先级和带宽的管理。

三、OpenFlow协议消息格式3.1 消息类型OpenFlow协议定义了多种消息类型,用于控制器和交换机之间的通信。

常见的消息类型包括Hello消息、Echo消息、错误消息、配置消息等。

3.2 消息结构每一个OpenFlow消息由消息头和消息体组成。

消息头包含了消息类型、消息长度等信息,消息体则包含了具体的命令和配置信息。

3.3 消息交互OpenFlow协议采用了请求-响应的消息交互机制。

控制器发送请求消息给交换机,交换机接收并处理请求消息后,发送响应消息给控制器。

openflow协议

openflow协议

openflow协议OpenFlow协议是一种用于软件定义网络(SDN)的通信协议,它允许网络管理员动态地控制网络流量,并为网络带来更大的灵活性和可管理性。

本文将介绍OpenFlow协议的基本原理、作用和应用。

OpenFlow协议的基本原理是将网络数据转发和控制分离开来。

在传统网络中,路由器和交换机负责数据的转发和控制,而在SDN中,控制逻辑被抽象出来,集中在一个控制器中。

OpenFlow协议定义了控制器和交换机之间的通信方式,控制器可以通过OpenFlow协议向交换机下发流表规则,从而控制数据包的转发路径。

OpenFlow协议的作用主要体现在以下几个方面:首先,OpenFlow协议使得网络管理变得更加灵活和可编程。

传统网络设备的功能是固定的,而在SDN中,控制器可以根据网络管理员的需求动态地调整网络的行为,实现对网络流量的精细化控制。

其次,OpenFlow协议为网络创新提供了更多可能性。

由于控制逻辑被抽象出来,网络管理员可以通过编程的方式实现对网络的定制化控制,从而满足不同场景下的需求。

再次,OpenFlow协议可以提高网络的可管理性和安全性。

通过集中式的控制,网络管理员可以更加方便地监控和管理整个网络,对网络中的安全漏洞进行及时修复。

最后,OpenFlow协议为网络的自动化运维提供了基础。

通过编程的方式,网络管理员可以实现对网络的自动化配置和优化,降低了网络运维的成本和复杂度。

在实际应用中,OpenFlow协议已经被广泛应用于数据中心网络、校园网和企业网络等场景。

在数据中心网络中,OpenFlow协议可以实现对数据流的动态负载均衡和流量调度,提高了网络的性能和可靠性。

在校园网和企业网络中,OpenFlow协议可以实现对网络流量的细粒度控制,保障了网络的安全性和稳定性。

总之,OpenFlow协议作为SDN的重要组成部分,为网络的管理和控制带来了革命性的变化。

它不仅提高了网络的灵活性和可编程性,还为网络创新和自动化运维提供了基础。

OpenFlow协议

OpenFlow协议

OpenFlow协议OpenFlow是⼀种新型的⽹络协议,它是控制器和交换机之间的标准协议。

⾃2009年底发布1.0版本后,OpenFlow协议⼜经历了1.1、1.2、1.3及1.4版本的演进过程,⽬前使⽤和⽀持最多的是1.0和1.3版本。

OpenFlow1.3在1.0版的基础上进⼀步优化及升级,其中添加了很多新的特性及消息,如⽀持多个流表(flow table)、组表(group table),⽀持多控制器等。

⼀个流表中包含多个流表项,OpenFlow v1.3中流表项主要由7部分组成,分别是:匹配域(⽤来识别该条表项对应的flow)优先级(定义流表项的优先顺序)计数器(⽤于保存与条⽬相关统计信息)指令(匹配表项后需要对数据分组执⾏的动作)Timeouts、Cookie、Flags.流表项图与OpenFlow v1.0不同的是,OpenFlow v1.3协议中⼀台OF交换机会有多张流表。

具体匹配流程如下图所⽰。

当⼀个数据包到达交换机,从数据包中提取匹配字段从第⼀个流表开始查找匹配,匹配字段取决于数据包的类型。

通常包括各种数据包的头字段。

例如:以太⽹源地址或ipv4的地址等.此外,还可以对数据包关联的字段(如交换机14的⼊端⼝等)进⾏匹配。

如果数据包和流表项匹配成功,则更新计数器并执⾏流表项中的指令。

如果该流表项使⽤GOTO指令指向某⼀其他流表,则执⾏完本次指令的数据包以及动作集、元数据等信息转到GOTO指令指向的流表进⾏下⼀步的匹配(也就是图中的跳转到Table n?);若未指向另⼀流表则执⾏动作集,此时流⽔线处理成功。

如果在某个流表中并未匹配成功,则查找该流表中是否存在table-miss流表项(流表中的table-miss流表项指定如何处理未匹配成功的数据包).如果存在table-miss流表项,则按该流表项中的指令执⾏,如丢弃数据包、将数据包转到另外⼀个流表或者发送给控制器(即通过Packet_In消息传递给控制器,由控制器制定数据包的转发策略⽽后通过Packet_Out消息下发流表给交换机)等;如果在流表中并未匹配成功,并且该流表项中不存在table-miss流表项,那么交换机将会丢弃该数据包。

OpenFlow协议(OVS)

OpenFlow协议(OVS)

OpenFlow协议(OVS)
⽩⽪书(版本):
功能(OpenFlow半年升级⼀次)
FlowTable流表:由很多个流表项组成,每个流表项就是⼀个转发规则。

进⼊的通过查询流表来获得转发的⽬的端⼝。

流表项由头域、计数器和操作组成;其中头域是个⼗元组,是流表项的标识;计数器⽤来计算流表项的统计数据;操作标明了与该流表项匹配的应该执⾏的操作。

Secure Channel:安全通道是连接OpenFlow到控制器的接⼝。

控制器通过这个接⼝控制和管理,同时控制器接收来⾃交换机的事件并向交换机发送。

和控制器通过安全通道进⾏通信,⽽且所有的信息必须按照OpenFlow协议规定的格式来执⾏。

OpenFlow协议:⽤来描述控制器和交换机之间交互所⽤信息的标准,以及控制器和交换机的接⼝标准。

协议的核⼼部分是⽤于OpenFlow协议信息结构的集合。

流表项1.0版本(查看流表项:dpclt dump-flows)
Action:
流表项1.3版本
对Action的集合操作(增加⼀部分对Action的逻辑操作指令)
基本上对应1.0版本的Action内容
按顺序执⾏:
注:TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最⼤⽹段数量。

TTL是IPv4包头的⼀个8 bit字段。

总结:
TimeOuts和Cookies
流表的匹配(1.1版本)
1.3版本
如何⽣成流表的呢?
连接的流程(通过抓包画出来的图⽚)
可以⽤WireShark来抓包分析
三类包信息
还有hello包(同步信息)等等
⽹络协议的交互。

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议一、协议目的本协议旨在定义SDN(软件定义网络)中的南向协议,即控制器与交换机之间的通信协议,具体而言,是针对OpenFlow协议的规范和要求进行详细说明,以确保在SDN网络中实现统一的控制平面和数据平面的分离。

二、协议范围本协议适用于SDN网络中使用OpenFlow协议进行通信的场景,包括但不限于控制器与交换机之间的消息交互、流表的配置和管理、事件通知等。

三、协议定义1. OpenFlow协议版本本协议所定义的OpenFlow协议适用于OpenFlow协议版本1.5及以上。

2. 消息格式2.1 消息头部消息头部包括版本号、消息类型、消息长度等字段,用于标识和解析消息。

2.2 消息体消息体根据消息类型的不同而有所不同,包括控制器向交换机发送的请求消息和交换机向控制器发送的回复消息。

3. 消息类型3.1 控制器向交换机发送的请求消息类型包括:- Hello:用于建立连接和协商OpenFlow协议版本。

- Features Request:用于请求交换机的基本信息和能力。

- Configuration Request:用于配置交换机的参数和行为。

- Flow Modification:用于配置流表条目。

- Packet-Out:用于向交换机发送数据包。

3.2 交换机向控制器发送的回复消息类型包括:- Hello:用于确认连接和协商OpenFlow协议版本。

- Features Reply:用于回复交换机的基本信息和能力。

- Configuration Reply:用于回复交换机的参数和行为配置结果。

- Flow Modification Reply:用于回复流表配置结果。

- Packet-In:用于向控制器发送数据包。

4. 流表配置4.1 流表匹配字段流表匹配字段包括数据包的源地址、目的地址、源端口、目的端口等,用于匹配数据包。

4.2 流表动作字段流表动作字段包括转发数据包、丢弃数据包、修改数据包头部等,用于对匹配的数据包进行处理。

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议一、引言本协议旨在定义SDN软件定义网络中南向协议的标准格式,重点介绍OpenFlow协议的相关内容。

OpenFlow协议是一种用于SDN网络中控制平面和数据平面之间通信的协议,通过该协议,控制器可以向交换机发送指令,实现对网络流量的灵活控制和管理。

本协议将详细介绍OpenFlow协议的基本原理、消息格式、交互过程以及相关的安全机制。

二、OpenFlow协议基本原理1. OpenFlow协议的定义OpenFlow协议是一种开放的、可编程的网络协议,用于实现SDN网络中的控制平面和数据平面之间的通信。

通过该协议,控制器可以向交换机发送指令,实现对网络流量的灵活控制和管理。

2. OpenFlow协议的核心概念- 控制器(Controller): SDN网络中的中央控制节点,负责制定网络策略和管理交换机。

- 交换机(Switch): SDN网络中的数据转发设备,根据控制器的指令进行数据包的转发。

- OpenFlow通道(OpenFlow Channel): 控制器与交换机之间的通信通道,用于传输OpenFlow消息。

- 流表(Flow Table): 交换机中的流量匹配规则表,用于根据匹配规则对数据包进行处理。

- 流表项(Flow Entry): 流表中的每一条规则,包含匹配字段和对应的操作。

三、OpenFlow协议消息格式1. OpenFlow消息的结构OpenFlow消息由消息头和消息体组成,消息头包含版本号、消息类型、消息长度等字段,消息体则根据不同的消息类型而不同。

2. OpenFlow消息类型- 控制器与交换机之间的消息类型包括:控制器发往交换机的消息和交换机发往控制器的消息。

- 控制器发往交换机的消息类型包括:控制器配置消息、控制器流表消息、控制器流表项消息等。

- 交换机发往控制器的消息类型包括:交换机配置消息、交换机统计消息、交换机事件消息等。

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议

SDN软件定义网络之南向协议——OpenFlow协议OpenFlow协议是一种用于SDN(软件定义网络)中的南向协议,它定义了控制器与交换机之间的通信协议。

本协议旨在实现网络控制平面与数据平面的分离,允许网络管理员通过集中式控制器来管理和控制网络交换机。

一、引言1.1 目的本协议的目的是定义OpenFlow协议的标准格式,以确保不同厂商的控制器和交换机能够互相兼容,实现网络的可编程性和灵活性。

1.2 背景传统的网络架构中,网络交换机负责数据转发和流量控制,而网络管理功能则由各个交换机独立实现。

这种分布式的管理方式导致网络管理复杂、难以扩展和定制化。

SDN的出现改变了这种情况,通过将网络控制平面与数据平面分离,实现了网络的集中管理和控制。

1.3 术语和缩写在本协议中,以下术语和缩写具有特定的含义:- SDN:软件定义网络(Software-Defined Networking)- 南向协议:控制器与交换机之间的通信协议- 控制平面:网络的逻辑控制中心,负责决策和管理网络- 数据平面:网络的数据传输部分,负责实际的数据包转发二、协议规范2.1 协议版本本协议的版本为OpenFlow X.X(根据实际情况填写具体版本号)。

2.2 协议消息格式OpenFlow协议的消息格式采用二进制格式,包括消息头和消息体两部分。

2.2.1 消息头格式消息头由以下字段组成:- 版本号:标识OpenFlow协议的版本号- 消息类型:标识消息的类型,如控制器发起的请求、交换机返回的回复等- 长度:消息体的长度,以字节为单位- 事务标识符:用于标识一组相关的消息,用于匹配请求和回复消息2.2.2 消息体格式消息体的具体格式根据消息类型的不同而有所不同,包括以下几种类型:- 控制器发起的请求消息:包括控制器向交换机发送的配置请求、查询请求等- 交换机返回的回复消息:包括交换机对控制器请求的回复,如配置回复、查询回复等- 异步通知消息:包括交换机主动向控制器发送的事件通知,如链路状态变化、端口状态变化等2.3 协议操作OpenFlow协议定义了一系列操作,用于控制器与交换机之间的交互。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、OF协议:控制器控制 流表修改的数据结构
• • • • • • • • • • • • • • • • • • • • • • • /* Flow setup and teardown (controller -> datapath). */ struct ofp_flow_mod { struct ofp_header header; struct ofp_match match; /* Fields to match */ uint64_t cookie; /* Opaque controller-issued identifier. */ /* Flow actions. */ uint16_t command; /* One of OFPFC_*. */ uint16_t idle_timeout; /* Idle time before discarding (seconds). */ uint16_t hard_timeout; /* Max time before discarding (seconds). */ uint16_t priority; /* Priority level of flow entry. */ uint32_t buffer_id; /* Buffered packet to apply to (or -1). Not meaningful for OFPFC_DELETE*. */ uint16_t out_port; /* For OFPFC_DELETE* commands, require matching entries to include this as an output port. A value of OFPP_NONE indicates no restriction. */ uint16_t flags; /* One of OFPFF_*. */ struct ofp_action_header actions[0]; /* The action length is inferred from the length field in the header. */ }; OFP_ASSERT(sizeof(struct ofp_flow_mod) == 72);
• 2、asynchronous(异步)消息 • 3、 symmetric(对称)消息
其中每一类消息又有多个子消息类型。
三、OF协议:协议头数据结 构
OF 协议头部:
/* Header on all OpenFlow packets. */ struct ofp_header { uint8_t version; /* OFP_VERSION. */ uint8_t type; /* One of the OFPT_ constants. */ uint16_t length; /* Length including this ofp_header. */ uint32_t xid; /* Transaction id associated with this packet. Replies use the same id as was in the request
三、OF协议:流匹配数据 结构
• • • • • • • • • • • • • • • • • • • struct ofp_match { uint32_t wildcards; /* Wildcard fields. */ uint16_t in_port; /* Input switch port. */ uint8_t dl_src[OFP_ETH_ALEN]; /* Ethernet source address. */ uint8_t dl_dst[OFP_ETH_ALEN]; /* Ethernet destination address. */ uint16_t dl_vlan; /* Input VLAN id. */ uint8_t dl_vlan_pcp; /* Input VLAN priority. */ uint8_t pad1[1]; /* Align to 64-bits */ uint16_t dl_type; /* Ethernet frame type. */ uint8_t nw_tos; /* IP ToS (actually DSCP field, 6 bits). */ uint8_t nw_proto; /* IP protocol or lower 8 bits of * ARP opcode. */ uint8_t pad2[2]; /* Align to 64-bits */ uint32_t nw_src; /* IP source address. */ uint32_t nw_dst; /* IP destination address. */ uint16_t tp_src; /* TCP/UDP source port. */ uint16_t tp_dst; /* TCP/UDP destination port. */ }; OFP_ASSERT(sizeof(struct ofp_match) == 40);
3、OpenFlow交换机组成:
二、OpenFlow宏观介绍:交换机流处理过程
1、OpenFlow交换机流处理过程:
二、OpenFlow宏观介绍: 数据流量的匹配过程
1、流的匹配过程:
二、OpenFlow宏观介绍: 包头解析的匹配流程
1、流的匹配过程:
三、OF协议:消息类 型
• 1、controller-to-switch 消息
Openflow 1.0.0 报告
余显 2013年7月11日
YOUR LOGO
目录
1、SDN简介
2、openflow介绍
一、SDN简介ቤተ መጻሕፍቲ ባይዱ
1、SDN是一种新型网络架构,核心思想: 1、数据与控制平面相结合; 2、统一的厂商无关控制和数据平面开放接口; 3、逻辑集中的控制平面; 4、顶层服务或网络控制应用通过物理资源的抽象构建逻辑的全网视图; 5、通过分片和虚拟化底层网络实现资源的优化利用和调度。 2、SDN结构:
三、OF协议:控制器控制 流表修改的数据结构
• • • • • • • • • • • • • • • • 1、控制修改命令: enum ofp_flow_mod_command { OFPFC_ADD, /* New flow. */ OFPFC_MODIFY, /* Modify all matching flows. */ OFPFC_MODIFY_STRICT, /* Modify entry strictly matching wildcards */ OFPFC_DELETE, /* Delete all matching flows. */ OFPFC_DELETE_STRICT /* Strictly match wildcards and priority. */ }; 2、flags域的取值: enum ofp_flow_mod_flags { OFPFF_SEND_FLOW_REM = 1 << 0, /* Send flow removed message when flow * expires or is deleted. */ OFPFF_CHECK_OVERLAP = 1 << 1, /* Check for overlapping entries first. */ OFPFF_EMERG = 1 << 2 /* Remark this is for emergency. */ };
三、OF协议:端口数据结 构
端口结构: /* Description of a physical port */ struct ofp_phy_port { uint16_t port_no; uint8_t hw_addr[OFP_ETH_ALEN]; char name[OFP_MAX_PORT_NAME_LEN]; /* Null-terminated */ uint32_t config; /* Bitmap of OFPPC_* flags. */ uint32_t state; /* Bitmap of OFPPS_* flags. */ /* Bitmaps of OFPPF_* that describe features. All bits zeroed if * unsupported or unavailable. */ uint32_t curr; /* Current features. */ uint32_t advertised; /* Features being advertised by the port. */ uint32_t supported; /* Features supported by the port. */ uint32_t peer; /* Features advertised by peer. */ }; OFP_ASSERT(sizeof(struct ofp_phy_port) == 48);
二、OpenFlow宏观介绍:OpenFlow网络结构图
Controller对网络进行集中控制, 实现控制层的功能
FlowVisor对网络进行虚拟化
OpenFlow交换机进行数 据层的转发
二、OpenFlow宏观介绍:OF结构和组成
1、OpenFlow是SDN重要的实现方式,是SDN中的一部分 2、OpenFlow结构:OpenFlow协议和OpenFlow交换机
1.3版本
结束
相关文档
最新文档