SDN学习

来源:互联网 发布:思派网络 ceo 马旭广 编辑:程序博客网 时间:2024/05/17 14:15

对任何人来讲,时间才是最大的财富,每个人都应该把自己的时间投入到最有意义、最有影响的地方去。经过多年的学习、思考和实践,我认定这样一个规律:技术的发展不是均匀的,而是以浪潮的形式出现。每一个人都应该看清楚浪潮,赶上浪潮,如此,便不枉此生。
--《浪潮之巅》吴军

记得在孟岩的《一个“技术文化人”的片段感悟》中读到:程序员的进阶之道是“抬头看路,埋头赶路”。也许SDN的抬头看路已经相对清楚,更加需要的是埋头赶路。在开始之前请先看看
怎样阅读论文(台湾彭明辉)(强烈推荐),因为后面需要阅读大量的SDN papers,几乎每一个课程开始都会提到:How to read a paper


0.斯坦福SDN提出者Nick McKeown教授历年来的演讲非常重要Learning by evolution,在开始阶段往往容易忽视,等到后面遇到问题的时候才发现真的可以温故而知新。2008年的Why Can't I Innovate in My Wiring Closet?,2009年的Software Defined Networks,2010年的How should the Internet evolve?,2011年的How SDN will shape networking,2012年的Making SDNs Work,2014年的Software Defined Networks and the maturing of the Internet(伯克利版本,另有ETH版本,内容稍有不同)Nick对OpenFlow&SDN一路过来的认识变化非常之重要,开始自己也觉得这部分内容地球人(当然包括我,自诩看了很多遍)都知道,但是后续遇到问题时才发现自己有多么可笑


1.普林斯顿的Jennifer Rexford教授,已经代替Scott进入ONF常委,美女教授跟SDN渊源不浅,05年的RCP和4D这两篇论文,后者直接启发了OpenFlow的诞生,08年OpenFlow和NOX的paper作者之一,11年的Frenetic和Pyretic尝试设计SDN编程语言及库,课程链接:COS-597E Software defined Networking Fall 2013,个人理解是从CS的角度尝试分析SDN,加深理解SDN的首选。Jennifer的学生Minlan Yu(个人认为网络领域值得尊敬的年轻华人,博士论文评价较高)在UCLA的课程:CSCI694b, Software-defined Networking,没有课程ppt,论文比较齐全


2.哥伦比亚大学Li Erran Li的课程:COMS E6998-10 Fall 2014 Software Defined Networking,内容编排清晰明确,有完整的课程ppt和reading paper,包括SDN概述、基础概念、可扩展性、编程语言、Verification、Update、数据面设计、虚拟化、TM、安全、无线网络、Middlebox与NFV、存储,SDN入门课程的首选。13年的课程:COMS E6998-8 Software Defined Networking,与14年内容有微调,之前是home network


3.乔治亚理工大学Nick Feamster(Jennifer博士后)的课程:CS 4270/8803 Fall 2014 SDN Lab,实验课安排的非常清晰推荐学习。13年的课程:CS 8001: SDN Seminar,内容安排很全面细致,对应于Coursera上的开放课程:Coursera.org。非常积极且开放的一位教授,他的课程全部有视频放在youtube上。另外他的高级网络课程,非常完整,涉及网络的方方面面,全是视频,真实的课堂教学:CS 6250:Graduate Computer Networks,里面有SDN相关内容


4.苏黎世联邦理工学院的课程: Advanced Topics in Communication Networks HS 2014: Software-Defined Networking,其中关于SDN Switch和FPGA部分的内容个人关注比较多,还有Cisco的SDN介绍,Nick在这里做了2014年的演讲,对SDN的理解比较到位,值得一看,2013年的课程:HS2013


5.其他课程:
  • 杜克大学Theophilus Benson(Jennifer的博士后)的课程:Defining Software Defined Environments, Fall 2014
  • CMU的Vyas Sekar的课程: ECE 18-859K SDN and NFV,在Middlebox和Security领域的研究非常活跃,之前的课程:ECE739 Network Security and Management,13年在纽约石溪大学开的课程:CSE690-01 SDN and beyond Fall 2013
  • 以色列特拉维夫大学Mooly的课程:Reasoning about Software Defined Networks
  • 布朗大学Rodrigo Fonseca的课程: CSCI2950-U Advanced Networking: SDNs and Datacenter Networking,13年的课程 S'13,以论文为主
  • 康奈尔大学Nate Foster(Jennifer博士后)的课程: CS 5114: Network Programming Languages
网络基础知识是SDN入门首先要掌握的:
  • 斯坦福的网络高级课程,之前是Nick McKeown和Martìn Casado带的:CS244: Advanced Topics in Networking,从中可以看出斯坦福这边对网络的理解,另外关于Switch的内容也不错,Nick之前也有如何设计Switch&Router的课程
  • 普林斯顿Jennifer Rexford的COS-561:Advanced Computer Networks推荐学习,从现代网络视角开始思考传统网络,绝对是学习SDN之前的有力补充
  • UC伯克利Scott Shenker的计算机网络课程偏理论,可以作为参考,但是关于网络体系结构本身的思考还是比较有意思
云计算和数据中心是理解SDN的基础:
  • 首推威斯康星大学Aditya Akella's (Nick博士后)的课程,推荐学习:CS838: Systems and Networking Challenges in Cloud Computing.从云计算历史,经济学,对应网络方面的详细解读,包括云计算对网络的需求,云应用,存储等,三分之一内容是SDN,有较多课程ppt;
  • 香港科技大学Kai Chen的Topics in Data Center Networking and Cloud Computing课程,侧重于数据中心网络,讲的比较全面;
  • 华盛顿大学的Scalable Systems: Design, Implementation and Use of Large Scale Clusters课程,从分布式系统设计开始,MapReduce、Hadoop、BigTable,比较详细的呈现了Google的相关重要研究成果
  • 康奈尔大学的Cloud Computing课程,云计算推荐学习,罗列了云计算的诞生、怎样工作、应用、安全和设计等方方面面
  • Google研究员Dennis Abts的《High Performance Datacenter Networks: Architectures, Algorithms, and Opportunities》这本书是一定要读完的,可以首先读A Guided Tour of Datacenter Networking这篇文章,了解大概
  • 伯克利分校Randy H. Katz的课程Datacenter Networking and the New Converged Internet中几乎罗列了DCN方面的所有重要papers,DCN推荐学习,包括Fabric、Traffic、Topologies、Performance等,非常全面
  • 哥伦比亚大学的课程COMS W6998-6: Cloud Computing and Data Center Networking Fall 2010,斯沃斯莫尔学院 Kevin Webb 的课程CS 91: Cloud Systems & Datacenter Networks
如果用来做实验和学习NOS,我相对推崇Ryu SDN Framework,一个是python'语言的易用性,另一个是日本人的严谨,支持OpenStack插件;如果是工程实践,那就是OpenDayLight社区贡献代码了,唯一的担心是被巨头控制,变得不Open。另外开源ONOS非常值得关注和期待。

如果要了解SDN的初创公司,在知乎问题国内外SDN初创公司有哪些?中有介绍;如果要了解SDN的技术书籍,在知乎问题SDN技术书籍有哪些?中有介绍;

如果要了解SDN方面的papers,在知乎问题推荐软件定义网络sdn研究重要论文?中有详细罗列,从SDN overview、Forwarding Abstraction、NOS Basics、Programming language、Data Plane、Verification of Network、Testing and Debugging、Network Update、Use case等方面的论文。

如果要了解OpenFlow DataPlane的设计,首先就是Glen Gibb的博士论文:Reconfigurable hardware for software defined networks,ETH课程中有关SDN交换机和基于FPGA的OFS内容都非常值得看,P4POFIntel-ONP以及Broadcom的OF-DPA都值得关注。业界NPU和Chip厂商的SDN策略,非常好的资料是Linley Group研究机构的Data Center Conference 2014Processor Conference 2013Processor Conference 2014

其他内容:
  • 斯坦福的Open Networking Research Center和Open Networking Lab
  • NEC研究员Cristian Lumezanu的SDN readlist:SDN/OpenFlow reading list
  • SDNCentral上的SDN/OpenFlow开源项目:SDN/OpenFlow Open Source Projects,非常全
  • 五个明星级SDN研究团队:Meet five software-defined networking research rock stars
  • 十个值得关注的SDN博客:Ten SDN blogs worth following
  • 十五个值得关注的SDN专家:15 SDN experts to follow on Twitter
  • 值得关注的两个中文社区:SDNAP和SDNLab

中文入门资料:
从产业角度看SDN,适合从业者和研究人员快速了解SDN的现状,内容非常丰富,真的只需要看这一本中文书就够了:《深度解析SDN:利益、战略、技术、实践》张卫峰

从技术角度看SDN,适合有一定基础的从业者和研究人员了解SDN的技术框架,内容全面,可以先读这本中文书:《软件定义网络核心原理与应用实践》

从OpenFlow协议流程角度看SDN,详细解读OpenFlow协议和工作流程,中译本(免费电子书)软件定义网络OpenFlow和VxLAN
------------------------分割线-------------------------------
第一步:SDN的history,这里主要指的是学术界的研究情况:
  • 一篇非常全的论文:SDN A Comprehensive Survey,2014-10 v3版本
  • The Road to SDNNick Feamster, Jennifer Rexford, 2013,从学术概念上讨论SDN的演进
  • Maturing of OpenFlow and SDN through Deployments,Nick McKeown, 2012,斯坦福在研究和部署的四个阶段的成果,以及两者之间的互相影响,可以说是SDN是怎样炼成的
  • 另外就是OpenFlow和SDN是受到哪些直接启发才得以成型的:
    • Design and implementation of a RCP,Matthew Caesar,Nick Feamster, Jennifer Rexford,2005
    • A clean slate 4D approach to network control and management,by Albert Greenberg,Jennifer Rexford,2005
    • SANEMartìn Casado, Nick McKeown, Scott Shenker, 2006
    • EthaneMartìn Casado,Nick McKeown, Scott Shenker, 2007

第二步:what is SDN/OpenFlow,要回答这个问题,需要从两个方面理解:

一方面是创始人的理解:

  • 最权威的是Nick Mckeown历年来的演讲:
    • 2008年的:Why Can't I Innovate in My Wiring Closet?,OpenFlow是为了解决什么问题
    • 2009年的:Software Defined Networks,SDN架构和概念的提出
    • 2011年的:How SDN will shape networking,SDN将怎样重塑和影响网络
    • 2012年的:Making SDNs Work,SDN作为一种系统,从CS角度去看怎样Testing和Debugging;
    • 2014年的Software Defined Networks and the maturing of the Internet. 算是个小结,提到的关键点有:Baremetal switch,Chips,SDx和HSA
  • 其次就是Scott Shenker从“抽象”视角理解SDN,在ONS2011上的演讲:The Future of Networking, and the Past of Protocols

另一方面是ONF的标准文档:

  • SDN的白皮书:Software-Defined Networking: The New Norm for Networks 中文版:SDN白皮书(中)
  • SDN体系结构概述:SDN Architecture Overview
  • SDN体系结构文档:SDN Architecture1.0,这样描述的:The companion ONF Framework document (not yet published) describes what is desired. This document describes how this is to be achieved, at a high level.
  • OpenFlow白皮书: OpenFlow Whitepaper
  • OpenFlow协议:OpenFlow Switch Specification 1.4.0,OpenFlow Management and Configuration Protocol 1.2 (OF-Config 1.2)
要理解OpenFlow是一种“General Forwarding Abstraction”,Martin在2008年这篇论文:Rethinking Packet Forwarding Hardware值得精读,也是后续进行dataplane设计的一个纲领。

第三步,Learn SDN the Hard Way?
  • 一是:看懂SDN和OpenFlow,当你心里有一份敬畏时
  • 二是:学习推荐课程,完成后精读The McKeown Group有关SDN的博士论文,能读懂
  • 三是:完成Nick Feamster的课程实验,能做完即可
如果能坚持认认真真走完前三步,那就海阔天空了,从自己熟悉的领域切入即可,不断补充需要的基础知识即可,比如我一直在补充云计算、数据中心、DCN和Distributed Systems,尤其是CS软件部分,专注即可:The World Needs More Builders and Fewer Talkers

我自己有关SDN的理解:SDN瞎子摸象-杨泽卫谈SDN,对OpenFlow的理解:网络x86-杨泽卫谈OpenFlow。上述论文和历年ONS中资料在我的新浪 微盘 中都有下载,欢迎大家一起交流分享,微博:@杨泽卫-MeshSr,微信公众号:zeweiTalk。

懂得天外有天,才能保持心中的平静,纷纷扰扰花落去,有多少人能顶住压力默默前行!



首先:你得看懂OpenFlow 1.4 SPEC。你可以参与我的中文翻译工作openflow_translation
学术:跟着斯坦福的小组Dashboard - Confluenceopenflow-discuss Info Page混。多发论文,争取混进标准组织,如ONF
工程:加入开源社区如OpenDaylightOpen vSwitchNOXRepo
关注各类实现:yuba.stanford.edu/~casa

0 0