1、软件定义网络中基于事件机制的网络状况监控与流调度,硕士研究生 易弢 学号 1130339061 导师 沈耀 副教授,1,软件定义网络(SDN): 控制平面(指定转发规则)与数据平面(实际转发数据)分开 逻辑上的集中控制OpenFlow: 控制器与交换机的通信协议 通过流表控制数据包的转发 流表由若干流表项组成,每个流表项包含匹配范围和动作,SDN & OpenFlow,2,OpenFlow流表示例流表项具有优先级,数据包头部能匹配多个流表项时,执行优先级最高一项的动作 流表项附带有计数器,统计流表项的存在时间与匹配数据量 (数据包个数&字节数),3,Example of Flow Table
2、in OpenFlow,OpenFlow网络中的网络监控: OpenTM, OpenNetMon, OpenSample, Open*,共同存在的局限性: OpenFlow协议不能让交换机主动向控制器上报统计数据 因此,统计数据收集不够及时、网络开销较大,Network Monitoring in OpenFlow,Controller,Switch,Switch,request,request,reply& stats,Controller,Switch,Switch,Stats,?,4,OpenEvent & Applications,OpenEvent 事件框架,控制器 (Ryu),交换
3、机(OVS),通信协议,端口统计事件,流统计 事件,带宽利用情况监测,大象流 探测,大象流 调度,拓扑发现 路径计算,数据中心网络中的动态流调度,OpenEvent事件框架及其基础上的网络状况监控与流调度的相关应用,5,通用性 可以定义各种类型的事件 可扩展性 仅规定事件的必需属性:事件类型,事件ID,是否周期性 兼容OpenFlow 实现为OpenFlow的自定义扩展已经定义的两类事件: 端口统计事件:上报端口的统计数据 流统计事件:上报流表项的统计数据,OpenEvent Framework,6,OpenEvent 事件框架,端口统计事件,流统计 事件,通信协议 OpenFlow的自定义类
4、型 (Vendor/Experimenter) Vendor/Experimenter ID = 0xEBCC3118 事件请求:控制器交换机,添加、修改、删除事件 事件请求回复:交换机控制器,回复请求的执行结果 事件报告:交换机控制器,事件触发时上报统计数据,Implementations(Protocol),控制器 (Ryu),交换机(OVS),通信协议,Request,Reply,Report,OpenFlow Vendor/Experimenter messages,7,控制器端: Ryu控制器 实现OpenFlow1.0与OpenFlow1.3下对OpenEvent中消息的解析 提供
5、面向网络管理上层应用的API交换机端: Open vSwitch(OVS) 事件列表:维护已经安装的事件 编码与解码模块:实现OpenEvent中消息的解析 请求执行模块:执行对事件的添加、修改和删除 事件监测与上报模块:检查事件是否发生,上报统计数据,Implementations(Controller & Switch),8,控制器 (Ryu),交换机(OVS),通信协议,网络状况监控: 链路带宽利用情况监控 安装端口统计事件,要求交换机主动上报端口上传输的数据量大象流探测 安装流统计事件,要求交换机主动上报大象流的统计数据流调度: 拓扑发现与路径计算:维护网络拓扑,计算初始路径 大象流探
6、测:如上所示,监控网络中的大象流 大象流调度:为大象流重新计算路径 调度方法:估计大象流的带宽需求,用最先匹配算法安排路径,Applications,9,Mininet模拟OpenFlow网络 Fat tree拓扑结构,k=4,16台主机,链路带宽1000Mbps流量模式(TCP连接,180秒) Stride(n): 主机i 主机(i+n) mod 16 Random(n): 每台主机随机向n台主机发送 Same-pod: 向同一pod不同edge发送,Environments of Experiments,10,链路带宽利用情况监测(与轮询对比): 测得数据传输速率差别 10%网络开销减少6
7、0%的数据量,Experiments(Link Utilization Monitoring),11,大象流探测 发现时已传输数据量约为轮询的1/2网络开销比轮询减少8090%,Experiments(Elephant Flow Detection),12,流调度调度效果(网络总体带宽) 相比ECMP:最多可达3倍 相比理想情况:8399% 事件机制探测大象流 vs 轮询:提升约10%,Experiments(Flow Scheduling),13,结论: OpenEvent事件框架及框架下定义的事件可以有效地收集OpenFlow网络中的统计数据事件机制提升了统计数据的准确性和及时性 事件机制
8、还大幅降低了收集统计数据的网络开销OpenEvent能够有效用于实现基于事件机制的网络监控与流调度未来展望 定义更多种类的事件,收集其他类型的统计数据 更加全面地分析事件机制带来的开销,Conclusions & Future Works,14,控制器端与交换机端的实现代码均提供下载 可以通过Github与Gitlab下载相关代码Github 控制器端 https:/ 交换机端 https:/ 控制器端 http:/:20180/sdn-events/ryu-event 交换机端 http:/:20180/sdn-events/ovs-event,Downloads,15,Thanks! And Questions?,16,