Chinaunix首页 | 论坛 | 博客
  • 博客访问: 468635
  • 博文数量: 185
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 681
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-06 21:45
个人简介

为梦而战

文章分类

全部博文(185)

文章存档

2016年(3)

2015年(103)

2014年(79)

我的朋友

分类: 云计算

2015-03-20 17:26:23

原文地址:如何去研究SDN&OpenFlow? 作者:peonyding

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

记得在孟岩的《一个“技术文化人”的片段感悟》中读到:程序员的进阶之道是“抬头看路,埋头赶路”。也许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


其他内容:

如果要补充网络系统方面知识,相关课程有: 如果要补充云计算和数据中心网络方面知识,相关课程有:


如果用来做实验和学习NOS
,我相对推崇Ryu SDN Framework,一个是python'语言的易用性,另一个是日本人的严谨,支持OpenStack插件;如果是工程实践,那就是OpenDayLight社区贡献代码了,唯一的担心是被巨头控制,变得不Open。

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

如果要了解SDN方面的papers,在知乎问题中有详细罗列,从SDN overview、Forwarding Abstraction、NOS Basics、Programming language、Data Plane、Verification of Network、Testing and Debugging、Network Update、Use case等方面的论文。

如果要了解DataPlane的设计实现方面,我本人就是一直在这方面潜伏,如何设计实现SDN时代的DataPlane,或者说ForwardPlane,非常好的资料是Linley Group研究机构的Data Center Conference 2014Processor Conference 2013,业界的NPU和Processor厂商在SDN方面的产品策略。

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

从技术角度看SDN,适合有一定基础的从业者和研究人员了解SDN的技术框架,内容全面,可以先读这个中译本:《软件定义网络:SDN与OpenFlow解析》

从OpenFlow协议流程角度看SDN,详细解读OpenFlow协议和工作流程,中译本(免费电子书)软件定义网络OpenFlow和VxLAN
懂得天外有天,才能保持心中的平静,纷纷扰扰花落去,有多少人能顶住压力默默前行!
------------------------分割线-------------------------------

关于SDN/OpenFlow的学习&研究路线(纯属个人理解)

第一步:当然是SDN的history,这里主要指的是学术界的研究情况:

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

一方面是创始人的理解:

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

要理解OpenFlow是一种“General Forwarding Abstraction”,Martin在2008年这篇论文:Rethinking Packet Forwarding Hardware就值得一看了

另外,ONRC对于SDN体系结构的描述:What is SDN,我在知乎上的回答:

第三步:what is Controller,现阶段SDN控制器是关键的卡位点:
首先回顾现代网络的control plane,解答三个问题:
  1. 要完成的任务?
  2. 当前技术上的实现?
  3. 旧方式的问题?
其次,Controller定义:
然后是开源实现,在尝试深入理解controller时,一度陷入众多开源controller中:
  • 从早期的NOX/POX到随后的Onix,相对完善的Ryu
  • 从Beacon到Floodlight,想一统江湖的ODL
  • 用Elang语言实现的NOS?,我比较感兴趣
直到重新审视ONOS,喜欢上了这个描述,与PC操作系统概念相对的,SDN也应该有一个Open的network OS:

阅读(1081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~