包头域 计数器 动作
图1.2 OpenFlow流表项结构
流表可被看作是OpenFlow对网络数据转发功能的抽象,它由许多流表项构成,其中,每一个流表项都是一个转发规则。流表项结构如图1.2所示,其中,包头域用来匹配交换机接收到数据包的包头部分,在OpenFlow v1.0中,包头域包括12个元祖(Tuple)。计数器可以文护OpenFlow交换机的每个数据流、每个设备端口、每张流表、每个转发队列,并可以用来统计数据流量的一些信息。交换机在收到相匹配数据包后并不知道应该对其进行怎样的处理,OpenFlow的动作项就是是用来对交换机进行指示。动作有两种类型,分别为可选动作(Optional Actions)和必备动作(Required Actions),前者需要由交换机告诉控制器它所支持的动作类型,后者是由所有交换机默认支持的。
OpenFlow采用集体控制方式,对交换机流表的配置是控制器利用OpenFlow协议进行的,安全通道用于传送交换机和控制器的信息【4】。通道是一个接口,连接控制器和OpenFlow交换机,控制器通过该接口来控制和管理OpenFlow交换机,同时,控制器接收OpenFlow交换机的信息也是通过该接口进行。在OpenFlow v1.0中,通道采用TLS(安全传输层协议)技术,用于对通信进行加密。
OpenFlow协议用于描述OpenFlow交换机和控制器之间交互所用的信息接口标准,该协议支持controller-to-switch、symmetric(对称)和asynchronous(异步)三种消息类型,每条消息还可以有多个子消息类型。controller-to-switch消息是由控制器发起的,该消息可以获取OpenFlow交换机的状态并对其进行管理;symmetric(对称)消息可以由控制器或OpenFlow交换机发起;asynchronous(异步)消息可以由交换机发起,用于告知控制器有关交换机状态变化或网络事件的更新消息。
1.4 SDN网络路由技术研究背景
路由算法分为静态路由算法和动态路由算法,根据路由算法,动态路由协议可分为距离向量路由协议(Distance Vector Routing Protocol)和链路状态路由协议 (Link State Routing Protocol)。距离向量路由协议主要有RIP、IGRP;链路状态路由协议是基于一种非常有名的最短优先路径算法,即Dijkstra算法。但是这些算法有不同的缺陷和不足,比如RIP算法计算路由慢,链路变化了收敛慢,最多只能支持15台设备的网络,只适用于小型网,而OSPF协议虽然收敛快,但是安全性较差【12~15】。
OpenFlow协议的基本理论是基于一个SDN环境平台,使研究者通过控制器控制交换机的数据转发路径来实现自己设计的路由协议,这样提高了路由选择控制的灵活性,因此路由可以根据不同情况来设计。拥塞是指这样一种情况,当分组交换网络中传送的分组数目很多时,而存储转发节点的资源有限,这样就会造成网络传输性能下降。拥塞路由管理机制主要有两种,分别是网络侧拥塞管理机制和终端拥塞管理机制,两种机制分别有其自身的优点和不足。传统IP网络架构下网络拥塞管理机制主要有随机路由选择机制、K路径遍历机制、LCBP机制,OpenFlow网络架构下网络拥塞管理机制主要有LABERIO机制、协作式拥塞控制算法、4G-LTE回程链路拥塞解决方案等【6】。
1.5论文主要结构和内容
本次实验通过Vmware+Mininet来定义拓扑网络模拟SDN环境,Mininet通过配置可以模拟任意网络拓扑,在它内部可以集成不同的控制器,本次实验使用开源的Floodlight,支持SDN技术的交换机则是由OVS提供的,OVS在软件层面上提供了OpenFlow协议支持。本文首先搭建SDN网络环境,然后对Floodlight路由算法的改进,用Bellman-Ford算法进行节点路径的计算,从而通过Floodlight控制器完成路径的更换,通过ping过程来检查并输出具体的端口和路径,最后完成对实验结果的分析。 Vmware+Mininet基于SDN的多策略路由算法(3):http://www.youerw.com/jisuanji/lunwen_22898.html