一个使用java语言编写的基于Openflow协议的SDN控制器。

基本架构同webserver一样,有一个维护交换机连接信息的底层模块,当有交换机同控制器连接时,floodlight会将此连接保存到连接池中,并通过NIO的方式同交换机进行通信。

控制器还包含其他交换机数据包存储处理模块,比如网络拓扑模块(计算最短通信路径)、链路发现模块(使用LLDP协议发现网络的拓扑的变化)、设备管理模块(负责完成MAC地址同IP地址之间的映射)、存储模块(负载存储每台交换机的存储状态,比如保存的流表项等)、RESTAPI模块(负责通过RESTAPI的形式,完成流表项的管理)、webui模块(提供一个web界面,查询控制器状态)。

floodlight通过配置信息决定加载哪些模块,模块同时会注册其会理哪些消息。

Floodlight总体上有两个主要功能:

  1. 处理交换机连接并将OpenFlow消息转换为事件(events)以使其他模块能够监听处理。比如发现交换机、链路失效、端口失效、接收到数据包等消息。
  2. 决策某些特定OpenFlow消息(例如,PacketIn, FlowRemoved, PortStatus等),并将其按顺序转发到配置的监听模块。然后每个模块决定是否处理此消息并传递到下一个监听者或者停止处理消息。

能够处理的事件消息,需要处理OpenFlow消息的模块实现IOFMessageListener接口。

事件中有交换机的连接信息,可通过对交换机进行操作,同时还可通过全局方法获取其他交换机的信息,并对其进行操作。

总体感觉,其与webserver的模式很像。

  1. 有维护客户端连接的模块,java中的servlet管理所有的用户连接(控制器维护交换机的连接,netty)
  2. 有处理客户端请求的模块,客户端将request发送到服务端,服务端将response发送给客户端(控制器将交换机的变化、请求信息抽象成事件,发送给相应模块处理,模块处理时可以对交换机进行操作)

不足:目前控制器的自定义模块网络编程模式依然需要编写大量的代码,是一种面向计算机语言的程序编写模式,而不是面向网络的。导致实现自定义模块的编写工作量巨大,开发周期长,并且不易调试并发现流表项决策的错误。

FloodLight使用感受的更多相关文章

  1. 【初码干货】【Azure系列】1、再次感受Azure,体验Windows Server 2016并部署BlogEngine.NET

    上个月末,在某人的建议下,重新注册了一个1元试用账户(包含1个月期限的1500元订阅),并充值了1000元转为了正式账户,相当于1000元得到了2500的订阅,于是又一次开启了Azure之旅. 在这不 ...

  2. 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!

    写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过 ...

  3. "传成老树白茶"献礼母亲节 邀市民品茗感受茶文化

    5月8日下午,传成老树白茶巡回中国公益品鉴会第七十站,走进福州马尾区东方名城传成老树白茶文化馆. 本次品鉴会活动以“感恩母亲节”为主题,以马尾船政文化为背景,邀福州市民一起品鉴白茶,感受中国茶文化. ...

  4. C# 项目提交过程中感受

    C# 项目提交过程中感受 新到一家互联网公司,昨天第一次提交代码,遇到了不少问题,而且大多数是代码格式问题,特此将范的错误记录下来,自我警示. 1. 代码对齐,这个虽然一直也都在注意,不过还是有一行代 ...

  5. Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

    代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,p ...

  6. 微信小程序开发感受

    研究了大概有一个多星期的小程序了,说一下感受,之后会随时更新,一边学习,一边加上一部分学习代码和心得.我是一个前端厂里的新手,搬砖的时间不是很长,所以到一部分知识的理解浅之又浅,所以只能说自己的理解, ...

  7. 在GMIC听“移动互联网+医疗”的感受 2015-04-29

    “互联网+”这个词挺火的,基本格式是“互联网+传统行业”,比如医疗.教育.交通等等.就更别说电子商务.金融这些领域了,相比已经和互联网分不 开了.在我看来,互联网+的背后,是信息化.智能化.信息沟通的 ...

  8. windows 8.1 试用感受:蛋疼感大幅降低

    众所周知windows 8 的最大使用感受就是蛋疼. 无论是微软MVP,还是我这样的万年不悔微软小白鼠,普通用户,小白用户,或多或少的都对这款操作系统感到蛋疼. 槽点太多,以至于大家都懒得批判了.好在 ...

  9. HTML5 模拟现实物理效果,感受 Web 技术魅力

    Ball Pool 是一个基于 HTML5 技术的实验,模拟现实物理效果,让你在 Web 中感受自然物体的运动.玩法介绍:可以随意拖动圆球.点击页面背景.晃动浏览器.双击页面背景或者按住鼠标左键,有不 ...

随机推荐

  1. HDU 3695 / POJ 3987 Computer Virus on Planet Pandora(AC自动机)(2010 Asia Fuzhou Regional Contest)

    Description Aliens on planet Pandora also write computer programs like us. Their programs only consi ...

  2. 利用PowerDesigner比较2个数据库结构

    主要实现思路 建立新旧数据库ODBC 导入原始数据模型 选择并比较对象 .PowerDesigner中可以对2个数据模型进行比较,所以想到用这个功能来实现对比数据库的目的.到底怎样利用PowerDes ...

  3. SQL Server SA 密码丢失无法连接数据库怎么办?

    如果Windows账户无法连接并且SA密码也丢失了,那么如何可以连接到数据库呢? 答案是: 在单用户模式下启动SQL Server然后用本地管理员权限连接.登陆之后就可以修改SA密码了. 步骤: 1. ...

  4. cookie 暂时保存内容与恢复

    <script type="text/javascript"> $(function(){ $('.ycb_anniu').click(function(){ $.co ...

  5. 配置JDKAndroid 2D游戏引擎AndEngine

    配置JDKAndroid 2D游戏引擎AndEngine JDK全称为Java Development Kit(也即Java开发包),是用于支持Java 编程的基础.无论是什么编程,只要用到了Java ...

  6. [Cocos2d-x For WP8]EaseActions缓动动作

    我们用Silverlight框架开发WP8的应用程序的时,编写动画可以使用缓动效果来实现缓动动画对吧,那么在Cocos2d-x框架里面我们一样是可以缓动动作(缓动动画),其实技术的东西都是想通的,如果 ...

  7. [快速数论变换 NTT]

    先粘一个模板.这是求高精度乘法的 #include <bits/stdc++.h> #define maxn 1010 using namespace std; char s[maxn]; ...

  8. c语言字符串操作,及常用函数

    一,字符串操作 1 . strcpy : 拷贝 char *stpcpy(char *destin, char *source); 2 . strcat :  拼接 char *strcat(char ...

  9. jsoup httpclient 爬取网页并下载google图标

    jsoup下载地址 http://www.jsoup.org httpclient下载地址 http://hc.apache.org/downloads.cgi 其他jar包见附件 Crawler p ...

  10. 【C语言】03-第一个C程序代码分析

    前面我们已经创建了一个C程序,接下来分析一下里面的代码. 项目结构如下: 一.代码分析 打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下 ...