如果你想在iOS程序中提供一仅在wifi网络下使用(Reeder),或者在没有网络状态下提供离线模式(Evernote)。那么你会使用到Reachability来实现网络检测。写本文的目的了解Reachability都能做什么检测3中网络环境2G/3Gwifi无网络如何使用通知单个controlle...
分类:
移动开发 时间:
2014-07-01 10:13:53
阅读次数:
282
前面通过阅读代码知道了如何判断各个模块处理某个消息的先后顺序,那么内部是如何实现的呢?
每当一个模块表示对一个消息感兴趣的时候,就会调用IFloodlightProviderService(具体有Controller类实现)的addOFMessageListener方法进行注册订阅,核心工作是由 ListenerDispatcher类来完成:1)每次增加一个观察者的时候都会判断其是否是...
分类:
其他好文 时间:
2014-06-26 10:23:09
阅读次数:
237
当Controller和SW建立连接之后,就可以处理来自SW的各种OF msg。当接收到 packetin 消息之后,会将其分发给各个监听了这个OFMessage的listeners,所以如果我们要设计自己的控制器模块,只需要实现相应的接口方法,约定执行顺序即可。接口IListener 主要抽象了监听器模块的名字,执行顺序,接口IOFMessageListener则抽象了我们的Controller...
分类:
其他好文 时间:
2014-06-25 07:26:35
阅读次数:
265
FloodlightContextStore 代表的是一种缓存模型(利用的是ConcurrentHashMap),里面存储的是上下文相关的对象,能够根据相应的key得到具体的 Object,存在的意义是Floodlight中注册监听某个事件的listener可以在被调用的时候直接从中取出上下文信息(context information)。下面是重要的代码片段.
基本数据结构:
pub...
分类:
其他好文 时间:
2014-06-24 23:08:38
阅读次数:
210
1. 在Main中先是加载模块,启动REST服务,而后构建一个实现了IFloodlightProviderService接口的实例(即Controller)并运行;
2. 接下来进入Controller的run()方法,此时所有的环境初始化工作已经完成,构建一个基于netty的TCP server,最重要的是流水线factory OpenflowPipelineFactory 的设置,里面是co...
分类:
其他好文 时间:
2014-06-24 22:47:40
阅读次数:
277
OFMessageDecoder 继承了抽象类 FrameDecoder。FrameDecoder 会将接收到的ChannelBuffers 转换成有意义的 frame 对象,在基于流的传输过程中,通常会发生分片和重组的情况,所以就需要一个解码器,根据特定协议的约束,将收到的包理解为相应的,易于应用逻辑层处理的对象。
这里调用的是 BasicFactory 的 parseMe...
分类:
其他好文 时间:
2014-06-24 19:59:04
阅读次数:
224
1. IdleStateHandler 当Channel上没有执行相应的读写操作一定时间的时候出发一个 IdleStateEvent 事件;
2. ReadTimeoutHandler 读超时处理;
3. HandshakeTimeoutHandler 设置一个定时器检查连接的状态,握手阶段 ;
4 . OFChannelHandler 核心,处理所有的业务。...
分类:
其他好文 时间:
2014-06-24 19:58:23
阅读次数:
180
转载请注明出处:
当一个packet到达openflow交换机,会进行流表的匹配,如果没有找到相应的流表项,就会发送一个packet_in消息
到达SDN controller端,控制器根据一定的路由算法决策后,会向该路径上的所有交换机下发流表(也就是发送FLOW_MOD消息,里面有对应的action)。这里要知道的是在SDN的环境下,控制器具有全局拓扑信息,每当有链路状态改变时就会跟...
分类:
其他好文 时间:
2014-06-22 18:55:50
阅读次数:
311
info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置。为NO则以application的设置为准,view controlle...
分类:
移动开发 时间:
2014-06-20 23:13:55
阅读次数:
346
运行Floodlight,在Mininet中新建一个拓扑之后,并未添加相关的流表项,但是主机之间却可以相互通信。执行pingall操作,任意两个主机之间都能通。相当于没有任何路由表的路由器,它是怎么让这些网络中的主机通信的呢?原因在于Floodlight默认启用了Forwarding模块。说这个模块...
分类:
其他好文 时间:
2014-06-17 13:54:06
阅读次数:
285