SDN初学者的学习之路与心得.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我与SDN的缘分 一名初学者的学习之路与心得 去年十一月,我在大三的计算机网络课程上与SDN初识。今年三月中旬,我有幸得到老乡学长北邮– 李呈的指引,真正地与SDN结缘,悄然走上学习之路。 SDN,Software Defined Network,是对传统网络架构的一次革新。经过短短三四个月的学习和实践,我本着授人以渔的理念,辅以我的一些理解,将我的学习历程和心得叙写出来,送给各位想要入门的或跟我一样刚刚入门的朋友们。文中有理解不到位的地方,还望各位朋友不吝赐教,非常感谢!SDN,软件定义网络,我们关键就是弄清楚三件事:网络、软件、软件与网络怎么结合。 一、 走进网络 既然我们要用SDN来改造网络,当然得先了解一下网络是何物,磨刀不误砍柴工。 我对网络的了解,是从高中开始的。从OSI七层模型,到五层模型;从家庭组网,再到Socket编程实践,我对网络的兴趣不断增长。直到大二学了《计算机通信与网络》这门课,才算是对过往三四年积累的零星知识的一次大梳理,让我对网络有了一个系统性的了解。 (1)传统网络 传统网络,我的老师用它代指我们一直以来都在使用的网络,用以跟SDN网络区别。我是跟随着谢希仁前辈的《计算机网络》这本书学习的,也推荐给各位朋友。 跟随着大二的课程,我把五层模型的低四层学了个遍,主要是从物理层的拓扑、集线器,到数据链路层的网桥、MAC、CSMA/CD、CSMA/CA,再到网络层的路由器、最长前缀匹配、IP、ARP、OSPF、RIP、BGP,最后到传输层的UDP、TCP,掌握了这些,对我们网络的理解大有裨益。 根据我的SDN实践经验,深入理解一下最长前缀匹配,TCP的反馈重传、滑动窗口、三次握手、四次挥手,是非常有好处的。 (2)SDN网络 在这里,我们需要弄清楚三个问题: ① SDN是什么? ② 我们为什么需要SDN? ③ SDN可以用在何处? 学习SDN伊始,我阅读了一些介绍SDN的文献资料,还有一些控制器的白皮书。比较推荐大家从Open Network Fundation(ONF)组织的SDN白皮书入手,再辅以其他的介绍资料,了解SDN的架构是什么样,数据、控制、管理面,南向、北向、东西向,以及传统网络存在哪些不能适应新需求的问题、SDN针对这些问题有什么样的特性去应对。 对于控制器的白皮书,我看了ONOS的白皮书,还有一些OpenDayLight和Floodlight的介绍。通过这些,我们可以了解SDN网络的工作模式是什么,以及不同的应用场景对SDN网络有什么不同的要求。 二、 编程实践 通过上面阶段的学习,我们已经知道我们面前的SDN能做些什么,我们为什么要去用它了,这两个要点将支撑着我们继续深入钻研。 (1)Openflow Openflow,是南向协议的一种,当下比较主流。通过对它的学习,我们可以搞清楚文章开头提到的“软件与网络怎么结合”这个问题。 Openflow以“flow”(“流”)去看待网络中的连接,它只负责对流的管理,不涉及交换设备属性的管理,比如给每个端口配置多少条队列等等,这些由其伴侣协议OF-Config去做。 对协议的学习,是很让人兴奋的一件事,可以先通过Openflow白皮书对其工作模式、流和流表、优点和性能局限有个理解,然后在SDNLAB、ONF等网站上下载到协议的细则说明书,具体学习。先从1.0版本入手,然后可以进行一些编程实践以加深理解,在掌握1.0的基础上,再去学习1.3版本。协议细则在我们后续的编程实践中也很有参考价值。 (2)控制器 控制器有RYU、NOX、POX、Floodlight(FL)、OpenDayLight(ODL)、ONOS等等,不同的控制器设计思路不同、消息/事件机制不同、性能不同、编程语言不同,以致于适用的场景场合不同、学习难度不同。大家可以多方面权衡之后,选一个作为SDN入门学习。 我一开始接触的是Floodlight,也尝试使用过ODL,最后,我选择了RYU这个小巧精干的控制器作为科研阶段的使用。对于学习者来说,控制器只是一个实现SDN的工具,关键在于跑在控制器上的模块,也就是需要我们根据应用需求去设计、编写的东西。 选好控制器之后,先通过官方的介绍或者编程手册了解控制器自身的代码文件组织,再花一点时间了解相应的编程语言,然后再看一下控制器编程手册里官方给的一个最简单模块的示例代码,了解一下一个模块在代码上有什么固定结构。如果官方的控制器代码包中含有已经写好可以直接使用的模块,也可以拿它们的代码来学习,这些在后续的实践中也很有参考价值。 (3)Mininet 在跟一些小伙伴的交流中,我发现有些童鞋还不是很了解Mininet这个东西,我在这里简单地说一下我的理解吧。Mininet是一个拓扑仿真工具,对我们来说,它就是帮我们虚拟地搭建了一个硬件网络,网络中

文档评论(0)

138****7331 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档