Floodlight模块分析:forwarding模块

本文详细分析了在Floodlight控制器中,forwarding模块如何处理ping过程中涉及的ARP和ICMP报文。通过OpenFlow 1.3协议下交换机的行为,解释了PACKET_IN和PACKET_OUT消息的产生。文章探讨了广播包的处理以及流表项的创建,以帮助读者理解Floodlight的转发机制。
摘要由CSDN通过智能技术生成

转载请注明出处: http://blog.csdn.net/mageover/article/details/51436775

本文是通过分析一次ping过程来学习forwarding模块,从最简单的拓扑结构入手,研究报文在整个网络中的流向,并深入到forwarding模块的源码。选择forwarding模块进行分析好处在于:这个模块是floodlight应用模块,实现了一个完整的功能,代码简洁却不简单,涉及到了许多其它模块所提供的接口,对理解floodlight的结构很有益处。


阅读本文的读者需要了解OpenFlow1.3协议,大致了解Floodlight的模块编写和OpenFlowJ-Loxigen

OpenFlow 1.3.0: http://www.sdnap.com/wp-content/uploads/openflow/openflow-spec-v1.3.0.pdf

how to write a module: https://floodlight.atlassian.net/wiki/display/floodlightcontroller/How+to+Write+a+Module

how to use OpenFlowJ-Loxigen: https://floodlight.atlassian.net/wiki/display/floodlightcontroller/How+to+use+OpenFlowJ-Loxigen


实验环境:两台vbox虚拟机,一台运行mininet模拟网络,一台运行floodlight控制器



一 ping过程分析

以h1 ping h2为例,整个报文的流程如下:

① h1------>s1

h1 ping h2h1不知道h2mac地址,只知道h2ip地址

此时,h1会构建一个源mach1_mac,目的mac为广播地址的arp请求包,h1发送arp请求包到s1

② s1------>c0

s1收到arp请求包,发现没有对应流表项,产生OPF_PACKET_IN消息,并递交给c0

③ c0------>s1

c0收到OPF_PACKET_IN,发现是一个广播包,c0产生一个PACKET_OUT消息,要求广播该包,并递交给s1

④ s1------>h2

s1根据PACKET_OUT的指令进行广播,将arp请求包广播至h2

⑤ h2------>s1

h2收到h1发来的arp请求包,发现就是请求的自己的mac地址,于是构建一个arp响应包,发至s1,其源mach2_mac,目的mach1_mac

⑥ s1------>c0

s1收到arp响应包,发现没有对应流表项,产生OPF_PACKET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值