SDN 网络中的路由规则 (一)

来源:互联网 发布:take it or leave it 编辑:程序博客网 时间:2024/05/16 19:15

写在前面:

因为毕业设计的缘故,准备向计算机方向读研的我偶然结识了SDN与Openflow这两个神奇的家伙。

SDN的中文名称为软件定义网络,然而它的英文拼写除了正规的文献和专业人员,几乎很少被正确地表示出来。

百度百科对它的解释就是一个看似正确的表率:Software Defined Network。

其实我一开始也是这么以为的(甚至一开始我的解读是 Software Definition Network),不过玩文字游戏实在是没什么意思:请大家以后不要再拼错了,SDN的全称是:Software-defined Networking!这是来自Wikipedia和SDN官方网站(链接如下)的定义。

点击打开链接


我的毕业设计主要研究内容是路由规则的放置问题,说白了就是SDN交换机的路由表项怎么安排。这方面的研究有一些特点:

第一,归根结底是受限(条件)下的最优化问题,需要建模求解;

第二,建了模并不怎么好求解,所以一般归结为NP-hard问题;

第三,因为NP-hard,所以要开个脑洞想出一个启发式算法;

第四,启发式算法首选贪心算法,因为:Greed is good;

第五,总结贡献时的说辞大致为:xx和xx选择了xx方法,解决了xx条件下的xx问题。但在实际模型中,xx并不是xx的,还有xx变量的影响。而我们的算法是第一个针对xx和xx问题提出的满足xx规则的方案(当然,像科研文献这种新八股也没几个作者不这么写的)。


接下来进入正题:SDN网络有什么特点呢?它和传统的网络有哪些不同?为什么规则放置问题值得研究?可以探索的课题还有哪些?

关于SDN网络的介绍,以下链接是中文网中SDN领域最具权威性的网站,堪称网络教科书:

点击打开链接


我们学过网络都知道,所谓传统网络,是一个基于TCP/IP协议的分层网络,在OSI模型中有七层:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。交换机和路由器分别工作在数据链路层和网络层,交换局处理帧的转发,路由器负责数据包的转发和路由。路由算法的几个经典代表是RIP/OSPF和BGP。估计有时间会温习TCP/IP的教材内容,在博客上开坑做路由的番外篇(主要是目前看到的讲RIP和OSPF的不够饱满,也不太生动,故想自己动手,丰衣足食)。在传统网络中,路由器处于各自为政的分布式状态(老子只管你下一跳去哪,至于能不能到达目的看你自己造化了),尽管如此,传统网络的路由算法也足够安全,具有很低的丢包率。而SDN设计者要解决的唯一的一个重要问题是:能不能把数据和转发分离(控制器的出现)。

这是一个思想上的重大变革。所谓天下大势,合久必分,分久必合,古人诚不我欺。

从前,我们习惯封建君主专制,后来我们打土豪分土地,到现在还不是一颗红心向着党。

那我们想问了:分布式玩了这么久,以前为什么不直接用集中式管理方案呢?答案很简单,计算能力不够(领导能力差)。

根据摩尔定律的规律,如今的CPU比之传统网络设计初期,计算能力已经是非常可怕了,就差说它是冗余资源了,反而是带宽,设备容量成为了网络传输的瓶颈。所以,为了更好地利用计算能力(当然还有其他重要的理由),路由表的计算和分发大权就交给控制器(controller)来处理了。有一个像乔布斯班高明的企业管理人,想不发展壮大都难!网络界也是如此。


我们还有问题要问:那集中式控制安全吗?万一controller被攻击挂掉了,整个网络不就瘫痪了(可展开为:论controller的一百种死法)!当然这是另一部分研究者正在进行的课题,我就不赘述了。想对controller有更多了解,点击如下链接:

点击打开链接


接下来有一个关键的问题需要解答:为什么要研究SDN网络中的路由规则放置?目标是什么?

请见:SDN 网络中的路由规则 (二)

1 0
原创粉丝点击