opendaylight笔记1.openflow
opendaylight笔记1.openflow
今天的互联网业务对互联网提出了越来越高的传输质量要求,所以诞生了改革派:将互联网之前的协议设施等推到重来。
openflow是改革派提出的一种新型网络交换模型。
openflow的核心思想是 将原本完全由交换机/路由器控制的数据包转发过程,转化为openflow交换机(openflow switch)和控制服务器(controller)分别完成的独立过程。
传统网络中,数据包的流向是人为指定的,虽然交换机/路由器拥有控制权,却没有数据流的概念,只进行数据包级别的交换;在openflow中,统一的由控制服务器取代路由,决定了所有数据在网络中的传输路径。
openflow交换机会在本地维护一个与转发表不同的流表,如果要转发的数据包在流表中有对应项,则快速转发;若没有此项,数据包会被发送到控制服务器进行传输路径的确认,再根据下发结果进行转发。
openflow规范:
1.openflow的端口(port)
a.物理端口
b.逻辑端口:在物理端口基础上由switch设备抽象出来的逻辑端口
c.openflow定义的端口:all,controller,table.in_port,any,local,normal,flood(后三为非必需端口)
2.flowtable(流表)
match fields priority counters instructions timeouts cookies
匹配域 优先级 统计数据 处理指令
所有的规则都被组在flowtable中,在同一个flowtable中按规则的优先级进行先后匹配。一个openflow的switch中可包含一个或多个flowtable,从0依次编号排列。数据包进入switch后,先从flowtable 0 开始依次匹配,按次序从小到大越级跳转,但不能跳到更小的flowtable.
匹配成功后,首先更新该规则对应的统计数据,然后根据规则中的指令进行操作。
3.openflow的通信通道
定义了openflow switch 如何与controller建立连接、通讯以及相关消息类型
三种消息类型:
a.controller/switch消息,由controller发起,switch接受并处理的消息。
b.异步消息,由switch发给controller,用来通知switch上发生的某些异步事件的消息。
c.对称消息,双向对称消息,用来建立连接、检测对方是否在线
4.openflow协议以及相关数据结构