随着SONIC的日趋成熟,在互联网行业应用会越来越多,SONIC+白盒交换机的方式或许会成为将来数据中心的主流接入交换机。

为此,对SONIC的架构进行简要分析,看看与传统的网络操作系统的区别。

SONIC                                                                                                                            传统网络架构

LAG App,BGP App等都属于控制层,生成控制面的表项,SAI,ASIC Control Software相当于软转发层面,用来将控制面的数据转化为ASIC的数据,然后下发驱动。硬件转发层包含SDK和硬件,从上面的逻辑架构来看,两者并没有本质区别

但在实现上,有较大的差别,本次就讲讲引入数据库后的改变。在传统的交换机开发中,更注重流程,过程,引入数据库,实际带来思维的转变,将面向过程的开发转化为面向对象的开发。

引入数据库来非常多的好处

数据的处理清晰,避免了以前的在流程中多个地方对数据进行变更带来隐患。
模块间解耦。
实现方式与结果解耦。比如ACL,以前必须通过CLI或者MIB来实现,使用数据库后,不再关心实现方式,只要数据库中写入数据即可实现,那么ACL也可以是一个脚本,甚至可以远程写入。
借助数据库,可方便的实现同步,集群,备份等功能,简化了功能实现
有待大家发现
通常一个模块的处理通常如下:

在SONIC中则成为

在开发时,从关注流程,转变为关注数据,根据数据来进行相应的操作。数据库成为了整个系统的灵魂和核心。

我们来看如何通过数据库将数据从上到下串联起来

注意,此框图中的SONIC的Orcheestration Agent+SAI只相当于传统网络操作系统中的软转发层面的表项。在传统的网络操作系统中,软转发层面主要有两个作用,1)实现表项下发驱动的转换,将控制面的数据转化为ASIC SDK需要的数据。2)进行软转发操作。在SONIC中,软转发操作实际由内核完成。上图的操作流程为下发ASIC的流程。比如BGP协议产生的路由,会下发两份,1份路由下发到内核中,用于协议报文的收发。另一份则通过数据库通道下发到ASIC中。

SONIC架构简要分析-数据库相关推荐

  1. Android课程表架构简要分析

    之前一直是课程格子的忠实粉丝,非常喜欢它提供的课表功能,所以趁着毕业有时间学习了Android,历时一个月写出了一个功能较全面的课表APP,名字暂时叫Miao课表,先上效果图吧. 实现思路 整体功能结 ...

  2. 阿里巴巴数据库架构演进分析

    阿里巴巴数据库架构演进分析 阿里巴巴架构的发展历程 (1999-2010) 数据架构日益复杂,和一个简单的页面所拥有的数据分析 大型互联应用的问题: 解决方案 UDSL热点缓存 阿里巴巴架构的发展历程 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析...

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入 ...

  4. 简要分析Hacking Team 远程控制系统

    绿盟科技 · 2015/07/09 22:37 0x00 前言 7月5日晚,一家意大利远程控制软件厂商HackingTeam的内部数据被泄露出来,其影响力不亚于斯洛登事件及维基解密事件,绿盟科技威胁响 ...

  5. Android Hal层简要分析

    Android Hal层简要分析 Android Hal层(即 Hardware Abstraction Layer)是Google开发的Android系统里上层应用对底层硬件操作屏蔽的一个软件层次, ...

  6. Teradata天睿公司推出适用各种部署环境的全球最强分析数据库

    Teradata天睿公司(Teradata Corporation,纽交所:TDC)推出Teradata Everywhere™,成为业内首家在多种公有云.托管云和本地部署环境下部署全球最强海量并行处 ...

  7. 分析数据库CitusDB:提供弹性计算能力

    本文讲的是分析数据库CitusDB:提供弹性计算能力,企业数据库市场很庞大,在这个领域既有Oracle这样行家,也有IBM(DB2)和微软(SQL Server)这样的跨界巨头.它们都与中小企业常用到 ...

  8. Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析

    为什么80%的码农都做不了架构师?>>>    根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现.在Java SE 7的API中,多了Fo ...

  9. 【u-boot】uboot代码简要分析 (u-boot 移植)

    uboot代码简要分析 (u-boot 移植) 2012-12-19 22:46:04 [转] 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码 1.U-boot源码整体框架 源码解压以后,我 ...

  10. 微信、陌陌的架构方案分析(LBS之二)

    目标 解决大型应用(微信.陌陌级别)中,用户经纬度在不断更新,用户查找频繁的问题.(每分钟1000W级) 方案A 本方案前,请先阅读 http://www.alivenode.com/index.ph ...

最新文章

  1. STM32固件库文件树及构成详解
  2. mysql-mmm高可用架构
  3. XGBoost 与 Spark 在广告排序中的应用
  4. 构造函数调用默认构造函数_显式无参数构造函数与默认构造函数
  5. 发送http和https请求工具类 Json封装数据
  6. minion java上传文件_Java程序员如何快速理解Kubernetes
  7. 找高清壁纸,没有那么麻烦,高图网帮你搞定!
  8. Verilog 语法点使用————(持续更新)
  9. python爬电影_零基础Python爬虫实现(爬取最新电影排行)
  10. 诺基亚n1系统更新显示无网络_塞班系统曾经的希望,诺基亚 N8-00 发布十周年回顾...
  11. 计算机文化基础清华大学PPT,数据库基础知识清华大学计算机文化基础.ppt
  12. 北京大学公开课重磅来袭!欢迎走进「AI for Science」课堂
  13. 用c语言输入年份 月份 显示天数,java输入月份,年份,显示对应月份的天数,...
  14. 关于计算机固态硬盘正确的是,如何对固态硬盘进行初始化?选择合适的格式及分区结构很重要...
  15. 使用unity制作的一款生存类游戏demo(一)
  16. 独自美丽-西西里的美丽传说『by berta』
  17. HTML表格制作的例子
  18. 学号,课程名查询成绩
  19. 关于单向TSP旅行商问题/修路问题/最小生成树问题的求解讨论
  20. load opencv videoio gstreamer453 64d dll failed 打开摄像头慢

热门文章

  1. NYOJ 93 汉诺塔(三) 【栈的简单应用】
  2. 系统调用服务号 linux 2.6.32
  3. redis运维常用的server端命令
  4. Java设计模式01:设计模式的 分类 和 设计原则
  5. UIImagePickerController---iOS-Apple苹果官方文档翻译
  6. KVO.非常简单的键值监听模式
  7. 利用yarn多队列实现hadoop资源隔离
  8. CA证书服务器(6) 利用CA证书配置安全Web站点
  9. Bzoj1103 [POI2007]大都市meg
  10. Servlet(Request.Response)+文件上传