首页 > 代码库 > 深入SDN(一):如何去研究SDN&OpenFlow
深入SDN(一):如何去研究SDN&OpenFlow
本文来自我在知乎上的回答:如何去研究SDN&OpenFlow?:对任何人来讲,时间才是最大的财富,每个人都应该把自己的时间投入到最有意义、最有影响的地方去。经过多年的学习、思考和实践,我认定这样一个规律:技术的发展不是均匀的,而是以浪潮的形式出现。每一个人都应该看清楚浪潮,赶上浪潮,如此,便不枉此生。
--《浪潮之巅》吴军
记得在孟岩的《一个“技术文化人”的片段感悟》中读到:程序员的进阶之道是“抬头看路,埋头赶路”。也许SDN的抬头看路已经相对清楚,更加需要的是埋头赶路。在开始之前请先看看:
怎样读论文-台湾彭明辉 (强烈推荐),因为后面需要阅读大量的SDN papers,几乎每一个课程开始都会提到:How to read a paper。
0.斯坦福Nick McKeown的一系列演讲: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。learning by evolution,Nick对OpenFlow&SDN一路过来的认识变化非常之重要,开始自己也觉得这部分内容地球人(当然包括我,自诩看了很多遍)都知道,但是后续遇到问题时才发现自己有多么可笑
1.普林斯顿的Jennifer Rexford,美女教授跟SDN渊源不浅,早期的RCP和4D这两篇论文,后者直接启发了OpenFlow的诞生,2008年OpenFlow和NOX的paper作者之一,随后的的Frenetic和Pyretic从给程序员提供便利性着手,个人理解是很有意思的方向,课程链接如下:COS-597E, Princeton University, Fall 2013内容比较全面,提供部分ppt下载,但是整体内容编排上分散。她的弟子Minlan Yu在南加州大学的课程:CSCI694b, Software-defined Networking,也是论文的归类,可以后续关注是否有lecture放出来
2.哥伦比亚大学的Li Erran Li,他的课程我个人认为最值得仔细学习,内容编排清晰明确,从SDN概述、基础概念、高级设计议题到所有应用领域的分析,课程链接:COMS E6998-8 Software Defined Networking
3.CMU的Vyas Sekar,此前在纽约石溪大学也开过SDN课程,研究SDN Middlebox的,没有课程ppt,只包括论文,但是可以了解内容编排:ECE739 Network Security and Management,之前的课程如下:CSE690-01, Stony Brook University, Fall 2013
4.以色列特拉维夫大学的Mooly,有少量课程ppt,整个课程还不太完善:Reasoning about Software Defined Networks
5.Nick Feamster在Coursera上的开放课程可以预约:Coursera.org,之前课程的视频YouTube SDN Playlist: Videos for all Nick feamster lectures.应该很精彩,视频课程感觉会收获最大。另外他的高级网络课程,非常完整,涉及网络的方方面面,全是视频,真实的课堂教学,推荐学习:CS 6250:Graduate Computer Networks,里面有SDN相关内容,也非常赞
6.苏黎世联邦理工学院的课程内容很丰富,推荐学习: Advanced Topics in Communication Networks HS 2013: Software-Defined Networking,尤其是其中包含了如何将可编程硬件应用到实现SDN数据面的问题,刚好一直在关注这个点。
7.布朗大学Rodrigo Fonseca的课程:CSCI2950-U Advanced Networking: SDNs and Datacenter Networking,主要是论文,课程ppt极少
8.威斯康星大学Aditya Akella‘s 的课程,推荐学习:CS838: Systems and Networking Challenges in Cloud Computing.从云计算历史,经济学,对应网络方面的详细解读,包括云计算对网络的需求,云应用,存储等,三分之一内容是SDN,有较多课程ppt
其他内容:
- NEC研究员Cristian Lumezanu的SDN readlist:SDN/OpenFlow reading list
- SDNCentral上的SDN/OpenFlow开源项目:SDN/OpenFlow Open Source Projects,非常全
- Searchsdn上推荐:
-
- 五个明星级SDN研究团队:Meet five software-defined networking research rock stars
- 十个值得关注的SDN博客:Ten SDN blogs worth following
- 十五个值得关注的SDN专家:15 SDN experts to follow on Twitter
如果要补充网络系统方面知识,相关课程有:
- 斯坦福的网络高级课程,之前是Nick McKeown和Martìn Casado带的:CS244: Advanced Topics in Networking,从lecture1中可以看出斯坦福这边对网络的理解,另外关于Switch的内容也不错,Nick之前也有如何设计Switch&Router的课程
- 美女教授Jennifer Rexford的COS-561:Advanced Computer Networks,推荐学习,从现代网络视角开始思考传统网络,绝对是学习SDN之前的有力补充
- Scott Shenker的计算机网络课程偏理论,可以作为参考,但是关于网络体系结构本身的思考还是比较有意思
如果要补充云计算和数据中心网络方面知识,相关课程有:
- 首推的就是上述8,威斯康星大学Aditya Akella‘s 的课程,再次推荐学习;
- 香港科技大学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这篇文章,了解大概
如果用来做实验和学习NOS,我相对推崇Ryu SDN Framework,一个是python‘语言的易用性,另一个是日本人的严谨,支持OpenStack插件;如果是工程实践,那就是OpenDayLight社区贡献代码了,唯一的担心是被巨头控制,变得不Open。
如果要了解SDN的初创公司,在知乎问题国内外SDN初创公司有哪些?中有介绍;如果要了解SDN的技术书籍,在知乎问题SDN技术书籍有哪些?中有介绍;
上述课程涉及的论文和ONS资料在我的 微盘 中都有下载,欢迎跟我@杨泽卫深度交流SDN。
懂得天外有天,才能保持心中的平静,纷纷扰扰花落去,有多少人能顶住压力默默前行!