一、openflow 大概的工作原理

  SDN 的一个大概简陋图,

  

  同网段通讯

  1.我们传统网络 pc1 10.1.1.1 要找同一子网的 pc2 10.1.1.2  通过广播洪泛。找到pc2,然后转发。

  2.在openflow 中是怎么工作的呢?

    openflow 在转发层设备上只负责数据的一个转发,相对传统的交换机,没有MAC表,但是有一个流表,根据流表来转发。

    但是,转发层设备不会自己计算、学习、维护流表,流表来自sdn控制器。

这里简单描述一下PC1 如何发送数据包到PC2,

  先声明几个名称

  openflow packet in  相对于控制器,到控制器的包

  openflow packet out  相对于控制器,从控制器发出的包

  openflow modify  下发流表的包

  流表 类似 路由表,包含 IP,  源mac 目的ip 目的MAC,出接口,时间

  在初始状态下,转发器1 还不知道还没有流表,所以只有直连的 PC1

  1.pc1 发起一个数据包要到达 pc2.

  2.转发器本着有事找领导的原则(SDN 里转发器不学习计算)发送 ARP request  给 SDN控制,openflow packet in

  3.SDN控制收到 arp request后会给 所有的转发器下发  packet out 包 (arp reply) 在除了设备互联口上转发,查找 10.1.1.2 。

    同时下发流表给所有设备,因为控制器已经知道了一条转发信息 控制器1连接PC1的信息。这个信息是包含在 转发器给控制的 ARP request 中

  4.pc2收到查询的包后会 回应转发器2 ,转发器收到包,再回复控制器 packet in

  5.控制器收到包之后,再次下发新流表给转发器。

  6.转发器收到流表之后,知道10.1.1.2 从g 0/0/1口转发。

整个过程相对传统的MAC 洪泛麻烦。效率低。

  跨网段的怎么通讯呢?

  跟传统的通讯方式有点类似,先找网关。假设PC1 有一个数据包要发到PC3,转发器上还没有任何条目的刘表

  1。转发器收到请求后,发送 arp request  给 sdn 控制器。

  2。控制器回复它就是网关,答复一条 网关的 mac ,及下发流表(pc1)给设备

  3。转发器一收到之后,再次发送 arp request (pc3) 给控制器,

  4。控制器再次 packet out 给所有设备,查询 PC3 的所在,同时宣告自己是 20.1.1.0 的网关。

  5.PC3收到包,回复给转发器2,转发器 pcaket in  给控制器,控制器再次下发流表。

  6.转发器1 收到流表,知道PC3 从gi 0/0/1口,发送。

  7.转发器2 收到数据包,从 e0/0/2口 转发数据包。

SDN openflow 学习小得的更多相关文章

  1. 基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow

    近期一直在学习RYU控制器,在使用的过程中,发现有下面几方面的长处:RYU控制器全然使用Python语言编写,在理解起来和上手速度上是挺快的:RYU控制器的总体架构清晰明了,在日后有时间我会整理一个关 ...

  2. Android学习小Demo(19)利用Loader来实时接收短信

    之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监測短信URI内容的变化.我们先来 ...

  3. 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建

    缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天, ...

  4. Python学习小技巧之列表项的排序

    Python学习小技巧之列表项的排序 本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 典型代码1:     data_list = [6, 9, 1, ...

  5. 【python学习小知识】求绝对值和numpy和tensor的相互转换

    一.python求绝对值的三种方法 1.条件判断 2.内置函数abs() 3.内置模块 math.fabs 1.条件判段,判断大于0还是小于0,小于0则输出相反数即可 # 法1:使用条件判断求绝对值 ...

  6. 《深度解析SDN》学习小结

    SDN(软件定义网络),顾名思义,通过软件来控制或驱动整个网络.SDN的核心概念有两个,第一是转发面与控制面的分离:第二是开放的可编程接口.另外,SDN强调集中式控制,通过软件来控制整个网络,但这并不 ...

  7. HotApp小程序统计云后台 免费的Https云后台服务器,方便学习小程序

    小程序学习有些地方需要后台,比如需要存储数据到服务器,比如微信登录. hotapp有免费的小程序云后台 包含基本的 新增,查询,修改,删除 操作,方便于学习,而且不需要微信appid 也可使用. 小程 ...

  8. QT学习小技巧

    原地址:http://blog.csdn.net/ykm0722/article/details/6947250 转载: 分享在比赛中写代码时,发现的几个对写程序很有用的小段代码,虽小但是在我的软件中 ...

  9. OpenFlow学习笔记

    Software-Defined Networking Network intelligence is (logically) centralized in software-based SDN co ...

随机推荐

  1. [svn]显示日志很慢 点击文件查看更改记录也贼慢

    特此记录,防止以后忘记. 解决办法: 在 C:\Windows\System32\drivers\etc (win7) 中加入 即可 亦或将代码的url中pc名字改为ip地址也可以解决问题 对文件夹点 ...

  2. AC自动机学习小结

    AC自动机 简要说明 \(AC\) 自动机,全称 \(Aho-Corasick\ automaton\) ,是一种有限状态自动机,应用于多模式串匹配.在 \(OI\) 中通常搭配 \(dp\) 食用. ...

  3. BZOJ1257 CQOI2007 余数之和 【数分块】

    BZOJ1257 CQOI2007 余数之和 Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + - + k mod n的值 其中 ...

  4. 【angularJS】Directive指令

    AngularJS 通过被称为 指令 的新属性来扩展 HTML.指令是扩展的 HTML 属性,带有前缀 ng-. 内置指令 1.ng-app 指令初始化一个 AngularJS 应用程序. 定义了 A ...

  5. bat总结1

    获取当前目录 @echo offecho 当前盘符:%~d0echo 当前盘符和路径:%~dp0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前批处理全路径:%~f0echo 当前C ...

  6. h5移动端flexible源码适配终端解读以及常用sass函数

    ;(function(win, lib) { var doc = win.document;// win = window,lib = window.lib; var docEl = doc.docu ...

  7. IIS6自带FTP安装及配置方法

    参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...

  8. callback&&callback()

    如果存在回调函数就执行!这是利用了 JS &&符号的一个小技巧&& 符号在前面为假时就不会执行后面的语句了所以这个就相当于 if(callback){ callback ...

  9. ThinkPHP Http工具类(用于远程采集 远程下载) phpSimpleHtmlDom采集类库_Jquery筛选方式 使用phpQuery轻松采集网页内容http://www.thinkphp.cn/extend/541.html

    [php]代码库 view sourceprint? <?php // +------------------------------------------------------------ ...

  10. 20181103_C#线程初探, BeginInvoke_EndInvoke

    在C#中学习多线程之前, 必须要深刻的理解委托; 基本上所有的多线程都在靠委托来完成 一.   进程和线程: a) 进程和线程都是计算机的概念, 跟程序语言没有任何关系 b) 进程和线程都属于计算机操 ...